文章关键字 ‘spark’

为 OpenFire和Spark增加QQTransport–Spark篇

2008年01月2日,星期三

假期温习了一下openfire和以前写的QQTransport,

又调用lumaQQ写了点代码,在spark和openfire中实现支持qq的gateway,经过测试可用。

首先,下载了OpenFire和Spark的源代码:

http://www.igniterealtime.org/downloadServlet?filename=openfire/_src_3_4_3.zip

svn方式下载:
Openfire:
svn co http://svn.igniterealtime.org/svn/repos/openfire/trunk openfire
:
svn co http://svn.igniterealtime.org/svn/repos/spark/trunk spark
Smack:
svn co http://svn.igniterealtime.org/svn/repos/smack/trunk smack
Asterisk-:
svn co http://svn.igniterealtime.org/svn/repos/asterisk-im/trunk asterisk-im

svn客户端:

http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe

a.Saprk中,需要修改的地方有:

1.首先找到qq在线和离线的图标:

在线: http://is.qq.com/webpresence/help/help_clip_image007.gif
离线:http://is.qq.com/webpresence/help/help_clip_image008.gif

图标来源:http://is.qq.com/webpresence/help/help.shtml

2.定义资源信息常量和相关字符串信息,
尽量不改动原有代码,因此把扩展的代码写的比较丑。

3.修改org.jivesoftware.sparkimpl.plugin.gateways.GatewayPlugin.java里的

populateTransports方法。

增加:

import com.lizongbo.spark.plugin.gateways.transports.QQTransport;

else if (entityName.endsWith(“.”)) {
QQTransport qqTransport = new QQTransport(item.getEntityID());
TransportUtils.addTransport(item.getEntityID(), qqTransport);
}

4.QQTransport的代码:

[code]

package com.lizongbo.spark.plugin.gateways.transports;

import java.net.URL;
import org.jivesoftware.resource.Res;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import org.jivesoftware.sparkimpl.plugin.gateways.transports.*;

public class QQTransport implements Transport {
//   public static final String QQ_TRANSPORT_ACTIVE_IMAGE =
//           "QQ_TRANSPORT_ACTIVE_IMAGE";
//   public static final String QQ_TRANSPORT_INACTIVE_IMAGE =
//           "QQ_TRANSPORT_INACTIVE_IMAGE";

org.jivesoftware.sparkimpl.plugin.gateways.GatewayPlugin gg;
org.jivesoftware.spark.SparkManager gga;
private String serviceName;

public QQTransport(String serviceName) {
this.serviceName = serviceName;
System.out.println(this.getIcon()); ;
System.out.println(this.getInactiveIcon());

}

public String getTitle() {
return "QQ 账户凭证";
//  return Res.getString("title.qq.registration");
}

public String getInstructions() {
return "请输入你的QQ号码和密码。";
// return Res.getString("message.enter.qq");
}

public Icon getIcon() {
final String iconURI = "/images/qq_online.gif";
try {
final URL imageURL = //getClass().getClassLoader().
//getSystemClassLoader().getResource(
getClass().getResource(iconURI);
return new ImageIcon(imageURL);
} catch (Exception ex) {
System.out.println(iconURI + " not found.");
}
return null;
//return SparkRes.getImageIcon(QQ_TRANSPORT_ACTIVE_IMAGE);
}

public Icon getInactiveIcon() {
final String iconURI = "/images/qq_offline.gif";
try {
final URL imageURL = //Thread.class.getClassLoader().
// getSystemClassLoader()
getClass().getResource(
iconURI);
return new ImageIcon(imageURL);
} catch (Exception ex) {
System.out.println(iconURI + " not found.");
}
return null;
//return SparkRes.getImageIcon(QQ_TRANSPORT_INACTIVE_IMAGE);
}

public String getServiceName() {
return serviceName;
}

public String getName() {
return "QQ";
}

public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}

public Boolean requiresUsername() {
return true;
}

public Boolean requiresPassword() {
return true;
}

public Boolean requiresNickname() {
return false;
}

}
[/code]

4.打包文件。

将新增文件打包到qqransport.jar,
替换修改后的GatewayPlugin.class

Tags: , ,

OpenFire 3.4.3发布了。

2007年12月29日,星期六

3.4.3在27号发布了,

相关下载地址为:

http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3_4_3.zip

http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_src_3_4_3.zip

而plugin里也新添了两个:

http://www.igniterealtime.org/projects/openfire/plugins/emailListener.jar

http://www.igniterealtime.org/projects/openfire/plugins/motd.jar

Spark还没出新版,但是从svn的源代码中发现,gateways的transport多了:

GaduGaduTransport,IRCTransport,SimpleTransport

h2database也在27号发布了新版

ersion 1.0.64 (2007-12-27):

http://www.h2database.com/html/frame.html

http://www.h2database.com/h2-setup-2007-12-27.exe

http://www.h2database.com/h2-2007-12-27.zip

Tags: , , ,

体验OpenFire3.4.2的集群功能

2007年12月12日,星期三

体验OpenFire3.4.2的集群功能

曾经因为学习xmpp的时候关注了openfire,那时候还叫WildFire,
曾经照虎画猫用lumaqq写了个qq插件,后来没时间也就没看了.

3.4.2发布了,在3.4开始就支持了集群功能,

changelog在: http://www.igniterealtime.org/builds/openfire/docs/latest/changelog.html

相关下载链接为:

http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3_4_2.zip

http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_src_3_4_2.zip

http://www.igniterealtime.org/downloadServlet?filename=smack/smack_src_3_0_4.zip

http://www.igniterealtime.org/downloadServlet?filename=spark/online/spark_2_5_8_online.exe

http://www.igniterealtime.org/downloadServlet?filename=connectionmanager/connection_manager_src_3_4_2.zip

http://www.igniterealtime.org/downloadServlet?filename=connectionmanager/connection_manager_3_4_2.zip

上面的下载连接不支持断点续传.

http://www.igniterealtime.org/projects/openfire/plugins/asterisk-im.jar

http://www.igniterealtime.org/projects/openfire/plugins/broadcast.jar

http://www.igniterealtime.org/projects/openfire/plugins/contentFilter.jar

http://www.igniterealtime.org/projects/openfire/plugins/sip.jar

http://www.igniterealtime.org/projects/openfire/plugins/gateway.jar

http://www.igniterealtime.org/projects/openfire/plugins/presence.jar

http://www.igniterealtime.org/projects/openfire/plugins/registration.jar

http://www.igniterealtime.org/projects/openfire/plugins/search.jar

http://www.igniterealtime.org/projects/openfire/plugins/subscription.jar

http://www.igniterealtime.org/projects/openfire/plugins/userImportExport.jar

http://www.igniterealtime.org/projects/openfire/plugins/userservice.jar

http://www.igniterealtime.org/projects/openfire/plugins-beta/filetransferdisabler.jar

http://www.igniterealtime.org/projects/openfire/plugins-beta/red5.war

http://www.igniterealtime.org/projects/openfire/plugins-beta/vcard.jar

http://www.igniterealtime.org/projects/openfire/plugins/enterprise.jar

http://www.igniterealtime.org/projects/openfire/plugins/webchat.war

配置openfire的启动参数,比如设置内存,
如果是用openfired.exe启动,则在D:\Java\openfire\bin创建openfired.vmoptions
内容为:
-Xms64m
-Xmx256m

如果是用openfire-service.exe进去启动的,则创建openfire-service.vmoptions.

测试了一下集群功能,openfire clustering特性用的是被Oracle收购的coherence来实现的,授权用的Tangosol : Application Edition.
tangosol-license.jar中有licensee信息,
coherence的下载地址在:

http://download.oracle.com/otn/java/coherence/coherence-331.zip

来源: http://www.oracle.com/technology/software/products/ias/htdocs/coherence.html

Tags: , , , , ,