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/16 17:09:08 UTC
svn commit: r1667053 - in /uima/ruta/trunk/ruta-ep-ide-ui: ./
src/main/java/org/apache/uima/ruta/ide/ui/wizards/
src/main/java/org/apache/uima/ruta/ide/validator/
Author: pkluegl
Date: Mon Mar 16 16:09:08 2015
New Revision: 1667053
URL: http://svn.apache.org/r1667053
Log:
UIMA-4287
- allow ruta script creation outside of ruta projects
- add fallback for required resources if outside of ruta projects
Modified:
uima/ruta/trunk/ruta-ep-ide-ui/pom.xml
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerUtils.java
Modified: uima/ruta/trunk/ruta-ep-ide-ui/pom.xml
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/pom.xml?rev=1667053&r1=1667052&r2=1667053&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/pom.xml (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/pom.xml Mon Mar 16 16:09:08 2015
@@ -216,6 +216,12 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.eclipse.core</groupId>
+ <artifactId>filesystem</artifactId>
+ <version>[1.0.0,3.0.0)</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.uima</groupId>
<artifactId>ruta-core</artifactId>
<version>${project.parent.version}</version>
@@ -306,6 +312,7 @@
org.apache.uima.ruta.ide,
org.eclipse.core.runtime,
org.eclipse.core.resources,
+ org.eclipse.core.filesystem,
org.eclipse.ui,
org.eclipse.dltk.launching;bundle-version="3.0.0",
org.eclipse.dltk.core;bundle-version="3.0.0",
Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java?rev=1667053&r1=1667052&r2=1667053&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/wizards/RutaFileCreationPage.java Mon Mar 16 16:09:08 2015
@@ -27,9 +27,13 @@ import org.apache.uima.ruta.ide.core.bui
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.dltk.compiler.util.Util;
+import org.eclipse.dltk.core.DLTKLanguageManager;
+import org.eclipse.dltk.core.IDLTKLanguageToolkit;
import org.eclipse.dltk.core.IScriptFolder;
import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.core.ModelException;
+import org.eclipse.dltk.core.ScriptModelUtil;
import org.eclipse.dltk.ui.wizards.NewSourceModulePage;
public class RutaFileCreationPage extends NewSourceModulePage {
@@ -38,7 +42,21 @@ public class RutaFileCreationPage extend
protected String getPageDescription() {
return "This wizard creates a new Ruta script file.";
}
+
+ @Override
+ protected String[] getFileExtensions() {
+ String requiredNature = RutaNature.NATURE_ID;
+
+ IDLTKLanguageToolkit toolkit = DLTKLanguageManager
+ .getLanguageToolkit(requiredNature);
+ String[] extensions = ScriptModelUtil.getFileExtensions(toolkit);
+ if (extensions != null) {
+ return extensions;
+ }
+ return new String[] { Util.EMPTY_STRING };
+ }
+
@Override
protected String getFileContent() {
StringBuilder sb = new StringBuilder();
@@ -91,7 +109,7 @@ public class RutaFileCreationPage extend
@Override
protected String getRequiredNature() {
- return RutaNature.NATURE_ID;
+ return null;
}
@Override
Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java?rev=1667053&r1=1667052&r2=1667053&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java Mon Mar 16 16:09:08 2015
@@ -103,6 +103,8 @@ import org.eclipse.dltk.compiler.problem
import org.eclipse.dltk.core.ISourceModule;
import org.eclipse.dltk.core.builder.ISourceLineTracker;
import org.eclipse.jface.preference.IPreferenceStore;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
public class LanguageCheckerVisitor extends ASTVisitor {
@@ -538,7 +540,7 @@ public class LanguageCheckerVisitor exte
return true;
}
if (s instanceof RutaVariableReference) {
- if(s instanceof NullExpression) {
+ if (s instanceof NullExpression) {
return false;
}
RutaVariableReference ref = (RutaVariableReference) s;
@@ -655,17 +657,17 @@ public class LanguageCheckerVisitor exte
pr.reportProblem(problem);
}
Object arg1 = childs.get(0);
- if(arg1 instanceof RutaExpression) {
+ if (arg1 instanceof RutaExpression) {
RutaExpression e1 = (RutaExpression) arg1;
- if(e1.getKind() != RutaTypeConstants.RUTA_TYPE_AT) {
+ if (e1.getKind() != RutaTypeConstants.RUTA_TYPE_AT) {
IProblem problem = problemFactory.createWrongArgumentTypeProblem(e1, "Type");
pr.reportProblem(problem);
}
}
Object arg2 = childs.get(1);
- if(arg2 instanceof RutaExpression) {
+ if (arg2 instanceof RutaExpression) {
RutaExpression e2 = (RutaExpression) arg2;
- if(e2.getKind() != RutaTypeConstants.RUTA_TYPE_S) {
+ if (e2.getKind() != RutaTypeConstants.RUTA_TYPE_S) {
IProblem problem = problemFactory.createWrongArgumentTypeProblem(e2, "String");
pr.reportProblem(problem);
}
@@ -983,7 +985,15 @@ public class LanguageCheckerVisitor exte
IPath descriptorRootPath = RutaProjectUtils.getDescriptorRootPath(sourceModule
.getScriptProject().getProject());
IPath basicTSD = descriptorRootPath.append("BasicTypeSystem.xml");
- importCompleteTypeSystem(basicTSD, null);
+ boolean exists = basicTSD.toFile().exists();
+ if (exists) {
+ importCompleteTypeSystem(basicTSD, null);
+ } else {
+ // not in a common ruta project
+ // try to find the file in the classpath
+ URL resource = classLoader.getResource("org/apache/uima/ruta/engine/BasicTypeSystem.xml");
+ importCompleteTypeSystem(null, resource);
+ }
} catch (Exception e) {
RutaIdeUIPlugin.error(e);
}
@@ -1257,6 +1267,20 @@ public class LanguageCheckerVisitor exte
new XMLInputSource(descriptorPath.toPortableString()));
ResourceManager resMgr = getResourceManager(classLoader);
typeSysDescr.resolveImports(resMgr);
+ } else {
+ // backup: just search for the file named correctly
+ String lastSegment = descriptorPath.lastSegment();
+ PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(
+ classLoader);
+ String prefix = "classpath*:**/";
+ String pattern = prefix + lastSegment;
+ Resource[] resources = resolver.getResources(pattern);
+ if(resources != null && resources.length != 0) {
+ typeSysDescr = UIMAFramework.getXMLParser().parseTypeSystemDescription(
+ new XMLInputSource(resources[0].getURL()));
+ ResourceManager resMgr = getResourceManager(classLoader);
+ typeSysDescr.resolveImports(resMgr);
+ }
}
return typeSysDescr;
}
Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerUtils.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerUtils.java?rev=1667053&r1=1667052&r2=1667053&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerUtils.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/RutaCheckerUtils.java Mon Mar 16 16:09:08 2015
@@ -100,6 +100,9 @@ public class RutaCheckerUtils {
}
IModelElement elements[] = null;
namespaceStack.push(fileNameWithoutExtension);
+ if(sourceModule == null) {
+ return imports;
+ }
try {
elements = sourceModule.getChildren();
for (int i = 0; i < elements.length; i++) {