[jboss-svn-commits] JBL Code SVN: r11170 - in labs/jbossrules/trunk/drools-repository: src/main/java/org/drools/repository and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Apr 20 15:50:52 EDT 2007
Author: fmeyer
Date: 2007-04-20 15:50:52 -0400 (Fri, 20 Apr 2007)
New Revision: 11170
Modified:
labs/jbossrules/trunk/drools-repository/
labs/jbossrules/trunk/drools-repository/.classpath
labs/jbossrules/trunk/drools-repository/pom.xml
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
Log:
JBRULES-571 Export-Import from XML drools-repository backend
Property changes on: labs/jbossrules/trunk/drools-repository
___________________________________________________________________
Name: svn:ignore
+ .settings
target
Modified: labs/jbossrules/trunk/drools-repository/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-repository/.classpath 2007-04-20 19:47:01 UTC (rev 11169)
+++ labs/jbossrules/trunk/drools-repository/.classpath 2007-04-20 19:50:52 UTC (rev 11170)
@@ -5,17 +5,17 @@
<classpathentry kind="src" path="src/test/resources" output="target/test-classes"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.0/slf4j-log4j12-1.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/tmatesoft/javasvn/1.1-beta5/javasvn-1.1-beta5.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.2.2/jackrabbit-api-1.2.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.2.2/jackrabbit-jcr-commons-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.2.2/jackrabbit-api-1.2.2.jar" sourcepath="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.2.2/jackrabbit-api-1.2.2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0.1/geronimo-jta_1.0.1B_spec-1.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.2.2/jackrabbit-jcr-commons-1.2.2.jar" sourcepath="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.2.2/jackrabbit-jcr-commons-1.2.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.2.2/jackrabbit-core-1.2.2.jar" sourcepath="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.2.2/jackrabbit-core-1.2.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar" sourcepath="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.0/slf4j-log4j12-1.0.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.0/slf4j-log4j12-1.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.0.0/lucene-core-2.0.0.jar"/>
<classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.2.2/jackrabbit-core-1.2.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.0.0/lucene-core-2.0.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar" sourcepath="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/tmatesoft/javasvn/1.1-beta5/javasvn-1.1-beta5.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-repository/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-repository/pom.xml 2007-04-20 19:47:01 UTC (rev 11169)
+++ labs/jbossrules/trunk/drools-repository/pom.xml 2007-04-20 19:50:52 UTC (rev 11170)
@@ -24,7 +24,7 @@
<directory>./</directory>
<includes>
<include>repository**/*</include>
- <include>repository.xml</include>
+ <include>repository*.xml</include>
<include>repository</include>
</includes>
<followSymlinks>false</followSymlinks>
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2007-04-20 19:47:01 UTC (rev 11169)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2007-04-20 19:50:52 UTC (rev 11170)
@@ -1,13 +1,25 @@
package org.drools.repository;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Random;
import java.util.StringTokenizer;
+import javax.jcr.ImportUUIDBehavior;
+import javax.jcr.InvalidSerializedDataException;
import javax.jcr.ItemExistsException;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
@@ -17,9 +29,12 @@
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.Value;
+import javax.jcr.lock.LockException;
+import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.query.Query;
import javax.jcr.query.QueryResult;
import javax.jcr.version.Version;
+import javax.jcr.version.VersionException;
import org.apache.log4j.Logger;
@@ -59,6 +74,7 @@
* scheme to be better aligned with JCR's versioning abilities.
*
* @author Ben Truitt
+ * @author Fernando Meyer
*/
public class RulesRepository {
@@ -810,6 +826,23 @@
return this.findAssetsByCategory( categoryTag,
false );
}
+
+ public byte[] exportRulesRepository() throws IOException, PathNotFoundException, RepositoryException {
+ ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+ session.exportSystemView( "/drools:repository", byteOut , false, false );
+ return byteOut.toByteArray();
+ }
+
+ public void importRulesRepository(byte[] byteArray) {
+ try {
+ session.importXML( "/drools:repository", new ByteArrayInputStream(byteArray), ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING);
+ session.save();
+ } catch ( RepositoryException e ) {
+ throw new RulesRepositoryException();
+ } catch ( IOException e ) {
+ e.printStackTrace();
+ }
+ }
boolean isNotSnapshot(Node parentNode) throws RepositoryException {
return parentNode.getPath().indexOf( PACKAGE_SNAPSHOT_AREA ) == -1;
Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java 2007-04-20 19:47:01 UTC (rev 11169)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java 2007-04-20 19:50:52 UTC (rev 11170)
@@ -11,7 +11,6 @@
import junit.framework.TestCase;
public class RulesRepositoryTest extends TestCase {
-
public void testDefaultPackage() throws Exception {
RulesRepository repo = RepositorySessionUtil.getRepository();
@@ -335,6 +334,23 @@
assertEquals(items.length + 1, items2.length);
}
+ public void testImportExport() {
+ RulesRepository repo = RepositorySessionUtil.getRepository();
+ byte []byteArray;
+
+ try {
+ repo.createPackage( "testImportExport", "nodescription" );
+ byteArray = repo.exportRulesRepository();
+ assertTrue( byteArray.length >= 2048 ); // empty repository must have a minimum of 2048 bytes.
+ repo.importRulesRepository( byteArray );
+ assertTrue( repo.containsPackage( "testImportExport" ) );
+
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ }
+
+
List iteratorToList(Iterator it) {
List list = new ArrayList();
while(it.hasNext()) {
More information about the jboss-svn-commits
mailing list