Author: pkluegl
Date: Tue Oct 27 08:37:02 2015
New Revision: 1710743

URL: http://svn.apache.org/viewvc?rev=1710743&view=rev
Log:
UIMA-4659
- support resource paths in old IDE projects again

Modified:
    
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java
    
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaBuilder.java
    
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaProjectUtils.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=1710743&r1=1710742&r2=1710743&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
 Tue Oct 27 08:37:02 2015
@@ -314,7 +314,7 @@ public class RutaDescriptorBuilder {
   }
 
   public void build(RutaDescriptorInformation desc, String typeSystemOutput, 
String engineOutput,
-          RutaBuildOptions options, String[] scriptPaths, String[] enginePaths)
+          RutaBuildOptions options, String[] scriptPaths, String[] 
enginePaths, String[] resourcePaths)
           throws SAXException, InvalidXMLException, IOException, 
ResourceInitializationException,
           URISyntaxException {
 
@@ -323,7 +323,7 @@ public class RutaDescriptorBuilder {
 
     AnalysisEngineDescription analysisEngineDescription = 
createAnalysisEngineDescription(desc,
             typeSystemDescription, typeSystemOutput, engineOutput, options, 
scriptPaths,
-            enginePaths, null);
+            enginePaths, resourcePaths);
 
     File analysisEngineFile = getFile(engineOutput);
     File typeSystemFile = getFile(typeSystemOutput);

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=1710743&r1=1710742&r2=1710743&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
 Tue Oct 27 08:37:02 2015
@@ -167,6 +167,7 @@ public class RutaBuilder extends Abstrac
       String scriptWithPackagePath = 
RutaProjectUtils.getScriptWithPackage(pathToModule, project);
       List<String> scriptPathList = new ArrayList<String>();
       List<String> descriptorPathList = new ArrayList<String>();
+      List<String> resourcePathList = new ArrayList<String>();
 
       // add all folders
       try {
@@ -182,9 +183,18 @@ public class RutaBuilder extends Abstrac
       } catch (Exception e) {
         RutaIdeCorePlugin.error(e);
       }
+      
+      try {
+        List<IFolder> allResourceFolders = 
RutaProjectUtils.getAllResourceFolders(project);
+        
resourcePathList.addAll(RutaProjectUtils.getFolderLocations(allResourceFolders));
+      } catch (Exception e) {
+        RutaIdeCorePlugin.error(e);
+      }
 
       String[] descriptorPaths = descriptorPathList.toArray(new String[0]);
       String[] scriptPaths = scriptPathList.toArray(new String[0]);
+      String[] resourcePaths =  resourcePathList.toArray(new String[0]);
+              
       String mainScript = scriptWithPackagePath;
       mainScript = mainScript.replaceAll("/", ".");
       if (mainScript.endsWith(RutaEngine.SCRIPT_FILE_EXTENSION)) {
@@ -203,7 +213,7 @@ public class RutaBuilder extends Abstrac
         counter++;
       }
       ClassLoader classloader = new URLClassLoader(urls);
-      build(basicTS, basicE, typeSystem, engine, sm, scriptPaths, 
descriptorPaths, classloader);
+      build(basicTS, basicE, typeSystem, engine, sm, scriptPaths, 
descriptorPaths, resourcePaths, classloader);
 
       IPath tsPath = Path.fromPortableString(typeSystem);
       IPath ePath = Path.fromPortableString(engine);
@@ -215,7 +225,7 @@ public class RutaBuilder extends Abstrac
 
   private void build(String basicTypesystem, String basicEngine, String 
typeSystemDest,
           String engineDest, RutaDescriptorInformation sm, String[] 
scriptPaths,
-          String[] enginePaths, ClassLoader classloader) {
+          String[] enginePaths, String[] resourcePaths, ClassLoader 
classloader) {
     RutaDescriptorBuilder builder = null;
     try {
       URL tsUrl = new File(basicTypesystem).toURI().toURL();
@@ -280,7 +290,7 @@ public class RutaBuilder extends Abstrac
       
option.setImportByName(store.getBoolean(RutaCorePreferences.BUILDER_IMPORT_BY_NAME));
       
option.setResolveImports(store.getBoolean(RutaCorePreferences.BUILDER_RESOLVE_IMPORTS));
       option.setClassLoader(classloader);
-      builder.build(sm, typeSystemDest, engineDest, option, scriptPaths, 
enginePaths);
+      builder.build(sm, typeSystemDest, engineDest, option, scriptPaths, 
enginePaths, resourcePaths);
     } catch (Exception e) {
       DLTKCore.error(e.getMessage(), e);
       if (DLTKCore.DEBUG_PARSER) {

Modified: 
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaProjectUtils.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaProjectUtils.java?rev=1710743&r1=1710742&r2=1710743&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaProjectUtils.java
 (original)
+++ 
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaProjectUtils.java
 Tue Oct 27 08:37:02 2015
@@ -266,6 +266,13 @@ public class RutaProjectUtils {
     result.addAll(getReferencedDescriptorFolders(proj));
     return result;
   }
+  
+  public static List<IFolder> getAllResourceFolders(IProject proj) throws 
CoreException {
+    List<IFolder> result = new ArrayList<IFolder>();
+    result.addAll(getResourceFolders(proj));
+    result.addAll(getReferencedResourceFolders(proj));
+    return result;
+  }
 
   public static List<IFolder> getReferencedDescriptorFolders(IProject proj) 
throws CoreException {
     return getReferencedDescriptorFolders(proj, new HashSet<IProject>());
@@ -283,6 +290,24 @@ public class RutaProjectUtils {
       }
     }
     return result;
+  }
+  
+  public static List<IFolder> getReferencedResourceFolders(IProject proj) 
throws CoreException {
+    return getReferencedDescriptorFolders(proj, new HashSet<IProject>());
+  }
+
+  public static List<IFolder> getReferencedResourceFolders(IProject proj,
+          Collection<IProject> visited) throws CoreException {
+    List<IFolder> result = new ArrayList<IFolder>();
+    Collection<IProject> referencedProjects = getReferencedProjects(proj, new 
HashSet<IProject>());
+    for (IProject eachProject : referencedProjects) {
+      if (!visited.contains(eachProject)) {
+        result.addAll(RutaProjectUtils.getResourceFolders(eachProject));
+        visited.add(eachProject);
+        result.addAll(getReferencedResourceFolders(eachProject, visited));
+      }
+    }
+    return result;
   }
 
   public static Collection<IProject> getReferencedProjects(IProject proj,


Reply via email to