[jboss-svn-commits] JBL Code SVN: r33548 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task: src/main/java/org/drools/grid/task and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jun 18 12:47:42 EDT 2010


Author: diegoll
Date: 2010-06-18 12:47:41 -0400 (Fri, 18 Jun 2010)
New Revision: 33548

Added:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/DefaultUserInfo.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskServerInstanceNodeRunner.java
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/pom.xml
Log:
added the feature to run the task server instance as standalone

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/pom.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/pom.xml	2010-06-18 16:35:11 UTC (rev 33547)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/pom.xml	2010-06-18 16:47:41 UTC (rev 33548)
@@ -73,7 +73,6 @@
             <groupId>commons-collections</groupId>
             <artifactId>commons-collections</artifactId>
             <version>3.2.1</version>
-            <scope>test</scope>
         </dependency>
 
         <dependency>
@@ -96,5 +95,26 @@
             <type>jar</type>
         </dependency>
     </dependencies>
-    
+     <build>
+    <plugins>
+      <plugin>
+        <inherited>true</inherited>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+          <optimize>true</optimize>
+          <debug>true</debug>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <configuration>
+          <mainClass>org.drools.grid.task.TaskServerInstanceNodeRunner</mainClass>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build> 
 </project>

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/DefaultUserInfo.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/DefaultUserInfo.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/DefaultUserInfo.java	2010-06-18 16:47:41 UTC (rev 33548)
@@ -0,0 +1,78 @@
+package org.drools.grid.task;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.task.Group;
+import org.drools.task.OrganizationalEntity;
+import org.drools.task.UserInfo;
+
+public class DefaultUserInfo implements UserInfo {
+
+    private Map<Group, List<OrganizationalEntity>> groups = new HashMap<Group, List<OrganizationalEntity>>();
+
+    private Map<OrganizationalEntity, String> emails = new HashMap<OrganizationalEntity, String>();
+
+    private Map<OrganizationalEntity, String> languages = new HashMap<OrganizationalEntity, String>();
+
+    private Map<OrganizationalEntity, String> displayNames = new HashMap<OrganizationalEntity, String>();
+
+    public Map<Group, List<OrganizationalEntity>> getGroups() {
+        return groups;
+    }
+
+    public void setGroups(Map<Group, List<OrganizationalEntity>> groups) {
+        this.groups = groups;
+    }
+
+    public Map<OrganizationalEntity, String> getEmails() {
+        return emails;
+    }
+
+    public void setEmails(Map<OrganizationalEntity, String> emails) {
+        this.emails = emails;
+    }
+
+    public String getEmailForEntity(OrganizationalEntity entity) {
+        return emails.get( entity );
+    }
+
+
+
+    public Map<OrganizationalEntity, String> getDisplayNames() {
+        return displayNames;
+    }
+
+    public void setDisplayNames(Map<OrganizationalEntity, String> displayNames) {
+        this.displayNames = displayNames;
+    }
+
+    public Map<OrganizationalEntity, String> getLanguages() {
+        return languages;
+    }
+
+    public void setLanguages(Map<OrganizationalEntity, String> languages) {
+        this.languages = languages;
+    }
+
+    public Iterator<OrganizationalEntity> getMembersForGroup(Group group) {
+        return groups.get( group ).iterator();
+    }
+
+    public boolean hasEmail(Group group) {
+        return emails.containsKey( group );
+    }
+
+    public String getDisplayName(OrganizationalEntity entity) {
+        String displayName = displayNames.get( entity );
+        return ( displayName != null ) ? displayName : entity.getId();
+    }
+
+    public String getLanguageForEntity(OrganizationalEntity entity) {
+        return languages.get( entity );
+    }
+
+
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskServerInstanceNodeRunner.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskServerInstanceNodeRunner.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-task/src/main/java/org/drools/grid/task/TaskServerInstanceNodeRunner.java	2010-06-18 16:47:41 UTC (rev 33548)
@@ -0,0 +1,68 @@
+package org.drools.grid.task;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+import joptsimple.OptionParser;
+import joptsimple.OptionSet;
+import joptsimple.OptionSpec;
+
+import org.apache.mina.transport.socket.SocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.drools.SystemEventListenerFactory;
+import org.drools.grid.remote.mina.MinaAcceptor;
+import org.drools.grid.remote.mina.MinaIoHandler;
+import org.drools.grid.remote.mina.MinaNodeRunner;
+import org.drools.task.MockUserInfo;
+import org.drools.task.UserInfo;
+import org.drools.task.service.TaskService;
+import org.drools.task.service.TaskServiceSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TaskServerInstanceNodeRunner {
+
+	private static Logger logger = LoggerFactory.getLogger(TaskServerInstanceNodeRunner.class);
+
+	
+	public static void main(String[] args) throws IOException {
+        OptionParser parser = new OptionParser();
+        OptionSpec<String> addressOpt = parser.accepts("address", "the address to bind the node").withRequiredArg().ofType(String.class);
+        OptionSpec<Integer> portOpt = parser.accepts("port", "the port to listen in the given address").withRequiredArg().ofType(Integer.class);
+        OptionSet options = parser.parse(args);
+
+		String address = options.valueOf(addressOpt);
+		int port = options.valueOf(portOpt);
+
+		
+		EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.drools.task");
+
+		TaskService taskService = new TaskService(emf, SystemEventListenerFactory.getSystemEventListener());
+		TaskServiceSession taskSession = taskService.createSession();
+		UserInfo userInfo = new DefaultUserInfo();
+		taskService.setUserinfo(userInfo);
+
+		SocketAddress htAddress = new InetSocketAddress(address, port);
+		SocketAcceptor htAcceptor = new NioSocketAcceptor();
+
+		htAcceptor.setHandler(new MinaIoHandler(SystemEventListenerFactory.getSystemEventListener(), 
+				new TaskServerMessageHandlerImpl(taskService, SystemEventListenerFactory.getSystemEventListener())));
+		final MinaAcceptor humanTaskServer = new MinaAcceptor(htAcceptor, htAddress);
+		
+       Runtime.getRuntime().addShutdownHook(new Thread() {
+           public void run() {
+        	   logger.info("stoping server...");
+        	   humanTaskServer.stop();
+               logger.info("server stoped...");
+           }
+        });
+
+		humanTaskServer.start();
+	    logger.info("server started at "+ htAddress.toString() +" ... (ctrl-c to stop it)");
+
+	}
+}



More information about the jboss-svn-commits mailing list