[jboss-svn-commits] JBL Code SVN: r35616 - in labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo: jcr-jr-impl and 7 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 20 18:55:15 EDT 2010


Author: kurt.stam at jboss.com
Date: 2010-10-20 18:55:15 -0400 (Wed, 20 Oct 2010)
New Revision: 35616

Added:
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/pom.xml
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/java/
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/java/org/
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/java/org/drools/
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/java/org/drools/repository/
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/java/org/drools/repository/jackrabbit/
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/java/org/drools/repository/jackrabbit/JackrabbitRepositoryConfigurator.java
Modified:
   labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/pom.xml
Log:
BRMS-401, add JackRabbit Implementation

Added: labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/pom.xml
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/pom.xml	                        (rev 0)
+++ labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/pom.xml	2010-10-20 22:55:15 UTC (rev 35616)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+   <modelVersion>4.0.0</modelVersion>
+   <parent>
+      <artifactId>drools</artifactId>
+      <groupId>org.drools</groupId>
+      <version>5.1.0.BRMS</version>
+   </parent>
+   <artifactId>jcr-jr-impl</artifactId>
+   <packaging>jar</packaging>
+   <name>Drools :: Repository :: JR</name>
+   
+   <dependencies>
+      
+      <dependency>
+         <groupId>org.apache.jackrabbit</groupId>
+         <artifactId>jackrabbit-core</artifactId>
+      </dependency>
+      <dependency>
+	      <artifactId>drools-repository-jcr-api</artifactId>
+	      <groupId>org.drools</groupId>
+	      <version>5.1.0.BRMS</version>
+      </dependency>
+      
+   </dependencies>
+</project>

Added: labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/java/org/drools/repository/jackrabbit/JackrabbitRepositoryConfigurator.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/java/org/drools/repository/jackrabbit/JackrabbitRepositoryConfigurator.java	                        (rev 0)
+++ labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/jcr-jr-impl/src/main/java/org/drools/repository/jackrabbit/JackrabbitRepositoryConfigurator.java	2010-10-20 22:55:15 UTC (rev 35616)
@@ -0,0 +1,81 @@
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.repository.jackrabbit;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Properties;
+
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.Workspace;
+
+import org.apache.jackrabbit.commons.cnd.CndImporter;
+import org.apache.jackrabbit.core.TransientRepository;
+import org.drools.repository.JCRRepositoryConfigurator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/** 
+ * This contains code to initialise the repository for jackrabbit.
+ * This is mostly a collection of utilities. 
+ * Any jackrabbit specific code needs to go in here.
+ */
+public class JackrabbitRepositoryConfigurator extends JCRRepositoryConfigurator {
+
+    private static final Logger log = LoggerFactory.getLogger(JackrabbitRepositoryConfigurator.class);
+    private static TransientRepository transientRepository = null;
+    
+    /* (non-Javadoc)
+     * @see org.drools.repository.RepositoryConfigurator#getJCRRepository()
+     */
+    @Override
+    public Repository getJCRRepository(Properties properties) throws RepositoryException {
+
+    	String repoRootDir = properties.getProperty(REPOSITORY_ROOT_DIRECTORY);
+        if (repoRootDir == null) {
+        	transientRepository = new TransientRepository();
+        } else { 
+        	transientRepository =  new TransientRepository(repoRootDir + "/repository.xml", repoRootDir);
+        }
+        return transientRepository;
+
+    }
+    
+    public void registerNodeTypesFromCndFile(String cndFileName, Session session, Workspace workspace) throws RepositoryException {
+        try {
+            //Read in the CND file
+            Reader in = new InputStreamReader(this.getClass().getResourceAsStream( cndFileName ));
+            CndImporter.registerNodeTypes(in, session);            
+
+        } catch(Exception e) {
+            log.error("Caught Exception", e);
+            throw new RepositoryException(e);
+        }
+    } 
+    
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.drools.repository.JCRRepositoryConfigurator#shutdown()
+     */
+    public void shutdown() {
+        transientRepository.shutdown();
+    }
+    
+}

Modified: labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/pom.xml
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/pom.xml	2010-10-20 22:39:16 UTC (rev 35615)
+++ labs/jbossrules/soa_branches/BRMS-5.1.1/drools-repo/pom.xml	2010-10-20 22:55:15 UTC (rev 35616)
@@ -11,7 +11,8 @@
    <packaging>pom</packaging>
    <name>Drools :: Repository :: Parent</name>
    <modules>
+     <module>drools-repository</module>
      <module>jcr-api</module>
-     <module>drools-repository</module>
+     <module>jcr-jr-impl</module>
    </modules>
 </project>



More information about the jboss-svn-commits mailing list