[jboss-svn-commits] JBL Code SVN: r24822 - in labs/jbossrules/trunk: drools-api/src/main/java/org/drools and 22 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 20 08:44:05 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-01-20 08:44:04 -0500 (Tue, 20 Jan 2009)
New Revision: 24822
Added:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/package.html
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/package.html
labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/.settings/
labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/.settings/org.eclipse.jdt.core.prefs
Removed:
labs/jbossrules/trunk/drools-api/src/main/resources/org/drools/
Modified:
labs/jbossrules/trunk/drools-api/pom.xml
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/ChangeSet.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/PropertiesConfiguration.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListener.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgent.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentConfiguration.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/package.html
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/DecisionTableInputType.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/DroolsJaxbHelperProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/KnowledgeBuilderHelper.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/package.html
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/KnowledgePackage.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/process/Process.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/rule/Rule.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/io/ResourceChangeListener.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/rule/ActivationCancelledCause.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/Resource.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeMonitor.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeNotifier.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeScanner.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeScannerConfiguration.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/package.html
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLogger.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/package.html
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Environment.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/ExitPoint.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Action.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Callable.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/CorePipelineProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Emitter.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Expression.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JaxbTransformerProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Join.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/KnowledgeRuntimeCommand.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Pipeline.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineContext.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Receiver.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Service.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ServiceExceptionHandler.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Splitter.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StageExceptionHandler.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatelessKnowledgeSessionPipelineContext.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Transformer.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/XStreamTransformerProvider.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/process/ProcessContext.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/StatelessRuleSession.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessKnowledgeSessionPipelineTest.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt
labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/.classpath
labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/src/test/java/org/drools/runtime/pipeline/impl/JxlsTest.java
Log:
-added some javadocs for pipeline
Modified: labs/jbossrules/trunk/drools-api/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-api/pom.xml 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/pom.xml 2009-01-20 13:44:04 UTC (rev 24822)
@@ -102,7 +102,7 @@
<breakiterator>true</breakiterator>
<excludePackageNames>org.drools.util*
</excludePackageNames>
- <overview>target/classes/overview.html</overview>
+ <overview>src/main/java/overview.html</overview>
<groups>
<group><title>Knowledge Base API</title> <packages>org.drools</packages></group>
<group><title>Builder API</title> <packages>org.drools.builder</packages></group>
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/ChangeSet.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/ChangeSet.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/ChangeSet.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -42,13 +42,13 @@
/**
* Returns an immutable Collection of added Resources for this ChangeSet
* @return
- */
+ */
public Collection<Resource> getResourcesAdded();
-
+
/**
* Returns an immutable Collection of modified Resources for this ChangeSet
* @return
- */
+ */
public Collection<Resource> getResourcesModified();
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -102,13 +102,14 @@
}
@SuppressWarnings("unchecked")
- private static void loadProvider() {
+ private static void loadProvider() {
try {
// we didn't find anything in properties so lets try and us reflection
Class<KnowledgeBaseProvider> cls = (Class<KnowledgeBaseProvider>) Class.forName( "org.drools.impl.KnowledgeBaseProviderImpl" );
setKnowledgeBaseProvider( cls.newInstance() );
} catch ( Exception e ) {
- throw new ProviderInitializationException( "Provider org.drools.impl.KnowledgeBaseProviderImpl could not be set.", e );
+ throw new ProviderInitializationException( "Provider org.drools.impl.KnowledgeBaseProviderImpl could not be set.",
+ e );
}
}
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/PropertiesConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/PropertiesConfiguration.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/PropertiesConfiguration.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -5,7 +5,7 @@
*
*/
public interface PropertiesConfiguration {
-
+
/**
* Sets a property value
*
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListener.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListener.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -19,16 +19,18 @@
* For general info messages
*/
public void info(String message);
-
- public void info(String message, Object object);
+ public void info(String message,
+ Object object);
+
/**
* For a warning (useful when tracking down problems).
*/
public void warning(String message);
-
- public void warning(String message, Object object);
+ public void warning(String message,
+ Object object);
+
/**
* An exception occurred.
*/
@@ -38,6 +40,7 @@
* These should not be logged, just shown if needed.
*/
public void debug(String message);
-
- public void debug(String message, Object object);
+
+ public void debug(String message,
+ Object object);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerFactory.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerFactory.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -9,7 +9,7 @@
*/
public class SystemEventListenerFactory {
private static SystemEventListenerProvider provider;
-
+
/**
* Set the SystemEventListener
*
@@ -18,7 +18,7 @@
public static void setSystemEventListener(SystemEventListener listener) {
getSystemEventListenerProvider().setSystemEventListener( listener );
}
-
+
/**
* Get the SystemEventListener
* @return
@@ -26,7 +26,7 @@
public static SystemEventListener getSystemEventListener() {
return getSystemEventListenerProvider().getSystemEventListener();
}
-
+
private static synchronized void setSystemEventListenerProvider(SystemEventListenerProvider provider) {
SystemEventListenerFactory.provider = provider;
}
@@ -44,7 +44,8 @@
Class<SystemEventListenerProvider> cls = (Class<SystemEventListenerProvider>) Class.forName( "org.drools.impl.SystemEventListenerProviderImpl" );
setSystemEventListenerProvider( cls.newInstance() );
} catch ( Exception e ) {
- throw new ProviderInitializationException( "Provider org.drools.impl.SystemEventListenerProviderImpl could not be set.", e );
+ throw new ProviderInitializationException( "Provider org.drools.impl.SystemEventListenerProviderImpl could not be set.",
+ e );
}
- }
+ }
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -8,18 +8,18 @@
*
*/
public interface SystemEventListenerProvider {
-
+
/**
* Set the SystemEventListener
*
* @param listener
- */
+ */
void setSystemEventListener(SystemEventListener listener);
-
+
/**
* Get the SystemEventListener
* @return
- */
+ */
SystemEventListener getSystemEventListener();
-
+
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgent.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgent.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgent.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,53 +1,12 @@
package org.drools.agent;
import org.drools.KnowledgeBase;
-import org.drools.KnowledgeBaseFactory;
import org.drools.SystemEventListener;
import org.drools.io.Resource;
-import org.drools.io.ResourceChangeScannerConfiguration;
-import org.drools.io.ResourceFactory;
/**
- * <p>
- * The KnowlegeAgent is created by the KnowlegeAgentFactory. It's role is to provide a cached
- * KnowlegeBase and to update or rebuild this KnowlegeBase as the resources it uses are changed.
- * The strategy for this is determined by the configuration given to the factory, but it is
- * typically pull based using regular polling. We hope to add push based updates and rebuilds in future
- * versions.
- * </p>
- * <p>
- * The Follow example constructs an agent that will build a new KnowledgeBase from the files specified in the path String.
- * It will poll those files every 30 seconds to see if they are updated. If new files are found it will construct a new
- * KnowledgeBase, instead of updating the existing one, due to the "newInstance" set to "true" (however currently only the value of
- * "true" is supported and is hard coded into the engine):
- * <p/>
- * <pre>
- * // Set the interval on the ResourceChangeScannerService if you are to use it and default of 60s is not desirable.
- * ResourceChangeScannerConfiguration sconf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
- * sconf.setProperty( "drools.resource.scanner.interval",
- * "30" ); // set the disk scanning interval to 30s, default is 60s
- * ResourceFactory.getResourceChangeScannerService().configure( sconf );
+ * The KnolwedgeAgentFactory provides detailed information on how to create and use the KnowledgeAgent.
*
- * KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
- *
- * KnowledgeAgentConfiguration aconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
- * aconf.setProperty( "drools.agent.scanDirectories",
- * "true" ); // we want to scan directories, not just files, turning this on turns on file scanning
- * aconf.setProperty( "drools.agent.newInstance",
- * "true" ); // resource changes results in a new instance of the KnowledgeBase being built,
- * // this cannot currently be set to false for incremental building
- *
- * KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "test agent", // the name of the agent
- * kbase, // the rulebase to use, the Agent will also monitor any exist knowledge definitions
- * aconf );
- * kagent.applyChangeSet( ResourceFactory.newUrlResource( url ) ); // resource to the change-set xml for the resources to add
- * </pre>
- *
- * KnowledgeAgents can take a empty KnowledgeBase or a populated one. If a populated KnowledgeBase is provided, the KnowledgeAgent
- * will iterate KnowledgeBase and subscribe to the Resource that it finds. While it is possible for the KnowledgeBuilder to build
- * all resources found in a directory, that information is lost by the KnowledgeBuilder so those directories will not be continuously scanned.
- * Only directories specified as part of the applyChangeSet(Resource) method are monitored.
- *
* @see org.drools.agent.KnowledgeAgentFactory
* @see org.drools.agent.KnowledgeAgentConfiguration
*
@@ -66,10 +25,10 @@
* The KnowledgeBase
*/
KnowledgeBase getKnowledgeBase();
-
+
void monitorResourceChangeEvents(boolean monitor);
-
+
void applyChangeSet(Resource resource);
-
- void setSystemEventListener(SystemEventListener listener);
+
+ void setSystemEventListener(SystemEventListener listener);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentConfiguration.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentConfiguration.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -11,6 +11,8 @@
* @see org.drools.agent.KnowledgeAgent
* @see org.drools.agent.KnowledgeAgentConfiguration
*/
-public interface KnowledgeAgentConfiguration extends PropertiesConfiguration {
+public interface KnowledgeAgentConfiguration
+ extends
+ PropertiesConfiguration {
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentFactory.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentFactory.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -7,9 +7,9 @@
/**
* <p>
- * The KnowlegeAgent is created by the KnowlegeAgentFactory. It's role is to provide a cached
- * KnowlegeBase and to update or rebuild this KnowlegeBase as the resources it uses are changed.
- * The strategy for this is determined by the configuration given to the factory, but it is
+ * The KnowlegeAgent is created by the KnowlegeAgentFactory. The KnowlegeAgent provides automatic loading, caching and
+ * re-loading, of resources and is configured from a properties files. The KnowledgeAgent can update or rebuild this KnowlegeBase
+ * as the resources it uses are changed. The strategy for this is determined by the configuration given to the factory, but it is
* typically pull based using regular polling. We hope to add push based updates and rebuilds in future
* versions.
* </p>
@@ -52,24 +52,27 @@
*/
public class KnowledgeAgentFactory {
private static KnowledgeAgentProvider provider;
-
+
public static KnowledgeAgentConfiguration newKnowledgeAgentConfiguration() {
return getKnowledgeAgentProvider().newKnowledgeAgentConfiguration();
}
-
+
public static KnowledgeAgentConfiguration newKnowledgeAgentConfiguration(Properties properties) {
return getKnowledgeAgentProvider().newKnowledgeAgentConfiguration( properties );
- }
+ }
public static KnowledgeAgent newKnowledgeAgent(String name,
KnowledgeBase kbase) {
- return getKnowledgeAgentProvider().newKnowledgeAgent( name, kbase );
+ return getKnowledgeAgentProvider().newKnowledgeAgent( name,
+ kbase );
}
-
+
public static KnowledgeAgent newKnowledgeAgent(String name,
KnowledgeBase kbase,
KnowledgeAgentConfiguration configuration) {
- return getKnowledgeAgentProvider().newKnowledgeAgent( name, kbase, configuration );
+ return getKnowledgeAgentProvider().newKnowledgeAgent( name,
+ kbase,
+ configuration );
}
private static synchronized void setKnowledgeAgentProvider(KnowledgeAgentProvider provider) {
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -4,11 +4,18 @@
import org.drools.KnowledgeBase;
+/**
+ * KnowledgeAgentProvider is used by the KnowledgeAgentFactory to "provide" it's concrete implementation.
+ *
+ * This class is not considered stable and may change, the user is protected from this change by using
+ * the Factory api, which is considered stable.
+ *
+ */
public interface KnowledgeAgentProvider {
KnowledgeAgentConfiguration newKnowledgeAgentConfiguration();
-
+
KnowledgeAgentConfiguration newKnowledgeAgentConfiguration(Properties properties);
-
+
KnowledgeAgent newKnowledgeAgent(String name,
KnowledgeBase kbase);
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/package.html
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/package.html 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/package.html 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,3 +1,10 @@
<body>
- The Agent api provide automatic loading, and re-loading, of artifacts and is configured from a properties files.
+<p>
+The KnowlegeAgent provides automatic loading, caching and re-loading, of resources and is configured from a properties files.
+</p>
+
+<p>
+The KnowledgeAgentFactory provides detailed information on how to create and use the KnowledgeAgent.
+</p>
+
</body>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/DecisionTableInputType.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/DecisionTableInputType.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/DecisionTableInputType.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,6 +1,5 @@
package org.drools.builder;
-
/**
* <p>
* Specifies the type of decision table resource.
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilder.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,7 +1,5 @@
package org.drools.builder;
-import java.io.Reader;
-import java.net.URL;
import java.util.Collection;
import org.drools.definition.KnowledgePackage;
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderFactory.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderFactory.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -36,15 +36,17 @@
public static KnowledgeBuilder newKnowledgeBuilder(KnowledgeBuilderConfiguration conf) {
return getKnowledgeBuilderProvider().newKnowledgeBuilder( conf );
}
-
+
public static KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase) {
return getKnowledgeBuilderProvider().newKnowledgeBuilder( kbase );
}
-
- public static KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase, KnowledgeBuilderConfiguration conf) {
- return getKnowledgeBuilderProvider().newKnowledgeBuilder( kbase, conf );
- }
+ public static KnowledgeBuilder newKnowledgeBuilder(KnowledgeBase kbase,
+ KnowledgeBuilderConfiguration conf) {
+ return getKnowledgeBuilderProvider().newKnowledgeBuilder( kbase,
+ conf );
+ }
+
/**
* Create a KnowledgeBuilderConfiguration on which properties can be set.
* @return
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -8,7 +8,7 @@
* KnowledgeBuilderProvider is used by the KnowledgeBuilderFacotry to "provide" it's concrete implementation.
*
* This class is not considered stable and may change, the user is protected from this change by using
- * the Factory api, which is consiered stable.
+ * the Factory api, which is considered stable.
*
*/
public interface KnowledgeBuilderProvider {
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ResourceType.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -18,10 +18,10 @@
/** Decision Table */
DTABLE,
-
+
/** Binary Package */
PKG,
-
+
/** ChangeSet */
ChangeSet;
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/DroolsJaxbHelperProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/DroolsJaxbHelperProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/DroolsJaxbHelperProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,7 +1,6 @@
package org.drools.builder.help;
import java.io.IOException;
-import java.io.Reader;
import java.util.Map;
import javax.xml.bind.JAXBContext;
@@ -13,14 +12,49 @@
import com.sun.tools.xjc.Options;
+/**
+ * DroolsJaxbHelperProvider is used by the DroolsJaxbHelperFactory to "provide" it's concrete implementation.
+ *
+ * This class is not considered stable and may change, the user is protected from this change by using
+ * the Factory api, which is considered stable.
+ *
+ */
public interface DroolsJaxbHelperProvider {
-
+ /**
+ * Generates pojos for a given XSD using XJC and adds them to the specified KnowlegeBase.
+ *
+ * @param resource
+ * The resource to the XSD model
+ * @param kbuilder
+ * the KnowledgeBuilder where the generated .class files will be placed
+ * @param xjcOpts
+ * XJC Options
+ * @param systemId
+ * XJC systemId
+ * @return
+ * Returns an array of class names that where generated by the XSD.
+ * @throws IOException
+ */
public String[] addXsdModel(Resource resource,
KnowledgeBuilder kbuilder,
Options xjcOpts,
String systemId) throws IOException;
+ /**
+ * Creates a new JAXBContext, from which the Marshaller and Unmarshaller can be created, which are used by the Transformer
+ * pipeline stage.
+ *
+ * @param classNames
+ * An array of class names that can be resolved by this JAXBContext
+ * @param properties
+ * JAXB properties
+ * @param kbase
+ * The KnowledgeBase
+ * @return
+ * The JAXB Context
+ * @throws JAXBException
+ */
public JAXBContext newJAXBContext(String[] classNames,
Map<String, ? > properties,
- KnowledgeBase kbase) throws JAXBException ;
+ KnowledgeBase kbase) throws JAXBException;
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/KnowledgeBuilderHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/KnowledgeBuilderHelper.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/KnowledgeBuilderHelper.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,7 +1,6 @@
package org.drools.builder.help;
import java.io.IOException;
-import java.io.Reader;
import java.util.Collections;
import java.util.Map;
@@ -11,46 +10,98 @@
import org.drools.KnowledgeBase;
import org.drools.ProviderInitializationException;
import org.drools.builder.KnowledgeBuilder;
-import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.io.Resource;
+import org.drools.io.ResourceFactory;
+import com.sun.tools.xjc.Language;
import com.sun.tools.xjc.Options;
+/**
+ * Provides helper methods for working with JAXB and a Knowledgebase, it takes care of the Classpath issues when
+ * mapping against internal type declarations.
+ *
+ */
public class KnowledgeBuilderHelper {
-
+
private static DroolsJaxbHelperProvider provider;
-
+
+ /**
+ * Generates pojos for a given XSD using XJC and adds them to the specified KnowlegeBase.
+ * <pre>
+ * Options xjcOpts = new Options();
+ * xjcOpts.setSchemaLanguage( Language.XMLSCHEMA );
+ * KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ *
+ * String[] classNames = KnowledgeBuilderHelper.addXsdModel( ResourceFactory.newClassPathResource( "order.xsd",
+ * getClass() ),
+ * kbuilder,
+ * xjcOpts,
+ * "xsd" );
+ * </pre>
+ *
+ * @param resource
+ * The resource to the XSD model
+ * @param kbuilder
+ * the KnowledgeBuilder where the generated .class files will be placed
+ * @param xjcOpts
+ * XJC Options
+ * @param systemId
+ * XJC systemId
+ * @return
+ * Returns an array of class names that where generated by the XSD.
+ * @throws IOException
+ */
public static String[] addXsdModel(Resource resource,
KnowledgeBuilder kbuilder,
Options xjcOpts,
String systemId) throws IOException {
- return getDroolsJaxbHelperProvider().addXsdModel( resource, kbuilder, xjcOpts, systemId );
+ return getDroolsJaxbHelperProvider().addXsdModel( resource,
+ kbuilder,
+ xjcOpts,
+ systemId );
}
-
+
+ /**
+ * Creates a new JAXBContext, from which the Marshaller and Unmarshaller can be created, which are used by the Transformer
+ * pipeline stage.
+ *
+ * @param classNames
+ * An array of class names that can be resolved by this JAXBContext
+ * @param properties
+ * JAXB properties
+ * @param kbase
+ * The KnowledgeBase
+ * @return
+ * The JAXB Context
+ * @throws JAXBException
+ */
public static JAXBContext newJAXBContext(String[] classNames,
- KnowledgeBase kbase) throws JAXBException {
+ KnowledgeBase kbase) throws JAXBException {
return newJAXBContext( classNames,
- Collections.<String, Object> emptyMap(),
- kbase );
+ Collections.<String, Object> emptyMap(),
+ kbase );
}
public static JAXBContext newJAXBContext(String[] classNames,
- Map<String, ? > properties,
- KnowledgeBase kbase) throws JAXBException {
- return getDroolsJaxbHelperProvider().newJAXBContext( classNames, properties, kbase );
+ Map<String, ? > properties,
+ KnowledgeBase kbase) throws JAXBException {
+ return getDroolsJaxbHelperProvider().newJAXBContext( classNames,
+ properties,
+ kbase );
}
-
+
public static synchronized DroolsJaxbHelperProvider getDroolsJaxbHelperProvider() {
if ( provider == null ) {
loadProvider();
}
return provider;
}
-
- private static synchronized void setDroolsJaxbHelperProvider(DroolsJaxbHelperProvider provider){
+
+ private static synchronized void setDroolsJaxbHelperProvider(DroolsJaxbHelperProvider provider) {
KnowledgeBuilderHelper.provider = provider;
}
-
+
private static void loadProvider() {
try {
Class<DroolsJaxbHelperProvider> cls = (Class<DroolsJaxbHelperProvider>) Class.forName( "org.drools.runtime.pipeline.impl.DroolsJaxbHelperProviderImpl" );
@@ -60,5 +111,5 @@
e2 );
}
}
-
+
}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/package.html
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/package.html (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/package.html 2009-01-20 13:44:04 UTC (rev 24822)
@@ -0,0 +1,5 @@
+<body>
+<p>
+Providers helper classes that can be used during building.
+</p>
+</body>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/package.html
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/package.html 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/package.html 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,3 +1,11 @@
<body>
- The builder package is responsible for building knowledge difinitions from artifact resources.
+
+<p>
+The builder package is responsible for building knowledge definitions from artifact resources.
+</p>
+
+<p>
+See the KnowledgeBuilder for more detailed information on how to build KnowledgeBases.
+</p>
+
</body>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/KnowledgePackage.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/KnowledgePackage.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/KnowledgePackage.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -23,7 +23,7 @@
* The collection is immutable.
*
* @return
- */
+ */
Collection<Rule> getRules();
/**
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/process/Process.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/process/Process.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/process/Process.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -2,7 +2,9 @@
import org.drools.definition.KnowledgeDefinition;
-public interface Process extends KnowledgeDefinition {
+public interface Process
+ extends
+ KnowledgeDefinition {
String getId();
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/rule/Rule.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/rule/Rule.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/definition/rule/Rule.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -2,7 +2,9 @@
import org.drools.definition.KnowledgeDefinition;
-public interface Rule extends KnowledgeDefinition {
+public interface Rule
+ extends
+ KnowledgeDefinition {
String getName();
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/io/ResourceChangeListener.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/io/ResourceChangeListener.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/io/ResourceChangeListener.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -15,7 +15,7 @@
* the KnowledgeAgent will use them, when rebuilding the KnowledgeBase.
*/
public interface ResourceChangeListener {
-
+
/**
* The Resource has changed, the ResourceChangeNotifier will call this method and execute the user implemented code.
*
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/rule/ActivationCancelledCause.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/rule/ActivationCancelledCause.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/rule/ActivationCancelledCause.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,7 +1,5 @@
package org.drools.event.rule;
public enum ActivationCancelledCause {
- FILTER,
- WME_MODIFY,
- CLEAR;
+ FILTER, WME_MODIFY, CLEAR;
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/Resource.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/Resource.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/Resource.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -17,12 +17,12 @@
* @throws IOException
*/
InputStream getInputStream() throws IOException;
-
+
/**
* Opens a Reader to the resource, the user most close this when finished.
* @return
* @throws IOException
*/
public Reader getReader() throws IOException;
-
+
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeMonitor.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeMonitor.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeMonitor.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -22,15 +22,17 @@
* @param notifier
* @param resource
*/
- void subscribeNotifier(ResourceChangeNotifier notifier, Resource resource);
-
+ void subscribeNotifier(ResourceChangeNotifier notifier,
+ Resource resource);
+
/**
* Unsubscribe the notifier for the given resource.
*
* @param notifier
* @param resource
*/
- void unsubscribeNotifier(ResourceChangeNotifier notifier, Resource resource);
-
+ void unsubscribeNotifier(ResourceChangeNotifier notifier,
+ Resource resource);
+
public void setSystemEventListener(SystemEventListener listener);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeNotifier.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeNotifier.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeNotifier.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -27,7 +27,7 @@
void unsubscribeResourceChangeListener(ResourceChangeListener listener,
Resource resource);
-
+
/**
* When a ResourceChangeMonitor is asked to monitor a directory, it needs a way to tell the ResourceChangeNotifier of any newly added Resources.
*
@@ -36,7 +36,8 @@
* @param child
* The discovered child resource
*/
- void subscribeChildResource(Resource directory, Resource child);
+ void subscribeChildResource(Resource directory,
+ Resource child);
/**
* Add a ResourceChangeMonitor, which will receive all Resource subscriptions.
@@ -57,7 +58,7 @@
* @return
*/
Collection<ResourceChangeMonitor> getResourceChangeMonitors();
-
+
/**
* Called by the added ResourceChangeMonitors to inform this ResourceChangeNotifier of resource changes.
* The ResourceChangeMontior must have a reference to the ResourceChangeNotifiers they are added to,
@@ -65,9 +66,9 @@
* @param changeSet
*/
void publishChangeSet(ChangeSet changeSet);
-
+
public void setSystemEventListener(SystemEventListener listener);
-
+
/**
* Start the service, this will create a new Thread.
*/
@@ -76,5 +77,5 @@
/**
* Stop the service.
*/
- void stop();
+ void stop();
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeScanner.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeScanner.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeScanner.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -2,7 +2,6 @@
import java.util.Properties;
-
/**
* <p>
* Built in service, as provided by the ResourceFactory for monitor file changes on the local disk.
@@ -15,26 +14,28 @@
* the KnowledgeAgent will use them, when rebuilding the KnowledgeBase.
* </p>
*/
-public interface ResourceChangeScanner extends ResourceChangeMonitor {
-
+public interface ResourceChangeScanner
+ extends
+ ResourceChangeMonitor {
+
/**
* New ResourceChangeScannerConfiguration which can be used to update this service.
* @return
*/
public ResourceChangeScannerConfiguration newResourceChangeScannerConfiguration();
-
+
/**
* New ResourceChangeScannerConfiguration, using the given Properties, which can be used to update this service.
* @return
- */
+ */
public ResourceChangeScannerConfiguration newResourceChangeScannerConfiguration(Properties properties);
-
+
/**
* Reconfigure the Scanner now
* @param configuration
*/
public void configure(ResourceChangeScannerConfiguration configuration);
-
+
/**
* Execute a disk scan of subscribed resources now.
*/
@@ -49,12 +50,11 @@
* Stop the service.
*/
public void stop();
-
+
/**
* Set scan interval in seconds
* @param interval
*/
public void setInterval(int interval);
-
+
}
-
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeScannerConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeScannerConfiguration.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceChangeScannerConfiguration.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -7,6 +7,8 @@
* drools.resource.scanner.interval = <number of seconds> : default 60s
*
*/
-public interface ResourceChangeScannerConfiguration extends PropertiesConfiguration {
+public interface ResourceChangeScannerConfiguration
+ extends
+ PropertiesConfiguration {
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceFactory.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceFactory.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -23,21 +23,19 @@
* kbuilder.add( ResourceFactory.newClassPathResource( "htp://www.domain.org/myrules.drl", getClass() ),
* ResourceType.DRL );
* </pre
- *
*
*/
public class ResourceFactory {
private static ResourceProvider resourceProvider;
-
-
+
/**
* A Service that can be started, to provide notifications of changed Resources.
*
* @return
*/
- public static ResourceChangeNotifier getResourceChangeNotifierService() {
+ public static ResourceChangeNotifier getResourceChangeNotifierService() {
return getResourceProvider().getResourceChangeNotifierService();
- }
+ }
/**
* As service, that scans the disk for changes, this acts as a Monitor for the Notifer service.
@@ -47,52 +45,57 @@
public static ResourceChangeScanner getResourceChangeScannerService() {
return getResourceProvider().getResourceChangeScannerService();
}
-
+
public static Resource newUrlResource(URL url) {
return getResourceProvider().newUrlResource( url );
}
-
+
public static Resource newUrlResource(String path) {
return getResourceProvider().newUrlResource( path );
- }
-
+ }
+
public static Resource newFileResource(File file) {
return getResourceProvider().newFileSystemResource( file );
}
-
+
public static Resource newFileResource(String fileName) {
return getResourceProvider().newFileSystemResource( fileName );
}
-
-
+
public static Resource newByteArrayResource(byte[] bytes) {
return getResourceProvider().newByteArrayResource( bytes );
}
-
+
public static Resource newInputStreamResource(InputStream stream) {
return getResourceProvider().newInputStreamResource( stream );
}
-
+
public static Resource newReaderResource(Reader reader) {
return getResourceProvider().newReaderResource( reader );
}
-
- public static Resource newReaderResource(Reader reader, String encoding) {
- return getResourceProvider().newReaderResource( reader, encoding );
- }
-
+
+ public static Resource newReaderResource(Reader reader,
+ String encoding) {
+ return getResourceProvider().newReaderResource( reader,
+ encoding );
+ }
+
public static Resource newClassPathResource(String path) {
return getResourceProvider().newClassPathResource( path );
}
-
- public static Resource newClassPathResource(String path, Class clazz) {
- return getResourceProvider().newClassPathResource( path, clazz );
- }
-
- public static Resource newClassPathResource(String path, ClassLoader classLoader) {
- return getResourceProvider().newClassPathResource( path, classLoader );
- }
-
+
+ public static Resource newClassPathResource(String path,
+ Class clazz) {
+ return getResourceProvider().newClassPathResource( path,
+ clazz );
+ }
+
+ public static Resource newClassPathResource(String path,
+ ClassLoader classLoader) {
+ return getResourceProvider().newClassPathResource( path,
+ classLoader );
+ }
+
private static synchronized void setResourceProvider(ResourceProvider provider) {
ResourceFactory.resourceProvider = provider;
}
@@ -112,6 +115,6 @@
throw new ProviderInitializationException( "Provider org.drools.io.impl.ResourceProviderImpl could not be set.",
e2 );
}
- }
-
+ }
+
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -5,31 +5,40 @@
import java.io.Reader;
import java.net.URL;
-
+/**
+ * ResourceProvider is used by the ResourceFactory to "provide" it's concrete implementation.
+ *
+ * This class is not considered stable and may change, the user is protected from this change by using
+ * the Factory api, which is considered stable.
+ *
+ */
public interface ResourceProvider {
- ResourceChangeNotifier getResourceChangeNotifierService();
+ ResourceChangeNotifier getResourceChangeNotifierService();
ResourceChangeScanner getResourceChangeScannerService();
-
+
Resource newUrlResource(URL url);
-
- Resource newUrlResource(String path);
-
+
+ Resource newUrlResource(String path);
+
Resource newFileSystemResource(File file);
-
+
Resource newFileSystemResource(String fileName);
-
+
Resource newByteArrayResource(byte[] bytes);
-
+
Resource newInputStreamResource(InputStream stream);
-
+
Resource newReaderResource(Reader reader);
-
- Resource newReaderResource(Reader reader, String encoding);
-
+
+ Resource newReaderResource(Reader reader,
+ String encoding);
+
Resource newClassPathResource(String path);
-
- Resource newClassPathResource(String path, ClassLoader classLoader);
-
- Resource newClassPathResource(String path, Class clazz);
+
+ Resource newClassPathResource(String path,
+ ClassLoader classLoader);
+
+ Resource newClassPathResource(String path,
+ Class clazz);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/package.html
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/package.html 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/package.html 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,3 +1,11 @@
<body>
- The builder package is responsible for building knowledge difinitions from artifact resources.
+
+<p>
+io library for working with Resources
+</p>
+
+<p>
+See ResourceFactory for more details
+</p>
+
</body>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLogger.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLogger.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -4,10 +4,10 @@
* A logger for audit events.
*/
public interface KnowledgeRuntimeLogger {
-
+
/**
- * Release any resources allocated within the logger such as file
- * handles, network connections, etc.
+ * Release any resources allocated within the logger such as file
+ * handles, network connections, etc.
* It is a programming error to append to a closed appender.
*/
public void close();
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerFactory.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerFactory.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -3,45 +3,86 @@
import org.drools.ProviderInitializationException;
import org.drools.event.KnowledgeRuntimeEventManager;
+/**
+ * <p>
+ * The KnowledgeRuntimeLogger uses the comprehensive event system in Drools to create an audit log that can be used
+ * log the execution of drools for later inspection, in tools such as the Eclipse audit viewer.
+ * </p>
+ *
+ * <pre>
+ * KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "logdir/mylogfile");
+ * ....
+ * logger.close();
+ * </pre>
+ *
+ * <p>
+ * Don't forget to close the logger when it is no longer needed, so resources can be released.
+ * </p>
+ *
+ */
public class KnowledgeRuntimeLoggerFactory {
- private static KnowledgeRuntimeLoggerProvider knowledgeRuntimeLoggerProvider;
+ private static KnowledgeRuntimeLoggerProvider knowledgeRuntimeLoggerProvider;
- public static KnowledgeRuntimeLogger newFileLogger(KnowledgeRuntimeEventManager session, String fileName) {
- return getKnowledgeRuntimeLoggerProvider().newFileLogger(session, fileName);
- }
+ /**
+ * Creates a file logger in the current thread and events are written as they happen.
+ *
+ * @param session
+ * @param fileName
+ * @return
+ */
+ public static KnowledgeRuntimeLogger newFileLogger(KnowledgeRuntimeEventManager session,
+ String fileName) {
+ return getKnowledgeRuntimeLoggerProvider().newFileLogger( session,
+ fileName );
+ }
- public static KnowledgeRuntimeLogger newThreadedFileLogger(
- KnowledgeRuntimeEventManager session, String fileName, int interval) {
- return getKnowledgeRuntimeLoggerProvider().newThreadedFileLogger(session, fileName, interval);
- }
+ /**
+ * Creates a file logger that executes in a different thread, where information is written on given intervals
+ *
+ * @param session
+ * @param fileName
+ * @param interval
+ * @return
+ */
+ public static KnowledgeRuntimeLogger newThreadedFileLogger(KnowledgeRuntimeEventManager session,
+ String fileName,
+ int interval) {
+ return getKnowledgeRuntimeLoggerProvider().newThreadedFileLogger( session,
+ fileName,
+ interval );
+ }
- public static KnowledgeRuntimeLogger newConsoleLogger(KnowledgeRuntimeEventManager session) {
- return getKnowledgeRuntimeLoggerProvider().newConsoleLogger(session);
- }
+ /**
+ * Logs events to command line console
+ *
+ * @param session
+ * @return
+ */
+ public static KnowledgeRuntimeLogger newConsoleLogger(KnowledgeRuntimeEventManager session) {
+ return getKnowledgeRuntimeLoggerProvider().newConsoleLogger( session );
+ }
- private static synchronized void setKnowledgeRuntimeLoggerProvider(
- KnowledgeRuntimeLoggerProvider provider) {
- KnowledgeRuntimeLoggerFactory.knowledgeRuntimeLoggerProvider = provider;
- }
+ private static synchronized void setKnowledgeRuntimeLoggerProvider(KnowledgeRuntimeLoggerProvider provider) {
+ KnowledgeRuntimeLoggerFactory.knowledgeRuntimeLoggerProvider = provider;
+ }
- private static synchronized KnowledgeRuntimeLoggerProvider getKnowledgeRuntimeLoggerProvider() {
- if (knowledgeRuntimeLoggerProvider == null) {
- loadProvider();
- }
- return knowledgeRuntimeLoggerProvider;
- }
+ private static synchronized KnowledgeRuntimeLoggerProvider getKnowledgeRuntimeLoggerProvider() {
+ if ( knowledgeRuntimeLoggerProvider == null ) {
+ loadProvider();
+ }
+ return knowledgeRuntimeLoggerProvider;
+ }
- @SuppressWarnings("unchecked")
- private static void loadProvider() {
- try {
- Class<KnowledgeRuntimeLoggerProvider> cls = (Class<KnowledgeRuntimeLoggerProvider>)
- Class.forName("org.drools.audit.KnowledgeRuntimeLoggerProviderImpl");
- setKnowledgeRuntimeLoggerProvider(cls.newInstance());
- } catch (Exception e) {
- throw new ProviderInitializationException(
- "Provider org.drools.audit.KnowledgeRuntimeLoggerProviderImpl could not be set.", e);
- }
- }
+ @SuppressWarnings("unchecked")
+ private static void loadProvider() {
+ try {
+ Class<KnowledgeRuntimeLoggerProvider> cls = (Class<KnowledgeRuntimeLoggerProvider>) Class.forName( "org.drools.audit.KnowledgeRuntimeLoggerProviderImpl" );
+ setKnowledgeRuntimeLoggerProvider( cls.newInstance() );
+ } catch ( Exception e ) {
+ throw new ProviderInitializationException( "Provider org.drools.audit.KnowledgeRuntimeLoggerProviderImpl could not be set.",
+ e );
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -3,11 +3,14 @@
import org.drools.event.KnowledgeRuntimeEventManager;
public interface KnowledgeRuntimeLoggerProvider {
-
- KnowledgeRuntimeLogger newFileLogger(KnowledgeRuntimeEventManager session, String fileName);
-
- KnowledgeRuntimeLogger newThreadedFileLogger(KnowledgeRuntimeEventManager session, String fileName, int interval);
-
- KnowledgeRuntimeLogger newConsoleLogger(KnowledgeRuntimeEventManager session);
+ KnowledgeRuntimeLogger newFileLogger(KnowledgeRuntimeEventManager session,
+ String fileName);
+
+ KnowledgeRuntimeLogger newThreadedFileLogger(KnowledgeRuntimeEventManager session,
+ String fileName,
+ int interval);
+
+ KnowledgeRuntimeLogger newConsoleLogger(KnowledgeRuntimeEventManager session);
+
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/package.html
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/package.html 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/package.html 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,3 +1,11 @@
<body>
- Logger classes use to log the KnowledgeRuntime's execution.
+
+<p>
+Logger classes use to log the KnowledgeRuntime's execution.
+</p>
+
+<p>
+See KnowledgeRuntimeFactory for more detailed information.
+</p>
+
</body>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Environment.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Environment.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/Environment.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,9 +1,10 @@
package org.drools.runtime;
public interface Environment {
-
- Object get(String name);
-
- void set(String name, Object object);
+ Object get(String name);
+
+ void set(String name,
+ Object object);
+
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/ExitPoint.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/ExitPoint.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/ExitPoint.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,5 +1,5 @@
package org.drools.runtime;
public interface ExitPoint {
- void insert(Object object);
+ void insert(Object object);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/KnowledgeRuntime.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -18,7 +18,7 @@
*/
void setGlobal(String identifier,
Object object);
-
+
Object getGlobal(String identifier);
/**
@@ -33,8 +33,9 @@
* @return
*/
KnowledgeBase getKnowledgeBase();
-
- void registerExitPoint(String name, ExitPoint exitPoint);
-
+
+ void registerExitPoint(String name,
+ ExitPoint exitPoint);
+
void unregisterExitPoint(String name);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/StatefulKnowledgeSession.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,6 +1,5 @@
package org.drools.runtime;
-import org.drools.KnowledgeBase;
import org.drools.runtime.process.StatefulProcessSession;
import org.drools.runtime.rule.StatefulRuleSession;
@@ -64,7 +63,6 @@
StatefulProcessSession,
KnowledgeRuntime {
-
/**
* Releases all the current session resources, setting up the session for garbage collection.
* This method <b>must</b> always be called after finishing using the session, or the engine
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Action.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Action.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Action.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,5 +1,9 @@
package org.drools.runtime.pipeline;
-public interface Action extends Emitter, Receiver, Stage {
+public interface Action
+ extends
+ Emitter,
+ Receiver,
+ Stage {
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Callable.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Callable.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Callable.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,12 +1,16 @@
package org.drools.runtime.pipeline;
-
/**
*
* Must be the first and last Stage in the Pipeline
*
* @param <E>
*/
-public interface Callable<E> extends Receiver, Emitter, Stage{
- E call(Object signal, PipelineContext context);
+public interface Callable<E>
+ extends
+ Receiver,
+ Emitter,
+ Stage {
+ E call(Object signal,
+ PipelineContext context);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/CorePipelineProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/CorePipelineProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/CorePipelineProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -8,7 +8,7 @@
Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession);
Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession,
- String entryPointName);
+ String entryPointName);
Pipeline newStatelessKnowledgeSessionPipelineImpl(StatelessKnowledgeSession ksession);
@@ -19,27 +19,27 @@
KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetGlobal();
KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal();
-
- KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetObject();
+ KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetObject();
+
KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal(String identifier);
KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType);
KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType,
- long id);
+ long id);
- KnowledgeRuntimeCommand newStatefulKnowledgeSessionStartProcess(String eventType);
-
+ KnowledgeRuntimeCommand newStatefulKnowledgeSessionStartProcess(String id);
+
Action newAssignObjectAsResult();
-
+
Action newExecuteResultHandler();
Action newMvelAction(String action);
-
+
Expression newMvelExpression(String expression);
Splitter newIterateSplitter();
-
+
Join newListCollectJoin();
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Emitter.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Emitter.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Emitter.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,7 +1,7 @@
package org.drools.runtime.pipeline;
public interface Emitter {
- void setReceiver(Receiver receiver);
+ void setReceiver(Receiver receiver);
- Receiver getReceiver();
+ Receiver getReceiver();
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Expression.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Expression.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Expression.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,4 +1,8 @@
package org.drools.runtime.pipeline;
-public interface Expression extends Emitter, Receiver, Stage {
+public interface Expression
+ extends
+ Emitter,
+ Receiver,
+ Stage {
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JaxbTransformerProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JaxbTransformerProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JaxbTransformerProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -5,6 +5,6 @@
public interface JaxbTransformerProvider {
Transformer newJaxbFromXmlTransformer(Unmarshaller unmarshaller);
-
+
Transformer newJaxbToXmlTransformer(Marshaller marshaller);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/JmsMessengerProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -7,6 +7,6 @@
Properties properties,
String destinationName,
ResultHandlerFactory resultHandlerFactory);
-
+
Action newJmsUnwrapMessageObject();
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Join.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Join.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Join.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,5 +1,9 @@
package org.drools.runtime.pipeline;
-public interface Join extends Emitter, Receiver, Stage {
+public interface Join
+ extends
+ Emitter,
+ Receiver,
+ Stage {
void completed(PipelineContext context);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/KnowledgeRuntimeCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/KnowledgeRuntimeCommand.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/KnowledgeRuntimeCommand.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,5 +1,9 @@
package org.drools.runtime.pipeline;
-public interface KnowledgeRuntimeCommand extends Stage, Emitter, Receiver {
+public interface KnowledgeRuntimeCommand
+ extends
+ Stage,
+ Emitter,
+ Receiver {
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Pipeline.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Pipeline.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Pipeline.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,6 +1,9 @@
package org.drools.runtime.pipeline;
-
-public interface Pipeline extends Stage, Emitter {
- void insert(Object object, ResultHandler resultHandler);
+public interface Pipeline
+ extends
+ Stage,
+ Emitter {
+ void insert(Object object,
+ ResultHandler resultHandler);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineContext.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineContext.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineContext.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -3,15 +3,15 @@
import java.util.Map;
public interface PipelineContext {
-
+
ClassLoader getClassLoader();
-
+
Map<String, Object> getProperties();
-
+
void setResult(Object result);
-
+
Object getResult();
-
+
ResultHandler getResultHandler();
-
+
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -2,12 +2,16 @@
import java.util.Properties;
+import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
+import net.sf.jxls.reader.ReaderBuilder;
import net.sf.jxls.reader.XLSReader;
import org.drools.ProviderInitializationException;
+import org.drools.builder.help.KnowledgeBuilderHelper;
+import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.StatelessKnowledgeSession;
import org.milyn.Smooks;
@@ -121,7 +125,7 @@
*
* <p>
* While the above example is for loading a resource from disk it is also possible to work from a running messaging service. Drools currently
- * provides a single Service for JMS, called JmsMessenger. Other Services will be added later. Look at the JmsMessenger for more details, but below shows
+ * provides a single Service for JMS, called JmsMessenger. Other Services will be added later. Look at the factory method for JmsMessenger for more details, but below shows
* part of a unit test:
* </p>
*
@@ -172,82 +176,244 @@
private static JmsMessengerProvider jmsMessengerProvider;
+ /**
+ * Construct a new Pipeline to be used when interacting with a StatefulKnowledgeSession.
+ * It assumes that the default entry point will be used for any insertions.
+ *
+ * @param ksession
+ * @return
+ */
public static Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession) {
return getCorePipelineProvider().newStatefulKnowledgeSessionPipeline( ksession );
}
+ /**
+ * Construct a new Pipeline to be used when interacting with a StatefulKnowledgeSession. The entry point
+ * to be used is specified as s String.
+ *
+ * @param ksession
+ * @param entryPointName
+ * @return
+ */
public static Pipeline newStatefulKnowledgeSessionPipeline(StatefulKnowledgeSession ksession,
String entryPointName) {
return getCorePipelineProvider().newStatefulKnowledgeSessionPipeline( ksession,
entryPointName );
}
+ /**
+ * Construct a new Pipeline to be used when interacting with StatelessKnowledgeSessions.
+ * @param ksession
+ * @return
+ */
public static Pipeline newStatelessKnowledgeSessionPipeline(StatelessKnowledgeSession ksession) {
return getCorePipelineProvider().newStatelessKnowledgeSessionPipelineImpl( ksession );
}
+ /**
+ * Insert the payload into the StatefulKnowledgeSesssion referenced in the context. This stage
+ * expects the returned FactHandles to be stored in a HashMap of the PipelineContext result property.
+ * @return
+ */
public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionInsert() {
return getCorePipelineProvider().newStatefulKnowledgeSessionInsert();
}
+ /**
+ * Executes a StatelessKnowledgeSession. StatelessKnowledgeSessions sessions have four possible execution. Execute against an object
+ * and execute against an Iterable and both with and without Paramters. See StatelessKnowledgeSession for more details on what those
+ * mean. To control which execution method is used the StatelessKnowledgeSessionPipelineContext has three properties; object, iterable
+ * and parameters. These can be assigned using an MVEL action stage, which has access to that context, the "this" object is assumed
+ * to be the propagating payload object. If no properties are set it will call executeObject against the propagating payload. The same
+ * is true if just the object property is assigned. If the Iterable property is assigned it all call executeIterable. Finally the WithParamaters
+ * method will be called for each of those if the parameters property is set.
+ *
+ * <pre>
+ * Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
+ *
+ * KnowledgeRuntimeCommand execute = PipelineFactory.newStatelessKnowledgeSessionExecute();
+ * execute.setReceiver( executeResultHandler );
+ *
+ * Action assignParameters = PipelineFactory.newMvelAction( "context.parameters.globalParams.setInOut( ['list' : new java.util.ArrayList()] )");
+ * assignParameters.setReceiver( execute );
+ *
+ * Action assignIterable = PipelineFactory.newMvelAction( "context.setIterable( this )");
+ * assignIterable.setReceiver( assignParameters );
+ *
+ * Pipeline pipeline = PipelineFactory.newStatelessKnowledgeSessionPipeline(ksession);
+ * pipeline.setReceiver( assignIterable );
+ *
+ * ResultHandlerImpl handler = new ResultHandlerImpl();
+ *
+ * pipeline.insert( object, handler );
+ * </pre>
+ * @return
+ */
public static KnowledgeRuntimeCommand newStatelessKnowledgeSessionExecute() {
return getCorePipelineProvider().newStatelessKnowledgeSessionExecute();
}
+ /**
+ * The payload here is expected to be a String and the global will be set on the PipelineContext result property. The propagating
+ * object will also be switched to the results.
+ * @return
+ */
public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetGlobal() {
return getCorePipelineProvider().newStatefulKnowledgeSessionGetGlobal();
}
+ /**
+ * Expects the payload to be a Map<String, Object> which it will iterate and set each global on the StatefulKnowledgeSession
+ * .
+ * @return
+ */
+
public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal() {
return getCorePipelineProvider().newStatefulKnowledgeSessionSetGlobal();
}
+ /**
+ * Expects the payload to be a FactHandle, the associated insert object will be set on the PipelineContext result property and
+ * the result itself will also be propagated.
+ * @return
+ */
public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionGetObject() {
return getCorePipelineProvider().newStatefulKnowledgeSessionGetObject();
}
+ /**
+ * Expects the payload to be any object, that object will be set as a global using the given identifier.
+ * @param identifier
+ * @return
+ */
public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionSetGlobal(String identifier) {
return getCorePipelineProvider().newStatefulKnowledgeSessionSetGlobal( identifier );
}
+ /**
+ * The payload is inserted as a Signal of a given event type.
+ *
+ * @param eventType
+ * @return
+ */
public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType) {
return getCorePipelineProvider().newStatefulKnowledgeSessionSignalEvent( eventType );
}
+ /**
+ * The payload is inserted as a Signal of a given event type for a specific process instance.
+ * @param eventType
+ * @param id
+ * @return
+ */
public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionSignalEvent(String eventType,
long id) {
return getCorePipelineProvider().newStatefulKnowledgeSessionSignalEvent( eventType,
id );
}
- public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionStartProcess(String eventType) {
- return getCorePipelineProvider().newStatefulKnowledgeSessionStartProcess( eventType );
+ /**
+ * Start a process of the given id. The payload is expected to be a Map and is used for the process variables.
+ * @param id
+ * @return
+ */
+ public static KnowledgeRuntimeCommand newStatefulKnowledgeSessionStartProcess(String id) {
+ return getCorePipelineProvider().newStatefulKnowledgeSessionStartProcess( id );
}
+ /**
+ * This assigns the propagating payload object to the PipelineContext.result property
+ * @return
+ */
public static Action newAssignObjectAsResult() {
return getCorePipelineProvider().newAssignObjectAsResult();
}
+ /**
+ * When inserting into a Pipeline a ResultHandler may be passed. This stage will execute the user implemented class.
+ * @return
+ */
public static Action newExecuteResultHandler() {
return getCorePipelineProvider().newExecuteResultHandler();
}
+ /**
+ * Create a new MVEL action
+ * @param action
+ * @return
+ */
public static Action newMvelAction(String action) {
return getCorePipelineProvider().newMvelAction( action );
}
+ /**
+ * Creat a new MVEL expression, the payload will be set to the results of the expression.
+ * @param expression
+ * @return
+ */
public static Expression newMvelExpression(String expression) {
return getCorePipelineProvider().newMvelExpression( expression );
}
+ /**
+ * Iterates the Iterable object and propagate each element in turn.
+ * @return
+ */
public static Splitter newIterateSplitter() {
return getCorePipelineProvider().newIterateSplitter();
}
+ /**
+ * Collect each propagated item into a list, this is used as part of a Splitter.
+ * The Join should be set on the splitter using the setJoin method, this allows the Splitter
+ * to signal the join when it has propagated all the elements of the Iterable object.
+ * @return
+ */
public static Join newListCollectJoin() {
return getCorePipelineProvider().newListCollectJoin();
}
+ /**
+ * Creates a new JmsMessenger which runs as a service in it's own thread. It expects an existing JNDI entry for "ConnectionFactory"
+ * Which will be used to create the MessageConsumer which will feed into the specified pipeline.
+ *
+ * <pre>
+ * // as this is a service, it's more likely the results will be logged or sent as a return message
+ * Action resultHandlerStage = PipelineFactory.newExecuteResultHandler();
+ *
+ * // Insert the transformed object into the session associated with the PipelineContext
+ * KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
+ * insertStage.setReceiver( resultHandlerStage );
+ *
+ * // Create the transformer instance and create the Transformer stage, where we are going from Xml to Pojo. Jaxb needs an array of the available classes
+ * JAXBContext jaxbCtx = KnowledgeBuilderHelper.newJAXBContext( classNames,
+ * kbase );
+ * Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
+ * Transformer transformer = PipelineFactory.newJaxbFromXmlTransformer( unmarshaller );
+ * transformer.setReceiver( insertStage );
+ *
+ * // payloads for JMS arrive in a Message wrapper, we need to unwrap this object
+ * Action unwrapObjectStage = PipelineFactory.newJmsUnwrapMessageObject();
+ * unwrapObjectStage.setReceiver( transformer );
+ *
+ * // Create the start adapter Pipeline for StatefulKnowledgeSessions
+ * Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
+ * pipeline.setReceiver( unwrapObjectStage );
+ *
+ * // Services, like JmsMessenger take a ResultHandlerFactory implementation, this is because a result handler must be created for each incoming message.
+ * ResultHandleFactoryImpl factory = new ResultHandleFactoryImpl();
+ * Service messenger = PipelineFactory.newJmsMessenger( pipeline,
+ * props,
+ * destinationName,
+ * factory );
+ * messenger.start();
+ * </pre>
+ * @param pipeline
+ * @param properties
+ * @param destinationName
+ * @param resultHandlerFactory
+ * @return
+ */
public static Service newJmsMessenger(Pipeline pipeline,
Properties properties,
String destinationName,
@@ -258,36 +424,149 @@
resultHandlerFactory );
}
+ /**
+ * Unwrap the payload from the JMS Message and propagate it as the payload object.
+ * @return
+ */
public static Action newJmsUnwrapMessageObject() {
return getJmsMessengerProvider().newJmsUnwrapMessageObject();
}
+ /**
+ * Transforms from Source to Pojo using Smooks, the resulting pojo is set as the propagating object.
+ *
+ * <pre>
+ * // Instantiate Smooks with the config...
+ * Smooks smooks = new Smooks( getClass().getResourceAsStream( "smooks-config.xml" ) );
+ *
+ * Transformer transformer = PipelineFactory.newSmooksFromSourceTransformer( smooks,
+ * "orderItem" );
+ * transformer.setReceiver( insertStage );
+ * </pre>
+ *
+ * @param smooks
+ * @param rootId
+ * @return
+ */
public static Transformer newSmooksFromSourceTransformer(Smooks smooks,
String rootId) {
return getSmooksPipelineProvider().newSmooksFromSourceTransformer( smooks,
rootId );
}
+ /**
+ * Transforms from Pojo to Source using Smooks, the resulting Source is set as the propagating object
+ *
+ * <pre>
+ * // Instantiate Smooks with the config...
+ * Smooks smooks = new Smooks( getClass().getResourceAsStream( "smooks-config.xml" ) );
+ *
+ * Transformer transformer = PipelineFactory.newSmooksToSourceTransformer( smooks );
+ * transformer.setReceiver( receiver );
+ * </pre>
+ *
+ * @param smooks
+ * @param rootId
+ * @return
+ */
public static Transformer newSmooksToSourceTransformer(Smooks smooks) {
return getSmooksPipelineProvider().newSmooksToSourceTransformer( smooks );
}
+ /**
+ * Transforms from XML to Pojo using JAXB, the resulting pojo is set as the propagating object.
+ *
+ * <pre>
+ * JAXBContext jaxbCtx = KnowledgeBuilderHelper.newJAXBContext( classNames,
+ * kbase );
+ * Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
+ * Transformer transformer = PipelineFactory.newJaxbFromXmlTransformer( unmarshaller );
+ * transformer.setReceiver( receiver );
+ * </pre>
+ *
+ * Don't forget the XSD model must be generated, using XJC at runtime into the KnowledgeBase first,
+ * Using KnowledgeBuilderHelper.addXsdModel:
+ * <pre>
+ * Options xjcOpts = new Options();
+ * xjcOpts.setSchemaLanguage( Language.XMLSCHEMA );
+ * KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ *
+ * String[] classNames = KnowledgeBuilderHelper.addXsdModel( ResourceFactory.newClassPathResource( "order.xsd",
+ * getClass() ),
+ * kbuilder,
+ * xjcOpts,
+ * "xsd" );
+ * </pre>
+ * @param unmarshaller
+ * @return
+ */
public static Transformer newJaxbFromXmlTransformer(Unmarshaller unmarshaller) {
return getJaxbPipelineProvider().newJaxbFromXmlTransformer( unmarshaller );
}
+ /**
+ * Transforms from Pojo to XML using JAXB, the resulting XML is set as the propagating object.
+ * <pre>
+ * JAXBContext jaxbCtx = KnowledgeBuilderHelper.newJAXBContext( classNames,
+ * kbase );
+ * Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
+ * Transformer transformer = PipelineFactory.newJaxbFromXmlTransformer( unmarshaller );
+ * transformer.setReceiver( receiver );
+ *
+ *
+ * @param marshaller
+ * @return
+ */
public static Transformer newJaxbToXmlTransformer(Marshaller marshaller) {
return getJaxbPipelineProvider().newJaxbToXmlTransformer( marshaller );
}
+ /**
+ * Transforms from XML to Pojo using XStream, the resulting Pojo is set as the propagating object.
+ *
+ * <pre>
+ * XStream xstream = new XStream();
+ * Transformer transformer = PipelineFactory.newXStreamFromXmlTransformer( xstream );
+ * transformer.setReceiver( receiver );
+ * </pre>
+ * @param xstream
+ * @return
+ */
public static Transformer newXStreamFromXmlTransformer(XStream xstream) {
return getXStreamTransformerProvider().newXStreamFromXmlTransformer( xstream );
}
+ /**
+ * Transforms from Pojo to XML using XStream, the resulting XML is set as the propagating object.
+ *
+ * <pre>
+ * XStream xstream = new XStream();
+ * Transformer transformer = PipelineFactory.newXStreamToXmlTransformer( xstream );
+ * transformer.setReceiver( receiver );
+ * </pre>
+ * @param xstream
+ * @return
+ */
public static Transformer newXStreamToXmlTransformer(XStream xstream) {
return getXStreamTransformerProvider().newXStreamToXmlTransformer( xstream );
}
+ /**
+ * Transforms from an Excel spread to a Map of pojos pojos using jXLS, the resulting map is set as the propagating object.
+ * You may need to use splitters and MVEL expressions to split up the transformation to insert individual pojos.
+ *
+ * Note you must provde an XLSReader, which references the mapping file and also an MVEL string which will instantiate the map.
+ * The mvel expression is pre-compiled but executedon each usage of the transformation.
+ *
+ * <pre>
+ * XLSReader mainReader = ReaderBuilder.buildFromXML( ResourceFactory.newClassPathResource( "departments.xml", getClass() ).getInputStream() );
+ * Transformer transformer = PipelineFactory.newJxlsTransformer(mainReader, "[ 'departments' : new java.util.ArrayList(), 'company' : new org.drools.runtime.pipeline.impl.Company() ]");
+ * </pre>
+ *
+ * @param xlsReader
+ * @param text
+ * @return
+ */
public static Transformer newJxlsTransformer(XLSReader xlsReader,
String text) {
return getJxlsTransformerProvider().newJxlsTransformer( xlsReader,
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Receiver.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Receiver.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Receiver.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,6 +1,6 @@
package org.drools.runtime.pipeline;
-
public interface Receiver {
- void receive(Object object, PipelineContext context);
+ void receive(Object object,
+ PipelineContext context);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerFactory.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ResultHandlerFactory.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,5 +1,5 @@
package org.drools.runtime.pipeline;
-public interface ResultHandlerFactory {
+public interface ResultHandlerFactory {
ResultHandler newResultHandler();
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Service.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Service.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Service.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -2,12 +2,13 @@
public interface Service {
void start();
+
void stop();
-
+
void setServiceExceptionHandler(ServiceExceptionHandler exceptionHandler);
void handleException(Service service,
Object object,
Exception exception);
-
+
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ServiceExceptionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ServiceExceptionHandler.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/ServiceExceptionHandler.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,5 +1,7 @@
package org.drools.runtime.pipeline;
public interface ServiceExceptionHandler {
- public void handleException(Service service, Object object, Exception exception);
+ public void handleException(Service service,
+ Object object,
+ Exception exception);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Splitter.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Splitter.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Splitter.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,5 +1,9 @@
package org.drools.runtime.pipeline;
-public interface Splitter extends Emitter, Receiver, Stage {
+public interface Splitter
+ extends
+ Emitter,
+ Receiver,
+ Stage {
void setJoin(Join join);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StageExceptionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StageExceptionHandler.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StageExceptionHandler.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,5 +1,7 @@
package org.drools.runtime.pipeline;
public interface StageExceptionHandler {
- public void handleException(Stage stage, Object object, Exception exception);
+ public void handleException(Stage stage,
+ Object object,
+ Exception exception);
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatelessKnowledgeSessionPipelineContext.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatelessKnowledgeSessionPipelineContext.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/StatelessKnowledgeSessionPipelineContext.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -6,17 +6,17 @@
public interface StatelessKnowledgeSessionPipelineContext
extends
PipelineContext {
-
+
StatelessKnowledgeSession getStatelessKnowledgeSession();
-
+
void setObject(Object object);
-
+
Object getObject();
-
+
void setIterable(Iterable iterable);
-
+
Iterable getIterable();
-
+
Parameters getParameters();
-
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Transformer.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Transformer.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/Transformer.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1,5 +1,9 @@
package org.drools.runtime.pipeline;
-public interface Transformer extends Emitter, Receiver, Stage {
+public interface Transformer
+ extends
+ Emitter,
+ Receiver,
+ Stage {
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/XStreamTransformerProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/XStreamTransformerProvider.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/XStreamTransformerProvider.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -4,5 +4,6 @@
public interface XStreamTransformerProvider {
Transformer newXStreamFromXmlTransformer(XStream xstream);
+
Transformer newXStreamToXmlTransformer(XStream xstream);
}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/package.html
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/package.html (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/package.html 2009-01-20 13:44:04 UTC (rev 24822)
@@ -0,0 +1,9 @@
+<body>
+ <p>
+ The PipelineFactory and associated classes are there to help with the automation of getting information
+ into and out of Drools.
+ </p>
+ <p>
+ Please see PipelineFactory for more detailed information.
+ </p>
+</body>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/process/ProcessContext.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/process/ProcessContext.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/process/ProcessContext.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -3,15 +3,16 @@
import org.drools.runtime.KnowledgeRuntime;
public interface ProcessContext {
-
- ProcessInstance getProcessInstance();
-
- NodeInstance getNodeInstance();
-
- KnowledgeRuntime getKnowledgeRuntime();
-
- Object getVariable(String variableName);
-
- void setVariable(String variableName, Object value);
+ ProcessInstance getProcessInstance();
+
+ NodeInstance getNodeInstance();
+
+ KnowledgeRuntime getKnowledgeRuntime();
+
+ Object getVariable(String variableName);
+
+ void setVariable(String variableName,
+ Object value);
+
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/StatelessRuleSession.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/StatelessRuleSession.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/StatelessRuleSession.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -10,7 +10,7 @@
* @see org.drools.runtime.StatelessKnowledgeSession
*/
public interface StatelessRuleSession {
-
+
/**
* Execute a StatelessKnowledSession inserting just a single object. If a collection (or any other Iterable) or an array is used here, it will be inserted as-is,
* It will not be iterated and it's internal elements inserted.
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/WorkingMemory.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -2,7 +2,7 @@
import java.util.Collection;
-import org.drools.event.rule.WorkingMemoryEventManager;
+import org.drools.KnowledgeBaseConfiguration;
import org.drools.runtime.ObjectFilter;
import org.drools.time.SessionClock;
@@ -48,7 +48,7 @@
* @see KnowledgeBaseConfiguration
*/
FactHandle getFactHandle(Object object);
-
+
/**
* Returns the object associated with the given FactHandle.
*
@@ -96,7 +96,7 @@
* @return
*/
Agenda getAgenda();
-
+
/**
* Returns the WorkingMemoryEntryPoint instance associated with the given name.
*
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessKnowledgeSessionPipelineTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessKnowledgeSessionPipelineTest.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StatelessKnowledgeSessionPipelineTest.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -18,6 +18,10 @@
import org.drools.runtime.Parameters;
import org.drools.runtime.StatelessKnowledgeSession;
import org.drools.runtime.StatelessKnowledgeSessionResults;
+import org.drools.runtime.pipeline.Action;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.Pipeline;
+import org.drools.runtime.pipeline.PipelineFactory;
import org.drools.runtime.pipeline.ResultHandler;
import org.drools.runtime.pipeline.impl.MvelAction;
import org.drools.runtime.pipeline.impl.StatefulKnowledgeSessionInsertStage;
@@ -265,20 +269,20 @@
kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
- MvelAction mvelAction1 = new MvelAction( "context.setIterable( this )");
- MvelAction mvelAction2 = new MvelAction( "context.parameters.globalParams.setInOut( ['list' : new java.util.ArrayList()] )");
+ Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
- mvelAction1.setReceiver( mvelAction2 );
+ KnowledgeRuntimeCommand execute = PipelineFactory.newStatelessKnowledgeSessionExecute();
+ execute.setReceiver( executeResultHandler );
- StatelessKnowledgeSessionExecuteStage stage1 = new StatelessKnowledgeSessionExecuteStage();
- mvelAction2.setReceiver( stage1 );
+ Action assignParameters = PipelineFactory.newMvelAction( "context.parameters.globalParams.setInOut( ['list' : new java.util.ArrayList()] )");
+ assignParameters.setReceiver( execute );
- MvelAction mvelAction3 = new MvelAction( "context.resultHandler.handleResult( context.result )");
- stage1.setReceiver( mvelAction3 );
+ Action assignIterable = PipelineFactory.newMvelAction( "context.setIterable( this )");
+ assignIterable.setReceiver( assignParameters );
+
+ Pipeline pipeline = PipelineFactory.newStatelessKnowledgeSessionPipeline(ksession);
+ pipeline.setReceiver( assignIterable );
- StatelessKnowledgeSessionPipelineImpl pipeline = new StatelessKnowledgeSessionPipelineImpl(ksession);
- pipeline.setReceiver( mvelAction1 );
-
ResultHandlerImpl handler = new ResultHandlerImpl();
List items = new ArrayList();
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/CorePipelineProviderImpl.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -66,8 +66,8 @@
id );
}
- public KnowledgeRuntimeCommand newStatefulKnowledgeSessionStartProcess(String eventType) {
- return new StatefulKnowledgeSessionSignalEventStage( eventType );
+ public KnowledgeRuntimeCommand newStatefulKnowledgeSessionStartProcess(String id) {
+ return new StatefulKnowledgeSessionStartProcessStage( id );
}
public Action newAssignObjectAsResult() {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/pipeline/impl/StatefulKnowledgeSessionStartProcessStage.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -2,13 +2,13 @@
import java.util.Map;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
import org.drools.runtime.pipeline.PipelineContext;
-import org.drools.runtime.pipeline.Receiver;
import org.drools.runtime.pipeline.StatefulKnowledgeSessionPipelineContext;
public class StatefulKnowledgeSessionStartProcessStage extends BaseEmitter
implements
- Receiver {
+ KnowledgeRuntimeCommand {
private String id;
public StatefulKnowledgeSessionStartProcessStage(String id) {
@@ -19,9 +19,9 @@
PipelineContext context) {
StatefulKnowledgeSessionPipelineContext kContext = (StatefulKnowledgeSessionPipelineContext) context;
long instanceId = kContext.getStatefulKnowledgeSession().startProcess( id,
- (Map<String, Object>) object ).getId();
+ (Map<String, Object>) object ).getId();
kContext.setResult( instanceId );
-
+
emit( object,
kContext );
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt 2009-01-20 13:44:04 UTC (rev 24822)
@@ -1 +1 @@
-5.0.0.SNAPSHOT 24740M
\ No newline at end of file
+5.0.0.SNAPSHOT 24794M
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/drools-messenger-jms/.settings/org.eclipse.jdt.core.prefs 2009-01-20 13:44:04 UTC (rev 24822)
@@ -0,0 +1,5 @@
+#Thu Jan 15 01:40:50 GMT 2009
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/.classpath 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/.classpath 2009-01-20 13:44:04 UTC (rev 24822)
@@ -6,6 +6,7 @@
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-digester/commons-digester/1.8/commons-digester-1.8.jar"/>
@@ -18,11 +19,13 @@
<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
<classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sf/jxls/jxls-reader/0.9.6/jxls-reader-0.9.6.jar"/>
<classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.5/mvel2-2.0.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.6/mvel2-2.0.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/poi/poi/3.0.2-FINAL/poi-3.0.2-FINAL.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/src/test/java/org/drools/runtime/pipeline/impl/JxlsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/src/test/java/org/drools/runtime/pipeline/impl/JxlsTest.java 2009-01-20 12:02:44 UTC (rev 24821)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-jxls/src/test/java/org/drools/runtime/pipeline/impl/JxlsTest.java 2009-01-20 13:44:04 UTC (rev 24822)
@@ -32,21 +32,19 @@
public class JxlsTest extends TestCase {
public void test1() throws Exception {
- InputStream stream = getClass().getResourceAsStream( "departments.xml");
- assertNotNull( stream );
-
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
// kbuilder.add( ResourceFactory.newClassPathResource( "test_JXLS.drl", getClass() ), ResourceType.DRL );
ClassLoader cl = ((KnowledgeBuilderImpl)kbuilder).pkgBuilder.getRootClassLoader();
Thread.currentThread().setContextClassLoader( cl );
-
- InputStream inputXML = new BufferedInputStream( stream );
- XLSReader mainReader = ReaderBuilder.buildFromXML( inputXML );
+
InputStream inputXLS = new BufferedInputStream(getClass().getResourceAsStream( "departmentData.xls"));
- Callable callable = new CallableImpl();
+ XLSReader mainReader = ReaderBuilder.buildFromXML( ResourceFactory.newClassPathResource( "departments.xml", getClass() ).getInputStream() );
Transformer transformer = PipelineFactory.newJxlsTransformer(mainReader, "[ 'departments' : new java.util.ArrayList(), 'company' : new org.drools.runtime.pipeline.impl.Company() ]");
+
+ Callable callable = new CallableImpl();
+
callable.setReceiver( transformer );
transformer.setReceiver( callable );
BasePipelineContext context = new BasePipelineContext( Thread.currentThread().getContextClassLoader() );
More information about the jboss-svn-commits
mailing list