[jboss-svn-commits] JBL Code SVN: r36868 - in labs/jbossrules/soa_branches/BRMS-5.1.x/drools-ant/src: test/resources and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Mar 28 12:15:03 EDT 2011
Author: tsurdilovic
Date: 2011-03-28 12:15:02 -0400 (Mon, 28 Mar 2011)
New Revision: 36868
Added:
labs/jbossrules/soa_branches/BRMS-5.1.x/drools-ant/src/main/java/org/drools/contrib/JackrabbitMigrationAntTask
labs/jbossrules/soa_branches/BRMS-5.1.x/drools-ant/src/test/resources/JackrabbitMigrationAntTask.xml
Log:
BRMS-575 : Jackrabbit repository migration ant task
Added: labs/jbossrules/soa_branches/BRMS-5.1.x/drools-ant/src/main/java/org/drools/contrib/JackrabbitMigrationAntTask
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.1.x/drools-ant/src/main/java/org/drools/contrib/JackrabbitMigrationAntTask (rev 0)
+++ labs/jbossrules/soa_branches/BRMS-5.1.x/drools-ant/src/main/java/org/drools/contrib/JackrabbitMigrationAntTask 2011-03-28 16:15:02 UTC (rev 36868)
@@ -0,0 +1,137 @@
+package org.drools.contrib;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.jcr.RepositoryException;
+
+import org.apache.jackrabbit.core.RepositoryCopier;
+import org.apache.jackrabbit.core.config.RepositoryConfig;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.taskdefs.MatchingTask;
+
+/**
+ * Ant task to help backup and migrate jackrabbit repo.
+ */
+public class JackrabbitMigrationAntTask extends MatchingTask {
+ private String verbose;
+ private boolean verboseVal;
+ private String sourcedir;
+ private String sourceconfig;
+ private String targetdir;
+ private String targetconfig;
+
+ /**
+ * Task's main method
+ */
+ public void execute() throws BuildException {
+ super.execute();
+ verboseVal = verbose != null && verbose.equalsIgnoreCase("true");
+
+ String inputErrors = checkInput();
+ if( inputErrors.length() > 0) {
+ throw new BuildException(inputErrors);
+ }
+
+ try {
+ if (verboseVal) {
+ log("Installing source repository.");
+ }
+ RepositoryConfig sourceRepo = RepositoryConfig.install(
+ new File(sourceconfig), new File(sourcedir));
+ if (verboseVal) {
+ log("Installing target repository.");
+ }
+ RepositoryConfig targetRepo = RepositoryConfig.install(
+ new File(targetconfig), new File(targetdir));
+ if (verboseVal) {
+ log("Migrating source repository to target repository.");
+ }
+ RepositoryCopier.copy(sourceRepo, targetRepo);
+ } catch (Exception e) {
+ log(e.getMessage());
+ throw new BuildException(e.getMessage());
+ }
+ }
+
+ public void setVerbose(String verbose) {
+ this.verbose = verbose;
+ }
+
+ private String checkInput() {
+ if(verboseVal) {
+ log("Validating task input parameters.");
+ }
+ String errors = "";
+
+ if(isEmpty(sourcedir)) {
+ errors += "\nInvalid source repository directory.";
+ } else {
+ File sourceDirFile = new File(sourcedir);
+ if(!sourceDirFile.canRead()) {
+ errors += "\nInvalid source repository directory.";
+ }
+ }
+
+ if(isEmpty(sourceconfig)) {
+ errors += "\nInvalid source source configuration.";
+ } else {
+ File sourceConfFile = new File(sourceconfig);
+ if(!sourceConfFile.canRead()) {
+ errors += "\nInvalid source repository configuration file.";
+ }
+ }
+
+ if(isEmpty(targetconfig)) {
+ errors += "\nInvalid target repository configuration.";
+ } else {
+ File targetConfFile = new File(targetconfig);
+ if(!targetConfFile.canRead()) {
+ errors += "\nInvalid target repository configuration file.";
+ }
+ }
+
+ if(isEmpty(targetdir)) {
+ errors += "\nInvalid target directory configuration.";
+ } else {
+ File targetDirFile = new File(targetdir);
+ if(!targetDirFile.canRead()) {
+ errors += "\nInvalid target repository directory.";
+ }
+ }
+
+ return errors;
+ }
+
+ public static boolean isEmpty(final CharSequence str) {
+ if ( str == null || str.length() == 0 ) {
+ return true;
+ }
+
+ for ( int i = 0, length = str.length(); i < length; i++ ){
+ if ( str.charAt( i ) != ' ' ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public void setSourcedir(String sourcedir) {
+ this.sourcedir = sourcedir;
+ }
+
+ public void setSourceconfig(String sourceconfig) {
+ this.sourceconfig = sourceconfig;
+ }
+
+ public void setTargetdir(String targetdir) {
+ this.targetdir = targetdir;
+ }
+
+ public void setTargetconfig(String targetconfig) {
+ this.targetconfig = targetconfig;
+ }
+
+}
+
Added: labs/jbossrules/soa_branches/BRMS-5.1.x/drools-ant/src/test/resources/JackrabbitMigrationAntTask.xml
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.1.x/drools-ant/src/test/resources/JackrabbitMigrationAntTask.xml (rev 0)
+++ labs/jbossrules/soa_branches/BRMS-5.1.x/drools-ant/src/test/resources/JackrabbitMigrationAntTask.xml 2011-03-28 16:15:02 UTC (rev 36868)
@@ -0,0 +1,30 @@
+<project default="migraterepo">
+ <path id="migration.classpath">
+ <pathelement path="${classpath}" />
+ <fileset dir="/Users/tihomir/development/droolsjbpm/workspace/guvnor/guvnor-webapp/target/guvnor-webapp/WEB-INF/lib/">
+ <include name="**/*.jar"/>
+ </fileset>
+ <filelist refid="drools-ant" />
+ <filelist refid="db-driver-jars" />
+ </path>
+
+ <filelist id="db-driver-jars" dir="lib">
+ <file name="mysql-connector-java-5.1.11-bin.jar" />
+ </filelist>
+
+ <filelist id="drools-ant" dir="lib">
+ <file name="drools-ant-5.2.0-SNAPSHOT.jar" />
+ </filelist>
+
+ <taskdef name="migrate" classname="org.drools.contrib.JackrabbitMigrationAntTask"
+ classpathref="migration.classpath" />
+
+ <target name="migraterepo">
+ <record name="migration-log.txt"/>
+ <migrate verbose="true"
+ sourcedir="/Users/tihomir/development/droolsjbpm/jboss-4.2.3.GA/bin/repository/"
+ sourceconfig="/Users/tihomir/development/droolsjbpm/jboss-4.2.3.GA/bin/repository.xml"
+ targetdir="/Users/tihomir/demo-jrmigration/targetrepo/"
+ targetconfig="/Users/tihomir/demo-jrmigration/targetrepo/repository.xml" />
+ </target>
+</project>
More information about the jboss-svn-commits
mailing list