[jboss-svn-commits] JBL Code SVN: r11349 - in labs/jbossrules/trunk/drools-repository/src/main: resources/node_type_definitions and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Apr 26 06:02:46 EDT 2007
Author: michael.neale at jboss.com
Date: 2007-04-26 06:02:46 -0400 (Thu, 26 Apr 2007)
New Revision: 11349
Modified:
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/rulepackage_node_type.cnd
Log:
JBRULES-773 BRMS assembler
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java 2007-04-26 07:44:32 UTC (rev 11348)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java 2007-04-26 10:02:46 UTC (rev 11349)
@@ -1,5 +1,6 @@
package org.drools.repository;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
@@ -9,6 +10,7 @@
import javax.jcr.ItemExistsException;
import javax.jcr.Node;
+import javax.jcr.Property;
import javax.jcr.RepositoryException;
import javax.jcr.query.Query;
import javax.jcr.query.QueryResult;
@@ -48,6 +50,8 @@
public static final String HEADER_PROPERTY_NAME = "drools:header";
public static final String EXTERNAL_URI_PROPERTY_NAME = "drools:externalURI";
+ private static final String COMPILED_PACKAGE_PROPERTY_NAME = "drools:compiledPackage";
+
/**
* Constructs an object of type RulePackageItem corresponding the specified node
* @param rulesRepository the rulesRepository that instantiated this object
@@ -586,7 +590,62 @@
}
}
+ /**
+ * If the asset is a binary asset, then use this to update the content
+ * (do NOT use text).
+ */
+ public PackageItem updateCompiledPackage(InputStream data) {
+ checkout();
+ try {
+ this.node.setProperty( COMPILED_PACKAGE_PROPERTY_NAME, data );
+ return this;
+ } catch (RepositoryException e ) {
+ log.error( "Unable to update the assets binary content", e );
+ throw new RulesRepositoryException( e );
+ }
+ }
+ /**
+ * This is a convenience method for returning the binary data as a byte array.
+ */
+ public byte[] getCompiledPackageBytes() {
+
+ try {
+ Node ruleNode = getVersionContentNode();
+ if ( ruleNode.hasProperty( COMPILED_PACKAGE_PROPERTY_NAME ) ) {
+ Property data = ruleNode.getProperty( COMPILED_PACKAGE_PROPERTY_NAME );
+ InputStream in = data.getStream();
+
+ // Create the byte array to hold the data
+ byte[] bytes = new byte[(int) data.getLength()];
+
+ // Read in the bytes
+ int offset = 0;
+ int numRead = 0;
+ while (offset < bytes.length
+ && (numRead=in.read(bytes, offset, bytes.length-offset)) >= 0) {
+ offset += numRead;
+ }
+
+ // Ensure all the bytes have been read in
+ if (offset < bytes.length) {
+ throw new RulesRepositoryException("Could not completely read binary package for "+ getName());
+ }
+
+ // Close the input stream and return bytes
+ in.close();
+ return bytes;
+ } else {
+ return null;
+ }
+ } catch ( Exception e ) {
+ log.error( e );
+ if (e instanceof RuntimeException) throw (RuntimeException) e;
+ throw new RulesRepositoryException( e );
+ }
+ }
+
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/rulepackage_node_type.cnd
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/rulepackage_node_type.cnd 2007-04-26 07:44:32 UTC (rev 11348)
+++ labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/rulepackage_node_type.cnd 2007-04-26 10:02:46 UTC (rev 11349)
@@ -35,3 +35,6 @@
< 'drools:assetNodeType','nt:version'
*/
+//optionally store the binary compiled package (really a cache)
+- drools:compiledPackage (binary)
+
More information about the jboss-svn-commits
mailing list