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 2019/11/13 16:21:48 UTC

svn commit: r1869750 - /uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaBuilder.java

Author: pkluegl
Date: Wed Nov 13 16:21:48 2019
New Revision: 1869750

URL: http://svn.apache.org/viewvc?rev=1869750&view=rev
Log:
UIMA-5669: refresh descriptor folder in scheduled job

Modified:
    uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/builder/RutaBuilder.java

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=1869750&r1=1869749&r2=1869750&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 Wed Nov 13 16:21:48 2019
@@ -46,6 +46,7 @@ import org.eclipse.core.resources.IConta
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -53,6 +54,8 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.dltk.ast.declarations.ModuleDeclaration;
 import org.eclipse.dltk.core.DLTKCore;
 import org.eclipse.dltk.core.IScriptProject;
@@ -91,7 +94,7 @@ public class RutaBuilder extends Abstrac
 
       IPath outputPath = getAbsolutePath(sourceModule);
       @SuppressWarnings("unused")
-      IPath[] generateResources = generateResources(moduleDeclaration, outputPath, container,
+      final IPath[] generateResources = generateResources(moduleDeclaration, outputPath, container,
               sourceModule);
 
       IProject proj = sourceModule.getScriptProject().getProject();
@@ -102,28 +105,46 @@ public class RutaBuilder extends Abstrac
 
       monitor.worked(2);
       // refreshing deactivated in context of UIMA-5669
-      // String defaultDescriptorLocation = RutaProjectUtils.getDefaultDescriptorLocation();
-      // IFolder folder = container.getProject().getFolder(defaultDescriptorLocation);
-      // for (IPath iPath : generateResources) {
-      // IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-      // IFile[] files = root.findFilesForLocationURI(iPath.toFile().toURI());
-      // for (IFile file : files) {
-      // file.refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());
-      // }
-      //
-      // IResource findMember2 = root.findMember(iPath);
-      //
-      // iPath = iPath.makeRelativeTo(folder.getLocation());
-      // IResource findMember = folder.findMember(iPath);
-      // if (findMember != null) {
-      // findMember.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
-      // findMember.getParent().refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());
-      // }
-      //
-      // }
-      // folder.refreshLocal(IResource.DEPTH_INFINITE, new SubProgressMonitor(monitor,
-      // generateResources.length));
-      //
+      String defaultDescriptorLocation = RutaProjectUtils.getDefaultDescriptorLocation();
+      final IFolder folder = container.getProject().getFolder(defaultDescriptorLocation);
+
+//      for (IPath iPath : generateResources) {
+//        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+//        IFile[] files = root.findFilesForLocationURI(iPath.toFile().toURI());
+//        for (IFile file : files) {
+//          file.refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());
+//        }
+//
+//        IResource findMember2 = root.findMember(iPath);
+//
+//        iPath = iPath.makeRelativeTo(folder.getLocation());
+//        IResource findMember = folder.findMember(iPath);
+//        if (findMember != null) {
+//          findMember.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+//          findMember.getParent().refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());
+//        }
+//
+//      }
+
+      Job refreshJob = new Job("Refreshing generated descriptors") {
+        @Override
+        public boolean belongsTo(Object family) {
+          return family == ResourcesPlugin.FAMILY_MANUAL_REFRESH;
+        }
+
+        @Override
+        protected IStatus run(IProgressMonitor pm) {
+          try {
+            folder.refreshLocal(IResource.DEPTH_INFINITE,
+                    new SubProgressMonitor(monitor, generateResources.length));
+          } catch (CoreException e) {
+            return e.getStatus();
+          }
+          return Status.OK_STATUS;
+        }
+      };
+      refreshJob.schedule();
+
       // monitor.worked(1);
     } catch (ModelException e) {
       if (DLTKCore.DEBUG_PARSER) {