[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