Author: adietish
Date: 2011-08-16 01:11:07 -0400 (Tue, 16 Aug 2011)
New Revision: 33955
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/Activator.java
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitBehaviourDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitPublisher.java
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitUtils.java
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/module/
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/module/GitProjectModuleFactoryDelegate.java
Log:
[JBIDE-9511] added stub publishers, started egit utils (that the publisher shall use)
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/Activator.java
(from rev 33923,
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/Activator.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/Activator.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/Activator.java 2011-08-16
05:11:07 UTC (rev 33955)
@@ -0,0 +1,32 @@
+package org.jboss.ide.eclipse.as.egit.core.internal;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ public static final String PLUGIN_ID = "org.jboss.ide.eclipse.as.egit.core";
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/Activator.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitBehaviourDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitBehaviourDelegate.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitBehaviourDelegate.java 2011-08-16
05:11:07 UTC (rev 33955)
@@ -0,0 +1,64 @@
+package org.jboss.ide.eclipse.as.egit.core.internal;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.jboss.ide.eclipse.as.core.server.internal.DelegatingServerBehavior;
+import org.jboss.ide.eclipse.as.core.server.internal.IJBossBehaviourDelegate;
+
+public class EgitBehaviourDelegate implements IJBossBehaviourDelegate {
+
+ private static final String ID = "egit";
+
+ @Override
+ public String getBehaviourTypeId() {
+ return ID;
+ }
+
+ @Override
+ public void setActualBehaviour(DelegatingServerBehavior actualBehaviour) {
+ }
+
+ @Override
+ public void stop(boolean force) {
+ }
+
+ @Override
+ public void publishStart(IProgressMonitor monitor) throws CoreException {
+ }
+
+ @Override
+ public void publishFinish(IProgressMonitor monitor) throws CoreException {
+ }
+
+ @Override
+ public void onServerStarting() {
+ // do nothing
+ }
+
+ @Override
+ public void onServerStopping() {
+ // do nothing
+ }
+
+ @Override
+ public IStatus canChangeState(String launchMode) {
+ // do nothing
+ return Status.OK_STATUS;
+ }
+
+ /**
+ * remove from interface
+ */
+ @Override
+ public String getDefaultStopArguments() throws CoreException {
+ return null;
+ }
+
+ @Override
+ public void dispose() {
+ // do nothing
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitBehaviourDelegate.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitPublisher.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitPublisher.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitPublisher.java 2011-08-16
05:11:07 UTC (rev 33955)
@@ -0,0 +1,30 @@
+package org.jboss.ide.eclipse.as.egit.core.internal;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.model.IModuleResourceDelta;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerPublishMethod;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerPublisher;
+
+public class EgitPublisher implements IJBossServerPublisher {
+
+ @Override
+ public boolean accepts(String method, IServer server, IModule[] module) {
+ return false;
+ }
+
+ @Override
+ public int getPublishState() {
+ return 0;
+ }
+
+ @Override
+ public IStatus publishModule(IJBossServerPublishMethod method, IServer server, IModule[]
module, int publishType,
+ IModuleResourceDelta[] delta, IProgressMonitor monitor) throws CoreException {
+ return null;
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitPublisher.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitUtils.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitUtils.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitUtils.java 2011-08-16
05:11:07 UTC (rev 33955)
@@ -0,0 +1,27 @@
+package org.jboss.ide.eclipse.as.egit.core.internal;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.egit.core.op.CommitOperation;
+
+public class EgitUtils {
+
+ public static void commit(IProject project) throws CoreException {
+
+ IFile[] commitables = new IFile[]{};
+ Collection<IFile> untracked = Collections.emptyList();
+ CommitOperation op = new CommitOperation(
+ commitables,
+ new ArrayList<IFile>(),
+ untracked,
+ "dummyAuthor",
+ "dummyCommitter",
+ "Initial commit");
+ op.execute(null);
+ }
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/EgitUtils.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/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
13:22:02 UTC (rev 33923)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.egit.core/src/org/jboss/ide/eclipse/as/egit/core/internal/module/GitProjectModuleFactoryDelegate.java 2011-08-16
05:11:07 UTC (rev 33955)
@@ -1,28 +1,121 @@
-package org.jboss.ide.eclipse.as.egit.core.module;
+package org.jboss.ide.eclipse.as.egit.core.internal.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.team.core.RepositoryProvider;
+import org.eclipse.team.internal.core.IRepositoryProviderListener;
+import org.eclipse.team.internal.core.RepositoryProviderManager;
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);
+ RepositoryProviderManager.getInstance().addListener(new IRepositoryProviderListener()
{
+ public void providerUnmapped(IProject project) {
+ if( moduleIdToModule != null ) {
+ IModule mod = moduleIdToModule.get(project.getName());
+ if( mod != null ) {
+ moduleIdToModule.remove(project.getName());
+ moduleToDelegate.remove(mod);
+ }
+ }
+ }
+ public void providerMapped(RepositoryProvider provider) {
+ clearCache(provider.getProject());
+ }
+ });
+ }
+ 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];
+ }
+ }
}