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/05/04 17:18:19 UTC

svn commit: r535288 - in /incubator/uima/uimaj/trunk/uimaj-core/src/main: java/org/apache/uima/ java/org/apache/uima/analysis_engine/impl/ java/org/apache/uima/impl/ java/org/apache/uima/pear/tools/ java/org/apache/uima/resource/ java/org/apache/uima/r...

Author: mbaessler
Date: Fri May  4 08:18:18 2007
New Revision: 535288

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

add new pearSpecifier descriptor resource
create automatically a pearSpecifier when a pear file is installed

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

Added:
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/PearSpecifier.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/PearSpecifier_impl.java
Modified:
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/InstallationController.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/PackageBrowser.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/factoryConfig.xml
    incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java?view=diff&rev=535288&r1=535287&r2=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/ResourceSpecifierFactory.java Fri May  4 08:18:18 2007
@@ -56,6 +56,7 @@
 import org.apache.uima.resource.MQMessagingSpecifier;
 import org.apache.uima.resource.MailMessagingSpecifier;
 import org.apache.uima.resource.Parameter;
+import org.apache.uima.resource.PearSpecifier;
 import org.apache.uima.resource.URISpecifier;
 import org.apache.uima.resource.metadata.AllowedValue;
 import org.apache.uima.resource.metadata.Capability;
@@ -426,7 +427,14 @@
    * @return an instance of an object implementing <code>CustomResourceSpecifier</code>.
    */
   public CustomResourceSpecifier createCustomResourceSpecifier();
-  
+
+  /**
+   * Creates a <code>PearSpecifier</code>.
+   * 
+   * @return an instance of an object implementing <code>PearSpecifier</code>.
+   */
+  public PearSpecifier createPearSpecifier();
+
   /**
    * Creates a <code>FlowControllerDescription</code>
    * 

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java?view=diff&rev=535288&r1=535287&r2=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java Fri May  4 08:18:18 2007
@@ -18,8 +18,6 @@
  */
 package org.apache.uima.analysis_engine.impl;
 
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -34,12 +32,9 @@
 import org.apache.uima.analysis_engine.CasIterator;
 import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
 import org.apache.uima.cas.CAS;
-import org.apache.uima.cas.impl.CASImpl;
-import org.apache.uima.cas.impl.CASSerializer;
 import org.apache.uima.cas.impl.Serialization;
 import org.apache.uima.pear.tools.PackageBrowser;
-import org.apache.uima.resource.CustomResourceSpecifier;
-import org.apache.uima.resource.Parameter;
+import org.apache.uima.resource.PearSpecifier;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.ResourceSpecifier;
@@ -58,11 +53,6 @@
  */
 public class PearAnalysisEngineWrapper extends AnalysisEngineImplBase {
 
-  /**
-   * installed pear root directory parameter key
-   */
-  public static final String INSTALLED_PEAR_ROOT_DIR_PARAMETER = "installedPearRoot";
-
   private AnalysisEngine ae = null;
 
   private CAS cas = null;
@@ -78,32 +68,17 @@
   public boolean initialize(ResourceSpecifier aSpecifier, Map aAdditionalParams)
           throws ResourceInitializationException {
 
-    // aSpecifier must be a CustomResourceSpecifier
-    if (!(aSpecifier instanceof CustomResourceSpecifier)) {
+    // aSpecifier must be a pearSpecifier
+    if (!(aSpecifier instanceof PearSpecifier)) {
       return false;
     }
 
-    CustomResourceSpecifier customSpec = (CustomResourceSpecifier) aSpecifier;
-
-    // get custom resource specifier parameters
-    Parameter[] params = customSpec.getParameters();
-    String pearRootDirPath = null;
-    for (int i = 0; i < params.length; i++) {
-      if (params[i].getName().equals(INSTALLED_PEAR_ROOT_DIR_PARAMETER)) {
-        pearRootDirPath = params[i].getValue();
-      }
-    }
-
-    // if INSTALLED_PEAR_ROOT_DIR_PARAMETER was not available, return false.
-    // The Wrapper cannot start the pear file wihtout knowing the installed pear root directory.
-    if (pearRootDirPath == null) {
-      // log that INSTALLED_PEAR_ROOT_DIR_PARAMETER parameter is missing in the descriptor
-      UIMAFramework.getLogger(this.getClass()).logrb(Level.SEVERE, this.getClass().getName(),
-              "initialize", LOG_RESOURCE_BUNDLE, "UIMA_pear_runtime_param_not_available__SEVERE",
-              new Object[] { INSTALLED_PEAR_ROOT_DIR_PARAMETER });
-      return false;
-    }
+    //cast resource specifier to a pear specifier
+    PearSpecifier pearSpec = (PearSpecifier) aSpecifier;
 
+    // get pear path
+    String pearRootDirPath = pearSpec.getPearPath();
+ 
     try {
       // get installed pear root directory - specified as URI of the descriptor
       File pearRootDir = new File(pearRootDirPath);

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java?view=diff&rev=535288&r1=535287&r2=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/impl/ResourceSpecifierFactory_impl.java Fri May  4 08:18:18 2007
@@ -65,6 +65,7 @@
 import org.apache.uima.resource.MQMessagingSpecifier;
 import org.apache.uima.resource.MailMessagingSpecifier;
 import org.apache.uima.resource.Parameter;
+import org.apache.uima.resource.PearSpecifier;
 import org.apache.uima.resource.URISpecifier;
 import org.apache.uima.resource.metadata.AllowedValue;
 import org.apache.uima.resource.metadata.Capability;
@@ -444,6 +445,10 @@
   
   public CustomResourceSpecifier createCustomResourceSpecifier() {
     return (CustomResourceSpecifier) createObject(CustomResourceSpecifier.class);
+  }  
+
+  public PearSpecifier createPearSpecifier() {
+    return (PearSpecifier) createObject(PearSpecifier.class);
   }  
 
   public CpeCollectionReaderCasInitializer createCasInitializer() {

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/InstallationController.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/InstallationController.java?view=diff&rev=535288&r1=535287&r2=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/InstallationController.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/InstallationController.java Fri May  4 08:18:18 2007
@@ -43,10 +43,15 @@
 import java.util.Set;
 import java.util.jar.JarFile;
 
+import org.apache.uima.UIMAFramework;
+import org.apache.uima.analysis_engine.impl.PearAnalysisEngineWrapper;
 import org.apache.uima.internal.util.SystemEnvReader;
 import org.apache.uima.pear.util.FileUtil;
 import org.apache.uima.pear.util.MessageRouter;
 import org.apache.uima.pear.util.StringUtil;
+import org.apache.uima.resource.Parameter;
+import org.apache.uima.resource.PearSpecifier;
+import org.xml.sax.SAXException;
 
 /**
  * The <code>InstallationController</code> class allows installing PEAR files that contain UIMA
@@ -231,6 +236,8 @@
 
   // file generated at the end of local installation
   public static final String SET_ENV_FILE = "metadata/setenv.txt";
+  
+  public static final String PEAR_DESC_FILE_POSTFIX = "_pear.xml";
 
   // UIMA constants
   protected static final String UIMA_HOME_ENV = "UIMA_HOME";
@@ -252,7 +259,7 @@
   protected static final String LOCAL_OPT = "-local";
 
   protected static final String INSTALL_IN_ROOT_OPT = "-root";
-
+  
   // static attributes
   private static boolean __inLocalMode = false;
 
@@ -1640,6 +1647,7 @@
       generatePackageConfigFile();
       // generate 'setenv.bat' file
       generateSetEnvFile();
+      generatePearSpecifier(_mainComponentRootPath, _mainComponentId);
       getOutMsgWriter().println(
               "[InstallationController]: " + "the " + SET_ENV_FILE + " file contains required "
                       + "environment variables for this component");
@@ -1789,6 +1797,27 @@
       _installationTable.put(componentId, componentRootPath);
       _installationInsDs.put(componentId, dlgInsdObject);
     }
+  }
+  
+  /**
+   * generates the pearSpecifier to run the installed pear component. The descriptor that is created has
+   * the filename &lt;componentID&gt;_pear.xml and is created in the main component root directory. 
+   * If the file already exist, it will be overridden. 
+   * 
+   * @param mainComponentRootPath
+   *          main component root path where the pear was installed to
+   *           
+   * @param mainComponentId
+   *          main component ID of the installed pear file
+   *          
+   * @throws IOException
+   * @throws SAXException
+   */
+  protected static synchronized void generatePearSpecifier(String mainComponentRootPath, String mainComponentId) throws IOException, SAXException{    
+    PearSpecifier pearSpec = UIMAFramework.getResourceSpecifierFactory().createPearSpecifier();
+    pearSpec.setPearPath(mainComponentRootPath);
+    File outputFile = new File(mainComponentRootPath, mainComponentId + PEAR_DESC_FILE_POSTFIX);      
+    pearSpec.toXML(new FileOutputStream(outputFile));
   }
 
   /**

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/PackageBrowser.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/PackageBrowser.java?view=diff&rev=535288&r1=535287&r2=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/PackageBrowser.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/tools/PackageBrowser.java Fri May  4 08:18:18 2007
@@ -385,46 +385,69 @@
   }
 
   /**
-   * Returns the UIMA datapath setting for the component. 
+   * returns the pear component pearSpecifier file path.
    * 
-   * The datapath of the component must be specified as environment variable with the key 
+   * @return returns the pear component pearSpecifier file path or null if an archived package was
+   *         used.
+   * 
+   * @throws IOException
+   */
+  public String getComponentPearDescPath() throws IOException {
+
+    // if the package is not installed, return null
+    if (_archived) {
+      return null;
+    } else {
+      // get pear descriptor file and return it as file path
+      File pearDescFile = new File(this._rootDir, this.getInstallationDescriptor()
+              .getMainComponentId()
+              + InstallationController.PEAR_DESC_FILE_POSTFIX);
+      return pearDescFile.getAbsolutePath();
+    }
+  }
+
+  /**
+   * Returns the UIMA datapath setting for the component.
+   * 
+   * The datapath of the component must be specified as environment variable with the key
    * <code>uima.datapath</code>.
    * 
    * @return the datapath setting for the component or null if the datapath is not specified.
    * 
    * @throws IOException
-   *            If any I/O exception occurred while reading the component meta data.
+   *           If any I/O exception occurred while reading the component meta data.
    */
   public String getComponentDataPath() throws IOException {
 
-    //get all environment variables that are specified for the current pear file
+    // get all environment variables that are specified for the current pear file
     Properties pearEnvProps = InstallationController.buildTableOfEnvVars(this
             .getInstallationDescriptor());
 
-    //return the uima datapath setting if available. If not return null
+    // return the uima datapath setting if available. If not return null
     return (String) pearEnvProps.get(RelativePathResolver.UIMA_DATAPATH_PROP);
 
   }
-  
+
   /**
-   * Returns the environment variable settings for the component. The variable settings does not contain 
-   * the <code>classpath</code> and <code>uima.datapath</code> settings for the component. 
+   * Returns the environment variable settings for the component. The variable settings does not
+   * contain the <code>classpath</code> and <code>uima.datapath</code> settings for the
+   * component.
    * 
    * @return returns the environment variable settings for the component
    * 
    * @throws IOException
-   *            If any I/O exception occurred while reading the component meta data.
+   *           If any I/O exception occurred while reading the component meta data.
    */
   public Properties getComponentEnvVars() throws IOException {
-    //get all environment variables that are specified for the current pear file
+    // get all environment variables that are specified for the current pear file
     Properties pearEnvProps = InstallationController.buildTableOfEnvVars(this
             .getInstallationDescriptor());
 
-    //removes the UIMA datapath setting if available since it is already returned with the 
-    //getComponentDataPath() method.
+    // removes the UIMA datapath setting if available since it is already returned with the
+    // getComponentDataPath() method.
     pearEnvProps.remove(RelativePathResolver.UIMA_DATAPATH_PROP);
-        
-    //return the environment variables specified for the component
+
+    // return the environment variables specified for the component
     return pearEnvProps;
 
   }

Added: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/PearSpecifier.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/PearSpecifier.java?view=auto&rev=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/PearSpecifier.java (added)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/PearSpecifier.java Fri May  4 08:18:18 2007
@@ -0,0 +1,58 @@
+/*
+ * 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.resource;
+
+/**
+ * A type of <code>ResourceSpecifier</code> that locate an installed pear <code>Resource</code>.
+ * 
+ */
+public interface PearSpecifier extends ResourceServiceSpecifier {
+
+  /**
+   * Retrieves the PEAR path at which the pear Resource is located.
+   * 
+   * @return a string
+   */
+  public String getPearPath();
+
+  /**
+   * Sets the PEAR path at which a Resource is located.
+   * 
+   * @param aPearPath
+   *          a pear path string
+   */
+  public void setPearPath(String aPearPath);
+
+  /**
+   * Gets parameters that may be read by the pear resource class when it is initialized.
+   * 
+   * @return an array of parameters.  This will never return <code>null</code>.
+   */
+  public Parameter[] getParameters();
+
+  /**
+   * Sets parameters that may be read by the pear resource class when it is initialized.
+   * 
+   * @param parameters the Parameters to set.
+   */
+  public void setParameters(Parameter[] parameters);
+
+
+}

Added: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/PearSpecifier_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/PearSpecifier_impl.java?view=auto&rev=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/PearSpecifier_impl.java (added)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/PearSpecifier_impl.java Fri May  4 08:18:18 2007
@@ -0,0 +1,83 @@
+/*
+ * 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.resource.impl;
+
+import org.apache.uima.resource.Parameter;
+import org.apache.uima.resource.PearSpecifier;
+import org.apache.uima.resource.metadata.impl.MetaDataObject_impl;
+import org.apache.uima.resource.metadata.impl.PropertyXmlInfo;
+import org.apache.uima.resource.metadata.impl.XmlizationInfo;
+
+/**
+ * Reference implementation of {@link org.apache.uima.resource.PearSpecifier}.
+ * 
+ * 
+ */
+public class PearSpecifier_impl extends MetaDataObject_impl implements PearSpecifier {
+
+  static final long serialVersionUID = -7910540167197537337L;
+
+  /** PEAR path setting */
+  private String mPearPath;
+
+  private Parameter[] mParameters;
+
+  /**
+   * Creates a new <code>PearSpecifier_impl</code>.
+   */
+  public PearSpecifier_impl() {
+  }
+
+  /**
+   * @return Returns the Parameters.
+   */
+  public Parameter[] getParameters() {
+    return this.mParameters;
+  }
+
+  /**
+   * @param parameters
+   *          The Parameters to set.
+   */
+  public void setParameters(Parameter[] parameters) {
+    this.mParameters = parameters;
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.uima.resource.PearSpecifier#getPearPath()
+   */
+  public String getPearPath() {
+    return this.mPearPath;
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.uima.resource.PearSpecifier#setPearPath(java.lang.String)
+   */
+  public void setPearPath(String aPearPath) {
+    this.mPearPath = aPearPath;    
+  }
+
+  protected XmlizationInfo getXmlizationInfo() {
+    return XMLIZATION_INFO;
+  }
+
+  static final private XmlizationInfo XMLIZATION_INFO = new XmlizationInfo("pearSpecifier",
+          new PropertyXmlInfo[] { new PropertyXmlInfo("pearPath"), new PropertyXmlInfo("parameters") });
+}

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java?view=diff&rev=535288&r1=535287&r2=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLParser.java Fri May  4 08:18:18 2007
@@ -30,6 +30,7 @@
 import org.apache.uima.collection.metadata.CpeDescription;
 import org.apache.uima.flow.FlowControllerDescription;
 import org.apache.uima.resource.CustomResourceSpecifier;
+import org.apache.uima.resource.PearSpecifier;
 import org.apache.uima.resource.ResourceSpecifier;
 import org.apache.uima.resource.URISpecifier;
 import org.apache.uima.resource.metadata.FsIndexCollection;
@@ -621,6 +622,36 @@
    *           if the input XML is not valid or does not specify a valid CustomResourceSpecifier
    */
   public CustomResourceSpecifier parseCustomResourceSpecifier(XMLInputSource aInput,
+          ParsingOptions aOptions) throws InvalidXMLException;
+
+  /**
+   * Parses a PearSpecifier from an XML input stream.
+   * 
+   * @param aInput
+   *          the input source from which to read the XML document
+   * 
+   * @return a <code>PearSpecifier</code> object constructed from the XML document
+   * 
+   * @throws InvalidXMLException
+   *           if the input XML is not valid or does not specify a valid PearSpecifier
+   */
+  public PearSpecifier parsePearSpecifier(XMLInputSource aInput)
+          throws InvalidXMLException;
+
+  /**
+   * Parses a PearSpecifier from an XML input stream.
+   * 
+   * @param aInput
+   *          the input source from which to read the XML document
+   * @param aOptions
+   *          option settings
+   * 
+   * @return a <code>PearSpecifier</code> object constructed from the XML document
+   * 
+   * @throws InvalidXMLException
+   *           if the input XML is not valid or does not specify a valid PearSpecifier
+   */
+  public PearSpecifier parsePearSpecifier(XMLInputSource aInput,
           ParsingOptions aOptions) throws InvalidXMLException;
 
   /**

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java?view=diff&rev=535288&r1=535287&r2=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java Fri May  4 08:18:18 2007
@@ -42,6 +42,7 @@
 import org.apache.uima.flow.FlowControllerDescription;
 import org.apache.uima.internal.util.XMLUtils;
 import org.apache.uima.resource.CustomResourceSpecifier;
+import org.apache.uima.resource.PearSpecifier;
 import org.apache.uima.resource.ResourceSpecifier;
 import org.apache.uima.resource.URISpecifier;
 import org.apache.uima.resource.metadata.FsIndexCollection;
@@ -57,7 +58,6 @@
 import org.apache.uima.util.XMLInputSource;
 import org.apache.uima.util.XMLParser;
 import org.apache.uima.util.XMLizable;
-import org.apache.uima.util.XMLParser.ParsingOptions;
 import org.w3c.dom.Element;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXNotRecognizedException;
@@ -811,6 +811,30 @@
               CustomResourceSpecifier.class.getName(), object.getClass().getName() });
     }
   }
+  
+  /* (non-Javadoc)
+   * @see org.apache.uima.util.XMLParser#parsePearSpecifier(org.apache.uima.util.XMLInputSource)
+   */
+  public PearSpecifier parsePearSpecifier(XMLInputSource aInput) throws InvalidXMLException {
+    return parsePearSpecifier(aInput, DEFAULT_PARSING_OPTIONS);
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.uima.util.XMLParser#parsePearSpecifier(org.apache.uima.util.XMLInputSource, org.apache.uima.util.XMLParser.ParsingOptions)
+   */
+  public PearSpecifier parsePearSpecifier(XMLInputSource aInput, ParsingOptions aOptions) throws InvalidXMLException {
+    // attempt to locate resource specifier schema
+    URL schemaURL = getResourceSpecifierSchemaUrl();
+    XMLizable object = parse(aInput, RESOURCE_SPECIFIER_NAMESPACE, schemaURL, aOptions);
+
+    if (object instanceof PearSpecifier) {
+      return (PearSpecifier) object;
+    } else {
+      throw new InvalidXMLException(InvalidXMLException.INVALID_CLASS, new Object[] {
+              PearSpecifier.class.getName(), object.getClass().getName() });
+    }
+  }
+
   /*
    * (non-Javadoc)
    * 

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/factoryConfig.xml
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/factoryConfig.xml?view=diff&rev=535288&r1=535287&r2=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/factoryConfig.xml (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/factoryConfig.xml Fri May  4 08:18:18 2007
@@ -36,6 +36,8 @@
 	  		     resource="org.apache.uima.adapter.vinci.VinciAnalysisEngineServiceAdapter"/>
 	  	<binding specifier="org.apache.uima.resource.URISpecifier" 
 	  		     resource="org.apache.uima.adapter.soap.SoapAnalysisEngineServiceAdapter"/>	     
+		<binding specifier="org.apache.uima.resource.PearSpecifier" 
+	  		     resource="org.apache.uima.analysis_engine.impl.PearAnalysisEngineWrapper"/>	  		     
 	  	<binding specifier="org.apache.uima.resource.FileResourceSpecifier" 
 	  		     resource="org.apache.uima.resource.impl.DataResource_impl"/>
 	  	<binding specifier="org.apache.uima.resource.FileLanguageResourceSpecifier" 
@@ -107,7 +109,8 @@
 		<binding element="typeDescription" interface="org.apache.uima.resource.metadata.TypeDescription" class="org.apache.uima.resource.metadata.impl.TypeDescription_impl"/>
 		<binding element="typePriorities" interface="org.apache.uima.resource.metadata.TypePriorities" class="org.apache.uima.resource.metadata.impl.TypePriorities_impl"/>
 		<binding element="typeSystemDescription" interface="org.apache.uima.resource.metadata.TypeSystemDescription" class="org.apache.uima.resource.metadata.impl.TypeSystemDescription_impl"/>
-		<binding element="uriSpecifier" interface="org.apache.uima.resource.URISpecifier" class="org.apache.uima.resource.impl.URISpecifier_impl"/>
+		<binding element="uriSpecifier" interface="org.apache.uima.resource.URISpecifier" class="org.apache.uima.resource.impl.URISpecifier_impl"/>
+		<binding element="pearSpecifier" interface="org.apache.uima.resource.PearSpecifier" class="org.apache.uima.resource.impl.PearSpecifier_impl"/>
 		<binding element="value" interface="org.apache.uima.resource.metadata.AllowedValue" class="org.apache.uima.resource.metadata.impl.AllowedValue_impl"/>
 	    <binding element="sofaMapping" interface="org.apache.uima.analysis_engine.metadata.SofaMapping" class="org.apache.uima.analysis_engine.metadata.impl.SofaMapping_impl"/>
 	

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties?view=diff&rev=535288&r1=535287&r2=535288
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/impl/log_messages.properties Fri May  4 08:18:18 2007
@@ -96,8 +96,6 @@
 
 UIMA_continuing_after_exception__FINE = An exception occurred, but the Flow Controller decided that processing can continue.
 
-UIMA_pear_runtime_param_not_available__SEVERE = UIMA pear runtime parameter "{0}" not available in the customResourceSpecifier.
-
 UIMA_pear_runtime_system_var_already_set__WARNING = UIMA pear runtime: System environment variable "{0}" already set, but was replace with "{1}" by UIMA component {2}.
 
 UIMA_pear_runtime_set_system_var__CONFIG = UIMA pear runtime set system environment variable "{0}" for UIMA component {1}.