[jboss-svn-commits] JBL Code SVN: r32159 - in labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src: main/java/org/drools/server/profile and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 19 16:43:46 EDT 2010


Author: lucazamador
Date: 2010-03-19 16:43:46 -0400 (Fri, 19 Mar 2010)
New Revision: 32159

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/profile/KnowledgeContextProfile.java
   labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/resources/profiles.xml
Log:
added marsheller selection option

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-03-19 20:15:54 UTC (rev 32158)
+++ labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/main/java/org/drools/server/KnowledgeService.java	2010-03-19 20:43:46 UTC (rev 32159)
@@ -22,6 +22,7 @@
 import org.drools.CheckedDroolsException;
 import org.drools.KnowledgeBase;
 import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderError;
 import org.drools.builder.KnowledgeBuilderErrors;
 import org.drools.builder.ResourceType;
 import org.drools.builder.help.KnowledgeBuilderHelper;
@@ -93,7 +94,7 @@
 			KnowledgeBuilder kbuilder = serviceManager.getKnowledgeBuilderFactoryService().newKnowledgeBuilder();
 
 			List<String> allClassNames = new ArrayList<String>();
-			if (contextProfile.hasJaxbModels()) {
+			if ("jaxb".equals(contextProfile.getMarshaller())) {
 				for (ProfileFile modelFile : contextProfile.getJaxbModels()) {
 					// Create model from xsd definition and add to kbase classloader
 
@@ -120,7 +121,11 @@
 				KnowledgeBuilderErrors errors = kbuilder.getErrors();
 				if (errors.size() > 0) {
 					if (kbuilder.hasErrors()) {
-						throw new CheckedDroolsException("Profile " + contextProfile.getId() + " has kbuilder errors");
+						String errorMessages = "";
+						for (KnowledgeBuilderError error : errors) {
+							errorMessages = errorMessages.concat("\n" + error.getMessage());
+						}
+						throw new CheckedDroolsException("Profile " + contextProfile.getId() + " has kbuilder errors.\n" + errorMessages);
 					}
 				}
 			}
@@ -158,13 +163,14 @@
 	}
 
 	public String executeCommand(KnowledgeContextProfile contextProfile, String cmd) throws CheckedDroolsException {
-		if (contextProfile.hasJaxbModels()) {
+		if ("jaxb".equals(contextProfile.getMarshaller())) {
 			JAXBContext jaxbContext = getJaxbContext(contextProfile.getId());
 			return new String((byte[])template.requestBodyAndHeader("direct:with-session-jaxb", cmd, "jaxb-context", jaxbContext));
 		}
-		else {
+		else if ("xstream".equals(contextProfile.getMarshaller())) {
 			return new String((byte[])template.requestBody("direct:with-session-xstream", cmd));
 		}
+		return null;
 	}
 
 	private void createCamelRoutes(KnowledgeContextProfile contextProfile) throws Exception {
@@ -172,10 +178,10 @@
 			public void configure() throws Exception {
 			}
 		};
-		if (contextProfile.hasJaxbModels()) {
+		if ("jaxb".equals(contextProfile.getMarshaller())) {
 			rb.from("direct:with-session-jaxb").to("drools:sm/" + contextProfile.getId() + "?dataFormat=drools-jaxb");
 		}
-		else {
+		else if ("xstream".equals(contextProfile.getMarshaller())) {
 			rb.from("direct:with-session-xstream").to("drools:sm/" + contextProfile.getId() + "?dataFormat=drools-xstream");
 		}
 		camelContext.addRoutes(rb);

Modified: labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/main/java/org/drools/server/profile/KnowledgeContextProfile.java
===================================================================
--- labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/main/java/org/drools/server/profile/KnowledgeContextProfile.java	2010-03-19 20:15:54 UTC (rev 32158)
+++ labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/main/java/org/drools/server/profile/KnowledgeContextProfile.java	2010-03-19 20:43:46 UTC (rev 32159)
@@ -15,6 +15,9 @@
 	@XStreamAlias("session-type")
 	private String sessionType;
 
+	@XStreamAlias("marshaller")
+	private String marshaller;
+
 	@XStreamAlias("change-sets")
 	private List<ProfileFile> changeSetFiles;
 
@@ -70,8 +73,12 @@
 		this.jaxbModels.add(new ProfileFile(filename));
 	}
 	
-	public boolean hasJaxbModels() {
-		return this.jaxbModels!=null && this.jaxbModels.size() > 0;
+//	public boolean hasJaxbModels() {
+//		return this.jaxbModels!=null && this.jaxbModels.size() > 0;
+//	}
+	
+	public String getMarshaller() {
+		return this.marshaller;
 	}
 
 	public void setStartupCommands(List<StartupCommand> startupCommands) {
@@ -95,7 +102,8 @@
 
 	public boolean isValid() {
 		return id!=null && sessionType!=null && changeSetFiles.size()>0 && sessionType!=null &&
-				(sessionType.equalsIgnoreCase("stateless") || sessionType.equalsIgnoreCase("stateful"));
+				(sessionType.equals("stateless") || sessionType.equals("stateful") &&
+				(marshaller.equals("jaxb") || marshaller.equals("xstream")));
 	}
 
 }

Modified: labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/resources/profiles.xml
===================================================================
--- labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/resources/profiles.xml	2010-03-19 20:15:54 UTC (rev 32158)
+++ labs/jbossrules/branches/drools_server_camel_lucaz_baunax/drools-server/src/test/resources/profiles.xml	2010-03-19 20:43:46 UTC (rev 32159)
@@ -5,6 +5,7 @@
 		<change-sets>
 			<file>changesets/change-set-1.xml</file>
 		</change-sets>
+		<marshaller>jaxb</marshaller>
 		<jaxb-models>
 			<file>model/person.xsd</file>
 		</jaxb-models>
@@ -27,6 +28,7 @@
 
 	<knowledge-context-profile id="ksession2">
 		<session-type>stateless</session-type>
+		<marshaller>xstream</marshaller>
 		<change-sets>
 			<file>changesets/change-set-2.xml</file>
 		</change-sets>



More information about the jboss-svn-commits mailing list