You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2013/04/03 17:03:04 UTC
svn commit: r1464062 - in /uima/sandbox/textmarker/trunk: textmarker-core/
textmarker-core/src/main/java/org/apache/uima/textmarker/engine/
textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/
textmarker-core/src/main/resources/org/apac...
Author: pkluegl
Date: Wed Apr 3 15:03:04 2013
New Revision: 1464062
URL: http://svn.apache.org/r1464062
Log:
UIMA-2519
- added hotfix for multi view cas (wrapped by aae)
Added:
uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAED.xml
uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAEDBasicEngine.xml
Modified:
uima/sandbox/textmarker/trunk/textmarker-core/pom.xml
uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java
uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarkerEngine.java
uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/DefaultEngineLoader.java
uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/IEngineLoader.java
uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/TextMarkerEngineLoader.java
uima/sandbox/textmarker/trunk/textmarker-ep-addons/src/main/java/org/apache/uima/textmarker/explain/apply/ApplyViewPage.java
uima/sandbox/textmarker/trunk/textmarker-ep-engine/pom.xml
uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLaunchConfigurationDelegate.java
uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLauncher.java
Modified: uima/sandbox/textmarker/trunk/textmarker-core/pom.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/pom.xml?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/pom.xml (original)
+++ uima/sandbox/textmarker/trunk/textmarker-core/pom.xml Wed Apr 3 15:03:04 2013
@@ -82,6 +82,12 @@
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
+ <!-- needed for textmarker-ep-ide - TODO this should be moved to engine?-->
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.4</version>
+ </dependency>
</dependencies>
<scm>
<url>http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core</url>
Modified: uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java (original)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java Wed Apr 3 15:03:04 2013
@@ -21,16 +21,18 @@ package org.apache.uima.textmarker.engin
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
+import java.net.URISyntaxException;
import java.net.URL;
+import java.nio.charset.Charset;
+import org.apache.commons.io.IOUtils;
import org.apache.uima.UIMAFramework;
import org.apache.uima.analysis_engine.AnalysisEngine;
-import org.apache.uima.analysis_engine.AnalysisEngineDescription;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.cas.CAS;
import org.apache.uima.resource.ResourceConfigurationException;
import org.apache.uima.resource.ResourceInitializationException;
-import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.ResourceSpecifier;
import org.apache.uima.util.FileUtils;
import org.apache.uima.util.InvalidXMLException;
@@ -40,21 +42,11 @@ public class TextMarker {
public static void apply(CAS cas, String script) throws IOException, InvalidXMLException,
ResourceInitializationException, ResourceConfigurationException,
- AnalysisEngineProcessException {
+ AnalysisEngineProcessException, URISyntaxException {
+ String viewName = cas.getViewName();
URL aedesc = TextMarkerEngine.class.getResource("BasicEngine.xml");
- XMLInputSource inae = new XMLInputSource(aedesc);
- ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(inae);
- ResourceManager resMgr = UIMAFramework.newDefaultResourceManager();
- AnalysisEngineDescription aed = (AnalysisEngineDescription) specifier;
+ AnalysisEngine ae = wrapAnalysisEngine(aedesc, viewName);
-// TypeSystemDescription basicTypeSystem = aed.getAnalysisEngineMetaData().getTypeSystem();
-// Collection<TypeSystemDescription> tsds = new ArrayList<TypeSystemDescription>();
-// tsds.add(basicTypeSystem);
-// TypeSystemDescription mergeTypeSystems = CasCreationUtils.mergeTypeSystems(tsds);
-// aed.getAnalysisEngineMetaData().setTypeSystem(mergeTypeSystems);
-// aed.resolveImports(resMgr);
-
- AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(aed, resMgr, null);
File scriptFile = File.createTempFile("TextMarker", ".tm");
scriptFile.deleteOnExit();
if (!script.startsWith("PACKAGE")) {
@@ -71,4 +63,39 @@ public class TextMarker {
ae.destroy();
}
+ public static AnalysisEngine wrapAnalysisEngine(URL descriptorUrl, String viewName)
+ throws ResourceInitializationException, ResourceConfigurationException,
+ InvalidXMLException, IOException, URISyntaxException {
+ return wrapAnalysisEngine(descriptorUrl, viewName, false, Charset.defaultCharset().name());
+ }
+
+ public static AnalysisEngine wrapAnalysisEngine(URL descriptorUrl, String viewName, boolean textmarkerEngine,
+ String encoding) throws ResourceInitializationException, ResourceConfigurationException,
+ InvalidXMLException, IOException, URISyntaxException {
+ if (viewName.equals(CAS.NAME_DEFAULT_SOFA)) {
+ XMLInputSource in = new XMLInputSource(descriptorUrl);
+ ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
+ AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier);
+ return ae;
+ } else {
+ InputStream inputStream = null;
+ if(textmarkerEngine) {
+ inputStream = TextMarker.class.getResourceAsStream("AAEDBasicEngine.xml");
+ } else {
+ inputStream = TextMarker.class.getResourceAsStream("AAED.xml");
+ }
+ String aaedString = IOUtils.toString(inputStream, encoding);
+ String absolutePath = descriptorUrl.toExternalForm();
+ aaedString = aaedString.replaceAll("\\$\\{sofaName\\}", viewName);
+ aaedString = aaedString.replaceAll("\\$\\{descriptorLocation\\}", absolutePath);
+ File tempFile = File.createTempFile("TextMarkerAAED", ".xml");
+ FileUtils.saveString2File(aaedString, tempFile);
+ XMLInputSource in = new XMLInputSource(tempFile);
+ ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
+ AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier);
+ tempFile.delete();
+ return ae;
+ }
+ }
+
}
Modified: uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarkerEngine.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarkerEngine.java?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarkerEngine.java (original)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarkerEngine.java Wed Apr 3 15:03:04 2013
@@ -23,6 +23,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -248,7 +249,7 @@ public class TextMarkerEngine extends JC
}
if (!reloadScript) {
try {
- initializeScript();
+ initializeScript(CAS.NAME_DEFAULT_SOFA);
} catch (AnalysisEngineProcessException e) {
throw new ResourceInitializationException(e);
}
@@ -258,8 +259,8 @@ public class TextMarkerEngine extends JC
@Override
public void process(JCas jcas) throws AnalysisEngineProcessException {
CAS cas = jcas.getCas();
- if (reloadScript) {
- initializeScript();
+ if (reloadScript || !cas.getViewName().equals(CAS.NAME_DEFAULT_SOFA)) {
+ initializeScript(cas.getViewName());
} else {
resetEnvironments(cas);
}
@@ -436,7 +437,7 @@ public class TextMarkerEngine extends JC
return result;
}
- private void initializeScript() throws AnalysisEngineProcessException {
+ private void initializeScript(String viewName) throws AnalysisEngineProcessException {
if (mainScript == null) {
return;
}
@@ -472,7 +473,7 @@ public class TextMarkerEngine extends JC
if (location == null) {
String locationIS = locateIS(eachEngineLocation, descriptorPaths, ".xml");
try {
- eachEngine = engineLoader.loadEngineIS(locationIS);
+ eachEngine = engineLoader.loadEngineIS(locationIS, viewName);
} catch (InvalidXMLException e) {
throw new AnalysisEngineProcessException(new FileNotFoundException("Engine at ["
+ eachEngineLocation + "] cannot be found in ["
@@ -491,10 +492,14 @@ public class TextMarkerEngine extends JC
+ collectionToString(descriptorPaths)
+ "] with extension .xml (from mainScript=" + mainScript + " in "
+ collectionToString(scriptPaths)));
+ } catch (ResourceConfigurationException e) {
+ throw new AnalysisEngineProcessException(e);
+ } catch (URISyntaxException e) {
+ throw new AnalysisEngineProcessException(e);
}
} else {
try {
- eachEngine = engineLoader.loadEngine(location);
+ eachEngine = engineLoader.loadEngine(location, viewName);
} catch (Exception e) {
throw new AnalysisEngineProcessException(e);
}
@@ -514,7 +519,7 @@ public class TextMarkerEngine extends JC
if (additionalScriptLocations != null) {
for (String add : additionalScriptLocations) {
- recursiveLoadScript(add, additionalScripts, additionalEngines);
+ recursiveLoadScript(add, additionalScripts, additionalEngines, viewName);
}
}
@@ -607,7 +612,7 @@ public class TextMarkerEngine extends JC
}
private void recursiveLoadScript(String toLoad, Map<String, TextMarkerModule> additionalScripts,
- Map<String, AnalysisEngine> additionalEngines) throws AnalysisEngineProcessException {
+ Map<String, AnalysisEngine> additionalEngines, String viewName) throws AnalysisEngineProcessException {
String location = locate(toLoad, scriptPaths, ".tm");
try {
TypeSystemDescription localTSD = getLocalTSD(toLoad);
@@ -615,7 +620,7 @@ public class TextMarkerEngine extends JC
additionalScripts.put(toLoad, eachScript);
for (String add : eachScript.getScripts().keySet()) {
if (!additionalScripts.containsKey(add)) {
- recursiveLoadScript(add, additionalScripts, additionalEngines);
+ recursiveLoadScript(add, additionalScripts, additionalEngines, viewName);
}
}
Set<String> engineKeySet = eachScript.getEngines().keySet();
@@ -623,7 +628,7 @@ public class TextMarkerEngine extends JC
if (!additionalEngines.containsKey(eachEngineLocation)) {
String engineLocation = locate(eachEngineLocation, descriptorPaths, ".xml");
try {
- AnalysisEngine eachEngine = engineLoader.loadEngine(engineLocation);
+ AnalysisEngine eachEngine = engineLoader.loadEngine(engineLocation, viewName);
additionalEngines.put(eachEngineLocation, eachEngine);
} catch (Exception e) {
throw new AnalysisEngineProcessException(e);
Modified: uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/DefaultEngineLoader.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/DefaultEngineLoader.java?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/DefaultEngineLoader.java (original)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/DefaultEngineLoader.java Wed Apr 3 15:03:04 2013
@@ -19,33 +19,37 @@
package org.apache.uima.textmarker.extensions;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URISyntaxException;
+import java.net.URL;
import org.apache.uima.UIMAFramework;
import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.resource.ResourceConfigurationException;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceSpecifier;
+import org.apache.uima.textmarker.engine.TextMarker;
import org.apache.uima.util.InvalidXMLException;
import org.apache.uima.util.XMLInputSource;
public abstract class DefaultEngineLoader implements IEngineLoader {
- public AnalysisEngine loadEngine(String location) throws InvalidXMLException,
- ResourceInitializationException, IOException {
- return loadEngineMyself(location);
+ public AnalysisEngine loadEngine(String location, String viewName) throws InvalidXMLException, ResourceInitializationException, ResourceConfigurationException, IOException, URISyntaxException {
+ return loadEngineMyself(location, viewName);
}
- protected AnalysisEngine loadEngineMyself(String location) throws IOException,
- InvalidXMLException, ResourceInitializationException {
- XMLInputSource in = new XMLInputSource(location);
- ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
- AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier);
+ protected AnalysisEngine loadEngineMyself(String location, String viewName) throws IOException,
+ InvalidXMLException, ResourceInitializationException, ResourceConfigurationException, URISyntaxException {
+ URL url = new File(location).toURL();
+ AnalysisEngine ae = TextMarker.wrapAnalysisEngine(url, viewName);
return ae;
}
protected AnalysisEngine loadEngineMyselfIS(String location) throws IOException,
InvalidXMLException, ResourceInitializationException {
+ // TODO handle multi-view CASs
InputStream locationIS = getClass().getClassLoader().getResourceAsStream(location);
XMLInputSource in = new XMLInputSource(locationIS, null);
ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
Modified: uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/IEngineLoader.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/IEngineLoader.java?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/IEngineLoader.java (original)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/IEngineLoader.java Wed Apr 3 15:03:04 2013
@@ -15,13 +15,15 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
-*/
+ */
package org.apache.uima.textmarker.extensions;
import java.io.IOException;
+import java.net.URISyntaxException;
import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.resource.ResourceConfigurationException;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.util.InvalidXMLException;
@@ -29,7 +31,8 @@ public interface IEngineLoader {
String[] getKnownEngines();
- AnalysisEngine loadEngine(String location) throws InvalidXMLException,
- ResourceInitializationException, IOException;
+ AnalysisEngine loadEngine(String location, String viewName) throws InvalidXMLException,
+ ResourceInitializationException, ResourceConfigurationException, IOException,
+ URISyntaxException;
}
Modified: uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/TextMarkerEngineLoader.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/TextMarkerEngineLoader.java?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/TextMarkerEngineLoader.java (original)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/extensions/TextMarkerEngineLoader.java Wed Apr 3 15:03:04 2013
@@ -21,10 +21,12 @@ package org.apache.uima.textmarker.exten
import java.io.File;
import java.io.IOException;
+import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;
import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.resource.ResourceConfigurationException;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.util.InvalidXMLException;
@@ -38,26 +40,28 @@ public class TextMarkerEngineLoader exte
}
@Override
- public AnalysisEngine loadEngine(String location) throws InvalidXMLException,
- ResourceInitializationException, IOException {
+ public AnalysisEngine loadEngine(String location, String viewName) throws InvalidXMLException,
+ ResourceInitializationException, ResourceConfigurationException, IOException,
+ URISyntaxException {
String name = getEngineName(location);
AnalysisEngine result = null;
IEngineLoader engineLoader = loaders.get(name);
if (engineLoader != null) {
- result = engineLoader.loadEngine(location);
+ result = engineLoader.loadEngine(location, viewName);
} else {
- result = loadEngineMyself(location);
+ result = loadEngineMyself(location, viewName);
}
return result;
}
- public AnalysisEngine loadEngineIS(String location) throws InvalidXMLException,
- ResourceInitializationException, IOException {
+ public AnalysisEngine loadEngineIS(String location, String viewName) throws InvalidXMLException,
+ ResourceInitializationException, IOException, ResourceConfigurationException,
+ URISyntaxException {
String name = getEngineNameIS(location);
AnalysisEngine result = null;
IEngineLoader engineLoader = loaders.get(name);
if (engineLoader != null) {
- result = engineLoader.loadEngine(location);
+ result = engineLoader.loadEngine(location, viewName);
} else {
result = loadEngineMyselfIS(location);
}
Added: uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAED.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAED.xml?rev=1464062&view=auto
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAED.xml (added)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAED.xml Wed Apr 3 15:03:04 2013
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
+ <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+ <primitive>false</primitive>
+ <delegateAnalysisEngineSpecifiers>
+ <delegateAnalysisEngine key="TextMarkerEngine">
+ <import location="${descriptorLocation}"/>
+ </delegateAnalysisEngine>
+ </delegateAnalysisEngineSpecifiers>
+ <analysisEngineMetaData>
+ <name>AAED</name>
+ <description/>
+ <version>1.0</version>
+ <vendor/>
+ <configurationParameters/>
+ <configurationParameterSettings/>
+ <flowConstraints>
+ <fixedFlow>
+ <node>TextMarkerEngine</node>
+ </fixedFlow>
+ </flowConstraints>
+ <fsIndexCollection/>
+ <capabilities>
+ <capability>
+ <inputs/>
+ <outputs/>
+ <inputSofas>
+ <sofaName>${sofaName}</sofaName>
+ </inputSofas>
+ <languagesSupported/>
+ </capability>
+ </capabilities>
+ <operationalProperties>
+ <modifiesCas>true</modifiesCas>
+ <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+ <outputsNewCASes>false</outputsNewCASes>
+ </operationalProperties>
+ </analysisEngineMetaData>
+ <resourceManagerConfiguration/>
+ <sofaMappings>
+ <sofaMapping>
+ <componentKey>TextMarkerEngine</componentKey>
+ <aggregateSofaName>${sofaName}</aggregateSofaName>
+ </sofaMapping>
+ </sofaMappings>
+</analysisEngineDescription>
Added: uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAEDBasicEngine.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAEDBasicEngine.xml?rev=1464062&view=auto
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAEDBasicEngine.xml (added)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/AAEDBasicEngine.xml Wed Apr 3 15:03:04 2013
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
+ <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+ <primitive>false</primitive>
+ <delegateAnalysisEngineSpecifiers>
+ <delegateAnalysisEngine key="TextMarkerEngine">
+ <import location="${descriptorLocation}"/>
+ </delegateAnalysisEngine>
+ </delegateAnalysisEngineSpecifiers>
+ <analysisEngineMetaData>
+ <name>AAED</name>
+ <description/>
+ <version>1.0</version>
+ <vendor/>
+ <configurationParameters>
+ <configurationParameter>
+ <name>debug</name>
+ <type>Boolean</type>
+ <multiValued>false</multiValued>
+ <mandatory>false</mandatory>
+ <overrides>
+ <parameter>TextMarkerEngine/debug</parameter>
+ </overrides>
+ </configurationParameter>
+ <configurationParameter>
+ <name>debugWithMatches</name>
+ <type>Boolean</type>
+ <multiValued>false</multiValued>
+ <mandatory>false</mandatory>
+ <overrides>
+ <parameter>TextMarkerEngine/debugWithMatches</parameter>
+ </overrides>
+ </configurationParameter>
+ <configurationParameter>
+ <name>profile</name>
+ <type>Boolean</type>
+ <multiValued>false</multiValued>
+ <mandatory>false</mandatory>
+ <overrides>
+ <parameter>TextMarkerEngine/profile</parameter>
+ </overrides>
+ </configurationParameter>
+ <configurationParameter>
+ <name>statistics</name>
+ <type>Boolean</type>
+ <multiValued>false</multiValued>
+ <mandatory>false</mandatory>
+ <overrides>
+ <parameter>TextMarkerEngine/statistics</parameter>
+ </overrides>
+ </configurationParameter>
+ <configurationParameter>
+ <name>createdBy</name>
+ <type>Boolean</type>
+ <multiValued>false</multiValued>
+ <mandatory>false</mandatory>
+ <overrides>
+ <parameter>TextMarkerEngine/createdBy</parameter>
+ </overrides>
+ </configurationParameter>
+ </configurationParameters>
+ <configurationParameterSettings/>
+ <flowConstraints>
+ <fixedFlow>
+ <node>TextMarkerEngine</node>
+ </fixedFlow>
+ </flowConstraints>
+ <fsIndexCollection/>
+ <capabilities>
+ <capability>
+ <inputs/>
+ <outputs/>
+ <inputSofas>
+ <sofaName>${sofaName}</sofaName>
+ </inputSofas>
+ <languagesSupported/>
+ </capability>
+ </capabilities>
+ <operationalProperties>
+ <modifiesCas>true</modifiesCas>
+ <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+ <outputsNewCASes>false</outputsNewCASes>
+ </operationalProperties>
+ </analysisEngineMetaData>
+ <resourceManagerConfiguration/>
+ <sofaMappings>
+ <sofaMapping>
+ <componentKey>TextMarkerEngine</componentKey>
+ <aggregateSofaName>${sofaName}</aggregateSofaName>
+ </sofaMapping>
+ </sofaMappings>
+</analysisEngineDescription>
Modified: uima/sandbox/textmarker/trunk/textmarker-ep-addons/src/main/java/org/apache/uima/textmarker/explain/apply/ApplyViewPage.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-ep-addons/src/main/java/org/apache/uima/textmarker/explain/apply/ApplyViewPage.java?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-ep-addons/src/main/java/org/apache/uima/textmarker/explain/apply/ApplyViewPage.java (original)
+++ uima/sandbox/textmarker/trunk/textmarker-ep-addons/src/main/java/org/apache/uima/textmarker/explain/apply/ApplyViewPage.java Wed Apr 3 15:03:04 2013
@@ -19,11 +19,11 @@
package org.apache.uima.textmarker.explain.apply;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.uima.cas.CAS;
import org.apache.uima.cas.Feature;
import org.apache.uima.cas.FeatureStructure;
import org.apache.uima.cas.Type;
@@ -38,7 +38,6 @@ import org.apache.uima.textmarker.explai
import org.apache.uima.textmarker.explain.tree.ExplainTree;
import org.apache.uima.textmarker.explain.tree.RuleApplyNode;
import org.apache.uima.textmarker.ide.core.builder.TextMarkerProjectUtils;
-import org.apache.uima.textmarker.visitor.CreatedByVisitor;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
@@ -61,6 +60,7 @@ import org.eclipse.swt.events.MouseEvent
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IWorkbenchPart;
@@ -69,7 +69,7 @@ import org.eclipse.ui.part.IPageSite;
import org.eclipse.ui.part.Page;
public class ApplyViewPage extends Page implements ISelectionListener, ICasEditorInputListener,
- IDoubleClickListener {
+ IDoubleClickListener, ICasDocumentListener {
protected TreeViewer viewer;
@@ -81,8 +81,6 @@ public class ApplyViewPage extends Page
protected ICasDocument document;
- private ICasDocumentListener listener;
-
public ApplyViewPage(AnnotationEditor editor) {
super();
this.editor = editor;
@@ -143,6 +141,8 @@ public class ApplyViewPage extends Page
viewer.setContentProvider(new ApplyTreeContentProvider());
viewer.setLabelProvider(new ApplyTreeLabelProvider(this));
+ document.addChangeListener(this);
+
ExplainTree tree = new ExplainTree(document.getCAS());
viewer.setInput(tree.getRoot());
viewer.addDoubleClickListener(this);
@@ -230,4 +230,45 @@ public class ApplyViewPage extends Page
// viewer.refresh();
}
+
+ public void added(FeatureStructure newFeatureStructure) {
+
+ }
+
+ public void added(Collection<FeatureStructure> newFeatureStructure) {
+
+ }
+
+ public void removed(FeatureStructure deletedFeatureStructure) {
+
+ }
+
+ public void removed(Collection<FeatureStructure> deletedFeatureStructure) {
+
+ }
+
+ public void updated(FeatureStructure featureStructure) {
+
+ }
+
+ public void updated(Collection<FeatureStructure> featureStructure) {
+
+ }
+
+ public void changed() {
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ reloadTree();
+ }
+
+ });
+ }
+
+ private void reloadTree() {
+ ExplainTree tree = new ExplainTree(document.getCAS());
+ viewer.setInput(tree.getRoot());
+ }
+ public void viewChanged(String oldViewName, String newViewName) {
+ changed();
+ }
}
Modified: uima/sandbox/textmarker/trunk/textmarker-ep-engine/pom.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-ep-engine/pom.xml?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-ep-engine/pom.xml (original)
+++ uima/sandbox/textmarker/trunk/textmarker-ep-engine/pom.xml Wed Apr 3 15:03:04 2013
@@ -149,7 +149,8 @@ licensed under the Common Public License
antlr.*,
org.htmlparser,
org.htmlparser.*,
- org.apache.commons.lang3.*
+ org.apache.commons.lang3.*,
+ org.apache.commons.io.*
</_exportcontents>
<Require-Bundle>
org.apache.uima.runtime
Modified: uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLaunchConfigurationDelegate.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLaunchConfigurationDelegate.java?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLaunchConfigurationDelegate.java (original)
+++ uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLaunchConfigurationDelegate.java Wed Apr 3 15:03:04 2013
@@ -21,20 +21,17 @@ package org.apache.uima.textmarker.ide.l
import java.io.File;
import java.io.IOException;
-import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
-import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.uima.cas.CAS;
import org.apache.uima.textmarker.ide.TextMarkerIdePlugin;
import org.apache.uima.textmarker.ide.core.TextMarkerCorePreferences;
import org.apache.uima.textmarker.ide.core.builder.TextMarkerProjectUtils;
-import org.eclipse.core.resources.IBuildConfiguration;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectNature;
@@ -48,15 +45,11 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.dltk.core.DLTKCore;
-import org.eclipse.dltk.core.IBuildpathEntry;
import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.launching.AbstractScriptLaunchConfigurationDelegate;
-import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.launching.JavaLaunchDelegate;
@@ -223,7 +216,16 @@ public class TextMarkerLaunchConfigurati
}
boolean recursive = configuration.getAttribute(TextMarkerLaunchConstants.RECURSIVE, false);
clearOutputFolder(new File(ouputFolder.getLocation().toPortableString()), recursive);
+
+// String[] args = getProgramArguments(configuration).split(" ");
+// try {
+// TextMarkerLauncher.main(args);
+// } catch (Exception e1) {
+// e1.printStackTrace();
+// }
+
super.launch(configuration, mode, launch, monitor);
+
while (!launch.isTerminated()) {
try {
Thread.sleep(100);
Modified: uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLauncher.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLauncher.java?rev=1464062&r1=1464061&r2=1464062&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLauncher.java (original)
+++ uima/sandbox/textmarker/trunk/textmarker-ep-ide/src/main/java/org/apache/uima/textmarker/ide/launching/TextMarkerLauncher.java Wed Apr 3 15:03:04 2013
@@ -28,20 +28,15 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.apache.uima.UIMAFramework;
import org.apache.uima.analysis_engine.AnalysisEngine;
-import org.apache.uima.analysis_engine.AnalysisEngineDescription;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
-import org.apache.uima.analysis_engine.metadata.SofaMapping;
import org.apache.uima.cas.CAS;
-import org.apache.uima.cas.CASException;
import org.apache.uima.cas.impl.XmiCasDeserializer;
import org.apache.uima.cas.impl.XmiCasSerializer;
import org.apache.uima.resource.ResourceConfigurationException;
-import org.apache.uima.resource.ResourceSpecifier;
+import org.apache.uima.textmarker.engine.TextMarker;
import org.apache.uima.textmarker.engine.TextMarkerEngine;
import org.apache.uima.util.FileUtils;
-import org.apache.uima.util.XMLInputSource;
import org.apache.uima.util.XMLSerializer;
import org.apache.uima.util.impl.ProcessTrace_impl;
import org.xml.sax.SAXException;
@@ -58,10 +53,10 @@ public class TextMarkerLauncher {
private static String inputEncoding = java.nio.charset.Charset.defaultCharset().name();
- private static String launchMode = "run";
+ private static String launchMode = "run";
private static String view = null;
-
+
private static boolean parseCmdLineArgs(String[] args) {
int index = 0;
int count = 0;
@@ -106,17 +101,16 @@ public class TextMarkerLauncher {
view = args[index++];
}
}
- return count ==2;
+ return count == 2;
}
public static void main(String[] args) throws Exception {
if (!parseCmdLineArgs(args)) {
throw new IllegalArgumentException("Passed arguments are invalid!");
}
- XMLInputSource in = new XMLInputSource(descriptor);
- ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
-
- AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier);
+
+ AnalysisEngine ae = TextMarker
+ .wrapAnalysisEngine(descriptor.toURL(), view, true, inputEncoding);
configure(ae);
CAS cas = ae.newCAS();
@@ -132,22 +126,22 @@ public class TextMarkerLauncher {
private static void processFile(File file, AnalysisEngine ae, CAS cas) throws IOException,
AnalysisEngineProcessException, SAXException {
- if(view != null) {
+ if (view != null) {
boolean found = false;
Iterator<CAS> viewIterator = cas.getViewIterator();
while (viewIterator.hasNext()) {
CAS each = (CAS) viewIterator.next();
String viewName = each.getViewName();
- if(viewName.equals(view)) {
+ if (viewName.equals(view)) {
cas = cas.getView(view);
found = true;
break;
}
}
- if(!found) {
- cas = cas.createView(view);
+ if (!found) {
+ cas = cas.createView(view);
}
-
+
}
if (file.getName().endsWith(".xmi")) {
XmiCasDeserializer.deserialize(new FileInputStream(file), cas, true);
@@ -207,7 +201,7 @@ public class TextMarkerLauncher {
private static File getOutputFile(File inputFile, File inputFolder, File outputFolder) {
URI relativize = inputFolder.toURI().relativize(inputFile.toURI());
String path = relativize.getPath();
- if(!path.endsWith(".xmi")) {
+ if (!path.endsWith(".xmi")) {
path += ".xmi";
}
File result = new File(outputFolder, path);