Author: simoneg
Date: Mon Aug 24 13:25:29 2009
New Revision: 807203

URL: http://svn.apache.org/viewvc?rev=807203&view=rev
Log:
LABS-398 : Working on jobs and workspace locks

Modified:
    
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/AddMagmaNatureHandler.java
    
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/DownloadSourcesJob.java
    
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaMavenListener.java
    
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaPDEUtils.java
    
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/RemoveMagmaNatureHandler.java
    
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/UpdateProjectSettingsHandler.java

Modified: 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/AddMagmaNatureHandler.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/AddMagmaNatureHandler.java?rev=807203&r1=807202&r2=807203&view=diff
==============================================================================
--- 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/AddMagmaNatureHandler.java
 (original)
+++ 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/AddMagmaNatureHandler.java
 Mon Aug 24 13:25:29 2009
@@ -20,6 +20,7 @@
                for (Iterator<IProject> iterator = extractProjects.iterator(); 
iterator.hasNext();) {
                        IProject project = iterator.next();
                        try {
+                               MLog.log("Calling addMagmaNature from 
AddMagmaNatureHandler");
                                MagmaPDEUtils.addMagmaNature(project, false);
                        } catch (CoreException e) {
                                MLog.exception(e, "While setting up magma 
project " + project.getName());

Modified: 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/DownloadSourcesJob.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/DownloadSourcesJob.java?rev=807203&r1=807202&r2=807203&view=diff
==============================================================================
--- 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/DownloadSourcesJob.java
 (original)
+++ 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/DownloadSourcesJob.java
 Mon Aug 24 13:25:29 2009
@@ -1,6 +1,8 @@
 package org.apache.magma.tools.magmaeclipse.basics;
 
 import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.magma.tools.magmaeclipse.MLog;
 import org.apache.maven.embedder.ContainerCustomizer;
@@ -20,12 +22,16 @@
 
 public class DownloadSourcesJob extends Job {
 
+       private static Map<String, Long> checkTime = new HashMap<String, 
Long>();
+       
        private IMavenProjectFacade mavenProject;
        private MagmaProject myprg;
+       private boolean override;
 
-       public DownloadSourcesJob(IMavenProjectFacade mavenProject) {
+       public DownloadSourcesJob(IMavenProjectFacade mavenProject, boolean 
override) {
                super("Downloading source packages");
                this.mavenProject = mavenProject;
+               this.override = override;
                myprg  = new MagmaProject(mavenProject.getProject(), 
"downloadSources");
        }
        
@@ -33,6 +39,7 @@
 
        @Override
        protected IStatus run(IProgressMonitor monitor) {
+               MLog.log("Downloading sources for " + 
mavenProject.getProject().getName());
                monitor.beginTask("Downloading missing sources", 
IProgressMonitor.UNKNOWN);
                try {
                        MavenEmbedderManager embman = 
MavenPlugin.getDefault().getMavenEmbedderManager();
@@ -45,23 +52,26 @@
                        
                        req.addEventMonitor(new EventMonitor() {
                                public void startEvent(String arg0, String 
arg1, long arg2) {
-                                       System.out.println("Start event " + 
arg0 + "  ,  " + arg1 + "  , " + arg2);
+                                       MLog.debug("Start event " + arg0 + "  , 
 " + arg1 + "  , " + arg2);
                                        
                                }
                                
                                public void errorEvent(String arg0, String 
arg1, long arg2, Throwable arg3) {
-                                       System.out.println("Error event " + 
arg0 + "  ,  " + arg1 + "  , " + arg2);
                                        if (arg3 != null) {
-                                               arg3.printStackTrace();
+                                               MLog.exception(arg3, "Error 
event " + arg0 + "  ,  " + arg1 + "  , " + arg2);
+                                       } else {
+                                               MLog.debug("Error event " + 
arg0 + "  ,  " + arg1 + "  , " + arg2);                                         
    
                                        }
                                }
                                
                                public void endEvent(String arg0, String arg1, 
long arg2) {
-                                       System.out.println("End event " + arg0 
+ "  ,  " + arg1 + "  , " + arg2);
+                                       MLog.debug("End event " + arg0 + "  ,  
" + arg1 + "  , " + arg2);
+                                       MLog.log("Calling setupProjectJob from 
DownloadSourcesJob");
                                        
MagmaPDEUtils.setupProjectJob(mavenProject.getProject(), false);
                                }
                        });
                        myemb.execute(req);
+                       checkTime.put(mavenProject.getProject().getName(), 
System.currentTimeMillis());
                        myemb.stop();
                } catch (Exception e) {
                        MLog.exception(e, "While downloading sources");
@@ -74,6 +84,14 @@
 
        @Override
        public boolean shouldSchedule() {
+               Long lastcheck = 
checkTime.get(mavenProject.getProject().getName());
+               if (lastcheck != null) {
+                       // Ten minutes
+                       if (System.currentTimeMillis() - lastcheck < 600000 && 
!override) {
+                               MLog.log("Not starting download job because 
done only " + (System.currentTimeMillis() - lastcheck) + " ms ago");
+                               return false;
+                       }
+               }
                return manager.find(myprg).length == 0;
        }
        

Modified: 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaMavenListener.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaMavenListener.java?rev=807203&r1=807202&r2=807203&view=diff
==============================================================================
--- 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaMavenListener.java
 (original)
+++ 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaMavenListener.java
 Mon Aug 24 13:25:29 2009
@@ -48,6 +48,7 @@
                                IProject project = mavenProject.getProject();   
        
                                manager.downloadSources(project, null);
                                
+                               MLog.log("Calling setupSources from 
MagmaMavenListener");
                                
MagmaPDEUtils.setupSourceDependenciesJob(mavenProject, false);
                        }
                } catch (Exception e) {

Modified: 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaPDEUtils.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaPDEUtils.java?rev=807203&r1=807202&r2=807203&view=diff
==============================================================================
--- 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaPDEUtils.java
 (original)
+++ 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/MagmaPDEUtils.java
 Mon Aug 24 13:25:29 2009
@@ -55,9 +55,10 @@
        public static final String PLUGIN_ID = 
"org.apache.magma.tools.magmaeclipse"; //$NON-NLS-1$
        public static final String ID_NATURE = PLUGIN_ID + ".magmanature"; 
//$NON-NLS-1$
 
-       private static final String ID_MAVEN_NATURE = 
"org.maven.ide.eclipse.maven2Nature";
-       private static final String ID_PREFERENCES = PLUGIN_ID;
-       private static final String ID_BUILDER = PLUGIN_ID + ".magmabuilder";
+       public static final String ID_MAVEN_NATURE = 
"org.maven.ide.eclipse.maven2Nature";
+       public static final String ID_PREFERENCES = PLUGIN_ID;
+       public static final String ID_BUILDER = PLUGIN_ID + ".magmabuilder";
+       public static final String ID_LAUNCH_TYPE = PLUGIN_ID + ".magmalaunch";
 
        private static int previousExecutionTime;
        private static RefreshPackageExplorerJob refreshJob;
@@ -269,6 +270,7 @@
         */
        public static void internal_setupProject(IProject project, boolean 
complete,
                        IProgressMonitor mon) {
+               MLog.log("Called internal_setupProject on " + project.getName() 
+ " complete :" + complete);
                setupProjectStructure(project, complete, mon);
                try {
                        if (project.hasNature(ID_MAVEN_NATURE)) {
@@ -309,6 +311,7 @@
         *            If given, this progress monitor is used
         */
        public static void setupProject(final IProject project, final boolean 
complete, final IProgressMonitor mon) {
+               MLog.log("Called setupProject on " + project.getName() + " 
complete :" + complete);
                WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
                        protected void execute(IProgressMonitor monitor)
                                        throws CoreException {
@@ -323,12 +326,13 @@
        }
        
        public static void setupProjectJob(final IProject project, final 
boolean complete) {
+               MLog.log("Called setupProjectJob on " + project.getName() + " 
complete :" + complete);
                Job setup = new Job("Setting up Magma project") {
                        private MagmaProject myprg = new MagmaProject(project, 
"setupProject");
                        
                        @Override
                        protected IStatus run(IProgressMonitor monitor) {
-                               internal_setupProject(project, complete, 
monitor);
+                               setupProject(project, complete, monitor);
                                return Status.OK_STATUS;
                        }
                        
@@ -346,12 +350,13 @@
        }
 
        public static void setupSourceDependenciesJob(final IMavenProjectFacade 
project, final boolean complete) {
+               MLog.log("Called setupSourceDependenciesJob on " + 
project.getProject().getName() + " complete :" + complete);
                Job setup = new Job("Setting up Magma source folders") {
                        private MagmaProject myprg = new 
MagmaProject(project.getProject(), "setupSourceDependencies");
                        
                        @Override
                        protected IStatus run(IProgressMonitor monitor) {
-                               setupSourceDependencies(project, false, 
monitor);
+                               setupSourceDependencies(project, complete, 
monitor);
                                return Status.OK_STATUS;
                        }
                        
@@ -489,6 +494,7 @@
         */
        public static void setupSourceDependencies
                (final IMavenProjectFacade mavenProject, boolean complete, 
IProgressMonitor prog) {
+               MLog.log("Called setupSourceDependencies on " + 
mavenProject.getProject().getName() + " complete :" + complete);
 
                try {           
                        MavenProject mp = mavenProject.getMavenProject(prog);
@@ -603,6 +609,7 @@
                                                        linkstoadd.add(ent);
                                                }
                                        } else {
+                                               MLog.log("Sources not found for 
" + depname);
                                                downloadSources = true;
                                                /*
                                                MLog.debug("Downloading sources 
for " + art.getArtifactId());
@@ -654,7 +661,7 @@
                        }
                        
                        if (downloadSources) {
-                               DownloadSourcesJob ds = new 
DownloadSourcesJob(mavenProject);
+                               DownloadSourcesJob ds = new 
DownloadSourcesJob(mavenProject, complete);
                                ds.schedule();
                        }
                        

Modified: 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/RemoveMagmaNatureHandler.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/RemoveMagmaNatureHandler.java?rev=807203&r1=807202&r2=807203&view=diff
==============================================================================
--- 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/RemoveMagmaNatureHandler.java
 (original)
+++ 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/RemoveMagmaNatureHandler.java
 Mon Aug 24 13:25:29 2009
@@ -3,6 +3,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.magma.tools.magmaeclipse.MLog;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.resources.IProject;
@@ -24,6 +25,7 @@
                        IProject project = (IProject) iter.next();
                        try {
                                // Remove the Magma nature from the project
+                               MLog.log("Calling removeMagmaNature from 
RemoveMagmaNatureHandler");
                                MagmaPDEUtils.removeMagmaNature(project);
                        } catch (CoreException e) {
                        }

Modified: 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/UpdateProjectSettingsHandler.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/UpdateProjectSettingsHandler.java?rev=807203&r1=807202&r2=807203&view=diff
==============================================================================
--- 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/UpdateProjectSettingsHandler.java
 (original)
+++ 
labs/magma/trunk/magma-eclipse/src/org/apache/magma/tools/magmaeclipse/basics/UpdateProjectSettingsHandler.java
 Mon Aug 24 13:25:29 2009
@@ -4,6 +4,7 @@
 import java.util.List;
 import java.util.Vector;
 
+import org.apache.magma.tools.magmaeclipse.MLog;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.resources.IProject;
@@ -28,6 +29,7 @@
                List<IProject> selected = extractProjects(event);
                for (Iterator iter = selected.iterator(); iter.hasNext();) {
                        IProject project = (IProject) iter.next();
+                       MLog.log("Calling setupProjectJob from 
UpdateProjectSettingsHolder");
                        MagmaPDEUtils.setupProjectJob(project, true);
                }
                return null;



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to