`
文章列表
最近朋友们一直都是问为什么老是远程发现不了。估计都是以前书上的例子害的。我们看过这么多书,一定会发现,所有的例子都是本地发现的。而且只是写出了远程发现的语句,但是其实只是向我们显示如何远程发现,其实并 ...

学习OSGI之一

    博客分类:
  • OSGi
Bundle原来是和传统的Jar包是有区别的,它不只包括了Jar包还包括了其它资源。其中最主要就是头文件(MANIFEST.MF)了,这个文件存储了Bundle的元数据信息,而加载类过程正是靠这个头文件信息。 例如:在Equnix中,我们要安装Bundle A,首先就是要安装Bundle A,其实就是读取A的头文件中的详细信息,然后把元数据放到BundleDescription中,接着就是重要的一步啦。加载,通过读取安装的结果 BundleDescription,框架了解到应该如何从那里(URL)去加载支撑A的Bundle,然后是Bundle B。如果找到Bundle B,那B又在重复A的过程 ...
如何创建自己的Bundle,我们如果了解了,应该都知道,存在两种。 1、通过BundleActivator来实现 2、通过OSGi提供的DS服务实现 在这里,我要讲的是通过第3种,即Eclipse插件扩展点机制及equinox.http.registry提供的注册功能来实现。 1、 ...
1,将net.sf.jadclipse_3.3.0.jar拷贝到Eclipse的插件目录下 2,在环境变量path 里配置上jad的路径,例如jad.exe文件在E:\jad文件夹下,path=E:\jad 3,在jad文件夹下创建临时文件夹temp,再设置eclipse首选项下Java下的JadClipse下面的两个 路径Path to decomplier=E:\jad\jad.exe,Directory for temporary files=E:\jad\temp 下面带有插件及jad.exe,可下载。

上山学艺之一

由于自身的能力,我进了一家小门派。虽然比不上少林,武当。但是各种武功还是很全面的。可能本人性格问题,比较喜新厌旧的关系。挑选高新武功的分坛,既可以满足自己的白日做梦,也可以满足新鲜的快感。本分坛名为“软件学院”。其下属的子坛,名日:计算机科学。 就这样,这里将是我名成得就的基地,只要我努力学武,将来我也可以成就一代大侠,而且可能还会出现我的小龙女。放下这些伟大的希望,我开始了自己的学武生涯。 为了学武,身体素质肯定是首要条件。应该每个门派都明白这样道理。所以还没学武,我们的就开始痛苦。学前体能训练“军训”,9月的太阳真不盖的,可以让你Y到出汗。 不过虽然痛苦,但,我们总是苦中作乐,收获也不少,起 ...
从2006年开始使用Eclipse平台,却只知道如何添加自定义的插件,完全只是把它当成一个IDE,却从来没有想过其基层实现的原理,只会说Eclisep提供了插件机制。但是这个机制是什么服务规范或者标准。却不曾了解。 最近无意中接触到OSGi才回头去看看Eclipse,看了些文章,才知道Eclipse3.1后的插件机制发生了变化。从原来Eclipse自己的插件机制换上了新主人OSGi.。怎么有这么大的魔力让Eclipse放弃自家技术,而使用OSGi呢。虽然不管是从技术,还有一些商业原因,但是从这点,也可以体现出OSGi的优秀。 大家都知道使用Eclipse开发插件,但是插件不会自己运行,以前只 ...
昨天接到海辉的面试电话,不知道那里怎么样,请问一下知情者,再确认自己要不要过去?谢谢
如果搜寻的数列已经有排序,应该尽量利用它们已排序的特性,以减少搜寻比对的次数,这是搜寻的基本原则,二分搜寻法是这个基本原则的代表。 public class BinarySearch {     public static int search(int[] number, int des) {          int low = 0;           int upper = number.length - 1;           while(low <= upper) {                int mid = (low+upper) / 2;             ...
1、原来要拥有漂亮很简单,只要不生气就可以了。   2、原来培养孩子很简单,让他吃点苦头就可以了。 3、原来保持明亮的方法很简单,只要常常换掉坏的灯管就可以了。 4、原来掌握命运的方法很简单,远离懒惰就可以了。 5、原来摆脱沉重的负荷很简单,寻求名师指点就可以了。 6、原来快乐很简单,只要放弃多余的包袱就可以了。 7、原来要获得机会很简单,勤劳一点就可以了。 8、原来寻找成功的方法很简单,从头做起,不试图走捷径就可以了。   9、原来想实现理想很简单,只要实实在在地去做就可以了。
前面我们讲到如何在JXTA中创建单向不可靠的通信渠道,本节我们将介绍如何用JxtaServerPipe和JxtaBiDiPipe实现双向可靠的通信。在这里只是介绍在程序中是如何利用这两个类来实现的过程。 利用NetPeerGroup,PipeAdvertisement,也即是默认的网络对等组和特定的管道广告,这个管道广告是我们自己生成的。可以在代码在实现生产的,也可以通过读取广告文件来生成这个广告。有了这两个参数我们就可以实例化一个JxtaServerPipe. JxtaServerPipe serverPipe = new JxtaServerPipe(netPeerGroup,serve ...
广告是JXTA核心对象,它是用来公布对等机,对等机,服务,管道或者其它JXTA资源的。广告是在JXTA核心资源上提供的一个独立的平台,以供不同平台实现能够互相交流。每个广告都持有一个文件来表示。广告最典型的是XML来表示。Advertisement.getDocument(MimeMediaType)方法是用来生产广告内容的。不同陈述可以通过MIMETYPE来选择。典型的MIMETYPE有"text/xml"或者"text/plain"产生正方内容为广告。广告实例是通过AdvertisementFactory工厂产生的。所有公共广告都是在net.jxta. ...
在前面我们讲到管道通信都是单向不可靠的。如果JXTA只提供它,那JXTA就太逊了。当然不可能,JXTA不只提供单向不可靠的通信渠道,也提供了双向可靠的通信渠道,在基于JXTA管道提供单向,不可靠的通信渠道。由于管道对于服务和应用更加有用,在管道上实现双向和可靠通信渠道是很重要的。JXSE提供了满足大多数应用相对高水平的要求的功能:即,可靠,确保信息顺序,确保传递,公开信息和接口,安全。这才是JXSE追求的理想中的通信渠道。从最早的版本提供的BidirectionPipeService到现在的JxtaServerPipe和JxtaBiDiPipe,JxtaServerSocket和JxtaSock ...
半年的测试过程,一直存在一件让我很不爽的事情。PDE提供的文档总是过时的,让我每次测试都得通过与PDE面对面沟通才完成,而且在一些问题上花费的时间很多。有时候在想,为什么文档总是跑在代码的后面。很久才发现,目前,代码与文档是分开,还有就是我们PDE(包括我)的习惯,总是喜欢先搞定代码,却总是忘记文档,或者把文档放在后面。这就造成我们定位错误,维护程序造成巨大的开支。那到底有没有方法让代码与文档同步呢?或者我们把习惯变一下,先写好文档,再写代码。我们PDE真的可以改一下习惯,我觉得这样的习惯真的好处多多,最近我也这样试过。只是不知道我的体会在别人那里是不是一样。先写文档的好处: 1、清楚业务 ...
本文是接前面两篇,结束本篇就完成密码对等组创建,发现及加入的过程。 发现一个对等组在以前关于JXTA中的文章中都有说到,没有什么大的差别,在这里主要是注意验证器如何验证用户和密码的过程,不过也相对比较简单。代码的注释中都有详细的说明。直接秀出代码: 1、搜索对等组方法  //搜索到该“群” private PeerGroup discoveryPeerGroup(PeerGroup netpg,   PeerGroupID satellaPID) {  //要加入”群“,首先,得搜索到”群“  //在很多情况下,我们一般使用发现监听及时发现  //在这里我不这样,因为已经确定对等组广告是在 ...
本文是接前篇而写,所以一些前面讲过的东西在这里不再重复。想了解的,直接看前篇。 在这里我们要讲的是如何创建一个带有密码认证的“群”。首先,我们要明白在JXTA中,其中最大的一个特点就是提供共享服务。而身份认证也是其中一种服务,因为在JXTA中已经实现一些基础的服务。而密码服务也已经实现,只是在利用NetGroup创建新的对等组时,其提供的默认的身份认证的服务,是没有认证,即NoneMembershipService,看到这里想来大家也有点明白了,想要实现密码服务,就是把对等组中提供中的默认NoneMembershipService服务,替换成PasswdMembershipService,即可 ...
Global site tag (gtag.js) - Google Analytics