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 2015/03/27 13:46:09 UTC
svn commit: r1669570 - in /uima/ruta/trunk:
ruta-core/src/main/java/org/apache/uima/ruta/descriptor/
ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/
ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/
Author: pkluegl
Date: Fri Mar 27 12:46:08 2015
New Revision: 1669570
URL: http://svn.apache.org/r1669570
Log:
UIMA-3650
- fixed building without explicit default descriptors
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaBuilder.java
uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java?rev=1669570&r1=1669569&r2=1669570&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java Fri Mar 27 12:46:08 2015
@@ -71,11 +71,11 @@ public class RutaDescriptorBuilder {
private static ResourceSpecifierFactory uimaFactory = UIMAFramework.getResourceSpecifierFactory();
- private final String defaultTypeSystem;
+ private final URL defaultTypeSystem;
- private final String defaultAnalysisEngine;
+ private final URL defaultAnalysisEngine;
- public RutaDescriptorBuilder(String defaultTypeSystem, String defaultAnalysisEngine)
+ public RutaDescriptorBuilder(URL defaultTypeSystem, URL defaultAnalysisEngine)
throws InvalidXMLException, IOException {
super();
this.defaultTypeSystem = defaultTypeSystem;
@@ -101,13 +101,8 @@ public class RutaDescriptorBuilder {
rm.setDataPath(dataPath);
}
Map<String, String> typeNameMap = new HashMap<String, String>();
- // String defaultTypeSystem2 = defaultTypeSystem.replaceAll("/", "\\\\");
- File defaultTypeSystemFile = new File(defaultTypeSystem);
- if (!defaultTypeSystemFile.exists()) {
- System.out.println("Does not exist: " + defaultTypeSystemFile.getName());
- }
TypeSystemDescription initialTypeSystem = UIMAFramework.getXMLParser()
- .parseTypeSystemDescription(new XMLInputSource(defaultTypeSystemFile));
+ .parseTypeSystemDescription(new XMLInputSource(defaultTypeSystem));
CAS cas = CasCreationUtils.createCas(initialTypeSystem, null, new FsIndexDescription[0]);
fillTypeNameMap(typeNameMap, cas.getTypeSystem());
cas.release();
@@ -121,10 +116,26 @@ public class RutaDescriptorBuilder {
String absoluteLocation = initialTypeSystem.getSourceUrlString();
import_impl.setLocation(absoluteLocation);
} else {
- String relativeLocation = getRelativeLocation(defaultTypeSystemFile.toURI(), typeSystemOutput);
- import_impl.setLocation(relativeLocation);
+ URI uri = null;
+ try {
+ uri = defaultTypeSystem.toURI();
+ } catch (URISyntaxException e) {
+ // do nothing
+ }
+ if (uri != null) {
+ String relativeLocation = getRelativeLocation(uri, typeSystemOutput);
+ if (relativeLocation != null) {
+ import_impl.setLocation(relativeLocation);
+ } else {
+ toInclude.add(initialTypeSystem);
+ }
+ } else {
+ toInclude.add(initialTypeSystem);
+ }
+ }
+ if(import_impl.getLocation() != null || import_impl.getName() != null) {
+ importList.add(import_impl);
}
- importList.add(import_impl);
for (String eachName : desc.getImportedTypeSystems()) {
String locate = RutaEngine.locate(eachName, enginePaths, ".xml");
URL url = null;
@@ -208,8 +219,10 @@ public class RutaDescriptorBuilder {
}
}
typeSystemDescription = CasCreationUtils.mergeTypeSystems(toInclude, rm);
- Import[] newImports = importList.toArray(new Import[0]);
- typeSystemDescription.setImports(newImports);
+ if (!importList.isEmpty()) {
+ Import[] newImports = importList.toArray(new Import[0]);
+ typeSystemDescription.setImports(newImports);
+ }
if (option.isResolveImports()) {
typeSystemDescription.resolveImports(rm);
}
@@ -270,8 +283,8 @@ public class RutaDescriptorBuilder {
public AnalysisEngineDescription createAnalysisEngineDescription(RutaDescriptorInformation desc,
TypeSystemDescription typeSystemDescription, String typeSystemOutput,
- String engineOutput, RutaBuildOptions option, String[] scriptPaths, String[] enginePaths, String[] resourcePaths,
- ClassLoader classloader) throws InvalidXMLException, IOException {
+ String engineOutput, RutaBuildOptions option, String[] scriptPaths, String[] enginePaths,
+ String[] resourcePaths, ClassLoader classloader) throws InvalidXMLException, IOException {
TypeSystemDescription aets = uimaFactory.createTypeSystemDescription();
Import_impl import_impl = new Import_impl();
if (option.isImportByName()) {
@@ -286,7 +299,8 @@ public class RutaDescriptorBuilder {
}
}
- return configureEngine(desc, engineOutput, option, scriptPaths, enginePaths, resourcePaths, import_impl, aets);
+ return configureEngine(desc, engineOutput, option, scriptPaths, enginePaths, resourcePaths,
+ import_impl, aets);
}
public void build(RutaDescriptorInformation desc, String typeSystemOutput, String engineOutput,
@@ -387,11 +401,11 @@ public class RutaDescriptorBuilder {
private AnalysisEngineDescription configureEngine(RutaDescriptorInformation desc,
String engineOutput, RutaBuildOptions option, String[] scriptPaths,
- String[] descriptorPaths, String[] resourcePaths,Import_impl import_impl, TypeSystemDescription aets)
- throws InvalidXMLException, IOException {
+ String[] descriptorPaths, String[] resourcePaths, Import_impl import_impl,
+ TypeSystemDescription aets) throws InvalidXMLException, IOException {
AnalysisEngineDescription analysisEngineDescription = UIMAFramework.getXMLParser()
- .parseAnalysisEngineDescription(new XMLInputSource(new File(defaultAnalysisEngine)));
+ .parseAnalysisEngineDescription(new XMLInputSource(defaultAnalysisEngine));
aets.setImports(new Import[] { import_impl });
analysisEngineDescription.getAnalysisEngineMetaData().setTypeSystem(aets);
@@ -429,7 +443,7 @@ public class RutaDescriptorBuilder {
if (parameterValue != null && parameterValue.length != 0) {
resourceLocations.addAll(Arrays.asList(parameterValue));
}
- if(resourcePaths != null) {
+ if (resourcePaths != null) {
resourceLocations.addAll(Arrays.asList(resourcePaths));
}
if (descriptorPaths != null) {
@@ -472,8 +486,12 @@ public class RutaDescriptorBuilder {
if (!basePath.toFile().isDirectory()) {
basePath = basePath.getParent();
}
- Path targetPath;
- targetPath = Paths.get(target);
+ Path targetPath = null;
+ try {
+ targetPath = Paths.get(target);
+ } catch (Exception e) {
+ return null;
+ }
Path relativePath = basePath.relativize(targetPath);
return relativePath.toString();
}
@@ -507,8 +525,8 @@ public class RutaDescriptorBuilder {
ls.toArray(new String[0]));
}
- private TypeSystemDescription getTypeSystemDescriptor(URL url, RutaBuildOptions option, ResourceManager rm)
- throws InvalidXMLException, IOException {
+ private TypeSystemDescription getTypeSystemDescriptor(URL url, RutaBuildOptions option,
+ ResourceManager rm) throws InvalidXMLException, IOException {
TypeSystemDescription tsdesc = UIMAFramework.getXMLParser().parseTypeSystemDescription(
new XMLInputSource(url));
if (option.isResolveImports()) {
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java?rev=1669570&r1=1669569&r2=1669570&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java Fri Mar 27 12:46:08 2015
@@ -21,6 +21,7 @@ package org.apache.uima.ruta.descriptor;
import java.io.File;
import java.io.IOException;
+import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
@@ -44,31 +45,29 @@ import org.apache.uima.util.InvalidXMLEx
public class RutaDescriptorFactory {
- private String defaultTypeSystem;
+ private URL defaultTypeSystem;
- private String defaultEngine;
+ private URL defaultEngine;
- public RutaDescriptorFactory() throws URISyntaxException {
+ public RutaDescriptorFactory() {
super();
- URL basicAEUrl = HtmlAnnotator.class.getClassLoader().getResource(
+ this.defaultEngine = HtmlAnnotator.class.getClassLoader().getResource(
"org/apache/uima/ruta/engine/BasicEngine.xml");
- URL basicTSUrl = HtmlAnnotator.class.getClassLoader().getResource(
+ this.defaultTypeSystem = HtmlAnnotator.class.getClassLoader().getResource(
"org/apache/uima/ruta/engine/BasicTypeSystem.xml");
- this.defaultEngine = new File(basicAEUrl.toURI()).getAbsolutePath();
- this.defaultTypeSystem = new File(basicTSUrl.toURI()).getAbsolutePath();
}
public RutaDescriptorFactory(String defaultTypeSystem, String defaultEngine)
- throws URISyntaxException {
+ throws MalformedURLException {
super();
- this.defaultTypeSystem = defaultTypeSystem;
- this.defaultEngine = defaultEngine;
+ this.defaultTypeSystem = new File(defaultTypeSystem).toURI().toURL();
+ this.defaultEngine = new File(defaultEngine).toURI().toURL();
}
- public RutaDescriptorFactory(URL defaultTypeSystem, URL defaultEngine) throws URISyntaxException {
+ public RutaDescriptorFactory(URL defaultTypeSystem, URL defaultEngine) {
super();
- this.defaultTypeSystem = new File(defaultTypeSystem.toURI()).getAbsolutePath();
- this.defaultEngine = new File(defaultEngine.toURI()).getAbsolutePath();
+ this.defaultTypeSystem = defaultTypeSystem;
+ this.defaultEngine = defaultEngine;
}
public TypeSystemDescription createTypeSystemDescription(String typeSystemOutput,
@@ -166,19 +165,19 @@ public class RutaDescriptorFactory {
return descInfo;
}
- public String getDefaultTypeSystem() {
+ public URL getDefaultTypeSystem() {
return defaultTypeSystem;
}
- public void setDefaultTypeSystem(String defaultTypeSystem) {
+ public void setDefaultTypeSystem(URL defaultTypeSystem) {
this.defaultTypeSystem = defaultTypeSystem;
}
- public String getDefaultEngine() {
+ public URL getDefaultEngine() {
return defaultEngine;
}
- public void setDefaultEngine(String defaultEngine) {
+ public void setDefaultEngine(URL defaultEngine) {
this.defaultEngine = defaultEngine;
}
Modified: uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaBuilder.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaBuilder.java?rev=1669570&r1=1669569&r2=1669570&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaBuilder.java (original)
+++ uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaBuilder.java Fri Mar 27 12:46:08 2015
@@ -206,7 +206,9 @@ public class RutaBuilder extends Abstrac
String[] enginePaths, ClassLoader classloader) {
RutaDescriptorBuilder builder = null;
try {
- builder = new RutaDescriptorBuilder(basicTypesystem, basicEngine);
+ URL tsUrl = new File(basicTypesystem).toURI().toURL();
+ URL aeUrl= new File(basicEngine).toURI().toURL();
+ builder = new RutaDescriptorBuilder(tsUrl, aeUrl);
} catch (Exception e) {
DLTKCore.error(e.getMessage(), e);
if (DLTKCore.DEBUG_PARSER) {
Modified: uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java?rev=1669570&r1=1669569&r2=1669570&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java (original)
+++ uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java Fri Mar 27 12:46:08 2015
@@ -22,6 +22,7 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
@@ -141,17 +142,20 @@ public class RutaGenerateDescriptorMojo
buildContext.refresh(analysisEngineOutputDirectory);
}
- RutaDescriptorFactory factory = null;
- try {
- factory = new RutaDescriptorFactory();
- } catch (URISyntaxException e) {
- getLog().warn("Failed to load default descriptors");
- }
+ RutaDescriptorFactory factory = new RutaDescriptorFactory();
if (typeSystemTemplate != null) {
- factory.setDefaultTypeSystem(typeSystemTemplate.getAbsolutePath());
+ try {
+ factory.setDefaultTypeSystem(typeSystemTemplate.toURI().toURL());
+ } catch (MalformedURLException e) {
+ getLog().warn("Failed to get URL of " + typeSystemTemplate, e);
+ }
}
if (analysisEngineTemplate != null) {
- factory.setDefaultEngine(analysisEngineTemplate.getAbsolutePath());
+ try {
+ factory.setDefaultEngine(analysisEngineTemplate.toURI().toURL());
+ } catch (MalformedURLException e) {
+ getLog().warn("Failed to get URL of " + analysisEngineTemplate, e);
+ }
}
URLClassLoader classloader = getClassloader(project, getLog());
@@ -177,17 +181,17 @@ public class RutaGenerateDescriptorMojo
write(descriptions.getKey(), engineOutput);
write(descriptions.getValue(), typeSystemOutput);
} catch (RecognitionException re) {
- getLog().warn("Failed to parse UIMA Ruta script file: " + file.getAbsolutePath());
- } catch(IOException ioe) {
- getLog().warn("Failed to load UIMA Ruta script file: " + file.getAbsolutePath());
- } catch(SAXException ioe) {
- getLog().warn("Failed to write descriptor: " + file.getAbsolutePath());
- } catch(URISyntaxException urise) {
- getLog().warn("Failed to get uri: " + file.getAbsolutePath());
- } catch(ResourceInitializationException rie) {
- getLog().warn("Failed initialize resource: " + file.getAbsolutePath());
- } catch(InvalidXMLException ixmle) {
- getLog().warn("Invalid XML while building descriptor: " + file.getAbsolutePath());
+ getLog().warn("Failed to parse UIMA Ruta script file: " + file.getAbsolutePath(), re);
+ } catch (IOException ioe) {
+ getLog().warn("Failed to load UIMA Ruta script file: " + file.getAbsolutePath(), ioe);
+ } catch (SAXException saxe) {
+ getLog().warn("Failed to write descriptor: " + file.getAbsolutePath(), saxe);
+ } catch (URISyntaxException urise) {
+ getLog().warn("Failed to get uri: " + file.getAbsolutePath(), urise);
+ } catch (ResourceInitializationException rie) {
+ getLog().warn("Failed initialize resource: " + file.getAbsolutePath(), rie);
+ } catch (InvalidXMLException ixmle) {
+ getLog().warn("Invalid XML while building descriptor: " + file.getAbsolutePath(), ixmle);
}
}