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]