Topic



 
Write Service File


/*
*Copyright (c) Jmin. All rights reserved.
*/
package first;

import org.jmin.kernel.framework.ext.J2eeAbstractService;

/**
* service sample.
*
* @author Chris liao
* @version 1.0
*/

public class TopicService extends J2eeAbstractService{

/**
* Here, you need't put down anything.
* It is simple ?
*/
}

Write Topic file

/*
*Copyright (c) jmin Organization. All rights reserved.
*/
package first;

import org.jmin.kernel.aspect.msg.jms.topic.Topic;

/**
* Topic sample.
*
* @author Chris liao
* @version 1.0
*/

public class HelloTopic extends Topic{

 /**
 * Here,you need't write anything
 */
}
 

Define xml description file

//*file:service.xml

<?xml version="1.0"?>
<service id="admin">
<components>
  <component id="TopicService" type="service">
  <class>first.TopicService </class>
  <property name="aspectPool">
   <map>
    <entry key="hello" class="first.HelloTopic"/>
   </map>
  </property>
 </component>
</components>
</service>
 

Deploy Service file

Make a jar file include all class files and description file, then put the jar to Jmin deploy folder
 

Testing

/*
*Copyright (c) Jmin. All rights reserved.
*/
package first;

import org.jmin.kernel.aspect.msg.SimpleMessage;
import org.jmin.kernel.aspect.msg.jms.topic.TopicProxy;
 
import org.jmin.kernel.aspect.net.NSRB;
import org.jmin.kernel.aspect.net.NetContext;
import org.jmin.kernel.framework.aspect.J2eeAspectAddress;

/**
* Topic sample.
*
* @author Chris liao
* @version 1.0
*/


public class TestTopic {

 public static void main(String args[])throws Exception{

  NSRB nsrb = NSRB.init();
  NetContext context = nsrb.createNetContext("socket://localhost:9988");
  TopicProxy proxy1 = new TopicProxy();
  proxy.bind(context);
  
  SimpleMessage request = new SimpleMessage();
  J2eeAspectAddress destination= new J2eeAspectAddress();
  destination.setAspectName("hello");
  destination.setServiceID("TopicService");

  proxy.publish(destination,request);
 
 }

}

/*
*Copyright (c) Jmin. All rights reserved.
*/
package first;

import org.jmin.kernel.aspect.msg.MessageListener;
import org.jmin.kernel.aspect.msg.Message;

/**
* Topic sample.
*
* @author Chris liao
* @version 1.0
*/


public class HelloAsynListner implements MessageListener{

  /**
  * handle message
  */
  public void onMessage(Message request){
    System.out.println(request);
  }
}

 

/*
*Copyright (c) Jmin. All rights reserved.
*/
package first;

import org.jmin.kernel.aspect.msg.jms.topic.TopicProxy;
import org.jmin.kernel.aspect.net.NSRB;
import org.jmin.kernel.aspect.net.NetContext;
import org.jmin.kernel.util.Locker;
 

/**
* Topic sample.
*
* @author Chris liao
* @version 1.0
*/

public class TestReceiver {

 public static void main(String args[])throws Exception{

  NSRB nsrb = NSRB.init();
  NetContext context = nsrb.createNetContext("socket://localhost:9988");
  TopicProxy proxy = new TopicProxy();
  proxy.bind(context);
  HelloAsynListner lister = new HelloAsynListner();
  proxy.connect("TopicService","hello",lister);
  Object obj = new Object();
  Locker.lock(obj);
 }
}


Copyright © 2006 . All Rights Reserved.