[jboss-svn-commits] JBL Code SVN: r31844 - in labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src: test/java/org/drools/server and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Feb 25 17:24:48 EST 2010
Author: lucazamador
Date: 2010-02-25 17:24:47 -0500 (Thu, 25 Feb 2010)
New Revision: 31844
Modified:
labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/main/java/org/drools/server/KnowledgeService.java
labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/KnowledgeServiceServletTest.java
labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/service/KnowledgeServiceRestTest.java
labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/service/KnowledgeServiceSoapTest.java
Log:
camel routes created dinamically
Modified: labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/main/java/org/drools/server/KnowledgeService.java
===================================================================
--- labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/main/java/org/drools/server/KnowledgeService.java 2010-02-25 21:52:10 UTC (rev 31843)
+++ labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/main/java/org/drools/server/KnowledgeService.java 2010-02-25 22:24:47 UTC (rev 31844)
@@ -20,7 +20,6 @@
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.ResourceType;
import org.drools.builder.help.KnowledgeBuilderHelper;
-import org.drools.camel.component.DroolsComponent;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.StatelessKnowledgeSession;
@@ -62,7 +61,6 @@
Context context = new JndiContext();
context.bind("sm", serviceManager);
camelContext = new DefaultCamelContext(context);
- camelContext.addRoutes(createRouteBuilder());
camelContext.start();
template = camelContext.createProducerTemplate();
readKnowledgeContextProfiles();
@@ -133,6 +131,8 @@
throw new CheckedDroolsException("Bad session type. Expected stateless or stateful");
kbases.put(contextProfile.getId(), kbase);
+
+ createCamelRoutes(contextProfile);
// Execute the startups commands
if (contextProfile.hasStartupCommands()) {
@@ -147,45 +147,27 @@
public String executeCommand(KnowledgeContextProfile contextProfile, String cmd) throws CheckedDroolsException {
if (contextProfile.hasJaxbModels()) {
JAXBContext jaxbContext = getJaxbContext(contextProfile.getId());
- if ("stateless".equalsIgnoreCase(contextProfile.getSessionType())) {
- return new String((byte[])template.requestBodyAndHeader("direct:no-session-jaxb", cmd, "jaxb-context", jaxbContext));
- }
- else if ("stateful".equalsIgnoreCase(contextProfile.getSessionType())) {
- return new String((byte[])template.requestBodyAndHeader("direct:with-session-jaxb", cmd, "jaxb-context", jaxbContext));
- }
- else
- throw new CheckedDroolsException("Bad session type. Expected stateless or stateful");
+ return new String((byte[])template.requestBodyAndHeader("direct:with-session-jaxb", cmd, "jaxb-context", jaxbContext));
}
else {
- if ("stateless".equalsIgnoreCase(contextProfile.getSessionType())) {
- return new String((byte[])template.requestBodyAndHeader("direct:no-session-xstream", cmd, DroolsComponent.DROOLS_LOOKUP, contextProfile.getId()));
- }
- else if ("stateful".equalsIgnoreCase(contextProfile.getSessionType())) {
- return new String((byte[])template.requestBody("direct:with-session-xstream", cmd));
- }
- else
- throw new CheckedDroolsException("Bad session type. Expected stateless or stateful");
+ return new String((byte[])template.requestBody("direct:with-session-xstream", cmd));
}
-// if (contextProfile.hasJaxbModels()) {
-// JAXBContext jaxbContext = getJaxbContext(contextProfile.getId());
-// return new String((byte[])template.requestBodyAndHeader("direct:with-session-jaxb", cmd, "jaxb-context", jaxbContext));
-// }
-// else {
-// return new String((byte[])template.requestBody("direct:with-session-xstream", cmd));
-// }
}
- private static RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
+ private void createCamelRoutes(KnowledgeContextProfile contextProfile) throws Exception {
+ RouteBuilder rb = new RouteBuilder() {
public void configure() throws Exception {
- from("direct:no-session-jaxb").to("drools:sm?dataFormat=drools-jaxb");
- from("direct:no-session-xstream").to("drools:sm?dataFormat=drools-xstream");
- from("direct:with-session-jaxb").to("drools:sm/ksession1?dataFormat=drools-jaxb");
- from("direct:with-session-xstream").to("drools:sm/ksession1?dataFormat=drools-xstream");
}
};
+ if (contextProfile.hasJaxbModels()) {
+ rb.from("direct:with-session-jaxb").to("drools:sm/" + contextProfile.getId() + "?dataFormat=drools-jaxb");
+ }
+ else {
+ rb.from("direct:with-session-xstream").to("drools:sm/" + contextProfile.getId() + "?dataFormat=drools-xstream");
+ }
+ camelContext.addRoutes(rb);
}
-
+
/**
* Read the initial profile configuration
* @throws Exception
Modified: labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/KnowledgeServiceServletTest.java
===================================================================
--- labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/KnowledgeServiceServletTest.java 2010-02-25 21:52:10 UTC (rev 31843)
+++ labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/KnowledgeServiceServletTest.java 2010-02-25 22:24:47 UTC (rev 31844)
@@ -87,4 +87,47 @@
}
+ public void testBothSessions() throws Exception {
+
+ String cmd = getXStreamCommand();
+
+ StubbedServlet stubbedServlet = new StubbedServlet();
+ InputStream inXML = new ByteArrayInputStream(cmd.getBytes());
+ ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+ stubbedServlet.setInputStream(inXML);
+ stubbedServlet.setOutputStream(outStream);
+
+ // Execution
+ MockHTTPResponse resp = new MockHTTPResponse();
+ stubbedServlet.doPost(new MockHttpRequest("hostname/servlet/ksession2", "application/xml"), resp);
+
+ String response = new String(outStream.toByteArray());
+
+ ExecutionResults result = (ExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML(response);
+
+ assertNotNull(result.getFactHandle("lucaz"));
+
+ FlatQueryResults personsQuery = (FlatQueryResults) result.getValue("persons");
+ assertEquals(2, personsQuery.size());
+
+ cmd = getJaxbCommand();
+
+ stubbedServlet = new StubbedServlet();
+ inXML = new ByteArrayInputStream(cmd.getBytes());
+ outStream = new ByteArrayOutputStream();
+ stubbedServlet.setInputStream(inXML);
+ stubbedServlet.setOutputStream(outStream);
+
+ // Execution
+ resp = new MockHTTPResponse();
+ stubbedServlet.doPost(new MockHttpRequest("hostname/servlet/ksession1", "application/xml"), resp);
+
+ response = new String(outStream.toByteArray());
+
+ assertTrue(response.indexOf("<ns2:name>santa</ns2:name>") > -1);
+ assertTrue(response.indexOf("<item key=\"lucaz\">\n <value xsi:type=\"disconnectedFactHandle\"") > -1);
+ assertTrue(response.indexOf("<item key=\"baunax\">\n <value xsi:type=\"disconnectedFactHandle\"") > -1);
+
+ }
+
}
Modified: labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/service/KnowledgeServiceRestTest.java
===================================================================
--- labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/service/KnowledgeServiceRestTest.java 2010-02-25 21:52:10 UTC (rev 31843)
+++ labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/service/KnowledgeServiceRestTest.java 2010-02-25 22:24:47 UTC (rev 31844)
@@ -110,6 +110,52 @@
server.stop();
}
+ public void testBothsessions() throws Exception {
+ String cmd = getJaxbCommand();
+
+ PostMethod postMethod = new PostMethod("/drools-server/services/rest/execute");
+ NameValuePair profile = new NameValuePair("profile", "ksession1");
+ NameValuePair command = new NameValuePair("command", cmd);
+
+ postMethod.setRequestBody(new NameValuePair[] {profile, command});
+ httpClient.executeMethod(postMethod);
+
+ assertEquals(200, postMethod.getStatusCode());
+
+ InputStream responseBodyAsStream = postMethod.getResponseBodyAsStream();
+
+ String response = readInputStream(responseBodyAsStream);
+
+ assertTrue(response.indexOf("<ns2:name>santa</ns2:name>") > -1);
+ assertTrue(response.indexOf("<item key=\"lucaz\">\n <value xsi:type=\"disconnectedFactHandle\"") > -1);
+ assertTrue(response.indexOf("<item key=\"baunax\">\n <value xsi:type=\"disconnectedFactHandle\"") > -1);
+
+ cmd = getXStreamCommand();
+
+ postMethod = new PostMethod("/drools-server/services/rest/execute");
+ profile = new NameValuePair("profile", "ksession2");
+ command = new NameValuePair("command", cmd);
+
+ postMethod.setRequestBody(new NameValuePair[] {profile, command});
+ httpClient.executeMethod(postMethod);
+
+ assertEquals(200, postMethod.getStatusCode());
+
+ responseBodyAsStream = postMethod.getResponseBodyAsStream();
+
+ response = readInputStream(responseBodyAsStream);
+
+ ExecutionResults result = (ExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML(response);
+
+ assertNotNull(result.getFactHandle("lucaz"));
+
+ FlatQueryResults personsQuery = (FlatQueryResults) result.getValue("persons");
+ assertEquals(2, personsQuery.size());
+
+ server.stop();
+
+ }
+
private String readInputStream(InputStream inputStream) throws UnsupportedEncodingException, IOException {
StringBuilder sb = new StringBuilder();
String line;
Modified: labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/service/KnowledgeServiceSoapTest.java
===================================================================
--- labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/service/KnowledgeServiceSoapTest.java 2010-02-25 21:52:10 UTC (rev 31843)
+++ labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/java/org/drools/server/service/KnowledgeServiceSoapTest.java 2010-02-25 22:24:47 UTC (rev 31844)
@@ -58,4 +58,29 @@
server.stop();
}
+ public void testBothSessions() throws Exception {
+ JaxWsProxyFactoryBean clientFactory = new JaxWsProxyFactoryBean();
+ clientFactory.setServiceClass(KnowledgeServiceSoap.class);
+ clientFactory.setAddress(SERVICE_URL);
+ KnowledgeServiceSoap client = (KnowledgeServiceSoap) clientFactory.create();
+
+ String response = client.execute("ksession1", getJaxbCommand());
+
+ assertTrue(response.indexOf("<ns2:name>santa</ns2:name>") > -1);
+ assertTrue(response.indexOf("<item key=\"lucaz\">\n <value xsi:type=\"disconnectedFactHandle\"") > -1);
+ assertTrue(response.indexOf("<item key=\"baunax\">\n <value xsi:type=\"disconnectedFactHandle\"") > -1);
+
+ response = client.execute("ksession2", getXStreamCommand());
+
+ ExecutionResults result = (ExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML(response);
+
+ assertNotNull(result.getFactHandle("lucaz"));
+
+ FlatQueryResults personsQuery = (FlatQueryResults) result.getValue("persons");
+ assertEquals(2, personsQuery.size());
+
+ server.stop();
+
+ }
+
}
More information about the jboss-svn-commits
mailing list