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 2013/05/01 15:58:25 UTC
svn commit: r1478002 - in /uima/sandbox/ruta/trunk/ruta-ep-addons: plugin.xml
src/main/java/org/apache/uima/ruta/utils/update/UpdateProjectHandler.java
Author: pkluegl
Date: Wed May 1 13:58:24 2013
New Revision: 1478002
URL: http://svn.apache.org/r1478002
Log:
UIMA-2831
- added functionality to update old textmarker projects
Modified:
uima/sandbox/ruta/trunk/ruta-ep-addons/plugin.xml
uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/update/UpdateProjectHandler.java
Modified: uima/sandbox/ruta/trunk/ruta-ep-addons/plugin.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/plugin.xml?rev=1478002&r1=1478001&r2=1478002&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-addons/plugin.xml (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-addons/plugin.xml Wed May 1 13:58:24 2013
@@ -502,7 +502,11 @@ under the License.
<or>
<instanceof
value="org.eclipse.dltk.core.IScriptProject ">
- </instanceof></or>
+ </instanceof>
+ <instanceof
+ value="org.eclipse.core.resources.IProject ">
+ </instanceof>
+ </or>
</iterate>
</with>
</definition>
Modified: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/update/UpdateProjectHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/update/UpdateProjectHandler.java?rev=1478002&r1=1478001&r2=1478002&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/update/UpdateProjectHandler.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/update/UpdateProjectHandler.java Wed May 1 13:58:24 2013
@@ -19,11 +19,13 @@
package org.apache.uima.ruta.utils.update;
+import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import org.apache.commons.io.FileUtils;
import org.apache.uima.ruta.addons.RutaAddonsPlugin;
import org.apache.uima.ruta.ide.core.RutaNature;
import org.apache.uima.ruta.ide.core.builder.RutaProjectUtils;
@@ -43,9 +45,12 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.dltk.core.IScriptProject;
+import org.eclipse.dltk.internal.ui.util.SelectionUtil;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.HandlerUtil;
public class UpdateProjectHandler implements IHandler {
@@ -54,15 +59,15 @@ public class UpdateProjectHandler implem
ExecutionEvent event;
ConverterHandlerJob(ExecutionEvent event) {
- super("Converting...");
+ super("Updating...");
this.event = event;
setUser(true);
}
@Override
public IStatus run(IProgressMonitor monitor) {
- List<IScriptProject> projects = new ArrayList<IScriptProject>();
- ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
+ List<IProject> projects = new ArrayList<IProject>();
+ final ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
if (currentSelection instanceof IStructuredSelection) {
StructuredSelection selection = (StructuredSelection) currentSelection;
Iterator<?> iter = selection.iterator();
@@ -70,36 +75,46 @@ public class UpdateProjectHandler implem
Object object = iter.next();
if (object instanceof IScriptProject) {
IScriptProject p = (IScriptProject) object;
- projects.add(p);
+ projects.add(p.getProject());
+ } else if (object instanceof IProject) {
+ projects.add((IProject) object);
}
}
}
- monitor.beginTask("Updating descriptor files...", projects.size());
- for (IScriptProject each : projects) {
- IProject project = each.getProject();
-
+ monitor.beginTask("Updating UIMA Ruta project...", projects.size());
+ for (IProject each : projects) {
// update old projects
-// try {
-// IProjectNature oldNature = project.getNature(RutaNature.NATURE_ID);
-// if (oldNature != null) {
-// IProjectDescription description = project.getDescription();
-// String[] natureIds = description.getNatureIds();
-// int counter = 0;
-// for (String id : Arrays.asList(natureIds)) {
-// if (id.equals(RutaNature.NATURE_ID)) {
-// natureIds[counter] = RutaNature.NATURE_ID;
-// }
-// counter++;
-// }
-// }
-// } catch (CoreException e) {
-// RutaAddonsPlugin.error(e);
-// }
+ try {
+ IProjectDescription description = each.getDescription();
+ String[] natureIds = description.getNatureIds();
+ int counter = 0;
+ boolean oldProject = false;
+ for (String id : Arrays.asList(natureIds)) {
+ if (id.equals("org.apache.uima.textmarker.ide.nature")) {
+ natureIds[counter] = RutaNature.NATURE_ID;
+ oldProject = true;
+ }
+ counter++;
+ }
+ if (oldProject) {
+ description.setNatureIds(natureIds);
+ each.setDescription(description, monitor);
+ List<File> files = getFiles(new File(each.getLocation().toPortableString()));
+ for (File file : files) {
+ String absolutePath = file.getAbsolutePath();
+ File newFile = new File(absolutePath.substring(0, absolutePath.length() - 3)
+ + ".ruta");
+ file.renameTo(newFile);
+ }
+ }
+ } catch (CoreException e) {
+ RutaAddonsPlugin.error(e);
+ }
try {
- IProjectNature nature = project.getNature(RutaNature.NATURE_ID);
+ IProjectNature nature = each.getNature(RutaNature.NATURE_ID);
if (nature != null) {
- List<IFolder> descriptorFolders = RutaProjectUtils.getDescriptorFolders(project);
+ List<IFolder> descriptorFolders = RutaProjectUtils.getDescriptorFolders(each);
if (descriptorFolders != null && !descriptorFolders.isEmpty()) {
IFolder descFolder = descriptorFolders.get(0);
RutaProjectCreationWizard.copyDescriptors(descFolder);
@@ -113,7 +128,6 @@ public class UpdateProjectHandler implem
}
monitor.done();
return Status.OK_STATUS;
-
}
}
@@ -140,4 +154,20 @@ public class UpdateProjectHandler implem
}
+ private static List<File> getFiles(File dir) {
+ List<File> result = new ArrayList<File>();
+ for (File each : dir.listFiles()) {
+ if (each.isHidden()) {
+ continue;
+ }
+ if (each.getName().endsWith(".tm")) {
+ result.add(each);
+ }
+ if (each.isDirectory()) {
+ result.addAll(getFiles(each));
+ }
+ }
+ return result;
+ }
+
}