You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2013/07/19 17:02:58 UTC

svn commit: r1504900 - in /sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal: SlingContentModuleFactory.java SlingLaunchpadBehaviour.java

Author: rombert
Date: Fri Jul 19 15:02:57 2013
New Revision: 1504900

URL: http://svn.apache.org/r1504900
Log:
SLING-2973 - [Tooling] Align Eclipse tooling to proposed structure

Allow creating directories individually additionally to files. There
seem to be some timing issues - at least with Eclipse 3.7.2 as directory
events are not fired immediately.

Modified:
    sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingContentModuleFactory.java
    sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java

Modified: sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingContentModuleFactory.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingContentModuleFactory.java?rev=1504900&r1=1504899&r2=1504900&view=diff
==============================================================================
--- sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingContentModuleFactory.java (original)
+++ sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingContentModuleFactory.java Fri Jul 19 15:02:57 2013
@@ -81,6 +81,8 @@ public class SlingContentModuleFactory e
 
                     IPath relativePath = resource.getProjectRelativePath();
 
+                    System.out.println("Visiting " + resource + " ...");
+
                     // only recurse in the expected content path
                     // TODO make configurable
                     if (!SlingclipseHelper.JCR_ROOT.equals(relativePath.segment(0))) {
@@ -89,12 +91,19 @@ public class SlingContentModuleFactory e
 
                     IPath modulePath = relativePath.removeFirstSegments(1); // remove jcr_root
 
+                    IModuleResource moduleFile = null;
+
                     if (resource.getType() == IResource.FILE) {
+                        moduleFile = new ModuleFile((IFile) resource, resource.getName(), modulePath);
+                    } else if (resource.getType() == IResource.FOLDER) {
+                        moduleFile = new ModuleFolder((IFolder) resource, resource.getName(), modulePath);
+                    }
 
-                        ModuleFile moduleFile = new ModuleFile((IFile) resource, resource.getName(), modulePath);
+                    if (moduleFile != null)
                         resources.add(moduleFile);
-                        System.out.println("Converted " + resource + " to " + moduleFile);
-                    }
+
+                    System.out.println("Converted " + resource + " to " + moduleFile);
+
                     return true;
                 }
             });

Modified: sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java?rev=1504900&r1=1504899&r2=1504900&view=diff
==============================================================================
--- sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java (original)
+++ sling/whiteboard/asanso/plugins/eclipse/slingclipse-wst/src/org/apache/sling/ide/eclipse/wst/internal/SlingLaunchpadBehaviour.java Fri Jul 19 15:02:57 2013
@@ -16,7 +16,6 @@
  */
 package org.apache.sling.ide.eclipse.wst.internal;
 
-import java.io.File;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Arrays;
@@ -28,6 +27,8 @@ import org.apache.sling.slingclipse.api.
 import org.apache.sling.slingclipse.api.RepositoryInfo;
 import org.apache.sling.slingclipse.api.Result;
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -35,7 +36,6 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.debug.core.ILaunch;
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.model.IModuleFile;
 import org.eclipse.wst.server.core.model.IModuleResource;
 import org.eclipse.wst.server.core.model.IModuleResourceDelta;
 import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
@@ -155,18 +155,15 @@ public class SlingLaunchpadBehaviour ext
 
                     System.out.println(deltaTrace);
 
-                    if (resourceDelta.getModuleResource() instanceof IModuleFile) {
-
-                        switch (resourceDelta.getKind()) {
-                            case IModuleResourceDelta.ADDED:
-                            case IModuleResourceDelta.CHANGED:
-                            case IModuleResourceDelta.NO_CHANGE: // TODO is this needed?
-                                execute(addFileCommand(repository, (IModuleFile) resourceDelta.getModuleResource()));
-                                break;
-                            case IModuleResourceDelta.REMOVED:
-                                execute(removeFileCommand(repository, (IModuleFile) resourceDelta.getModuleResource()));
-                                break;
-                        }
+                    switch (resourceDelta.getKind()) {
+                        case IModuleResourceDelta.ADDED:
+                        case IModuleResourceDelta.CHANGED:
+                        case IModuleResourceDelta.NO_CHANGE: // TODO is this needed?
+                            execute(addFileCommand(repository, resourceDelta.getModuleResource()));
+                            break;
+                        case IModuleResourceDelta.REMOVED:
+                            execute(removeFileCommand(repository, resourceDelta.getModuleResource()));
+                            break;
                     }
                 }
                 break;
@@ -174,22 +171,12 @@ public class SlingLaunchpadBehaviour ext
             case ServerBehaviourDelegate.ADDED:
             case ServerBehaviourDelegate.NO_CHANGE: // TODO is this correct ?
                 for (IModuleResource resource : moduleResources) {
-
-                    if (resource instanceof IModuleFile) {
-                        execute(addFileCommand(repository, (IModuleFile) resource));
-                    } else {
-                        // TODO log/barf
-                    }
+                    execute(addFileCommand(repository, resource));
                 }
                 break;
             case ServerBehaviourDelegate.REMOVED:
                 for (IModuleResource resource : moduleResources) {
-
-                    if (resource instanceof IModuleFile) {
-                        execute(removeFileCommand(repository, (IModuleFile) resource));
-                    } else {
-                        // TODO log/barf
-                    }
+                    execute(removeFileCommand(repository, resource));
                 }
                 break;
         }
@@ -211,7 +198,7 @@ public class SlingLaunchpadBehaviour ext
             throw new CoreException(new Status(Status.ERROR, "some.plugin", result.toString()));
     }
 
-    private Command<?> addFileCommand(Repository repository, IModuleFile resource) {
+    private Command<?> addFileCommand(Repository repository, IModuleResource resource) {
 
         FileInfo info = createFileInfo(resource);
 
@@ -223,13 +210,17 @@ public class SlingLaunchpadBehaviour ext
         return repository.newAddNodeCommand(info);
     }
 
-    private FileInfo createFileInfo(IModuleFile resource) {
+    private FileInfo createFileInfo(IModuleResource resource) {
 
-        IFile file = (IFile) resource.getAdapter(IFile.class);
+        IResource file = (IFile) resource.getAdapter(IFile.class);
+        if (file == null) {
+            file = (IFolder) resource.getAdapter(IFolder.class);
+        }
 
         if (file == null) {
             // Usually happens on server startup, it seems to be safe to ignore for now
-            System.out.println("Got null '" + IFile.class.getSimpleName() + "' for " + resource);
+            System.out.println("Got null '" + IFile.class.getSimpleName() + "' and '" + IFolder.class.getSimpleName()
+                    + "'for " + resource);
             return null;
         }
 
@@ -244,7 +235,7 @@ public class SlingLaunchpadBehaviour ext
         return info;
     }
 
-    private Command<?> removeFileCommand(Repository repository, IModuleFile resource) {
+    private Command<?> removeFileCommand(Repository repository, IModuleResource resource) {
 
         FileInfo info = createFileInfo(resource);