Author: rob.stryker(a)jboss.com
Date: 2011-08-15 12:18:55 -0400 (Mon, 15 Aug 2011)
New Revision: 33927
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/module/GitProjectModuleFactoryDelegate.java
Log:
Initial attempt at trying to get as.egit.core to resolve. JBIDE-9510
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/META-INF/MANIFEST.MF 2011-08-15
15:01:59 UTC (rev 33926)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/META-INF/MANIFEST.MF 2011-08-15
16:18:55 UTC (rev 33927)
@@ -9,16 +9,7 @@
org.eclipse.core.resources;bundle-version="3.7.100",
org.eclipse.egit;bundle-version="1.1.0",
org.eclipse.egit.core;bundle-version="1.1.0",
- org.eclipse.egit.core.source;bundle-version="1.0.0",
- org.eclipse.egit.doc;bundle-version="1.1.0",
- org.eclipse.egit.fetchfactory;bundle-version="0.12.0",
- org.eclipse.egit.github.core;bundle-version="1.1.0",
- org.eclipse.egit.github.core.tests;bundle-version="1.1.0",
- org.eclipse.egit.mylyn.ui;bundle-version="1.1.0",
- org.eclipse.egit.mylyn.ui.source;bundle-version="1.0.0",
- org.eclipse.egit.ui;bundle-version="1.1.0",
- org.eclipse.egit.ui.source;bundle-version="1.0.0",
- org.jboss.tools.as.egit.integration;bundle-version="1.0.0"
+ org.eclipse.egit.ui;bundle-version="1.1.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-Vendor: JBoss by Red Hat
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/module/GitProjectModuleFactoryDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/module/GitProjectModuleFactoryDelegate.java 2011-08-15
15:01:59 UTC (rev 33926)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/module/GitProjectModuleFactoryDelegate.java 2011-08-15
16:18:55 UTC (rev 33927)
@@ -1,28 +1,104 @@
package org.jboss.ide.eclipse.as.egit.core.module;
+import java.util.HashMap;
+
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
import org.eclipse.egit.core.project.RepositoryMapping;
import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.model.IModuleResource;
import org.eclipse.wst.server.core.model.ModuleDelegate;
+import org.eclipse.wst.server.core.util.ModuleFile;
import org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate;
public class GitProjectModuleFactoryDelegate extends ProjectModuleFactoryDelegate {
-
+ public static final String FACTORY_ID =
"org.jboss.ide.eclipse.as.egit.core.module.gitProjectModuleFactory";
//$NON-NLS-1$
+ public static final String MODULE_TYPE = "jbt.egit"; //$NON-NLS-1$
+ public static final String VERSION = "1.0"; //$NON-NLS-1$
+ private HashMap<String, IModule> moduleIdToModule;
+ private HashMap<IModule, GitProjectModuleDelegate> moduleToDelegate;
+ private IResourceChangeListener resourceListener;
public GitProjectModuleFactoryDelegate() {
- // TODO Auto-generated constructor stub
- System.out.println("blah");
}
+ public void initialize() {
+ moduleIdToModule = new HashMap<String, IModule>();
+ moduleToDelegate = new HashMap<IModule, GitProjectModuleDelegate>();
+ resourceListener = new IResourceChangeListener() {
+ public void resourceChanged(IResourceChangeEvent event) {
+ try {
+ event.getDelta().accept(new IResourceDeltaVisitor() {
+ public boolean visit(IResourceDelta delta) throws CoreException {
+ IResource r = delta.getResource();
+ if( r instanceof IProject ) {
+ incrementChanged((IProject)r);
+ }
+ return !(r instanceof IProject);
+ }
+ });
+ } catch( CoreException ce) {
+ // Um, in what circumstances does this happen? TODO
+ }
+ }
+ };
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceListener,
IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.PRE_DELETE);
+ }
+ protected void incrementChanged(IProject p) {
+ IModule mod = moduleIdToModule.get(p.getName());
+ if( mod != null ) {
+ GitProjectModuleDelegate del = moduleToDelegate.get(mod);
+ del.updateTimestamp();
+ }
+ }
protected IModule createModule(IProject project) {
RepositoryMapping mapping = RepositoryMapping.getMapping(project);
- System.out.println(mapping);
+ if( mapping != null ) {
+ IModule module = createModule(project.getName(), project.getName(), MODULE_TYPE,
VERSION, project);
+ moduleIdToModule.put(project.getName(), module);
+ moduleToDelegate.put(module, new GitProjectModuleDelegate(project));
+ return module;
+ }
return null;
}
@Override
public ModuleDelegate getModuleDelegate(IModule module) {
- // TODO Auto-generated method stub
- return null;
+ return moduleToDelegate.get(module);
}
+ public class GitProjectModuleDelegate extends ModuleDelegate {
+ private IProject project;
+ private long lastUpdated = System.currentTimeMillis();
+ public GitProjectModuleDelegate(IProject project) {
+ this.project = project;
+ }
+ public IModuleResource[] members() throws CoreException {
+ return new IModuleResource[]{
+ // This resource will be ignored, but, we need *SOMETHING* to sit here
+ new ModuleFile(project.getName(), new Path("/"), lastUpdated)
+ };
+ }
+
+ protected void updateTimestamp() {
+ lastUpdated = System.currentTimeMillis();
+ }
+ @Override
+ public IStatus validate() {
+ return Status.OK_STATUS;
+ }
+
+ @Override
+ public IModule[] getChildModules() {
+ return new IModule[0];
+ }
+ }
}
Show replies by date