You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by mb...@apache.org on 2007/04/24 14:35:33 UTC

svn commit: r531905 - in /incubator/uima/sandbox/trunk/PearPackagingAntTask: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/uima/ src/main/java/org/apache/uima/pear/ src/main/java/org/apache/uima/...

Author: mbaessler
Date: Tue Apr 24 05:35:32 2007
New Revision: 531905

URL: http://svn.apache.org/viewvc?view=rev&rev=531905
Log:
UIMA-384

initial check-in of the pear packaging ANT task project

JIRA ticket https://issues.apache.org/jira/browse/UIMA-384

Added:
    incubator/uima/sandbox/trunk/PearPackagingAntTask/buildSample.xml
    incubator/uima/sandbox/trunk/PearPackagingAntTask/pom.xml
    incubator/uima/sandbox/trunk/PearPackagingAntTask/src/
    incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/
    incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/
    incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/
    incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/apache/
    incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/apache/uima/
    incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/apache/uima/pear/
    incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/apache/uima/pear/tools/
    incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/apache/uima/pear/tools/PearPackagingAntTask.java

Added: incubator/uima/sandbox/trunk/PearPackagingAntTask/buildSample.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/PearPackagingAntTask/buildSample.xml?view=auto&rev=531905
==============================================================================
--- incubator/uima/sandbox/trunk/PearPackagingAntTask/buildSample.xml (added)
+++ incubator/uima/sandbox/trunk/PearPackagingAntTask/buildSample.xml Tue Apr 24 05:35:32 2007
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<project name="PearPackagingTask" default="pearPackagingSample" basedir=".">
+
+	<!-- define the classpath settings for the pear packaging task. 
+		 uimaj-pear-task.jar and uima-core.jar is needed -->
+	<path id="pearTask.classpath">
+	    <fileset dir="/home/apache-uima/lib/" includes="uimaj-pear-task.jar"/>
+		<fileset dir="/home/apache-uima/lib/" includes="uima-core.jar"/>
+	</path>
+	
+	<!-- pear packaging sample target -->
+	<target name="pearPackagingSample">
+	  	
+		<!-- Define pear packaging task -->
+		<taskdef name="packagePear" 
+	  		        classname="org.apache.uima.pear.tools.PearPackagingAntTask"
+			  		classpathref="pearTask.classpath"/>
+
+		<!-- Sample pear packaging -->
+	    <packagePear componentID="SampleAnnotator"
+	    	mainComponentDesc="desc/mainComponentDesc.xml" 
+	    	classpath="$main_root/pearClasspahtEntry;$main_root/anotherPearClasspahtEntry" 
+	    	datapath="$main_root/resources"
+	    	mainComponentDir="/home/user/workspace/SampeAnntotator" 
+	    	targetDir="/home/user/pearArchive">
+	    	<envVar name="ENV_VAR_NO1" value="value1"/>
+	    	<envVar name="ENV_VAR_NO2" value="value2"/>
+		</packagePear>
+	  </target>
+
+</project>
\ No newline at end of file

Added: incubator/uima/sandbox/trunk/PearPackagingAntTask/pom.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/PearPackagingAntTask/pom.xml?view=auto&rev=531905
==============================================================================
--- incubator/uima/sandbox/trunk/PearPackagingAntTask/pom.xml (added)
+++ incubator/uima/sandbox/trunk/PearPackagingAntTask/pom.xml Tue Apr 24 05:35:32 2007
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<project>
+	<parent>
+		<artifactId>uimaj</artifactId>
+		<groupId>org.apache.uima</groupId>
+		<version>2.2-incubating-SNAPSHOT</version>
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.apache.uima</groupId>
+	<artifactId>PearPackagingAntTask</artifactId>
+	<name>Apache UIMA PEAR packaging ANT task</name>
+	<version>2.2-incubating-SNAPSHOT</version>
+	<url>http://incubator.apache.org/uima</url>
+	<build>
+		<finalName>uimaj-pear-task</finalName>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.uima</groupId>
+			<artifactId>uimaj-core</artifactId>
+			<version>2.2-incubating-SNAPSHOT</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.ant</groupId>
+			<artifactId>ant</artifactId>
+			<version>1.7.0</version>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file

Added: incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/apache/uima/pear/tools/PearPackagingAntTask.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/apache/uima/pear/tools/PearPackagingAntTask.java?view=auto&rev=531905
==============================================================================
--- incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/apache/uima/pear/tools/PearPackagingAntTask.java (added)
+++ incubator/uima/sandbox/trunk/PearPackagingAntTask/src/main/java/org/apache/uima/pear/tools/PearPackagingAntTask.java Tue Apr 24 05:35:32 2007
@@ -0,0 +1,177 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.uima.pear.tools;
+
+import java.util.ArrayList;
+import java.util.Properties;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.types.Parameter;
+
+/**
+ * Class to create an ANT task to package a UIMA PEAR file. 
+ * 
+ * See the example below on how to add the target to your ant build.
+ * 
+ * <pre>
+ *
+ * &lt;!-- define the classpath settings for the pear packaging task. 
+ *      uimaj-pear-task.jar and uima-core.jar is needed --&gt;
+ * &lt;path id="pearTask.classpath"&gt;
+ *     &lt;fileset dir="/home/apache-uima/lib/" includes="uimaj-pear-task.jar"/&gt;
+ *     &lt;fileset dir="/home/apache-uima/lib/" includes="uima-core.jar"/&gt;
+ * &lt;/path&gt;
+ * 
+ * &lt;!-- pear packaging sample target --&gt;
+ * &lt;target name="pearPackagingSample"&gt;
+ *     
+ *   &lt;!-- Define pear packaging task --&gt;
+ *   &lt;taskdef name="packagePear" 
+ *       classname="org.apache.uima.pear.tools.PearPackagingAntTask"
+ *       classpathref="pearTask.classpath"/&gt;
+ *
+ *    &lt;!-- Sample pear packaging --&gt;
+ *    &lt;packagePear componentID="SampleAnnotator"
+ *        mainComponentDesc="desc/mainComponentDesc.xml" 
+ *        classpath="$main_root/pearClasspahtEntry;$main_root/anotherPearClasspahtEntry" 
+ *        datapath="$main_root/resources"
+ *        mainComponentDir="/home/user/workspace/SampeAnntotator" 
+ *        targetDir="/home/user/pearArchive"&gt;
+ *        &lt;envVar name="ENV_VAR_NO1" value="value1"/&gt;
+ *        &lt;envVar name="ENV_VAR_NO2" value="value2"/&gt;
+ *   &lt;/packagePear&gt;
+ * &lt;/target&gt;
+ * </pre>
+ * 
+ */
+public class PearPackagingAntTask extends Task {
+
+  private String componentID = null;
+
+  private String mainComponentDesc = null;
+
+  private String classpath = null;
+
+  private String datapath = null;
+
+  private String mainComponentDir = null;
+
+  private String targetDir = null;
+
+  private ArrayList params = new ArrayList();
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.tools.ant.Task#execute()
+   */
+  public void execute() throws BuildException {
+    super.execute();
+
+    // get environment variables (<envVar name="ENV_VAR_NO1" value="value1"/>) specified for the pear component
+    Properties props = null;
+    if (this.params.size() > 0) {
+      props = new Properties();
+      for (int i = 0; i < this.params.size(); i++) {
+        Parameter param = (Parameter) this.params.get(i);
+        props.setProperty(param.getName(), param.getValue());
+      }
+    }
+
+    //call pear packager with the ANT defined information
+    try {
+      PackageCreator.generatePearPackage(this.componentID, this.mainComponentDesc, this.classpath,
+              this.datapath, this.mainComponentDir, this.targetDir, props);
+    } catch (PackageCreatorException ex) {
+      throw new BuildException(ex);
+    }
+  }
+
+  /**
+   * add environment variable for the pear component
+   * 
+   * @param envVar 
+   *          environment variable setting
+   */
+  public void addEnvVar(Parameter envVar) {
+    this.params.add(envVar);
+  }
+
+  /**
+   * set classpath for the pear component. 
+   * 
+   * @param classpath
+   *          the classpath to set
+   */
+  public void setClasspath(String classpath) {
+    this.classpath = classpath;
+  }
+
+  /**
+   * set component ID for the pear component
+   * 
+   * @param componentID
+   *          the componentID to set
+   */
+  public void setComponentID(String componentID) {
+    this.componentID = componentID;
+  }
+
+  /**
+   * the datapath setting for the pear component
+   * 
+   * @param datapath
+   *          the datapath to set
+   */
+  public void setDatapath(String datapath) {
+    this.datapath = datapath;
+  }
+
+  /**
+   * the main component descriptor for the pear component
+   * 
+   * @param mainComponentDesc
+   *          the mainComponentDesc to set
+   */
+  public void setMainComponentDesc(String mainComponentDesc) {
+    this.mainComponentDesc = mainComponentDesc;
+  }
+
+  /**
+   * the main component directory for the pear data
+   * 
+   * @param mainComponentDir
+   *          the mainComponentDir to set
+   */
+  public void setMainComponentDir(String mainComponentDir) {
+    this.mainComponentDir = mainComponentDir;
+  }
+
+  /**
+   * the target directory for the output
+   * 
+   * @param targetDir
+   *          the targetDir to set
+   */
+  public void setTargetDir(String targetDir) {
+    this.targetDir = targetDir;
+  }
+
+}