/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.wordpress.salaboy.grid; import java.util.HashMap; import java.util.Map; import org.drools.SystemEventListenerFactory; import org.drools.grid.ConnectionFactoryService; import org.drools.grid.Grid; import org.drools.grid.GridConnection; import org.drools.grid.GridNode; import org.drools.grid.GridServiceDescription; import org.drools.grid.SocketService; import org.drools.grid.conf.GridPeerServiceConfiguration; import org.drools.grid.conf.impl.GridPeerConfiguration; import org.drools.grid.impl.GridImpl; import org.drools.grid.impl.MultiplexSocketServerImpl; import org.drools.grid.io.impl.MultiplexSocketServiceCongifuration; import org.drools.grid.remote.mina.MinaAcceptorFactoryService; import org.drools.grid.service.directory.WhitePages; import org.drools.grid.service.directory.impl.CoreServicesLookupConfiguration; import org.drools.grid.service.directory.impl.WhitePagesLocalConfiguration; import org.drools.grid.timer.impl.CoreServicesSchedulerConfiguration; /** * * @author salaboy */ public abstract class GridBaseTest { protected Map<String, GridServiceDescription> coreServicesMap; protected Grid grid1; protected GridNode remoteN1; protected void createRemoteNode() { grid1 = new GridImpl(new HashMap<String, Object>()); configureGrid1(grid1, 8000, null); Grid grid2 = new GridImpl(new HashMap<String, Object>()); configureGrid1(grid2, -1, grid1.get(WhitePages.class)); GridNode n1 = grid1.createGridNode("n1"); grid1.get(SocketService.class).addService("n1", 8000, n1); GridServiceDescription<GridNode> n1Gsd = grid2.get(WhitePages.class).lookup("n1"); GridConnection<GridNode> conn = grid2.get(ConnectionFactoryService.class).createConnection(n1Gsd); remoteN1 = conn.connect(); } private void configureGrid1(Grid grid, int port, WhitePages wp) { //Local Grid Configuration, for our client GridPeerConfiguration conf = new GridPeerConfiguration(); //Configuring the Core Services White Pages GridPeerServiceConfiguration coreSeviceWPConf = new CoreServicesLookupConfiguration(coreServicesMap); conf.addConfiguration(coreSeviceWPConf); //Configuring the Core Services Scheduler GridPeerServiceConfiguration coreSeviceSchedulerConf = new CoreServicesSchedulerConfiguration(); conf.addConfiguration(coreSeviceSchedulerConf); //Configuring the WhitePages WhitePagesLocalConfiguration wplConf = new WhitePagesLocalConfiguration(); wplConf.setWhitePages(wp); conf.addConfiguration(wplConf); if (port >= 0) { //Configuring the SocketService MultiplexSocketServiceCongifuration socketConf = new MultiplexSocketServiceCongifuration(new MultiplexSocketServerImpl("127.0.0.1", new MinaAcceptorFactoryService(), SystemEventListenerFactory.getSystemEventListener(), grid)); socketConf.addService(WhitePages.class.getName(), wplConf.getWhitePages(), port); conf.addConfiguration(socketConf); } conf.configure(grid); } }