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++) {