Author: asanso
Date: Thu Nov  8 08:31:04 2012
New Revision: 1406949

URL: http://svn.apache.org/viewvc?rev=1406949&view=rev
Log:
SLING-2634 - Slingclipse should expose the operations it performs and their 
results. Applied patch from Robert Munteanu. Thanks!!

Modified:
    
sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java

Modified: 
sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java?rev=1406949&r1=1406948&r2=1406949&view=diff
==============================================================================
--- 
sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java
 (original)
+++ 
sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java
 Thu Nov  8 08:31:04 2012
@@ -23,11 +23,14 @@ import java.io.IOException;
 import java.util.Iterator;
 
 import org.apache.sling.slingclipse.SlingclipsePlugin;
+import org.apache.sling.slingclipse.api.Command;
 import org.apache.sling.slingclipse.api.Repository;
 import org.apache.sling.slingclipse.api.RepositoryException;
 import org.apache.sling.slingclipse.api.RepositoryInfo;
 import org.apache.sling.slingclipse.api.ResponseType;
+import org.apache.sling.slingclipse.api.Result;
 import org.apache.sling.slingclipse.helper.SlingclipseHelper;
+import org.apache.sling.slingclipse.helper.Tracer;
 import org.apache.sling.slingclipse.preferences.PreferencesMessages;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -83,6 +86,9 @@ public class ImportWizard extends Wizard
                                
 
                                protected IStatus run(IProgressMonitor monitor) 
{
+                                       
+                                       Tracer tracer = 
SlingclipsePlugin.getDefault().getTracer();
+                                       
                                        monitor.setTaskName("Loading 
configuration...");
                                        monitor.worked(5);
                                        
@@ -94,7 +100,7 @@ public class ImportWizard extends Wizard
                                                // TODO: We should try to make 
this give 'nice' progress feedback (aka here's what I'm processing)
                                                
monitor.setTaskName("Importing...");
                                                monitor.worked(10);
-                                               
crawlChildrenAndImport(repository, repositoryPath,destinationPath);
+                                               
crawlChildrenAndImport(repository, repositoryPath,destinationPath, tracer);
                                                
                                                monitor.setTaskName("Import 
Complete");
                                                monitor.worked(100);
@@ -150,20 +156,20 @@ public class ImportWizard extends Wizard
        }
        
        // TODO: This probably should be pushed into the service layer
-       private void crawlChildrenAndImport(Repository repository,String 
path,String destinationPath) throws JSONException, IOException, 
RepositoryException{
-               String 
children=repository.newListChildrenNodeCommand(path,ResponseType.JSON).execute().get();
 
+       private void crawlChildrenAndImport(Repository repository,String 
path,String destinationPath, Tracer tracer) throws JSONException, IOException, 
RepositoryException{
+               String children = 
executeCommand(repository.newListChildrenNodeCommand(path,ResponseType.JSON), 
tracer); 
                JSONObject json = new JSONObject(children);
                String primaryType= json.optString(Repository.JCR_PRIMARY_TYPE);
  
                if (Repository.NT_FILE.equals(primaryType)){
-                       importFile(repository, path,destinationPath);
+                       importFile(repository, path,destinationPath, tracer);
                }else if (Repository.NT_FOLDER.equals(primaryType)){
                        //TODO create folder
                }else if(Repository.NT_RESOURCE.equals(primaryType)){
                        //DO NOTHING
                }else{          
                        createFolder(path, destinationPath);
-                       String 
content=repository.newGetNodeContentCommand(path, 
ResponseType.JSON).execute().get();
+                       String content = 
executeCommand(repository.newGetNodeContentCommand(path, ResponseType.JSON), 
tracer);
                        JSONObject jsonContent = new JSONObject(content);
                        jsonContent.put(SlingclipseHelper.TAG_NAME, 
Repository.JCR_ROOT);
                        String contentXml = JSONML.toString(jsonContent);       
        
@@ -174,13 +180,22 @@ public class ImportWizard extends Wizard
                        String key = keys.next();
                        JSONObject innerjson=json.optJSONObject(key);
                        if (innerjson!=null){
-                               crawlChildrenAndImport(repository, 
path+"/"+key,destinationPath);
+                               crawlChildrenAndImport(repository, 
path+"/"+key,destinationPath, tracer);
                        }
                }
+       }
+
+       private <T> T executeCommand(Command<T> command, Tracer tracer) throws 
RepositoryException {
+               
+               Result<T> result = command.execute();
+               
+               SlingclipsePlugin.getDefault().getTracer().trace("{0} : {1}.", 
command, result);
+               
+               return result.get();
        }       
        
-       private void importFile(Repository repository,String path,String 
destinationPath) throws JSONException, IOException, RepositoryException{ 
-                       byte [] node= 
repository.newGetNodeCommand(path).execute().get();
+       private void importFile(Repository repository,String path,String 
destinationPath, Tracer tracer) throws JSONException, IOException, 
RepositoryException{ 
+                       byte [] node= 
executeCommand(repository.newGetNodeCommand(path), tracer);
                        createFile(path, node,destinationPath);
        }
        


Reply via email to