Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2011-12-16 17:22:46 +0000
committerpfullbright2011-12-16 17:22:46 +0000
commit8246447f12e7af5e8c8865544054539d1181d161 (patch)
treec056d32c19bb38c6e55fb5614858d5547d7ab6f9 /jaxb/plugins/org.eclipse.jpt.jaxb.core/src
parent4eb4001424403b10c7c32ae7228d18fb4332141d (diff)
downloadwebtools.dali-8246447f12e7af5e8c8865544054539d1181d161.tar.gz
webtools.dali-8246447f12e7af5e8c8865544054539d1181d161.tar.xz
webtools.dali-8246447f12e7af5e8c8865544054539d1181d161.zip
changed to asynchronous sync/update
Diffstat (limited to 'jaxb/plugins/org.eclipse.jpt.jaxb.core/src')
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbProjectManager.java50
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JptJaxbCoreMessages.java6
2 files changed, 53 insertions, 3 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbProjectManager.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbProjectManager.java
index c4056c7bd5..61f6cd5f40 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbProjectManager.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbProjectManager.java
@@ -23,6 +23,8 @@ import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.jobs.IJobManager;
import org.eclipse.core.runtime.jobs.ILock;
import org.eclipse.core.runtime.jobs.Job;
@@ -30,6 +32,9 @@ import org.eclipse.jdt.core.ElementChangedEvent;
import org.eclipse.jdt.core.IElementChangedListener;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jpt.common.core.internal.JptCommonCoreMessages;
+import org.eclipse.jpt.common.core.internal.utility.CallbackJobSynchronizer;
+import org.eclipse.jpt.common.core.internal.utility.JobCommand;
+import org.eclipse.jpt.common.core.internal.utility.JobSynchronizer;
import org.eclipse.jpt.common.utility.Command;
import org.eclipse.jpt.common.utility.internal.AsynchronousCommandExecutor;
import org.eclipse.jpt.common.utility.internal.SimpleCommandExecutor;
@@ -38,8 +43,12 @@ import org.eclipse.jpt.common.utility.internal.StringTools;
import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean;
import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable;
import org.eclipse.jpt.common.utility.internal.model.AbstractModel;
+import org.eclipse.jpt.common.utility.synchronizers.CallbackSynchronizer;
+import org.eclipse.jpt.common.utility.synchronizers.Synchronizer;
+import org.eclipse.jpt.jaxb.core.internal.JptJaxbCoreMessages;
import org.eclipse.jpt.jaxb.core.internal.SimpleJaxbProjectConfig;
import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDefinition;
+import org.eclipse.osgi.util.NLS;
import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
@@ -377,7 +386,8 @@ class GenericJaxbProjectManager
if (jaxbProject == null) {
return null;
}
-// jaxbProject.setUpdateSynchronizer(new CallbackAsynchronousSynchronizer());
+ jaxbProject.setContextModelSynchronizer(buildJobContextModelSynchronizer(jaxbProject));
+ jaxbProject.setUpdateSynchronizer(buildJobUpdateSynchronizer(jaxbProject));
return jaxbProject;
}
@@ -401,6 +411,44 @@ class GenericJaxbProjectManager
return config;
}
+ private Synchronizer buildJobContextModelSynchronizer(JaxbProject jaxbProject) {
+ return new JobSynchronizer(
+ buildContextModelJobName(jaxbProject),
+ buildContextModelJobCommand(jaxbProject),
+ jaxbProject.getProject());
+ }
+
+ private String buildContextModelJobName(JaxbProject jaxbProject) {
+ return NLS.bind(JptJaxbCoreMessages.CONTEXT_MODEL_SYNC_JOB_NAME, jaxbProject.getName());
+ }
+
+ private JobCommand buildContextModelJobCommand(final JaxbProject jaxbProject) {
+ return new JobCommand() {
+ public IStatus execute(IProgressMonitor monitor) {
+ return jaxbProject.synchronizeContextModel(monitor);
+ }
+ };
+ }
+
+ private CallbackSynchronizer buildJobUpdateSynchronizer(JaxbProject jaxbProject) {
+ return new CallbackJobSynchronizer(
+ buildUpdateJobName(jaxbProject),
+ buildUpdateJobCommand(jaxbProject),
+ jaxbProject.getProject());
+ }
+
+ private String buildUpdateJobName(JaxbProject jaxbProject) {
+ return NLS.bind(JptJaxbCoreMessages.UPDATE_JOB_NAME, jaxbProject.getName());
+ }
+
+ private JobCommand buildUpdateJobCommand(final JaxbProject jaxbProject) {
+ return new JobCommand() {
+ public IStatus execute(IProgressMonitor monitor) {
+ return jaxbProject.update(monitor);
+ }
+ };
+ }
+
/* private */ void removeJaxbProject(JaxbProject jaxbProject) {
// figure out exactly when JAXB projects are removed
dumpStackTrace("remove: ", jaxbProject); //$NON-NLS-1$
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JptJaxbCoreMessages.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JptJaxbCoreMessages.java
index 112a1158e0..1ddbcdc20f 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JptJaxbCoreMessages.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JptJaxbCoreMessages.java
@@ -16,6 +16,10 @@ import org.eclipse.osgi.util.NLS;
*/
public class JptJaxbCoreMessages {
+ public static String CONTEXT_MODEL_SYNC_JOB_NAME;
+ public static String UPDATE_JOB_NAME;
+ public static String PREFERENCES_FLUSH_JOB_NAME;
+
public static String ClassesGenerator_generatingClasses;
public static String ClassesGenerator_generatingClassesTask;
@@ -29,8 +33,6 @@ public class JptJaxbCoreMessages {
public static String UserLibraryValidator_incompatibleJavaFacet;
public static String UserLibraryValidator_incompatibleJavaLibrary;
- public static String PREFERENCES_FLUSH_JOB_NAME;
-
public static String SchemaGenerator_creatingJAXBPropertiesFileTask;
public static String XML_ATTRIBUTE_DESC;

Back to the top