JBoss Tools SVN: r36970 - in trunk/openshift/plugins: org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/internal and 7 other directories.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-12-05 15:45:19 -0500 (Mon, 05 Dec 2011)
New Revision: 36970
Added:
trunk/openshift/plugins/org.jboss.tools.openshift.egit.ui/src/org/jboss/tools/openshift/egit/ui/util/EGitUIUtils.java
Removed:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/BranchNameContentProvider.java
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/EGitUtils.java
trunk/openshift/plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/internal/EGitCoreActivator.java
trunk/openshift/plugins/org.jboss.tools.openshift.egit.ui/META-INF/MANIFEST.MF
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/META-INF/MANIFEST.MF
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/plugin.properties
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/OpenShiftUIActivator.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/common/FileUtils.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/AdapterWizardPage.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/AdapterWizardPageModel.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizard.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizardModel.java
Log:
[JBIDE-10171] implemented new strategy: clone remote repo, copy openshit configs and .git folder to user project, share user proj and push it back to the remote repo
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/EGitUtils.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/EGitUtils.java 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/EGitUtils.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -10,10 +10,15 @@
******************************************************************************/
package org.jboss.tools.openshift.egit.core;
+import java.io.File;
import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
+import java.text.MessageFormat;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import org.eclipse.core.resources.IProject;
@@ -24,24 +29,36 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.egit.core.EclipseGitProgressTransformer;
import org.eclipse.egit.core.IteratorService;
+import org.eclipse.egit.core.op.AddToIndexOperation;
import org.eclipse.egit.core.op.CommitOperation;
+import org.eclipse.egit.core.op.ConnectProviderOperation;
+import org.eclipse.egit.core.op.FetchOperation;
+import org.eclipse.egit.core.op.MergeOperation;
import org.eclipse.egit.core.op.PushOperation;
import org.eclipse.egit.core.op.PushOperationSpecification;
import org.eclipse.egit.core.project.RepositoryMapping;
import org.eclipse.egit.ui.UIText;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.InitCommand;
+import org.eclipse.jgit.api.MergeResult;
+import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.errors.NotSupportedException;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.IndexDiff;
import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.lib.UserConfig;
+import org.eclipse.jgit.merge.MergeStrategy;
+import org.eclipse.jgit.transport.FetchResult;
import org.eclipse.jgit.transport.RefSpec;
import org.eclipse.jgit.transport.RemoteConfig;
import org.eclipse.jgit.transport.Transport;
import org.eclipse.jgit.transport.URIish;
import org.eclipse.osgi.util.NLS;
+import org.eclipse.team.core.RepositoryProvider;
import org.jboss.tools.openshift.egit.core.internal.EGitCoreActivator;
/**
@@ -56,26 +73,230 @@
private static final int PUSH_TIMEOUT = 10 * 1024;
+ private static final String EGIT_TEAM_PROVIDER_ID =
+ "org.eclipse.egit.core·GitProvider";
+
+ private EGitUtils() {
+ // inhibit instantiation
+ }
+
/**
- * Commits the given project to it's configured repository.
+ * Returns <code>true</code> if the given project is associated to any team
+ * provider (git, svn, cvs, etc.). Returns <code>false</code> otherwise.
*
* @param project
- * the project
+ * the project to check
+ * @return <code>true</code> if the project is associated with any team
+ * provider.
+ */
+ public static boolean isShared(IProject project) {
+ return RepositoryProvider.getProvider(project) != null;
+ }
+
+ /**
+ * Returns <code>true</code> if the given project is associated to the egit
+ * team provider. Returns <code>false</code> otherwise.
+ *
+ * @param project
+ * the project to check
+ * @return <code>true</code> if the project is associated with the git team
+ * provider.
+ */
+ public static boolean isSharedWithGit(IProject project) {
+ return EGIT_TEAM_PROVIDER_ID.equals(RepositoryProvider.getProvider(project));
+ }
+
+ /**
+ * Shares the given project. A repository is created within the given
+ * project and the project is connected to the freshly created repository.
+ *
+ * @param project
* @param monitor
- * the monitor
+ * @return
* @throws CoreException
- * the core exception
*/
- public static void commit(IProject project, String commitMessage, IProgressMonitor monitor) throws CoreException {
- Assert.isLegal(project != null, "Cannot commit project. No project provided");
+ public static Repository share(IProject project, IProgressMonitor monitor) throws CoreException {
+ Repository repository = createRepository(project, monitor);
+ connect(project, repository, monitor);
+ addToRepository(project, repository, monitor);
+ commit(project, monitor);
+ // checkout("master", repository);
+ return repository;
+ }
+
+ /**
+ * Creates a repository for the given project. The repository is created in
+ * the .git directory within the given project. The project is not connected
+ * with the new repository
+ *
+ * @param project
+ * the project to create the repository for.
+ * @param monitor
+ * the monitor to report the progress to
+ * @return
+ * @throws CoreException
+ *
+ * @see #connect(IProject, Repository, IProgressMonitor)
+ */
+ public static Repository createRepository(IProject project, IProgressMonitor monitor) throws CoreException {
+ try {
+ InitCommand init = Git.init();
+ init.setBare(false).setDirectory(project.getLocation().toFile());
+ Git git = init.call();
+ return git.getRepository();
+ } catch (JGitInternalException e) {
+ throw new CoreException(EGitCoreActivator.createErrorStatus(
+ NLS.bind("Could not initialize a git repository at {0}: {1}",
+ getRepositoryPathFor(project),
+ e.getMessage()), e));
+ }
+ }
+
+ public static File getRepositoryPathFor(IProject project) {
+ return new File(project.getLocationURI().getPath(), Constants.DOT_GIT);
+ }
+
+ public static void addToRepository(IProject project, Repository repository, IProgressMonitor monitor)
+ throws CoreException {
+ AddToIndexOperation add = new AddToIndexOperation(Collections.singletonList(project));
+ add.execute(monitor);
+ }
+
+ /**
+ * Connects the given project to the repository within it.
+ *
+ * @param project
+ * the project to connect
+ * @param monitor
+ * the monitor to report progress to
+ * @throws CoreException
+ */
+ public static void connect(IProject project, IProgressMonitor monitor) throws CoreException {
+ connect(project, getRepositoryPathFor(project), monitor);
+ }
+
+ /**
+ * Connects the given project to the given repository.
+ *
+ * @param project
+ * the project to connect
+ * @param repository
+ * the repository to connect the project to
+ * @param monitor
+ * the monitor to report progress to
+ * @throws CoreException
+ */
+ private static void connect(IProject project, Repository repository, IProgressMonitor monitor) throws CoreException {
+ connect(project, repository.getDirectory(), monitor);
+ }
+
+ private static void connect(IProject project, File repositoryFolder, IProgressMonitor monitor) throws CoreException {
+ new ConnectProviderOperation(project, repositoryFolder).execute(monitor);
+ }
+
+ /**
+ * Merges the given uri to HEAD in the given repository. The given branch is
+ * the branch in the local repo the fetched HEAD is fetched to.
+ *
+ * @param branch
+ * @param uri
+ * @param repository
+ * @param monitor
+ * @throws CoreException
+ * @throws InvocationTargetException
+ */
+ public static void mergeWithRemote(URIish uri, String branch, Repository repository, IProgressMonitor monitor)
+ throws CoreException, InvocationTargetException {
+ RefSpec ref = new RefSpec().setSource(Constants.HEAD).setDestination(branch);
+ fetch(uri, Collections.singletonList(ref), repository, monitor);
+ merge(branch, repository, monitor);
+ }
+
+ /**
+ * Merges current master with the given branch. The strategy used is Resolve
+ * since egit does still not support the Recusive stragety.
+ *
+ * @param branch
+ * the branch to merge
+ * @param repository
+ * the repository the branch is in
+ * @param monitor
+ * the monitor to report the progress to
+ * @return the result of the merge
+ * @throws CoreException
+ *
+ * @see MergeStrategy#RESOLVE
+ * @link
+ * http://www.eclipse.org/forums/index.php/mv/msg/261278/753913/#msg_753913
+ * @link https://bugs.eclipse.org/bugs/show_bug.cgi?id=354099
+ * @link https://bugs.eclipse.org/bugs/show_bug.cgi?id=359951
+ */
+ private static MergeResult merge(String branch, Repository repository, IProgressMonitor monitor)
+ throws CoreException {
+ MergeOperation merge = new MergeOperation(repository, branch, MergeStrategy.RESOLVE.getName());
+ merge.execute(monitor);
+ return merge.getResult();
+ }
+
+ /**
+ * Fetches the source ref(s) (from the given ref spec(s)) from the given uri
+ * to the given destination(s) (in the given ref spec(s)) to the given
+ * repository.
+ *
+ * @param uri
+ * the uri to fetch from
+ * @param fetchRefsRefSpecs
+ * the references with the sources and destinations
+ * @param repository
+ * the repository to fetch to
+ * @param monitor
+ * the monitor to report progress to
+ * @return
+ * @throws InvocationTargetException
+ * @throws CoreException
+ */
+ private static Collection<Ref> fetch(URIish uri, List<RefSpec> fetchRefsRefSpecs, Repository repository,
+ IProgressMonitor monitor)
+ throws InvocationTargetException, CoreException {
+ FetchOperation fetch = new FetchOperation(repository, uri, fetchRefsRefSpecs, 10 * 1024, false);
+ fetch.run(monitor);
+ FetchResult result = fetch.getOperationResult();
+ return result.getAdvertisedRefs();
+ }
+
+ /**
+ * Commits the changes within the given project to it's configured
+ * repository. The project has to be connected to a repository.
+ *
+ * @param project
+ * the project whose changes shall be committed
+ * @param monitor
+ * the monitor to report progress to
+ * @throws CoreException
+ *
+ * @see #connect(IProject, Repository)
+ */
+ private static void commit(IProject project, String commitMessage, IProgressMonitor monitor) throws CoreException {
+ Repository repository = getRepository(project);
+ Assert.isLegal(repository != null, "Cannot commit project to repository. ");
+ commit(project, commitMessage, repository, monitor);
+ }
+
+ public static void commit(IProject project, IProgressMonitor monitor) throws CoreException {
+ commit(project, "Commit from JBoss Tools", monitor);
+ }
+
+ private static void commit(IProject project, String commitMessage, Repository repository, IProgressMonitor monitor)
+ throws CoreException {
+ Assert.isLegal(project != null, "Could not commit project. No project provided");
+ Assert.isLegal(
+ repository != null,
+ MessageFormat
+ .format("Could not commit. Project \"{0}\" is not connected to a repository (call #connect(project, repository) first)",
+ project.getName()));
/**
* TODO: add capability to commit selectively
*/
- Repository repository = getRepository(project);
- if (repository == null) {
- throw new CoreException(createStatus(null,
- "Could not commit. Project \"{0}\" is not attached to a git repo", project.getName()));
- }
UserConfig userConfig = getUserConfig(repository);
CommitOperation op = new CommitOperation(
null,
@@ -89,10 +310,6 @@
op.execute(monitor);
}
- public static void commit(IProject project, IProgressMonitor monitor) throws CoreException {
- commit(project, "Commit from JBoss Tools", monitor);
- }
-
/**
* Pushes the given repository to the remote repository it's current branch
* originates from.
@@ -449,26 +666,26 @@
}
return status;
}
-
+
public static int countCommitableChanges(IProject project, IProgressMonitor monitor) {
try {
Repository repo = getRepository(project);
-
+
EclipseGitProgressTransformer jgitMonitor = new EclipseGitProgressTransformer(monitor);
IndexDiff indexDiff = new IndexDiff(repo, Constants.HEAD,
IteratorService.createInitialIterator(repo));
indexDiff.diff(jgitMonitor, 0, 0, NLS.bind(
UIText.CommitActionHandler_repository, repo.getDirectory().getPath()));
-// System.out.println(indexDiff.getAdded().size());
-// System.out.println(indexDiff.getChanged().size());
-// System.out.println(indexDiff.getConflicting().size());
-// System.out.println(indexDiff.getMissing().size());
-// System.out.println(indexDiff.getModified().size());
-// System.out.println(indexDiff.getRemoved().size());
-// System.out.println(indexDiff.getUntracked().size());
-
+ // System.out.println(indexDiff.getAdded().size());
+ // System.out.println(indexDiff.getChanged().size());
+ // System.out.println(indexDiff.getConflicting().size());
+ // System.out.println(indexDiff.getMissing().size());
+ // System.out.println(indexDiff.getModified().size());
+ // System.out.println(indexDiff.getRemoved().size());
+ // System.out.println(indexDiff.getUntracked().size());
+
return indexDiff.getModified().size();
- } catch( IOException ioe ) {
+ } catch (IOException ioe) {
}
return -1;
}
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/internal/EGitCoreActivator.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/internal/EGitCoreActivator.java 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.egit.core/src/org/jboss/tools/openshift/egit/core/internal/EGitCoreActivator.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -10,6 +10,8 @@
******************************************************************************/
package org.jboss.tools.openshift.egit.core.internal;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
@@ -34,4 +36,16 @@
public void stop(BundleContext bundleContext) throws Exception {
EGitCoreActivator.context = null;
}
+
+ public static IStatus createErrorStatus(String message, Throwable throwable) {
+ return createStatus(IStatus.ERROR, message, throwable);
+ }
+
+ public static IStatus createStatus(int severity, String message, Throwable throwable) {
+ if (throwable == null) {
+ return new Status(severity, PLUGIN_ID, message);
+ } else {
+ return new Status(severity, PLUGIN_ID, message, throwable);
+ }
+ }
}
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.egit.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.egit.ui/META-INF/MANIFEST.MF 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.egit.ui/META-INF/MANIFEST.MF 2011-12-05 20:45:19 UTC (rev 36970)
@@ -4,9 +4,10 @@
Bundle-SymbolicName: org.jboss.tools.openshift.egit.ui;singleton:=true
Bundle-Version: 2.3.0.qualifier
Bundle-Activator: org.jboss.tools.openshift.egit.ui.EGitUIActivator
-Require-Bundle: org.eclipse.egit.core;bundle-version="1.0.0",
- org.eclipse.jgit;bundle-version="1.0.0",
- org.eclipse.ui,
+Require-Bundle: org.eclipse.egit.core;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.egit.ui;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.jgit;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
org.eclipse.core.runtime,
org.eclipse.core.expressions;bundle-version="[3.4.300,4.0.0)",
org.eclipse.core.resources;bundle-version="[3.7.100,4.0.0)",
@@ -15,3 +16,4 @@
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-Vendor: JBoss by Red Hat
+Export-Package: org.jboss.tools.openshift.egit.ui.util
Added: trunk/openshift/plugins/org.jboss.tools.openshift.egit.ui/src/org/jboss/tools/openshift/egit/ui/util/EGitUIUtils.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.egit.ui/src/org/jboss/tools/openshift/egit/ui/util/EGitUIUtils.java (rev 0)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.egit.ui/src/org/jboss/tools/openshift/egit/ui/util/EGitUIUtils.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.openshift.egit.ui.util;
+
+import org.eclipse.egit.ui.Activator;
+import org.eclipse.egit.ui.UIPreferences;
+
+public class EGitUIUtils {
+
+ public static String getEGitDefaultRepositoryPath() {
+ return Activator.getDefault().getPreferenceStore().getString(UIPreferences.DEFAULT_REPO_DIR);
+ }
+
+}
Property changes on: trunk/openshift/plugins/org.jboss.tools.openshift.egit.ui/src/org/jboss/tools/openshift/egit/ui/util/EGitUIUtils.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/META-INF/MANIFEST.MF 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/META-INF/MANIFEST.MF 2011-12-05 20:45:19 UTC (rev 36970)
@@ -6,6 +6,9 @@
Bundle-Localization: plugin
Bundle-Activator: org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator
Require-Bundle: org.jboss.tools.openshift.express.client;bundle-version="2.3.0",
+ org.jboss.tools.openshift.egit.core;bundle-version="2.3.0",
+ org.jboss.tools.openshift.egit.ui;bundle-version="2.3.0",
+ org.jboss.ide.eclipse.as.ui;bundle-version="[2.3.0,3.0.0)",
org.eclipse.egit.ui;bundle-version="[1.0.0,2.0.0)",
org.eclipse.egit.core;bundle-version="[1.1.0,2.0.0)",
org.eclipse.jgit;bundle-version="[1.1.0,2.1.0)",
@@ -22,13 +25,11 @@
org.eclipse.jface.databinding;bundle-version="[1.5.0,2.0.0)",
org.eclipse.wst.server.core;bundle-version="[1.1.3,2.0.0)",
org.eclipse.debug.core;bundle-version="[3.7.0,4.0.0)",
- org.jboss.ide.eclipse.as.ui;bundle-version="[2.3.0,3.0.0)",
org.eclipse.wst.server.ui;bundle-version="[1.1.3,2.0.0)",
org.eclipse.ui.ide;bundle-version="3.7.0",
org.eclipse.m2e.core.ui;bundle-version="1.0.100",
org.eclipse.wst.common.modulecore;bundle-version="1.2.100",
org.eclipse.team.ui;bundle-version="3.6.100",
- org.jboss.tools.openshift.egit.core;bundle-version="2.3.0",
org.eclipse.jdt.launching;bundle-version="3.6.0",
org.eclipse.debug.ui;bundle-version="3.7.0",
com.jcraft.jsch.source;bundle-version="0.1.44";resolution:=optional,
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/plugin.properties
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/plugin.properties 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/plugin.properties 2011-12-05 20:45:19 UTC (rev 36970)
@@ -5,4 +5,4 @@
# Version Delegates
openshift.express.name=OpenShift Express Runtime
openshift.express.description=A server adapter for use interfacing with the OpenShift Express Framework
-openshift.express.runtime.name=OpenShift Express Runtime
+openshift.express.runtime.name = OpenShift Express Runtime
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/OpenShiftUIActivator.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/OpenShiftUIActivator.java 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/OpenShiftUIActivator.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -68,6 +68,10 @@
log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, message, e));
}
+ public static IStatus createErrorStatus(String message) {
+ return new Status(IStatus.ERROR, OpenShiftUIActivator.PLUGIN_ID, message);
+ }
+
public static IStatus createErrorStatus(String message, Throwable throwable) {
return new Status(IStatus.ERROR, OpenShiftUIActivator.PLUGIN_ID, message, throwable);
}
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/common/FileUtils.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/common/FileUtils.java 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/common/FileUtils.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -10,13 +10,24 @@
******************************************************************************/
package org.jboss.tools.openshift.express.internal.ui.common;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import org.eclipse.core.runtime.Assert;
+
/**
* @author André Dietisheim
*/
public class FileUtils {
+ private static final byte[] buffer = new byte[1024];
+
public static boolean canRead(String path) {
if (path == null) {
return false;
@@ -31,5 +42,134 @@
return file.canRead();
}
-
+ public static boolean exists(File file) {
+ return file != null
+ && file.exists();
+ }
+
+ public static boolean isDirectory(File file) {
+ return file != null
+ && file.isDirectory();
+ }
+
+ /**
+ * Copies the ginve source to the given destination recursively. Overwrites
+ * existing files/directory on the destination path if told so.
+ *
+ * @param source
+ * the source file/directory to copy
+ * @param destination
+ * the destination to copy to
+ * @param overwrite
+ * overwrites existing files/directories if <code>true</code>.
+ * Does not overwrite otherwise.
+ * @throws IOException
+ */
+ public static void copy(File source, File destination, boolean overwrite) throws IOException {
+ if (!exists(source)
+ || destination == null) {
+ return;
+ }
+
+ if (source.isDirectory()) {
+ copyDirectory(source, destination, overwrite);
+ } else {
+ copyFile(source, destination, overwrite);
+ }
+ }
+
+ private static void copyDirectory(File source, File destination, boolean overwrite) throws IOException {
+ Assert.isLegal(source != null);
+ Assert.isLegal(source.isDirectory());
+ Assert.isLegal(destination != null);
+
+ destination = getDestinationDirectory(source, destination);
+
+ if (!destination.exists()) {
+ destination.mkdir();
+ }
+
+ for (File content : source.listFiles()) {
+ if (content.isDirectory()) {
+ copyDirectory(content, new File(destination, content.getName()), overwrite);
+ } else {
+ copyFile(content, new File(destination, content.getName()), overwrite);
+ }
+ }
+ }
+
+ private static File getDestinationDirectory(File source, File destination) {
+ if (!source.getName().equals(destination.getName())) {
+ destination = new File(destination, source.getName());
+ }
+ return destination;
+ }
+
+ private static void copyFile(File source, File destination, boolean overwrite) throws IOException {
+ Assert.isLegal(source != null);
+ Assert.isLegal(source.isFile());
+ Assert.isLegal(destination != null);
+
+ destination = getDestinationFile(source, destination);
+
+ if (exists(destination)
+ && !overwrite) {
+ return;
+ }
+
+ if (isDirectory(destination)) {
+ if (!overwrite) {
+ return;
+ }
+ destination.delete();
+ }
+
+ writeTo(source, destination);
+ }
+
+ private static File getDestinationFile(File source, File destination) {
+ if (!source.getName().equals(destination.getName())) {
+ destination = new File(destination, source.getName());
+ }
+ return destination;
+ }
+
+ private static final void writeTo(File source, File destination) throws IOException {
+ Assert.isLegal(source != null);
+ Assert.isLegal(destination != null);
+
+ InputStream in = null;
+ OutputStream out = null;
+ try {
+ in = new BufferedInputStream(new FileInputStream(source));
+ out = new BufferedOutputStream(new FileOutputStream(destination));
+ for (int read = -1; (read = in.read(buffer)) != -1; ) {
+ out.write(buffer, 0, read);
+ }
+ out.flush();
+ } finally {
+ silentlyClose(in);
+ silentlyClose(out);
+ }
+ }
+
+ private static void silentlyClose(InputStream in) {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+
+ private static void silentlyClose(OutputStream out) {
+ try {
+ if (out != null) {
+ out.close();
+ }
+ } catch (IOException e) {
+ // ignore
+ }
+ }
}
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/AdapterWizardPage.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/AdapterWizardPage.java 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/AdapterWizardPage.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -27,13 +27,19 @@
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Group;
@@ -48,6 +54,7 @@
import org.jboss.tools.common.ui.ssh.SshPrivateKeysPreferences;
import org.jboss.tools.openshift.express.client.OpenShiftException;
import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
+import org.jboss.tools.openshift.express.internal.ui.wizard.AdapterWizardPageModel.GitUri;
/**
* @author André Dietisheim
@@ -55,13 +62,13 @@
*
*/
public class AdapterWizardPage extends AbstractOpenShiftWizardPage implements IWizardPage, PropertyChangeListener {
- private Text gitUriValueText;
private AdapterWizardPageModel model;
- private IServerType serverTypeToCreate;
+ private Text cloneUriValueText;
private Label domainValueLabel;
private Label modeValueLabel;
private Button serverAdapterCheckbox;
+ private IServerType serverTypeToCreate;
private IObservableValue serverAdapterCheckboxObservable;
@@ -80,15 +87,57 @@
protected void doCreateControls(Composite parent, DataBindingContext dbc) {
GridLayoutFactory.fillDefaults().applyTo(parent);
- Group projectGroup = createCloneGroup(parent, dbc);
+ Group mergeGroup = createMergeGroup(parent, dbc);
GridDataFactory.fillDefaults()
- .align(SWT.LEFT, SWT.CENTER).align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(projectGroup);
+ .align(SWT.LEFT, SWT.CENTER).align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(mergeGroup);
+ Group cloneGroup = createCloneGroup(parent, dbc);
+ GridDataFactory.fillDefaults()
+ .align(SWT.LEFT, SWT.CENTER).align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(cloneGroup);
+
Group serverAdapterGroup = createAdapterGroup(parent, dbc);
GridDataFactory.fillDefaults()
.align(SWT.LEFT, SWT.CENTER).align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(serverAdapterGroup);
}
+ private Group createMergeGroup(Composite parent, DataBindingContext dbc) {
+ Group mergeGroup = new Group(parent, SWT.BORDER);
+ mergeGroup.setText("Git Merge");
+ GridDataFactory.fillDefaults()
+ .align(SWT.LEFT, SWT.CENTER).align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(mergeGroup);
+ GridLayoutFactory.fillDefaults().margins(6, 6).numColumns(2).applyTo(mergeGroup);
+
+ Button mergeEnabledButton = new Button(mergeGroup, SWT.CHECK);
+ mergeEnabledButton.setText("merge with Git URI");
+ GridDataFactory.fillDefaults()
+ .align(SWT.LEFT, SWT.CENTER).hint(100, SWT.DEFAULT).applyTo(mergeEnabledButton);
+ IObservableValue mergeEnabledButtonSelection = WidgetProperties.selection().observe(mergeEnabledButton);
+ mergeEnabledButtonSelection.setValue(false);
+
+ Combo mergeUriCombo = new Combo(mergeGroup, SWT.NONE);
+ ComboViewer mergeUriComboViewer = new ComboViewer(mergeUriCombo);
+ GridDataFactory
+ .fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(mergeUriCombo);
+ mergeUriComboViewer.setContentProvider(new ArrayContentProvider());
+ mergeUriComboViewer.setLabelProvider(new GitUriLabelProvider());
+ mergeUriComboViewer.setInput(model.getMergeUris());
+// ValueBindingBuilder
+// .bind(WidgetProperties.text().observe(mergeUriCombo))
+// .validatingAfterGet(new MergeUriValidator())
+// .to(BeanProperties.value(AdapterWizardPageModel.PROPERTY_MERGE_URI).observe(model))
+// .in(dbc);
+ ValueBindingBuilder
+ .bind(WidgetProperties.text().observe(mergeUriCombo))
+ .to(BeanProperties.value(AdapterWizardPageModel.PROPERTY_PROJECT_NAME).observe(model))
+ .in(dbc);
+ ValueBindingBuilder
+ .bind(mergeEnabledButtonSelection)
+ .to(WidgetProperties.enabled().observe(mergeUriCombo))
+ .in(dbc);
+
+ return mergeGroup;
+ }
+
private Group createCloneGroup(Composite parent, DataBindingContext dbc) {
Group cloneGroup = new Group(parent, SWT.BORDER);
cloneGroup.setText("Git clone");
@@ -100,16 +149,16 @@
gitUriLabel.setText("Cloning From");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(gitUriLabel);
- gitUriValueText = new Text(cloneGroup, SWT.BORDER);
- gitUriValueText.setEditable(false);
+ cloneUriValueText = new Text(cloneGroup, SWT.BORDER);
+ cloneUriValueText.setEditable(false);
GridDataFactory
- .fillDefaults().span(3, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(gitUriValueText);
+ .fillDefaults().span(3, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(cloneUriValueText);
ValueBindingBuilder
- .bind(WidgetProperties.text(SWT.Modify).observe(gitUriValueText))
- .notUpdating(BeanProperties.value(AdapterWizardPageModel.PROPERTY_GIT_URI).observe(model))
+ .bind(WidgetProperties.text(SWT.Modify).observe(cloneUriValueText))
+ .notUpdating(BeanProperties.value(AdapterWizardPageModel.PROPERTY_CLONE_URI).observe(model))
.in(dbc);
ValueBindingBuilder
- .bind(WidgetProperties.enabled().observe(gitUriValueText))
+ .bind(WidgetProperties.enabled().observe(cloneUriValueText))
.notUpdating(BeanProperties.value(AdapterWizardPageModel.PROPERTY_LOADING).observe(model))
.converting(new InvertingBooleanConverter())
.in(dbc);
@@ -274,7 +323,7 @@
serverAdapterCheckbox.setText("Create a JBoss server adapter");
serverAdapterCheckbox.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
- model.getParentModel().setProperty(AdapterWizardPageModel.CREATE_SERVER,
+ model.getWizardModel().setProperty(AdapterWizardPageModel.CREATE_SERVER,
serverAdapterCheckbox.getSelection());
enableServerWidgets(serverAdapterCheckbox.getSelection());
}
@@ -299,13 +348,13 @@
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(domainLabel);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(modeLabel);
GridDataFactory.fillDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER)
- .grab(true, false).applyTo(domainValueLabel);
+ .grab(true, false).applyTo(domainValueLabel);
GridDataFactory.fillDefaults().span(3, 1).align(SWT.FILL, SWT.CENTER)
- .grab(true, false).applyTo(serverAdapterCheckbox);
+ .grab(true, false).applyTo(serverAdapterCheckbox);
GridDataFactory.fillDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER)
- .grab(true, false).applyTo(modeValueLabel);
+ .grab(true, false).applyTo(modeValueLabel);
- model.getParentModel().setProperty(AdapterWizardPageModel.CREATE_SERVER,
+ model.getWizardModel().setProperty(AdapterWizardPageModel.CREATE_SERVER,
serverAdapterCheckbox.getSelection());
this.serverAdapterCheckboxObservable =
WidgetProperties.selection().observe(serverAdapterCheckbox);
@@ -321,9 +370,9 @@
protected void onPageActivated(DataBindingContext dbc) {
model.resetRepositoryPath();
serverTypeToCreate = getServerTypeToCreate();
- model.getParentModel().setProperty(AdapterWizardPageModel.SERVER_TYPE, serverTypeToCreate);
+ model.getWizardModel().setProperty(AdapterWizardPageModel.SERVER_TYPE, serverTypeToCreate);
modeValueLabel.setText("Source");
- model.getParentModel().setProperty(AdapterWizardPageModel.MODE, AdapterWizardPageModel.MODE_SOURCE);
+ model.getWizardModel().setProperty(AdapterWizardPageModel.MODE, AdapterWizardPageModel.MODE_SOURCE);
onPageActivatedBackground(dbc);
}
@@ -356,8 +405,8 @@
serverAdapterCheckbox.setEnabled(canCreateServer);
serverAdapterCheckboxObservable.setValue(canCreateServer);
enableServerWidgets(canCreateServer);
- model.getParentModel().setProperty(AdapterWizardPageModel.SERVER_TYPE, serverTypeToCreate);
- model.getParentModel().setProperty(AdapterWizardPageModel.CREATE_SERVER, canCreateServer);
+ model.getWizardModel().setProperty(AdapterWizardPageModel.SERVER_TYPE, serverTypeToCreate);
+ model.getWizardModel().setProperty(AdapterWizardPageModel.CREATE_SERVER, canCreateServer);
}
private class SelectedRuntimeValidator extends MultiValidator {
@@ -376,4 +425,60 @@
return ValidationStatus.ok();
}
}
+
+ private static class GitUriLabelProvider implements ILabelProvider {
+
+ @Override
+ public void addListener(ILabelProviderListener listener) {
+ }
+
+ @Override
+ public void dispose() {
+ }
+
+ @Override
+ public boolean isLabelProperty(Object element, String property) {
+ return true;
+ }
+
+ @Override
+ public void removeListener(ILabelProviderListener listener) {
+ }
+
+ @Override
+ public Image getImage(Object element) {
+ return null;
+ }
+
+ @Override
+ public String getText(Object element) {
+ if (!(element instanceof GitUri)) {
+ return null;
+ }
+ return ((GitUri) element).getLabel();
+ }
+ }
+
+// private class MergeUriValidator implements IValidator {
+//
+// @Override
+// public IStatus validate(Object value) {
+// String mergeUri = (String) value;
+// if (mergeUri == null
+// || mergeUri.length() == 0) {
+// return ValidationStatus
+// .warning("You have to provide a git uri to merge with");
+// }
+// GitUri gitUri = model.getKnownMergeUri(mergeUri);
+// if (gitUri == null) {
+// return ValidationStatus
+// .warning("You are not merging with an official example. Things may go wrong");
+// }
+// if (!model.isCompatibleToApplicationCartridge(gitUri.getCartridge())) {
+// return ValidationStatus
+// .warning("The example you've chosen is not compatible to your application");
+// }
+// return ValidationStatus.ok();
+// }
+// }
}
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/AdapterWizardPageModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/AdapterWizardPageModel.java 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/AdapterWizardPageModel.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -10,11 +10,17 @@
******************************************************************************/
package org.jboss.tools.openshift.express.internal.ui.wizard;
-import org.eclipse.egit.ui.Activator;
-import org.eclipse.egit.ui.UIPreferences;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jgit.transport.URIish;
import org.jboss.tools.common.ui.databinding.ObservableUIPojo;
+import org.jboss.tools.openshift.egit.ui.util.EGitUIUtils;
import org.jboss.tools.openshift.express.client.IApplication;
+import org.jboss.tools.openshift.express.client.ICartridge;
import org.jboss.tools.openshift.express.client.OpenShiftException;
+import org.jboss.tools.openshift.express.internal.client.Cartridge;
/**
* @author André Dietisheim
@@ -24,7 +30,9 @@
private static final String REMOTE_NAME_DEFAULT = "origin";
- public static final String PROPERTY_GIT_URI = "gitUri";
+ public static final String PROPERTY_CLONE_URI = "cloneUri";
+// public static final String PROPERTY_MERGE_URI = "mergeUri";
+ public static final String PROPERTY_PROJECT_NAME = "projectName";
public static final String PROPERTY_APPLICATION_URL = "applicationUrl";
public static final String PROPERTY_REPO_PATH = "repositoryPath";
public static final String PROPERTY_REMOTE_NAME = "remoteName";
@@ -45,18 +53,92 @@
setRemoteName(REMOTE_NAME_DEFAULT);
}
+ public void setProjectName(String projectName) {
+ firePropertyChange(PROPERTY_PROJECT_NAME, wizardModel.getProjectName(), wizardModel.setProjectName(projectName));
+ }
+
+ public String getProjectName() {
+ return wizardModel.getProjectName();
+ }
+
+// public void setMergeUri(String mergeUri) {
+// firePropertyChange(PROPERTY_MERGE_URI, wizardModel.getMergeUri(), wizardModel.setMergeUri(mergeUri));
+// }
+//
+// public String getMergeUri() {
+// return wizardModel.getMergeUri();
+// }
+
+ public GitUri getKnownMergeUri(String uriOrLabel) {
+ GitUri gitUri = null;
+ if (isGitUri(uriOrLabel)) {
+ gitUri = getKnownMergeUriByUri(uriOrLabel);
+ } else {
+ gitUri = getKnownMergeUriByLabel(uriOrLabel);
+ }
+ return gitUri;
+ }
+
+ private boolean isGitUri(String gitUriString) {
+ try {
+ URIish uriish = new URIish(gitUriString);
+ return uriish.isRemote();
+ } catch (URISyntaxException e) {
+ return false;
+ }
+ }
+
+ private GitUri getKnownMergeUriByUri(String gitUriString) {
+ GitUri matchingGitUri = null;
+ for (GitUri gitUri : getMergeUris()) {
+ if (gitUri.getGitUri().equals(gitUriString)) {
+ matchingGitUri = gitUri;
+ break;
+ }
+ }
+ return matchingGitUri;
+ }
+
+ private GitUri getKnownMergeUriByLabel(String label) {
+ GitUri matchingGitUri = null;
+ for (GitUri gitUri : getMergeUris()) {
+ if (gitUri.getLabel().equals(label)) {
+ matchingGitUri = gitUri;
+ break;
+ }
+ }
+ return matchingGitUri;
+ }
+
+ public List<GitUri> getMergeUris() {
+ ArrayList<GitUri> mergeUris = new ArrayList<GitUri>();
+ mergeUris.add(new GitUri(
+ "seambooking-example", "git://github.com/openshift/seambooking-example.git",
+ ICartridge.JBOSSAS_7));
+ mergeUris.add(new GitUri(
+ "tweetstream-example", "git://github.com/openshift/tweetstream-example.git",
+ ICartridge.JBOSSAS_7));
+ mergeUris.add(new GitUri(
+ "sinatra-example", "git://github.com/openshift/sinatra-example.git",
+ new Cartridge("rack-1.1")));
+ mergeUris.add(new GitUri(
+ "sugarcrm-example", "git://github.com/openshift/sugarcrm-example.git",
+ new Cartridge("php-5.3")));
+ return mergeUris;
+ }
+
public void loadGitUri() throws OpenShiftException {
setLoading(true);
- setGitUri("Loading...");
- setGitUri(getGitUri());
+ setCloneUri("Loading...");
+ setCloneUri(getCloneUri());
setLoading(false);
}
- private void setGitUri(String gitUri) {
- firePropertyChange(PROPERTY_GIT_URI, null, gitUri);
+ private void setCloneUri(String gitUri) {
+ firePropertyChange(PROPERTY_CLONE_URI, null, gitUri);
}
- public String getGitUri() throws OpenShiftException {
+ public String getCloneUri() throws OpenShiftException {
IApplication application = wizardModel.getApplication();
if (application == null) {
return null;
@@ -98,13 +180,9 @@
}
private String getDefaultRepositoryPath() {
- return getEGitDefaultRepositoryPath();
+ return EGitUIUtils.getEGitDefaultRepositoryPath();
}
- private String getEGitDefaultRepositoryPath() {
- return Activator.getDefault().getPreferenceStore().getString(UIPreferences.DEFAULT_REPO_DIR);
- }
-
public String getRemoteName() {
return wizardModel.getRemoteName();
}
@@ -120,7 +198,7 @@
}
// TODO should this stay?
- public ImportProjectWizardModel getParentModel() {
+ public ImportProjectWizardModel getWizardModel() {
return wizardModel;
}
@@ -132,4 +210,43 @@
firePropertyChange(PROPERTY_LOADING, this.loading, this.loading = loading);
}
+ public boolean isCompatibleToApplicationCartridge(ICartridge cartridge) {
+ IApplication application = wizardModel.getApplication();
+ return application != null
+ && application.getCartridge() != null
+ && application.getCartridge().equals(cartridge);
+ }
+
+ public static class GitUri {
+
+ private String label;
+ private String gitUri;
+ private ICartridge cartridge;
+
+ private GitUri(String label, String gitUri, ICartridge cartridge) {
+ this.label = label;
+ this.gitUri = gitUri;
+ this.cartridge = cartridge;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public String getGitUri() {
+ return gitUri;
+ }
+
+ public String toString() {
+ return getLabel();
+ }
+
+ public ICartridge getCartridge() {
+ return cartridge;
+ }
+
+ public boolean isCompatible(ICartridge cartridge) {
+ return this.cartridge.equals(cartridge);
+ }
+ }
}
Deleted: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/BranchNameContentProvider.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/BranchNameContentProvider.java 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/BranchNameContentProvider.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.openshift.express.internal.ui.wizard;
-
-import java.util.Set;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jgit.lib.Repository;
-
-/**
- * @author André Dietisheim
- */
-public class BranchNameContentProvider implements IStructuredContentProvider {
-
- @Override
- public void dispose() {
-
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
-
- @Override
- public Object[] getElements(Object inputElement) {
- if (!(inputElement instanceof Repository)) {
- return new Object[] {};
- }
-
- return getBranches((Repository) inputElement);
- }
-
- private Object[] getBranches(Repository repository) {
-
- Set<String> refNames = repository.getAllRefs().keySet();
- return refNames.toArray(new String[refNames.size()]);
- }
-
-}
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizard.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizard.java 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizard.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -11,15 +11,17 @@
package org.jboss.tools.openshift.express.internal.ui.wizard;
import java.io.File;
+import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.net.URISyntaxException;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
+import org.eclipse.core.resources.WorkspaceJob;
+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.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
@@ -51,41 +53,65 @@
public boolean performFinish() {
try {
final ArrayBlockingQueue<IStatus> queue = new ArrayBlockingQueue<IStatus>(1);
- WizardUtils.runInWizard(new Job("Cloning local git repo...") {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- IStatus status = Status.OK_STATUS;
- try {
- File repositoryFile = model.cloneRepository(monitor);
- model.importProject(repositoryFile, monitor);
- } catch (OpenShiftException e) {
- status = OpenShiftUIActivator.createErrorStatus(
- "An exception occurred while creating local git repository.", e);
- } catch (URISyntaxException e) {
- status = OpenShiftUIActivator.createErrorStatus(
- "The url of the remote git repository is not valid", e);
- } catch (InvocationTargetException e) {
- if (isTransportException(e)) {
- TransportException te = getTransportException(e);
- status = OpenShiftUIActivator.createErrorStatus(
- "Could not clone the repository. Authentication failed.\n"
- + " Please make sure that you added your private key to the ssh preferences.", te);
- } else {
- status = OpenShiftUIActivator.createErrorStatus(
- "An exception occurred while creating local git repository.", e);
+ WizardUtils.runInWizard(
+ new WorkspaceJob("") {
+
+ @Override
+ public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
+ IStatus status = Status.OK_STATUS;
+ status = performOperations(monitor, status);
+
+ if (!status.isOK()) {
+ OpenShiftUIActivator.log(status);
+ }
+ queue.offer(status);
+ return status;
}
- } catch (Exception e) {
- status = OpenShiftUIActivator.createErrorStatus(
- "An exception occurred while creating local git repository.", e);
- }
- if (!status.isOK()) {
- OpenShiftUIActivator.log(status);
- }
- queue.offer(status);
- return status;
- }
- }, getContainer());
+ private IStatus performOperations(IProgressMonitor monitor, IStatus status) {
+ try {
+ // File repositoryFile =
+ // model.cloneRepository(monitor);
+ // model.importProject(repositoryFile, monitor);
+ // Repository repository =
+ // model.shareProject(monitor);
+ // model.mergeWithApplicationRepository(repository,
+ // monitor);
+ File repositoryFile = model.cloneRepository(monitor);
+ model.copyOpenshiftConfiguration(repositoryFile, monitor);
+ model.shareProject(monitor);
+ model.createServerAdapterIfRequired(monitor);
+ return Status.OK_STATUS;
+ } catch (IOException e) {
+ status = OpenShiftUIActivator.createErrorStatus(
+ "Could not copy openshift configuration files to project {0}", e,
+ model.getProjectName());
+ return status;
+ } catch (OpenShiftException e) {
+ status = OpenShiftUIActivator.createErrorStatus(
+ "Could not import project to the workspace.", e);
+ } catch (URISyntaxException e) {
+ status = OpenShiftUIActivator.createErrorStatus(
+ "The url of the remote git repository is not valid", e);
+ } catch (InvocationTargetException e) {
+ if (isTransportException(e)) {
+ TransportException te = getTransportException(e);
+ status = OpenShiftUIActivator
+ .createErrorStatus(
+ "Could not clone the repository. Authentication failed.\n"
+ + " Please make sure that you added your private key to the ssh preferences.",
+ te);
+ } else {
+ status = OpenShiftUIActivator.createErrorStatus(
+ "An exception occurred while creating local git repository.", e);
+ }
+ } catch (Exception e) {
+ status = OpenShiftUIActivator.createErrorStatus(
+ "Could int import project to the workspace.", e);
+ }
+ return status;
+ }
+ }, getContainer());
IStatus status = queue.poll(10, TimeUnit.SECONDS);
return status != null
&& status.isOK();
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizardModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizardModel.java 2011-12-05 18:57:14 UTC (rev 36969)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ImportProjectWizardModel.java 2011-12-05 20:45:19 UTC (rev 36970)
@@ -11,7 +11,9 @@
package org.jboss.tools.openshift.express.internal.ui.wizard;
import java.io.File;
+import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
+import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -21,6 +23,7 @@
import java.util.List;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.resources.WorkspaceJob;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -29,9 +32,9 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.egit.core.RepositoryUtil;
import org.eclipse.egit.core.op.CloneOperation;
-import org.eclipse.egit.core.op.ConnectProviderOperation;
import org.eclipse.egit.ui.Activator;
import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.transport.JschConfigSessionFactory;
import org.eclipse.jgit.transport.URIish;
import org.eclipse.osgi.util.NLS;
@@ -45,12 +48,14 @@
import org.eclipse.wst.server.core.internal.Server;
import org.jboss.ide.eclipse.as.core.util.FileUtil;
import org.jboss.tools.common.ui.databinding.ObservableUIPojo;
+import org.jboss.tools.openshift.egit.core.EGitUtils;
import org.jboss.tools.openshift.express.client.IApplication;
import org.jboss.tools.openshift.express.client.ICartridge;
import org.jboss.tools.openshift.express.client.IUser;
import org.jboss.tools.openshift.express.client.OpenShiftException;
import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
+import org.jboss.tools.openshift.express.internal.ui.common.FileUtils;
import org.jboss.tools.openshift.express.internal.ui.wizard.projectimport.GeneralProjectImportOperation;
import org.jboss.tools.openshift.express.internal.ui.wizard.projectimport.MavenProjectImportOperation;
@@ -67,11 +72,14 @@
public static final String APPLICATION = "application";
public static final String REMOTE_NAME = "remoteName";
public static final String REPOSITORY_PATH = "repositoryPath";
+ public static final String PROJECT_NAME = "projectName";
+ public static final String MERGE_URI = "mergeUri";
- public void setProperty(String key, Object value) {
+ public Object setProperty(String key, Object value) {
Object oldVal = dataModel.get(key);
dataModel.put(key, value);
firePropertyChange(key, oldVal, value);
+ return value;
}
public Object getProperty(String key) {
@@ -83,7 +91,7 @@
}
public IUser getUser() {
- return (IUser)getProperty(USER);
+ return (IUser) getProperty(USER);
}
public IApplication getApplication() {
@@ -116,7 +124,7 @@
}
return cartridgeName;
}
-
+
public void setApplication(IApplication application) {
setProperty(APPLICATION, application);
}
@@ -131,29 +139,92 @@
}
public String setRepositoryPath(String repositoryPath) {
- setProperty(REPOSITORY_PATH, repositoryPath);
- return repositoryPath;
+ return (String) setProperty(REPOSITORY_PATH, repositoryPath);
}
public String getRepositoryPath() {
return (String) getProperty(REPOSITORY_PATH);
}
- public void importProject(final File projectFolder, IProgressMonitor monitor) throws OpenShiftException,
+ public String setProjectName(String projectName) {
+ return (String) setProperty(PROJECT_NAME, projectName);
+ }
+
+ public String getProjectName() {
+ return (String) getProperty(PROJECT_NAME);
+ }
+
+ public String setMergeUri(String mergeUri) {
+ return (String) setProperty(MERGE_URI, mergeUri);
+ }
+
+ public String getMergeUri() {
+ return (String) getProperty(MERGE_URI);
+ }
+
+ /**
+ * Shares (git enables) the user provided project.
+ *
+ * @param monitor
+ * the monitor to report progress to.
+ * @return
+ * @throws CoreException
+ */
+ public void shareProject(IProgressMonitor monitor) throws CoreException {
+ monitor.subTask(NLS.bind("Sharing project {0}...", getProjectName()));
+ shareProject(getProjectName(), monitor);
+ }
+
+ private Repository shareProject(String projectName, IProgressMonitor monitor) throws CoreException {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ if (project == null) {
+ throw new CoreException(
+ OpenShiftUIActivator.createErrorStatus("Could not find project {0} in your workspace."));
+ }
+ return EGitUtils.share(project, monitor);
+ }
+
+ public void copyOpenshiftConfiguration(final File sourceFolder, IProgressMonitor monitor)
+ throws OpenShiftException, IOException {
+ IProject project = getProject();
+ monitor.subTask(NLS.bind("Copying openshift configuration to project {0}...", getProjectName()));
+ FileUtils.copy(new File(sourceFolder, ".git"), project.getLocation().toFile(), false);
+ FileUtils.copy(new File(sourceFolder, ".openshift"), project.getLocation().toFile(), false);
+ FileUtils.copy(new File(sourceFolder, "deployments"), project.getLocation().toFile(), false);
+ FileUtils.copy(new File(sourceFolder, "pom.xml"), project.getLocation().toFile(), false);
+ }
+
+ /**
+ * Returns the user provided project.
+ *
+ * @throws OpenShiftException
+ *
+ * @see #getProjectName
+ */
+ private IProject getProject() throws OpenShiftException {
+ IProject project = getProject(getProjectName());
+ if (project == null
+ || !project.exists()) {
+ throw new OpenShiftException("Could not find project {0} in your workspace.", getProjectName());
+ }
+ return project;
+ }
+
+ public void importProject(final File gitProjectFolder, IProgressMonitor monitor) throws OpenShiftException,
CoreException,
InterruptedException {
- new WorkspaceJob(NLS.bind("Importing projects from {0}", projectFolder.getAbsolutePath())) {
+ new WorkspaceJob(NLS.bind("Importing projects from {0}", gitProjectFolder.getAbsolutePath())) {
@Override
public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
try {
- List<IProject> importedProjects = importMavenProject(projectFolder, monitor);
- connectToGitRepo(importedProjects, projectFolder, monitor);
+ List<IProject> importedProjects = importMavenProject(gitProjectFolder, monitor);
+ connectToGitRepo(importedProjects, gitProjectFolder, monitor);
createServerAdapterIfRequired(importedProjects, monitor);
return Status.OK_STATUS;
} catch (Exception e) {
IStatus status = new Status(IStatus.ERROR, OpenShiftUIActivator.PLUGIN_ID,
- NLS.bind("Could not import projects from {0}", projectFolder.getAbsolutePath()), e);
+ NLS.bind("Could not import projects from {0}", gitProjectFolder.getAbsolutePath()), e);
OpenShiftUIActivator.log(status);
return status;
}
@@ -162,36 +233,69 @@
}.schedule();
}
- private List<IProject> importMavenProject(final File projectFolder, IProgressMonitor monitor)
+ public void mergeWithApplicationRepository(Repository repository, IProgressMonitor monitor)
+ throws MalformedURLException, URISyntaxException, IOException, OpenShiftException, CoreException,
+ InvocationTargetException {
+ String uri = getApplication().getGitUri();
+ EGitUtils.addRemoteTo("openshift", new URIish(uri), repository);
+ EGitUtils.mergeWithRemote(new URIish(uri), "refs/remotes/openshift/HEAD", repository, monitor);
+ }
+
+ private IProject getProject(String projectName) {
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ }
+
+ public boolean projectExists(final File gitProjectFolder) {
+ String projectName = gitProjectFolder.getName();
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ return project.exists();
+ }
+
+ public void removeProject(String name) {
+
+ }
+
+ private List<IProject> importMavenProject(final File gitProjectFolder, IProgressMonitor monitor)
throws CoreException, InterruptedException {
- MavenProjectImportOperation mavenImport = new MavenProjectImportOperation(projectFolder);
+ MavenProjectImportOperation mavenImport = new MavenProjectImportOperation(gitProjectFolder);
List<IProject> importedProjects = Collections.emptyList();
if (mavenImport.isMavenProject()) {
importedProjects = mavenImport.importToWorkspace(monitor);
} else {
- importedProjects = new GeneralProjectImportOperation(projectFolder).importToWorkspace(monitor);
+ importedProjects = new GeneralProjectImportOperation(gitProjectFolder).importToWorkspace(monitor);
}
return importedProjects;
}
-
+
private void connectToGitRepo(List<IProject> projects, File projectFolder, IProgressMonitor monitor)
throws CoreException {
- File gitFolder = new File(projectFolder, Constants.DOT_GIT);
for (IProject project : projects) {
if (project != null) {
- connectToGitRepo(project, gitFolder, monitor);
+ EGitUtils.connect(project, monitor);
}
}
}
- private void connectToGitRepo(IProject project, File gitFolder, IProgressMonitor monitor) throws CoreException {
- new ConnectProviderOperation(project, gitFolder).execute(monitor);
- }
-
+ /**
+ * Clones the repository of the selected OpenShift application to the user
+ * provided path
+ *
+ * @param monitor
+ * the monitor to report progress to
+ * @return
+ * @throws URISyntaxException
+ * @throws OpenShiftException
+ * @throws InvocationTargetException
+ * @throws InterruptedException
+ *
+ * @see ImportProjectWizardModel#getApplication()
+ * @see #getRepositoryPath()
+ */
public File cloneRepository(IProgressMonitor monitor) throws URISyntaxException, OpenShiftException,
InvocationTargetException,
InterruptedException {
IApplication application = getApplication();
+ monitor.subTask(NLS.bind("Cloning repository for application {0}...", application.getName()));
File destination = new File(getRepositoryPath(), application.getName());
cloneRepository(application.getGitUri(), destination, monitor);
return destination;
@@ -234,6 +338,18 @@
Activator.getDefault();
}
+ /**
+ * creates an OpenShift server adapter for the user chosen project.
+ *
+ * @param monitor
+ * the monitor to report progress to.
+ * @throws OpenShiftException
+ */
+ public void createServerAdapterIfRequired(IProgressMonitor monitor) throws OpenShiftException {
+ monitor.subTask(NLS.bind("Creating server adapter for project {0}", getProjectName()));
+ createServerAdapterIfRequired(Collections.singletonList(getProject()), monitor);
+ }
+
private void createServerAdapterIfRequired(List<IProject> importedProjects, IProgressMonitor monitor) {
Boolean b = (Boolean)getProperty(AdapterWizardPageModel.CREATE_SERVER);
if( b != null && b.booleanValue() ) {
@@ -291,10 +407,10 @@
private List<IModule> getModules(List<IProject> importedProjects) {
Iterator<IProject> i = importedProjects.iterator();
ArrayList<IModule> toAdd = new ArrayList<IModule>();
- while(i.hasNext()) {
+ while (i.hasNext()) {
IProject p = i.next();
IModule[] m = ServerUtil.getModules(p);
- if( m != null && m.length > 0 ) {
+ if (m != null && m.length > 0) {
toAdd.addAll(Arrays.asList(m));
}
}
14 years
JBoss Tools SVN: r36969 - trunk/central/features/org.jboss.tools.central.feature.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2011-12-05 13:57:14 -0500 (Mon, 05 Dec 2011)
New Revision: 36969
Modified:
trunk/central/features/org.jboss.tools.central.feature/feature.xml
Log:
JBIDE-10308 provider name fix
Modified: trunk/central/features/org.jboss.tools.central.feature/feature.xml
===================================================================
--- trunk/central/features/org.jboss.tools.central.feature/feature.xml 2011-12-05 18:35:23 UTC (rev 36968)
+++ trunk/central/features/org.jboss.tools.central.feature/feature.xml 2011-12-05 18:57:14 UTC (rev 36969)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.jboss.tools.central.feature" label="%featureName" version="1.0.0.qualifier" provider-name="%featureName" plugin="org.jboss.tools.central">
+<feature id="org.jboss.tools.central.feature" label="%featureName" version="1.0.0.qualifier" provider-name="%providerName" plugin="org.jboss.tools.central">
<description>
%description
</description>
14 years
JBoss Tools SVN: r36968 - in trunk: cdi/features/org.jboss.tools.cdi.feature and 21 other directories.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2011-12-05 13:35:23 -0500 (Mon, 05 Dec 2011)
New Revision: 36968
Modified:
trunk/birt/features/org.jboss.tools.birt.feature/feature.properties
trunk/cdi/features/org.jboss.tools.cdi.feature/feature.properties
trunk/cdi/features/org.jboss.tools.cdi.seam.feature/feature.properties
trunk/deltacloud/features/org.jboss.tools.deltacloud.feature/feature.properties
trunk/examples/features/org.jboss.tools.community.project.examples.feature/feature.properties
trunk/examples/features/org.jboss.tools.project.examples.feature/feature.properties
trunk/gwt/features/org.jboss.tools.gwt.feature/feature.properties
trunk/jsf/features/org.jboss.tools.jsf.feature/feature.properties
trunk/jst/features/org.jboss.tools.jst.feature/feature.properties
trunk/maven/features/org.jboss.tools.maven.feature/feature.properties
trunk/maven/features/org.jboss.tools.maven.jaxrs.feature/feature.properties
trunk/maven/features/org.jboss.tools.maven.jsf.feature/feature.properties
trunk/maven/features/org.jboss.tools.maven.portlet.feature/feature.properties
trunk/maven/features/org.jboss.tools.maven.seam.feature/feature.properties
trunk/portlet/features/org.jboss.tools.portlet.feature/feature.properties
trunk/runtime/features/org.jboss.tools.runtime.as.detector.feature/feature.properties
trunk/runtime/features/org.jboss.tools.runtime.core.feature/feature.properties
trunk/runtime/features/org.jboss.tools.runtime.seam.detector.feature/feature.properties
trunk/seam/features/org.jboss.tools.seam.feature/feature.properties
trunk/struts/features/org.jboss.tools.struts.feature/feature.properties
trunk/usage/features/org.jboss.tools.usage.feature/feature.properties
trunk/ws/features/org.jboss.tools.ws.feature/feature.properties
trunk/ws/features/org.jboss.tools.ws.jaxrs.feature/feature.properties
Log:
JBIDE-10230 more specific feature descriptions
Modified: trunk/birt/features/org.jboss.tools.birt.feature/feature.properties
===================================================================
--- trunk/birt/features/org.jboss.tools.birt.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/birt/features/org.jboss.tools.birt.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=JBoss BIRT Integration
+description=JBoss BIRT Integration helps you use Seam and Hibernate with Birt. Provides a ODA datasource for Hibernate.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\n\
Modified: trunk/cdi/features/org.jboss.tools.cdi.feature/feature.properties
===================================================================
--- trunk/cdi/features/org.jboss.tools.cdi.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/cdi/features/org.jboss.tools.cdi.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -5,7 +5,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=Context and Dependency Injection Tools
+description=Context and Dependency Injection Tools provides support for JSR-299 also know as CDI. Adds wizards, code navigation, validation and quickfixes to work with projects that uses CDI.
# "licenseURL" property - URL of the "Feature License"
# do not translate value - just change to point to a locale-specific HTML page
Modified: trunk/cdi/features/org.jboss.tools.cdi.seam.feature/feature.properties
===================================================================
--- trunk/cdi/features/org.jboss.tools.cdi.seam.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/cdi/features/org.jboss.tools.cdi.seam.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -5,7 +5,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=Seam 3 Tools
+description=Seam 3 Tools provides tooling for the CDI components released as part of Seam 3 modules such as Solder and Config. Tooling covers recognizing these CDI components and editing the seam config xml.
# "licenseURL" property - URL of the "Feature License"
# do not translate value - just change to point to a locale-specific HTML page
Modified: trunk/deltacloud/features/org.jboss.tools.deltacloud.feature/feature.properties
===================================================================
--- trunk/deltacloud/features/org.jboss.tools.deltacloud.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/deltacloud/features/org.jboss.tools.deltacloud.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=Deltacloud Development Tools (Experimental)
+description=Deltacloud Development Tools (Experimental) provides a Deltacloud view and perspective to navigate and manage servers via a Deltacloud service.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2010-2011 Red Hat, Inc. and others.\nAll rights reserved. This program and the accompanying materials\n\
Modified: trunk/examples/features/org.jboss.tools.community.project.examples.feature/feature.properties
===================================================================
--- trunk/examples/features/org.jboss.tools.community.project.examples.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/examples/features/org.jboss.tools.community.project.examples.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=JBoss Tools Community Project Examples
+description=JBoss Tools Community Project Examples - installs a set of project example sites for use in JBoss Tools.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\nAll rights reserved. This program and the accompanying materials\n
Modified: trunk/examples/features/org.jboss.tools.project.examples.feature/feature.properties
===================================================================
--- trunk/examples/features/org.jboss.tools.project.examples.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/examples/features/org.jboss.tools.project.examples.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=Project Examples
+description=Project Examples provides infrastructure for installing, browsing and downloading project examples to learn about new functionallity.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\nAll rights reserved. This program and the accompanying materials\n
Modified: trunk/gwt/features/org.jboss.tools.gwt.feature/feature.properties
===================================================================
--- trunk/gwt/features/org.jboss.tools.gwt.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/gwt/features/org.jboss.tools.gwt.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=JBoss GWT Integration (Experimental)
+description=JBoss GWT Integration (Experimental) integrates Google Eclipse Plugin into Eclipse WTP to allow easier use of GWT with standard server adapters such as JBoss servers.
# "descriptionURL" property - the web address to get further informations about this feature
descriptionURL=http://www.jboss.org/tools
Modified: trunk/jsf/features/org.jboss.tools.jsf.feature/feature.properties
===================================================================
--- trunk/jsf/features/org.jboss.tools.jsf.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/jsf/features/org.jboss.tools.jsf.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -26,7 +26,7 @@
devUpdateSiteName=JBossTools Development Update Site
# "description" property - description of the feature
-description=JBoss Tools JSF
+description=JBoss Tools JSF provides wizards, validation, navigation, visual editing and content assist to JSF projects and component libraries.
copyright=Copyright (c) 2007 Exadel, Inc and Red Hat, Inc.\n\
Distributed under license by Red Hat, Inc. All rights reserved.\n\
Modified: trunk/jst/features/org.jboss.tools.jst.feature/feature.properties
===================================================================
--- trunk/jst/features/org.jboss.tools.jst.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/jst/features/org.jboss.tools.jst.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -26,7 +26,7 @@
devUpdateSiteName=JBossTools Development Update Site
# "description" property - description of the feature
-description=JBoss Tools Java Standard Tools
+description=JBoss Tools Java Standard Tools provides common tools for use in JBoss Tools other plugins, such as Knowledge Base builder and validators for use in JSF/Web projects.
copyright=Copyright (c) 2007 Exadel, Inc and Red Hat, Inc.\n\
Distributed under license by Red Hat, Inc. All rights reserved.\n\
Modified: trunk/maven/features/org.jboss.tools.maven.feature/feature.properties
===================================================================
--- trunk/maven/features/org.jboss.tools.maven.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/maven/features/org.jboss.tools.maven.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=JBoss Maven Integration
+description=JBoss Maven Integration provides basis of the integration of m2e and JBoss Tools.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2010-2011 Red Hat, Inc. and others.\n\
Modified: trunk/maven/features/org.jboss.tools.maven.jaxrs.feature/feature.properties
===================================================================
--- trunk/maven/features/org.jboss.tools.maven.jaxrs.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/maven/features/org.jboss.tools.maven.jaxrs.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=JBoss Maven JAX-RS Integration
+description=JBoss Maven JAX-RS Integration configures and enables JAX-RS on your project based on your pom.xml via m2eclipse
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2010-2011 Red Hat, Inc. and others.\n\
Modified: trunk/maven/features/org.jboss.tools.maven.jsf.feature/feature.properties
===================================================================
--- trunk/maven/features/org.jboss.tools.maven.jsf.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/maven/features/org.jboss.tools.maven.jsf.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=JBoss Maven Seam Integration
+description=JBoss Maven JSF Integration - configurator for m2eclipse which enables Eclipse WTP and JBoss Tools JSF support on Maven projects that uses JSF API
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2010-2011 Red Hat, Inc. and others.\n\
Modified: trunk/maven/features/org.jboss.tools.maven.portlet.feature/feature.properties
===================================================================
--- trunk/maven/features/org.jboss.tools.maven.portlet.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/maven/features/org.jboss.tools.maven.portlet.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=JBoss Maven Portlet Integration
+description=JBoss Maven Portlet Integration - enables JBoss Tools portlet support via m2eclipse on projects that uses Portlet API.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2010-2011 Red Hat, Inc. and others.\n\
Modified: trunk/maven/features/org.jboss.tools.maven.seam.feature/feature.properties
===================================================================
--- trunk/maven/features/org.jboss.tools.maven.seam.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/maven/features/org.jboss.tools.maven.seam.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=JBoss Maven Seam Integration
+description=JBoss Maven Seam Integration - m2eclipse configurator which enables Seam tooling on Maven projects uses Seam API.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2010-2011 Red Hat, Inc. and others.\n\
Modified: trunk/portlet/features/org.jboss.tools.portlet.feature/feature.properties
===================================================================
--- trunk/portlet/features/org.jboss.tools.portlet.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/portlet/features/org.jboss.tools.portlet.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -24,7 +24,7 @@
updateSiteName=JBossTools Update Site
# "description" property - description of the feature
-description=JBoss Portlet
+description=JBoss Portlet provides a set of project wizards to help support setting up applications to work with JBoss Portal, GateIn and Portal Bridge.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\nAll rights reserved. This program and the accompanying materials\n\
Modified: trunk/runtime/features/org.jboss.tools.runtime.as.detector.feature/feature.properties
===================================================================
--- trunk/runtime/features/org.jboss.tools.runtime.as.detector.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/runtime/features/org.jboss.tools.runtime.as.detector.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -25,7 +25,7 @@
JBossToolsUpdatesSiteName=JBoss Tools Updates
# "description" property - description of the feature
-description=JBoss Runtime AS Detector
+description=JBoss Runtime AS Detector, provides detection of JBoss AS installations and configure them as part of JBoss Runtime detection.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\nAll rights reserved. This program and the accompanying materials\n
Modified: trunk/runtime/features/org.jboss.tools.runtime.core.feature/feature.properties
===================================================================
--- trunk/runtime/features/org.jboss.tools.runtime.core.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/runtime/features/org.jboss.tools.runtime.core.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -25,7 +25,7 @@
JBossToolsUpdatesSiteName=JBoss Tools Updates
# "description" property - description of the feature
-description=JBoss Runtime Detection Core
+description=JBoss Runtime Detection Core provides a mechanism to search for runtimes and have them automatically configured in Eclipse for direct usage. The actual detection is provided by other plugins.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\nAll rights reserved. This program and the accompanying materials\n
Modified: trunk/runtime/features/org.jboss.tools.runtime.seam.detector.feature/feature.properties
===================================================================
--- trunk/runtime/features/org.jboss.tools.runtime.seam.detector.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/runtime/features/org.jboss.tools.runtime.seam.detector.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -25,7 +25,7 @@
JBossToolsUpdatesSiteName=JBoss Tools Updates
# "description" property - description of the feature
-description=JBoss Runtime Seam Detector
+description=JBoss Runtime Seam Detector provides detection of JBoss Seam installations and configure them as part of JBoss Runtime detection.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\nAll rights reserved. This program and the accompanying materials\n
Modified: trunk/seam/features/org.jboss.tools.seam.feature/feature.properties
===================================================================
--- trunk/seam/features/org.jboss.tools.seam.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/seam/features/org.jboss.tools.seam.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -26,7 +26,7 @@
devUpdateSiteName=JBossTools Development Update Site
# "description" property - description of the feature
-description=Provides tooling for JBoss Seam 2.
+description=Seam Tools provides wizards, quickfixes, code navigation and content assist related to Seam 1 and 2 projects. Has integrated support for seam-gen reverse engineering and view generation.
copyright=Copyright 2007-2011 Red Hat, Inc.\n\
Distributed under license by Red Hat, Inc. All rights reserved.\n\
Modified: trunk/struts/features/org.jboss.tools.struts.feature/feature.properties
===================================================================
--- trunk/struts/features/org.jboss.tools.struts.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/struts/features/org.jboss.tools.struts.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -25,7 +25,7 @@
discoverySiteName=JBossTools Development Update Site
# "description" property - description of the feature
-description=Struts Tools
+description=Struts Tools provides basic support for Struts 1.x projects.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2007-2011 Exadel, Inc and Red Hat, Inc.\n\
Modified: trunk/usage/features/org.jboss.tools.usage.feature/feature.properties
===================================================================
--- trunk/usage/features/org.jboss.tools.usage.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/usage/features/org.jboss.tools.usage.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -27,7 +27,7 @@
description=JBoss Tools Usage Reporting
# "descriptionURL" property - the web address to get further informations about this feature
-descriptionURL=http://www.jboss.org/tools
+descriptionURL=JBoss Tools Usage reporting provides an anonymous opt-in call-back mechanism that can be used to see how widely used plugins are, which plugin installations have been done, where in the world and what versions of operating system, java and other information that is available.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\n\
Modified: trunk/ws/features/org.jboss.tools.ws.feature/feature.properties
===================================================================
--- trunk/ws/features/org.jboss.tools.ws.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/ws/features/org.jboss.tools.ws.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -25,7 +25,7 @@
discoverySiteName=JBossTools Development Update Site
# "description" property - description of the feature
-description=JBoss WebServices Tools
+description=JBoss WebServices Tools provides wizards for working with webservices and a webservice tester view to test out both SOAP and REST services.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\n\
Modified: trunk/ws/features/org.jboss.tools.ws.jaxrs.feature/feature.properties
===================================================================
--- trunk/ws/features/org.jboss.tools.ws.jaxrs.feature/feature.properties 2011-12-05 18:25:01 UTC (rev 36967)
+++ trunk/ws/features/org.jboss.tools.ws.jaxrs.feature/feature.properties 2011-12-05 18:35:23 UTC (rev 36968)
@@ -25,7 +25,7 @@
discoverySiteName=JBossTools Development Update Site
# "description" property - description of the feature
-description=JBoss JAX-RS Tools
+description=JBoss JAX-RS Tools provides a common navigator to browse and introspect your JAX-RS endpoints and provide validation for JAX-RS annotations, such as checking that parameters referenced by name actually also are declared.
# "copyright" property - text of the "Feature Update Copyright"
copyright=Copyright (c) 2008-2011 Red Hat, Inc. and others.\n\
14 years
JBoss Tools SVN: r36967 - trunk/common/tests/org.jboss.tools.common.mylyn.test.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2011-12-05 13:25:01 -0500 (Mon, 05 Dec 2011)
New Revision: 36967
Modified:
trunk/common/tests/org.jboss.tools.common.mylyn.test/
Log:
proper svn ignore
Property changes on: trunk/common/tests/org.jboss.tools.common.mylyn.test
___________________________________________________________________
Modified: svn:ignore
- target
+ build
bin
target
buildlog.latest.txt
14 years
JBoss Tools SVN: r36966 - trunk/common/plugins/org.jboss.tools.common.mylyn.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2011-12-05 13:24:55 -0500 (Mon, 05 Dec 2011)
New Revision: 36966
Modified:
trunk/common/plugins/org.jboss.tools.common.mylyn/
Log:
proper svn ignore
Property changes on: trunk/common/plugins/org.jboss.tools.common.mylyn
___________________________________________________________________
Modified: svn:ignore
- target
+ build
bin
target
buildlog.latest.txt
14 years
JBoss Tools SVN: r36965 - trunk/openshift/tests/org.jboss.tools.openshift.egit.test.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2011-12-05 13:24:50 -0500 (Mon, 05 Dec 2011)
New Revision: 36965
Modified:
trunk/openshift/tests/org.jboss.tools.openshift.egit.test/
Log:
proper svn ignore
Property changes on: trunk/openshift/tests/org.jboss.tools.openshift.egit.test
___________________________________________________________________
Modified: svn:ignore
- target
+ build
bin
target
buildlog.latest.txt
14 years
JBoss Tools SVN: r36964 - trunk/openshift/tests/org.jboss.tools.openshift.ui.bot.test.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2011-12-05 13:24:45 -0500 (Mon, 05 Dec 2011)
New Revision: 36964
Modified:
trunk/openshift/tests/org.jboss.tools.openshift.ui.bot.test/
Log:
proper svn ignore
Property changes on: trunk/openshift/tests/org.jboss.tools.openshift.ui.bot.test
___________________________________________________________________
Added: svn:ignore
+ build
bin
target
buildlog.latest.txt
14 years
JBoss Tools SVN: r36963 - trunk/openshift/plugins/org.jboss.tools.openshift.express.client.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2011-12-05 13:24:41 -0500 (Mon, 05 Dec 2011)
New Revision: 36963
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.client/
Log:
proper svn ignore
Property changes on: trunk/openshift/plugins/org.jboss.tools.openshift.express.client
___________________________________________________________________
Modified: svn:ignore
- target
+ build
bin
target
buildlog.latest.txt
14 years
JBoss Tools SVN: r36962 - trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2011-12-05 13:24:34 -0500 (Mon, 05 Dec 2011)
New Revision: 36962
Modified:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/
Log:
proper svn ignore
Property changes on: trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test
___________________________________________________________________
Modified: svn:ignore
- screenshots
+ build
bin
target
buildlog.latest.txt
14 years
JBoss Tools SVN: r36961 - trunk/hibernatetools/plugins/org.jboss.tools.hibernate3_5.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2011-12-05 13:24:29 -0500 (Mon, 05 Dec 2011)
New Revision: 36961
Removed:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate3_5/bin/
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate3_5/
Log:
proper svn ignore
Property changes on: trunk/hibernatetools/plugins/org.jboss.tools.hibernate3_5
___________________________________________________________________
Modified: svn:ignore
- target
+ build
bin
target
buildlog.latest.txt
14 years