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/02/07 11:56:00 UTC

svn commit: r504495 - /incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/util/UIMAUtil.java

Author: mbaessler
Date: Wed Feb  7 02:56:00 2007
New Revision: 504495

URL: http://svn.apache.org/viewvc?view=rev&rev=504495
Log:
JIRA ticket UIMA-281 (https://issues.apache.org/jira/browse/UIMA-281)

apply UIMAUtil patch from Lev Kozakov

Modified:
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/util/UIMAUtil.java

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/util/UIMAUtil.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/util/UIMAUtil.java?view=diff&rev=504495&r1=504494&r2=504495
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/util/UIMAUtil.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/pear/util/UIMAUtil.java Wed Feb  7 02:56:00 2007
@@ -1,267 +1,264 @@
-/*
- * 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.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Hashtable;
-
-import org.apache.uima.UIMAException;
-import org.apache.uima.UIMAFramework;
-import org.apache.uima.UIMARuntimeException;
-import org.apache.uima.analysis_engine.AnalysisEngineDescription;
-import org.apache.uima.collection.CasConsumerDescription;
-import org.apache.uima.collection.CasInitializerDescription;
-import org.apache.uima.collection.CollectionReaderDescription;
-import org.apache.uima.resource.ResourceSpecifier;
-import org.apache.uima.util.XMLInputSource;
-import org.apache.uima.util.XMLParser;
-
-/**
- * The <code>UIMAUtil</code> class provides convenient methods for handling UIMA specific objects.
- * 
- */
-
-public class UIMAUtil {
-  // UIMA component categories
-  /**
-   * Analysis Engine
-   */
-  public static final String ANALYSIS_ENGINE_CTG = "AE";
-
-  /**
-   * CAS Consumer
-   */
-  public static final String CAS_CONSUMER_CTG = "CC";
-
-  /**
-   * CAS Initializer
-   */
-  public static final String CAS_INITIALIZER_CTG = "CI";
-
-  /**
-   * Collection Reader
-   */
-  public static final String COLLECTION_READER_CTG = "CR";
-
-  /**
-   * CPE Configuration
-   */
-  public static final String CPE_CONFIGURATION_CTG = "CPE";
-
-  /**
-   * Type System
-   */
-  public static final String TYPE_SYSTEM_CTG = "TS";
-
-  /**
-   * Reusable Resource
-   */
-  public static final String REUSABLE_RESOURCE_CTG = "RR";
-
-  // static attributes
-  private static Hashtable __errTableByUri = new Hashtable();
-
-  /**
-   * Returns the last logged <code>Exception</code> object associated with a given XML descriptor
-   * file.
-   * 
-   * @param xmlDescFile
-   *          The given XML descriptor file.
-   * @return The last logged <code>Exception</code> object associated with the given XML
-   *         descriptor file.
-   */
-  public static Exception getLastErrorForXmlDesc(File xmlDescFile) {
-    return (Exception) __errTableByUri.get(xmlDescFile.getAbsolutePath());
-  }
-
-  /**
-   * Returns the last logged <code>Exception</code> object associated with a given XML descriptor
-   * URL.
-   * 
-   * @param xmlDescUrl
-   *          The given XML descriptor URL.
-   * @return The last logged <code>Exception</code> object associated with the given XML
-   *         descriptor URL.
-   */
-  public static Exception getLastErrorForXmlDesc(URL xmlDescUrl) {
-    return (Exception) __errTableByUri.get(xmlDescUrl.toString());
-  }
-
-  /**
-   * Identifies a given UIMA component/resource category based on its XML descriptor. If succeeded,
-   * returns appropriate UIMA component category ID, otherwise returns <code>null</code>. If the
-   * UIMA component category cannot be identified based on the given XML descriptor file, the
-   * associated UIMA exception is logged and can be retrieved later by using the
-   * <code>getLastErrorForXmlDesc()</code> method.
-   * 
-   * @param xmlDescFile
-   *          The given component XML descriptor file.
-   * @return UIMA component category ID or <code>null</code>, if the category cannot be idetified
-   *         based on the given XML descriptor file.
-   * @throws IOException
-   *           If any I/O exception occurred.
-   */
-  public static synchronized String identifyUimaComponentCategory(File xmlDescFile)
-          throws IOException {
-    return identifyUimaComponentCategory(xmlDescFile, null);
-  }
-
-  /**
-   * Identifies a given UIMA component/resource category based on its XML descriptor. If succeeded,
-   * returns appropriate UIMA component category ID, otherwise returns <code>null</code>. If the
-   * UIMA component category cannot be identified based on the given XML descriptor file, the
-   * associated UIMA exception is logged and can be retrieved later by using the
-   * <code>getLastErrorForXmlDesc()</code> method.
-   * 
-   * @param xmlDescUrl
-   *          The given component XML descriptor URL.
-   * @return UIMA component category ID or <code>null</code>, if the category cannot be idetified
-   *         based on the given XML descriptor file.
-   * @throws IOException
-   *           If any I/O exception occurred.
-   */
-  public static synchronized String identifyUimaComponentCategory(URL xmlDescUrl)
-          throws IOException {
-    return identifyUimaComponentCategory(null, xmlDescUrl);
-  }
-
-  /**
-   * Internal method that identifies a given UIMA component/resource category based on its XML
-   * descriptor, passed as File or URL. If succeeded, returns appropriate UIMA component category
-   * ID, otherwise returns <code>null</code>. If the UIMA component category cannot be identified
-   * based on the given XML descriptor file, the associated UIMA exception is logged and can be
-   * retrieved later by using the <code>getLastErrorForXmlDesc()</code> method.
-   * 
-   * @param xmlDescFile
-   *          The given component XML descriptor file.
-   * @param xmlDescUrl
-   *          The given component XML descriptor URL.
-   * @return UIMA component category ID or <code>null</code>, if the category cannot be idetified
-   *         based on the given XML descriptor file.
-   * @throws IOException
-   *           If any I/O exception occurred.
-   */
-  private static synchronized String identifyUimaComponentCategory(File xmlDescFile, URL xmlDescUrl)
-          throws IOException {
-    String uimaCompCtg = null;
-    XMLInputSource xmlSource = null;
-    try {
-      String xmlDescUri = (xmlDescFile != null) ? xmlDescFile.getAbsolutePath() : xmlDescUrl
-              .toString();
-      // clean error message
-      __errTableByUri.remove(xmlDescUri);
-      // get XMLParser
-      XMLParser xmlParser = UIMAFramework.getXMLParser();
-      // create XML source
-      xmlSource = (xmlDescFile != null) ? new XMLInputSource(xmlDescFile) : new XMLInputSource(
-              xmlDescUrl);
-      // parse XML source and create resource specifier
-      ResourceSpecifier resourceSpec = null;
-      try {
-        resourceSpec = xmlParser.parseResourceSpecifier(xmlSource);
-      } catch (UIMAException err) {
-        __errTableByUri.put(xmlDescFile, err);
-      } catch (UIMARuntimeException exc) {
-        __errTableByUri.put(xmlDescFile, exc);
-      }
-      if (resourceSpec != null) { // AE | CR | CI | CC ?
-        // identify UIMA resource category
-        if (resourceSpec instanceof AnalysisEngineDescription) {
-          uimaCompCtg = ANALYSIS_ENGINE_CTG;
-        } else if (resourceSpec instanceof CollectionReaderDescription) {
-          uimaCompCtg = COLLECTION_READER_CTG;
-        } else if (resourceSpec instanceof CasInitializerDescription) {
-          uimaCompCtg = CAS_INITIALIZER_CTG;
-        } else if (resourceSpec instanceof CasConsumerDescription) {
-          uimaCompCtg = CAS_CONSUMER_CTG;
-        }
-      }
-      if (uimaCompCtg == null) { // CPE ?
-        // refresh XML source object
-        try {
-          xmlSource.getInputStream().close();
-        } catch (Exception e) {
-        }
-        xmlSource = (xmlDescFile != null) ? new XMLInputSource(xmlDescFile) : new XMLInputSource(
-                xmlDescUrl);
-        try {
-          // try parsing CPE configuration
-          xmlParser.parseCpeDescription(xmlSource);
-          uimaCompCtg = CPE_CONFIGURATION_CTG;
-          __errTableByUri.remove(xmlDescFile);
-        } catch (UIMAException err) {
-          __errTableByUri.put(xmlDescFile, err);
-        } catch (UIMARuntimeException exc) {
-          __errTableByUri.put(xmlDescFile, exc);
-        }
-      }
-      if (uimaCompCtg == null) { // TS ?
-        // refresh XML source object
-        try {
-          xmlSource.getInputStream().close();
-        } catch (Exception e) {
-        }
-        xmlSource = (xmlDescFile != null) ? new XMLInputSource(xmlDescFile) : new XMLInputSource(
-                xmlDescUrl);
-        try {
-          // try parsing TS description
-          xmlParser.parseTypeSystemDescription(xmlSource);
-          uimaCompCtg = TYPE_SYSTEM_CTG;
-          __errTableByUri.remove(xmlDescFile);
-        } catch (UIMAException err) {
-          __errTableByUri.put(xmlDescFile, err);
-        } catch (UIMARuntimeException exc) {
-          __errTableByUri.put(xmlDescFile, exc);
-        }
-      }
-      if (uimaCompCtg == null) { // RR ?
-        // refresh XML source object
-        try {
-          xmlSource.getInputStream().close();
-        } catch (Exception e) {
-        }
-        xmlSource = new XMLInputSource(xmlDescFile);
-        try {
-          // try parsing RES manager configuration
-          xmlParser.parseResourceManagerConfiguration(xmlSource);
-          uimaCompCtg = REUSABLE_RESOURCE_CTG;
-          __errTableByUri.remove(xmlDescFile);
-        } catch (UIMAException err) {
-          __errTableByUri.put(xmlDescFile, err);
-        } catch (UIMARuntimeException exc) {
-          __errTableByUri.put(xmlDescFile, exc);
-        }
-      }
-    } catch (IOException exc) {
-      throw exc;
-    } catch (Exception err) {
-      __errTableByUri.put(xmlDescFile, err);
-    } finally {
-      if (xmlSource != null && xmlSource.getInputStream() != null)
-        try {
-          xmlSource.getInputStream().close();
-        } catch (Exception e) {
-        }
-    }
-    return uimaCompCtg;
-  }
-}
+/*
+ * 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.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Hashtable;
+
+import org.apache.uima.UIMAException;
+import org.apache.uima.UIMAFramework;
+import org.apache.uima.UIMARuntimeException;
+import org.apache.uima.analysis_engine.AnalysisEngineDescription;
+import org.apache.uima.collection.CasConsumerDescription;
+import org.apache.uima.collection.CasInitializerDescription;
+import org.apache.uima.collection.CollectionReaderDescription;
+import org.apache.uima.resource.ResourceSpecifier;
+import org.apache.uima.util.XMLInputSource;
+import org.apache.uima.util.XMLParser;
+
+/**
+ * The <code>UIMAUtil</code> class provides convenient methods for handling UIMA specific objects.
+ * 
+ */
+
+public class UIMAUtil {
+  // UIMA component categories
+  /**
+   * Analysis Engine
+   */
+  public static final String ANALYSIS_ENGINE_CTG = "AE";
+
+  /**
+   * CAS Consumer
+   */
+  public static final String CAS_CONSUMER_CTG = "CC";
+
+  /**
+   * CAS Initializer
+   */
+  public static final String CAS_INITIALIZER_CTG = "CI";
+
+  /**
+   * Collection Reader
+   */
+  public static final String COLLECTION_READER_CTG = "CR";
+
+  /**
+   * CPE Configuration
+   */
+  public static final String CPE_CONFIGURATION_CTG = "CPE";
+
+  /**
+   * Type System
+   */
+  public static final String TYPE_SYSTEM_CTG = "TS";
+
+  /**
+   * Reusable Resource
+   */
+  public static final String REUSABLE_RESOURCE_CTG = "RR";
+
+  // static attributes
+  private static Hashtable __errTableByUri = new Hashtable();
+
+  /**
+   * Returns the last logged <code>Exception</code> object associated with a given XML descriptor
+   * file.
+   * 
+   * @param xmlDescFile
+   *          The given XML descriptor file.
+   * @return The last logged <code>Exception</code> object associated with the given XML
+   *         descriptor file.
+   */
+  public static Exception getLastErrorForXmlDesc(File xmlDescFile) {
+    return (Exception) __errTableByUri.get(xmlDescFile.getAbsolutePath());
+  }
+
+  /**
+   * Returns the last logged <code>Exception</code> object associated with a given XML descriptor
+   * URL.
+   * 
+   * @param xmlDescUrl
+   *          The given XML descriptor URL.
+   * @return The last logged <code>Exception</code> object associated with the given XML
+   *         descriptor URL.
+   */
+  public static Exception getLastErrorForXmlDesc(URL xmlDescUrl) {
+    return (Exception) __errTableByUri.get(xmlDescUrl.toString());
+  }
+
+  /**
+   * Identifies a given UIMA component/resource category based on its XML descriptor. If succeeded,
+   * returns appropriate UIMA component category ID, otherwise returns <code>null</code>. If the
+   * UIMA component category cannot be identified based on the given XML descriptor file, the
+   * associated UIMA exception is logged and can be retrieved later by using the
+   * <code>getLastErrorForXmlDesc()</code> method.
+   * 
+   * @param xmlDescFile
+   *          The given component XML descriptor file.
+   * @return UIMA component category ID or <code>null</code>, if the category cannot be idetified
+   *         based on the given XML descriptor file.
+   * @throws IOException
+   *           If any I/O exception occurred.
+   */
+  public static synchronized String identifyUimaComponentCategory(File xmlDescFile)
+          throws IOException {
+    return identifyUimaComponentCategory(xmlDescFile, null);
+  }
+
+  /**
+   * Identifies a given UIMA component/resource category based on its XML descriptor. If succeeded,
+   * returns appropriate UIMA component category ID, otherwise returns <code>null</code>. If the
+   * UIMA component category cannot be identified based on the given XML descriptor file, the
+   * associated UIMA exception is logged and can be retrieved later by using the
+   * <code>getLastErrorForXmlDesc()</code> method.
+   * 
+   * @param xmlDescUrl
+   *          The given component XML descriptor URL.
+   * @return UIMA component category ID or <code>null</code>, if the category cannot be idetified
+   *         based on the given XML descriptor file.
+   * @throws IOException
+   *           If any I/O exception occurred.
+   */
+  public static synchronized String identifyUimaComponentCategory(URL xmlDescUrl)
+          throws IOException {
+    return identifyUimaComponentCategory(null, xmlDescUrl);
+  }
+
+  /**
+   * Internal method that identifies a given UIMA component/resource category based on its XML
+   * descriptor, passed as File or URL. If succeeded, returns appropriate UIMA component category
+   * ID, otherwise returns <code>null</code>. If the UIMA component category cannot be identified
+   * based on the given XML descriptor file, the associated UIMA exception is logged and can be
+   * retrieved later by using the <code>getLastErrorForXmlDesc()</code> method.
+   * 
+   * @param xmlDescFile
+   *          The given component XML descriptor file.
+   * @param xmlDescUrl
+   *          The given component XML descriptor URL.
+   * @return UIMA component category ID or <code>null</code>, if the category cannot be idetified
+   *         based on the given XML descriptor file.
+   * @throws IOException
+   *           If any I/O exception occurred.
+   */
+  private static synchronized String identifyUimaComponentCategory(File xmlDescFile, URL xmlDescUrl)
+          throws IOException {
+    String uimaCompCtg = null;
+    XMLInputSource xmlSource = null;
+    String xmlDescUri = (xmlDescFile != null) ? xmlDescFile.getAbsolutePath() : xmlDescUrl.toString();
+    try {
+      // clean error message
+      __errTableByUri.remove(xmlDescUri);
+      // get XMLParser
+      XMLParser xmlParser = UIMAFramework.getXMLParser();
+      // create XML source
+      xmlSource = (xmlDescFile != null) ? new XMLInputSource(xmlDescFile) : new XMLInputSource(
+              xmlDescUrl);
+      // parse XML source and create resource specifier
+      ResourceSpecifier resourceSpec = null;
+      try {
+        resourceSpec = xmlParser.parseResourceSpecifier(xmlSource);
+      } catch (UIMAException err) {
+				__errTableByUri.put( xmlDescUri, err );
+      } catch (UIMARuntimeException exc) {
+				__errTableByUri.put( xmlDescUri, exc );
+      }
+      if (resourceSpec != null) { // AE | CR | CI | CC ?
+        // identify UIMA resource category
+        if (resourceSpec instanceof AnalysisEngineDescription) {
+          uimaCompCtg = ANALYSIS_ENGINE_CTG;
+        } else if (resourceSpec instanceof CollectionReaderDescription) {
+          uimaCompCtg = COLLECTION_READER_CTG;
+        } else if (resourceSpec instanceof CasInitializerDescription) {
+          uimaCompCtg = CAS_INITIALIZER_CTG;
+        } else if (resourceSpec instanceof CasConsumerDescription) {
+          uimaCompCtg = CAS_CONSUMER_CTG;
+        }
+      }
+      if (uimaCompCtg == null) { // CPE ?
+        // refresh XML source object
+        try {
+          xmlSource.getInputStream().close();
+        } catch (Exception e) {
+        }
+        xmlSource = (xmlDescFile != null) ? new XMLInputSource(xmlDescFile) : new XMLInputSource(xmlDescUrl);
+        try {
+          // try parsing CPE configuration
+          xmlParser.parseCpeDescription(xmlSource);
+          uimaCompCtg = CPE_CONFIGURATION_CTG;
+          __errTableByUri.remove( xmlDescUri );
+        } catch (UIMAException err) {
+          __errTableByUri.put( xmlDescUri, err );
+        } catch (UIMARuntimeException exc) {
+          __errTableByUri.put( xmlDescUri, exc );
+        }
+      }
+      if (uimaCompCtg == null) { // TS ?
+        // refresh XML source object
+        try {
+          xmlSource.getInputStream().close();
+        } catch (Exception e) {
+        }
+        xmlSource = (xmlDescFile != null) ? new XMLInputSource(xmlDescFile) : new XMLInputSource(xmlDescUrl);
+        try {
+          // try parsing TS description
+          xmlParser.parseTypeSystemDescription(xmlSource);
+          uimaCompCtg = TYPE_SYSTEM_CTG;
+          __errTableByUri.remove( xmlDescUri );
+        } catch (UIMAException err) {
+          __errTableByUri.put( xmlDescUri, err );
+        } catch (UIMARuntimeException exc) {
+          __errTableByUri.put( xmlDescUri, exc );
+        }
+      }
+      if (uimaCompCtg == null) { // RR ?
+        // refresh XML source object
+        try {
+          xmlSource.getInputStream().close();
+        } catch (Exception e) {
+        }
+        xmlSource = (xmlDescFile != null) ? new XMLInputSource(xmlDescFile) : new XMLInputSource(xmlDescUrl);
+        try {
+          // try parsing RES manager configuration
+          xmlParser.parseResourceManagerConfiguration(xmlSource);
+          uimaCompCtg = REUSABLE_RESOURCE_CTG;
+          __errTableByUri.remove( xmlDescUri );
+        } catch (UIMAException err) {
+          __errTableByUri.put( xmlDescUri, err );
+        } catch (UIMARuntimeException exc) {
+          __errTableByUri.put( xmlDescUri, exc );
+        }
+      }
+    } catch (IOException exc) {
+      throw exc;
+    } catch (Exception err) {
+      __errTableByUri.put( xmlDescUri, err );
+    } finally {
+      if (xmlSource != null && xmlSource.getInputStream() != null)
+        try {
+          xmlSource.getInputStream().close();
+        } catch (Exception e) {
+        }
+    }
+    return uimaCompCtg;
+  }
+}