JBoss Tools SVN: r40953 - in trunk/openshift/plugins: org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2012-05-11 11:08:22 -0400 (Fri, 11 May 2012)
New Revision: 40953
Added:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/CreateApplicationOperation.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/EmbedCartridgesOperation.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeListener.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/IEmbedCartridgesWizardPageModel.java
Removed:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbeddedCartridgeWizardStrategy.java
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.client/openshift-java-client-2.0.0-SNAPSHOT.jar
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPage.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPageModel.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationWizardModel.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeWizardPage.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeWizardPageModel.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizard.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizardModel.java
Log:
[JBIDE-11835][JBIDE-10852] unified cartridge embedding. fixed bug where not being able to remove mysql / add postgres (and vice-versa)
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.client/openshift-java-client-2.0.0-SNAPSHOT.jar
===================================================================
(Binary files differ)
Added: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/CreateApplicationOperation.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/CreateApplicationOperation.java (rev 0)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/CreateApplicationOperation.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * 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.core;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.FutureTask;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.osgi.util.NLS;
+import org.jboss.tools.openshift.express.internal.core.console.UserDelegate;
+import org.jboss.tools.openshift.express.internal.ui.messages.OpenShiftExpressUIMessages;
+import org.jboss.tools.openshift.express.internal.ui.utils.Logger;
+
+import com.openshift.client.ApplicationScale;
+import com.openshift.client.IApplication;
+import com.openshift.client.ICartridge;
+import com.openshift.client.IGearProfile;
+import com.openshift.client.OpenShiftApplicationNotAvailableException;
+import com.openshift.client.OpenShiftException;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class CreateApplicationOperation {
+
+ private static final int APP_CREATION_TIMEOUT = 180;
+ private UserDelegate user;
+
+ public CreateApplicationOperation(UserDelegate user) {
+ this.user = user;
+ }
+
+ public IApplication execute(final String name, final ICartridge cartridge,
+ final ApplicationScale scale, final IGearProfile gearProfile, final IProgressMonitor monitor)
+ throws OpenShiftApplicationNotAvailableException, OpenShiftException {
+ if (user == null) {
+ throw new OpenShiftException("Could not create application, have no valid user credentials");
+ }
+ ExecutorService executor = Executors.newFixedThreadPool(1);
+ try {
+ FutureTask<IApplication> future = new FutureTask<IApplication>(
+ new Callable<IApplication>() {
+ @Override
+ public IApplication call() throws Exception {
+ monitor.setTaskName("Creating application \"" + name + "\"...");
+ Logger.debug("creating application...");
+ final IApplication application =
+ user.createApplication(name, cartridge, scale, gearProfile);
+ monitor.beginTask(
+ "Waiting for application to be reachable...", IProgressMonitor.UNKNOWN);
+ Logger.debug("Waiting for application to be reachable...");
+ waitForAccessible(application, monitor);
+ return application;
+ }
+ });
+ executor.execute(future);
+ while (!future.isDone()) {
+ if (monitor.isCanceled()) {
+ throw new OpenShiftException("Operation was cancelled by user.");
+ }
+ Thread.sleep(1000);
+ }
+ final IApplication application = future.get();
+ return application;
+ } catch (Exception e) { // InterruptedException and ExecutionException
+ Throwable cause = e.getCause() != null ? e.getCause() : e;
+ Logger.error("Failed to create application", cause);
+ throw new OpenShiftException("Failed to create application: {0}", cause.getMessage());
+ } finally {
+ executor.shutdown();
+ }
+ }
+
+ private void waitForAccessible(IApplication application, IProgressMonitor monitor)
+ throws OpenShiftApplicationNotAvailableException, OpenShiftException {
+ // monitor.subTask("waiting for application to become accessible...");
+ if (!application.waitForAccessible(APP_CREATION_TIMEOUT * 1000)) {
+ throw new OpenShiftApplicationNotAvailableException(NLS.bind(
+ OpenShiftExpressUIMessages.HOSTNAME_NOT_ANSWERING, application.getApplicationUrl()));
+ }
+ }
+
+}
Property changes on: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/CreateApplicationOperation.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/EmbedCartridgesOperation.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/EmbedCartridgesOperation.java (rev 0)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/EmbedCartridgesOperation.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2012 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.core;
+
+import java.net.SocketTimeoutException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.Diffs;
+import org.eclipse.core.databinding.observable.list.ListDiff;
+import org.eclipse.core.databinding.observable.list.ListDiffEntry;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import com.openshift.client.IApplication;
+import com.openshift.client.IEmbeddableCartridge;
+import com.openshift.client.IEmbeddedCartridge;
+import com.openshift.client.OpenShiftException;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class EmbedCartridgesOperation {
+
+ private IApplication application;
+
+ public EmbedCartridgesOperation(IApplication application) {
+ this.application = application;
+ }
+
+ public List<IEmbeddedCartridge> execute(final List<IEmbeddableCartridge> enabledCartridges, final IProgressMonitor monitor) throws SocketTimeoutException, OpenShiftException {
+ if (enabledCartridges == null) {
+ return Collections.emptyList();
+ }
+ List<IEmbeddableCartridge> cartridgesToAdd = new ArrayList<IEmbeddableCartridge>();
+ List<IEmbeddableCartridge> cartridgesToRemove = new ArrayList<IEmbeddableCartridge>();
+ computeAdditionsAndRemovals(
+ cartridgesToAdd,
+ cartridgesToRemove,
+ enabledCartridges,
+ application.getEmbeddedCartridges());
+ removeEmbeddedCartridges(cartridgesToRemove, application);
+ final List<IEmbeddedCartridge> addedCartridges = addEmbeddedCartridges(cartridgesToAdd, application);
+ return addedCartridges;
+
+ }
+
+ private void removeEmbeddedCartridges(List<IEmbeddableCartridge> cartridgesToRemove, final IApplication application) throws OpenShiftException,
+ SocketTimeoutException {
+ if (cartridgesToRemove.isEmpty()) {
+ return;
+ }
+ // Collections.sort(removedCartridges, new CartridgeComparator());
+ for (IEmbeddableCartridge cartridgeToRemove : cartridgesToRemove) {
+ final IEmbeddedCartridge embeddedCartridge = application.getEmbeddedCartridge(cartridgeToRemove);
+ if (embeddedCartridge != null) {
+ embeddedCartridge.destroy();
+ }
+ }
+ }
+
+ private List<IEmbeddedCartridge> addEmbeddedCartridges(List<IEmbeddableCartridge> cartridgesToAdd, final IApplication application)
+ throws OpenShiftException, SocketTimeoutException {
+ if (cartridgesToAdd.isEmpty()) {
+ return Collections.emptyList();
+ }
+ // Collections.sort(addedCartridges, new CartridgeComparator());
+ return application.addEmbeddableCartridges(cartridgesToAdd);
+ }
+
+ private void computeAdditionsAndRemovals(List<IEmbeddableCartridge> addedCartridges,
+ List<IEmbeddableCartridge> removedCartridges, List<IEmbeddableCartridge> selectedCartridges,
+ List<IEmbeddedCartridge> embeddedCartidges)
+ throws OpenShiftException, SocketTimeoutException {
+ ListDiff listDiff = Diffs.computeListDiff(embeddedCartidges, selectedCartridges);
+ for (ListDiffEntry entry : listDiff.getDifferences()) {
+ if (entry.isAddition()) {
+ addedCartridges.add((IEmbeddableCartridge) entry.getElement());
+ } else {
+ removedCartridges.add((IEmbeddableCartridge) entry.getElement());
+ }
+ }
+ Collections.sort(addedCartridges, new CartridgeComparator());
+ Collections.sort(removedCartridges, new CartridgeComparator());
+ }
+
+ private static class CartridgeComparator implements Comparator<IEmbeddableCartridge> {
+
+ @Override
+ public int compare(IEmbeddableCartridge thisCartridge, IEmbeddableCartridge thatCartridge) {
+ // mysql has to be added/removed before phpmyadmin
+ if (thisCartridge.equals(IEmbeddableCartridge.MYSQL_51)) {
+ return -1;
+ } else if (thatCartridge.equals(IEmbeddableCartridge.MYSQL_51)) {
+ return 1;
+ } else if (thisCartridge.equals(IEmbeddableCartridge.POSTGRESQL_84)) {
+ return -1;
+ } else if (thatCartridge.equals(IEmbeddableCartridge.POSTGRESQL_84)) {
+ return 1;
+ } else if (thisCartridge.equals(IEmbeddableCartridge.MONGODB_20)) {
+ return -1;
+ } else if (thatCartridge.equals(IEmbeddableCartridge.MONGODB_20)) {
+ return 1;
+ }
+ return 0;
+ }
+ }
+
+}
Property changes on: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/EmbedCartridgesOperation.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPage.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPage.java 2012-05-11 14:46:44 UTC (rev 40952)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPage.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -49,10 +49,8 @@
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.viewers.IElementComparer;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
@@ -111,7 +109,6 @@
private Group newAppEmbeddableCartridgesGroup;
private Button checkAllButton;
private Button uncheckAllButton;
- private EmbeddedCartridgeWizardStrategy embeddedCartridgeWizardStrategy;
public ApplicationConfigurationWizardPage(IWizard wizard, OpenShiftExpressApplicationWizardModel wizardModel) {
super("Setup OpenShift Application",
@@ -136,8 +133,6 @@
GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(container);
createApplicationSelectionGroup(container, dbc);
createApplicationConfigurationGroup(container, dbc);
-
- this.embeddedCartridgeWizardStrategy = new EmbeddedCartridgeWizardStrategy(viewer, this, pageModel);
}
private Composite createApplicationSelectionGroup(Composite container, DataBindingContext dbc) {
@@ -338,6 +333,7 @@
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).span(1, 2).hint(400, 250)
.applyTo(tableContainer);
this.viewer = createTable(tableContainer);
+ viewer.addCheckStateListener(new EmbedCartridgeListener(viewer, pageModel, this));
dbc.bindSet(ViewerProperties.checkedElements(IEmbeddableCartridge.class).observe(viewer),
BeanProperties.set(ApplicationConfigurationWizardPageModel.PROPERTY_SELECTED_EMBEDDABLE_CARTRIDGES)
.observe(pageModel));
@@ -432,7 +428,6 @@
CheckboxTableViewer viewer = new CheckboxTableViewer(table);
viewer.setComparer(new EqualityComparer());
viewer.setContentProvider(new ArrayContentProvider());
- viewer.addCheckStateListener(onCartridgeChecked());
createTableColumn("Embeddable Cartridge", 1, new CellLabelProvider() {
@Override
@@ -452,28 +447,6 @@
layout.setColumnData(column.getColumn(), new ColumnWeightData(weight, true));
}
- private ICheckStateListener onCartridgeChecked() {
- return new ICheckStateListener() {
-
- @Override
- public void checkStateChanged(CheckStateChangedEvent event) {
- try {
- IEmbeddableCartridge cartridge = (IEmbeddableCartridge) event.getElement();
- if (event.getChecked()) {
- embeddedCartridgeWizardStrategy.addCartridge(cartridge);
- } else {
- embeddedCartridgeWizardStrategy.removeCartridge(cartridge);
- }
- } catch (OpenShiftException e) {
- OpenShiftUIActivator.log("Could not process embeddable cartridges", e);
- } catch (SocketTimeoutException e) {
- OpenShiftUIActivator.log("Could not process embeddable cartridges", e);
- }
- }
- };
- }
-
-
private SelectionListener onCheckAll() {
return new SelectionAdapter() {
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPageModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPageModel.java 2012-05-11 14:46:44 UTC (rev 40952)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationConfigurationWizardPageModel.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -19,6 +19,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.jboss.tools.common.ui.databinding.ObservableUIPojo;
+import org.jboss.tools.openshift.express.internal.core.CreateApplicationOperation;
import org.jboss.tools.openshift.express.internal.core.console.UserDelegate;
import org.jboss.tools.openshift.express.internal.ui.utils.Logger;
import org.jboss.tools.openshift.express.internal.ui.utils.StringUtils;
@@ -35,10 +36,11 @@
* @author Xavier Coulon
*
*/
-public class ApplicationConfigurationWizardPageModel extends ObservableUIPojo {
+public class ApplicationConfigurationWizardPageModel extends ObservableUIPojo implements
+ IEmbedCartridgesWizardPageModel {
public static final String PROPERTY_USE_EXISTING_APPLICATION = "useExistingApplication";
- public static final String PROPERTY_APPLICATION_SCALE = "applicationScale";
+ public static final String PROPERTY_APPLICATION_SCALE = "scale";
public static final String PROPERTY_EXISTING_APPLICATION_NAME = "existingApplicationName";
public static final String PROPERTY_CARTRIDGES = "cartridges";
public static final String PROPERTY_EMBEDDED_CARTRIDGES = "embeddedCartridges";
@@ -50,7 +52,6 @@
public static final String PROPERTY_EXISTING_APPLICATIONS_LOADED = "existingApplicationsLoaded";
public static final String PROPERTY_SCALABLE_APPLICATION = "scalableApplication";
public static final String PROPERTY_GEAR_PROFILES = "gearProfiles";
-
private final OpenShiftExpressApplicationWizardModel wizardModel;
@@ -114,18 +115,17 @@
, wizardModel.isUseExistingApplication()
, wizardModel.setUseExistingApplication(useExistingApplication));
}
-
- public ApplicationScale getApplicationScale() {
+
+ public ApplicationScale getScale() {
return wizardModel.getApplicationScale();
}
- public void setApplicationScale(ApplicationScale scale) {
+ public void setScale(ApplicationScale scale) {
firePropertyChange(PROPERTY_APPLICATION_SCALE
, wizardModel.getApplicationScale()
, wizardModel.setApplicationScale(scale));
}
-
protected void setUseExistingApplication(IApplication application) {
setUseExistingApplication(application != null);
}
@@ -141,7 +141,7 @@
*
* @param applicationName
* @throws OpenShiftException
- * @throws SocketTimeoutException
+ * @throws SocketTimeoutException
*
* @see #doSetExistingApplication(IApplication)
*/
@@ -209,25 +209,24 @@
firePropertyChange(PROPERTY_CARTRIDGES, this.cartridges, this.cartridges = cartridges);
}
-
public List<ICartridge> getCartridges() {
return cartridges;
}
-
+
public ICartridge getCartridgeByName(String name) {
List<ICartridge> cartridges = getCartridges();
if (cartridges == null) {
return null;
}
-
- ICartridge matchingCartridge = null;
+
+ ICartridge matchingCartridge = null;
for (ICartridge cartridge : cartridges) {
if (name.equals(cartridge.getName())) {
matchingCartridge = cartridge;
break;
}
}
-
+
return matchingCartridge;
}
@@ -237,18 +236,17 @@
public void loadGearProfiles() throws OpenShiftException, SocketTimeoutException {
setGearProfiles(getUser().getDefaultDomain().getAvailableGearProfiles());
- //refreshSelectedCartridge();
+ // refreshSelectedCartridge();
}
-
-
+
public void setGearProfiles(List<IGearProfile> gearProfiles) {
firePropertyChange(PROPERTY_GEAR_PROFILES, this.gearProfiles, this.gearProfiles = gearProfiles);
}
-
+
public List<IGearProfile> getGearProfiles() {
return gearProfiles;
}
-
+
public IGearProfile getSelectedGearProfile() {
return wizardModel.getApplicationGearProfile();
}
@@ -264,15 +262,15 @@
if (gearProfiles == null) {
return null;
}
-
- IGearProfile matchingGearProfile = null;
+
+ IGearProfile matchingGearProfile = null;
for (IGearProfile gearProfile : gearProfiles) {
if (name.equals(gearProfile.getName())) {
matchingGearProfile = gearProfile;
break;
}
}
-
+
return matchingGearProfile;
}
@@ -308,7 +306,7 @@
*
* @param application
* @throws OpenShiftException
- * @throws SocketTimeoutException
+ * @throws SocketTimeoutException
*
* @see #setExistingApplicationName(String)
* @see #setApplicationName(IApplication)
@@ -329,7 +327,7 @@
*
* @param application
* @throws OpenShiftException
- * @throws SocketTimeoutException
+ * @throws SocketTimeoutException
*
* @see #setApplicationName(IApplication)
* @see #setSelectedCartridge(IApplication)
@@ -342,7 +340,7 @@
setSelectedCartridge(application.getCartridge());
setSelectedEmbeddableCartridges(new HashSet<IEmbeddableCartridge>(application.getEmbeddedCartridges()));
setSelectedGearProfile(application.getGearProfile());
- setApplicationScale(application.getApplicationScale());
+ setScale(application.getApplicationScale());
wizardModel.setApplication(application);
}
}
@@ -378,14 +376,17 @@
return embeddedCartridges;
}
+ @Override
public Set<IEmbeddableCartridge> getSelectedEmbeddableCartridges() throws OpenShiftException {
return wizardModel.getSelectedEmbeddableCartridges();
}
+ @Override
public void selectEmbeddedCartridges(IEmbeddableCartridge cartridge) throws OpenShiftException {
getSelectedEmbeddableCartridges().add(cartridge);
}
+ @Override
public void unselectEmbeddedCartridges(IEmbeddableCartridge cartridge) throws OpenShiftException {
getSelectedEmbeddableCartridges().remove(cartridge);
}
@@ -396,6 +397,7 @@
wizardModel.setSelectedEmbeddableCartridges(selectedEmbeddableCartridges));
}
+ @Override
public boolean hasApplicationOfType(ICartridge cartridge) throws SocketTimeoutException, OpenShiftException {
return getUser().hasApplicationOfType(cartridge);
}
@@ -409,7 +411,14 @@
}
public IApplication createJenkinsApplication(String name, IProgressMonitor monitor) throws OpenShiftException {
- return wizardModel.createApplication(name, ICartridge.JENKINS_14, ApplicationScale.NO_SCALE, IGearProfile.SMALL, monitor);
+ IApplication application =
+ new CreateApplicationOperation(getUser()).execute(
+ name,
+ ICartridge.JENKINS_14,
+ ApplicationScale.NO_SCALE,
+ IGearProfile.SMALL,
+ monitor);
+ return application;
}
}
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationWizardModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationWizardModel.java 2012-05-11 14:46:44 UTC (rev 40952)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/ApplicationWizardModel.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Red Hat, Inc.
+ * Copyright (c) 2012 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,
@@ -10,107 +10,29 @@
******************************************************************************/
package org.jboss.tools.openshift.express.internal.ui.wizard;
-import java.net.SocketTimeoutException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osgi.util.NLS;
import org.jboss.tools.common.ui.databinding.ObservableUIPojo;
import org.jboss.tools.openshift.express.internal.core.console.UserDelegate;
-import org.jboss.tools.openshift.express.internal.ui.messages.OpenShiftExpressUIMessages;
-import com.openshift.client.ApplicationScale;
import com.openshift.client.IApplication;
-import com.openshift.client.ICartridge;
-import com.openshift.client.IGearProfile;
-import com.openshift.client.OpenShiftApplicationNotAvailableException;
-import com.openshift.client.OpenShiftException;
/**
* @author André Dietisheim
*/
public class ApplicationWizardModel extends ObservableUIPojo {
- public static final String PROPERTY_APPLICATION = "application";
-
- /**
- * Timeout in seconds when trying to contact an application after it had
- * been created.
- */
- private static final int APP_CREATION_TIMEOUT = 10;
-
- private UserDelegate user;
private IApplication application;
- private String name;
- private ICartridge cartridge;
- private ApplicationScale scale;
- private IGearProfile gearProfile;
+ private UserDelegate user;
- public ApplicationWizardModel(UserDelegate user) {
- this(null, user);
- }
-
public ApplicationWizardModel(IApplication application, UserDelegate user) {
this.application = application;
this.user = user;
}
- public UserDelegate getUser() {
- return user;
- }
-
- public String setName(String name) {
- return this.name = name;
- }
-
- /**
- * @param scale the scale to set
- */
- public final void setScale(ApplicationScale scale) {
- this.scale = scale;
- }
-
- /**
- * @param gearProfile the gearProfile to set
- */
- public final void setGearProfile(IGearProfile gearProfile) {
- this.gearProfile = gearProfile;
- }
-
- public void setCartridge(ICartridge cartridge) {
- this.cartridge = cartridge;
- }
-
-
- public void setApplication(IApplication application) {
- firePropertyChange(PROPERTY_APPLICATION, this.application, this.application = application);
- }
-
public IApplication getApplication() {
return application;
}
- public void createApplication(IProgressMonitor monitor) throws OpenShiftException, SocketTimeoutException {
- IApplication application = createApplication(this.name, this.cartridge, this.scale , this.gearProfile, monitor);
- setApplication(application);
+ public UserDelegate getUser() {
+ return user;
}
- public IApplication createApplication(final String name, final ICartridge cartridge, final ApplicationScale scale, final IGearProfile gearProfile, IProgressMonitor monitor) throws OpenShiftException, SocketTimeoutException {
-// monitor.subTask("creating application...");
- IApplication application = getUser().createApplication(name, cartridge, scale, gearProfile);
- waitForAccessible(application, monitor);
- return application;
- }
-
- public boolean hasApplication(String name) throws OpenShiftException, SocketTimeoutException {
- return user.hasApplication(name);
- }
-
- private void waitForAccessible(IApplication application, IProgressMonitor monitor) throws OpenShiftApplicationNotAvailableException, OpenShiftException {
-// monitor.subTask("waiting for application to become accessible...");
- if (!application.waitForAccessible(APP_CREATION_TIMEOUT * 1000)) {
- throw new OpenShiftApplicationNotAvailableException(NLS.bind(
- OpenShiftExpressUIMessages.HOSTNAME_NOT_ANSWERING,
- application.getApplicationUrl()));
- }
- }
-
}
Copied: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeListener.java (from rev 40920, trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbeddedCartridgeWizardStrategy.java)
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeListener.java (rev 0)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeListener.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -0,0 +1,299 @@
+/*******************************************************************************
+ * Copyright (c) 2012 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.net.SocketTimeoutException;
+
+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.Dialog;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.wizard.IWizardContainer;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.jboss.tools.common.ui.WizardUtils;
+import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
+import org.jboss.tools.openshift.express.internal.ui.utils.StringUtils;
+
+import com.openshift.client.IApplication;
+import com.openshift.client.ICartridge;
+import com.openshift.client.IEmbeddableCartridge;
+import com.openshift.client.OpenShiftException;
+
+/**
+ * A UI strategy that is able to add and remove embedded cartridges while
+ * fullfilling requirements and resolving conflicts (ex. mutual exclusivity
+ * etc.)
+ *
+ * @author Andre Dietisheim
+ */
+public class EmbedCartridgeListener implements ICheckStateListener {
+
+ private CheckboxTableViewer viewer;
+ private IEmbedCartridgesWizardPageModel pageModel;
+ private IWizardPage wizardPage;
+
+ public EmbedCartridgeListener(CheckboxTableViewer viewer,
+ IEmbedCartridgesWizardPageModel pageModel, IWizardPage wizardPage) {
+ this.viewer = viewer;
+ this.wizardPage = wizardPage;
+ this.pageModel = pageModel;
+ }
+
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ try {
+ IEmbeddableCartridge cartridge = (IEmbeddableCartridge) event.getElement();
+ if (event.getChecked()) {
+ addCartridge(cartridge);
+ } else {
+ removeCartridge(cartridge);
+ }
+ } catch (OpenShiftException e) {
+ OpenShiftUIActivator.log("Could not process embeddable cartridges", e);
+ } catch (SocketTimeoutException e) {
+ OpenShiftUIActivator.log("Could not process embeddable cartridges", e);
+ }
+ }
+
+ private void addCartridge(IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException {
+ if (IEmbeddableCartridge.PHPMYADMIN_34.equals(cartridge)) {
+ addPhpMyAdmin();
+ } else if (IEmbeddableCartridge.JENKINS_14.equals(cartridge)) {
+ addJenkins(cartridge);
+ } else if (IEmbeddableCartridge.MYSQL_51.equals(cartridge)) {
+ addMySql();
+ } else if (IEmbeddableCartridge.POSTGRESQL_84.equals(cartridge)) {
+ addPostgreSql();
+ } else if (IEmbeddableCartridge.ROCKMONGO_11.equals(cartridge)) {
+ addRockMongo();
+ } else if (IEmbeddableCartridge._10GEN_MMS_AGENT_01.equals(cartridge)) {
+ add10gen();
+ } else {
+ pageModel.selectEmbeddedCartridges(cartridge);
+ }
+ }
+
+ private void removeCartridge(IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException {
+ if (IEmbeddableCartridge.MYSQL_51.equals(cartridge)) {
+ removeMySQL();
+ } else if (IEmbeddableCartridge.MONGODB_20.equals(cartridge)) {
+ removeMongoDb();
+ } else {
+ pageModel.unselectEmbeddedCartridges(cartridge);
+ }
+ }
+
+ private void addJenkins(final IEmbeddableCartridge cartridge) throws OpenShiftException,
+ SocketTimeoutException {
+ if (pageModel.hasApplicationOfType(ICartridge.JENKINS_14)) {
+ pageModel.getSelectedEmbeddableCartridges().add(cartridge);
+ } else {
+ final JenkinsApplicationDialog dialog = new JenkinsApplicationDialog(getShell());
+ if (dialog.open() == Dialog.OK) {
+ createJenkinsApplication(cartridge, dialog.getValue());
+ } else {
+ viewer.setChecked(cartridge, false);
+ }
+ }
+ }
+
+ private void createJenkinsApplication(final IEmbeddableCartridge cartridge, final String name) {
+ try {
+ WizardUtils.runInWizard(new Job(NLS.bind("Creating jenkins application \"{0}\"...", name)) {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ IApplication jenkinsApplication = pageModel.createJenkinsApplication(name, monitor);
+ pageModel.getSelectedEmbeddableCartridges().add(cartridge);
+ openLogDialog(jenkinsApplication);
+ return Status.OK_STATUS;
+ } catch (Exception e) {
+ getShell().getDisplay().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ viewer.setChecked(cartridge, false);
+ }
+ });
+ return OpenShiftUIActivator.createErrorStatus("Could not load embeddable cartridges", e);
+ }
+ }
+
+ }, getContainer());
+ } catch (Exception e) {
+ // ignore
+ }
+ }
+
+ private void addPhpMyAdmin() throws OpenShiftException, SocketTimeoutException {
+ if (!viewer.getChecked(IEmbeddableCartridge.MYSQL_51)) {
+ if (MessageDialog.openQuestion(getShell(), "Embed phpMyAdmin Cartridge",
+ "To embed phpMyAdmin, you'd also have to embed MySQL. \n\nAlso embed MySQL?")) {
+ viewer.setChecked(IEmbeddableCartridge.MYSQL_51, true);
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
+ } else {
+ viewer.setChecked(IEmbeddableCartridge.PHPMYADMIN_34, false);
+ }
+ } else {
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
+ }
+ }
+
+ private void addMySql()
+ throws OpenShiftException, SocketTimeoutException {
+ if (viewer.getChecked(IEmbeddableCartridge.POSTGRESQL_84)) {
+ if (MessageDialog
+ .openQuestion(getShell(), "Remove PostgreSQL Cartridge",
+ "MySQL and PostgreSQL are mutually exclusive. To embed MySQL, you have to remove PostgreSQL. \n\nRemove PostgreSQL?")) {
+ viewer.setChecked(IEmbeddableCartridge.POSTGRESQL_84, false);
+ pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.POSTGRESQL_84);
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
+ } else {
+ viewer.setChecked(IEmbeddableCartridge.MYSQL_51, false);
+ pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
+ }
+ } else {
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
+ }
+ }
+
+ private void addPostgreSql()
+ throws OpenShiftException, SocketTimeoutException {
+ if (viewer.getChecked(IEmbeddableCartridge.MYSQL_51)) {
+ if (MessageDialog
+ .openQuestion(getShell(), "Remove MySQL Cartridge",
+ "MySQL and PostgreSQL are mutually exclusive. To embed PostgreSQL, you have to remove MySQL.\n\nRemove MySQL?")) {
+ viewer.setChecked(IEmbeddableCartridge.MYSQL_51, false);
+ pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.POSTGRESQL_84);
+ } else {
+ viewer.setChecked(IEmbeddableCartridge.POSTGRESQL_84, false);
+ }
+ } else {
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.POSTGRESQL_84);
+ }
+ }
+
+ private void removeMySQL() throws OpenShiftException, SocketTimeoutException {
+ if (viewer.getChecked(IEmbeddableCartridge.PHPMYADMIN_34)) {
+ if (MessageDialog.openQuestion(getShell(), "Remove phpmyadmin cartridge",
+ "If you remove the mysql cartridge, you'd also have to remove phpmyadmin.\n\nRemove phpMyAdmin and MySQL?")) {
+ pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
+ pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
+ viewer.setChecked(IEmbeddableCartridge.PHPMYADMIN_34, false);
+ } else {
+ viewer.setChecked(IEmbeddableCartridge.MYSQL_51, true);
+ }
+ } else {
+ pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
+ }
+ }
+
+ private void addRockMongo() throws OpenShiftException, SocketTimeoutException {
+ if (!viewer.getChecked(IEmbeddableCartridge.MONGODB_20)) {
+ if (MessageDialog.openQuestion(getShell(), "Embed MongoDB Cartridge",
+ "To embed RockMongo, you'd also have to embed MongoDB. \n\nAlso embed MongoDB?")) {
+ viewer.setChecked(IEmbeddableCartridge.MONGODB_20, true);
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.MONGODB_20);
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.ROCKMONGO_11);
+ } else {
+ viewer.setChecked(IEmbeddableCartridge.MONGODB_20, false);
+ }
+ } else {
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
+ }
+ }
+
+ private void removeMongoDb() throws OpenShiftException, SocketTimeoutException {
+ if (viewer.getChecked(IEmbeddableCartridge.ROCKMONGO_11)) {
+ if (MessageDialog.openQuestion(getShell(), "Remove MongoDB cartridge",
+ "If you remove the MongoDB cartridge, you'd also have to remove RockMongo.")) {
+ pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.ROCKMONGO_11);
+ viewer.setChecked(IEmbeddableCartridge.ROCKMONGO_11, false);
+ } else {
+ viewer.setChecked(IEmbeddableCartridge.MONGODB_20, true);
+ }
+ } else {
+ pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MONGODB_20);
+ }
+ }
+
+ private void add10gen() throws OpenShiftException, SocketTimeoutException {
+ if (!viewer.getChecked(IEmbeddableCartridge.MONGODB_20)) {
+ if (MessageDialog.openQuestion(getShell(), "Embed 10gen Cartridge",
+ "To embed 10gen cartridge, you'd also have to embed MongoDB. \n\nAlso embed MongoDB?")) {
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.MONGODB_20);
+ viewer.setChecked(IEmbeddableCartridge.MONGODB_20, true);
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge._10GEN_MMS_AGENT_01);
+ } else {
+ viewer.setChecked(IEmbeddableCartridge.MONGODB_20, false);
+ pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
+ viewer.setChecked(IEmbeddableCartridge._10GEN_MMS_AGENT_01, false);
+ }
+ } else {
+ pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
+ }
+ }
+
+
+ private Shell getShell() {
+ return viewer.getControl().getShell();
+ }
+
+ private IWizardContainer getContainer() {
+ return wizardPage.getWizard().getContainer();
+ }
+
+ private void openLogDialog(final IApplication application) {
+ getShell().getDisplay().syncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ new CreationLogDialog(getShell(), application).open();
+ }
+ });
+ }
+
+ private static class JenkinsApplicationDialog extends InputDialog {
+
+ public JenkinsApplicationDialog(Shell shell) {
+ super(
+ shell,
+ "New Jenkins application",
+ "To embed Jenkins into your application, you first have to create a separate Jenkins application. "
+ + "Please provide a name for this new Jenkins application (lower-case letters and digits only):"
+ , null, new JenkinsNameValidator());
+ }
+
+ private static class JenkinsNameValidator implements IInputValidator {
+
+ @Override
+ public String isValid(String input) {
+ if (StringUtils.isEmpty(input)) {
+ return "You have to provide a name for the jenkins application";
+ }
+
+ if (!StringUtils.isAlphaNumeric(input)) {
+ return "The name may only contain lower-case letters and digits.";
+ }
+ return null;
+ }
+ }
+ }
+}
Property changes on: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeListener.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeWizardPage.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeWizardPage.java 2012-05-11 14:46:44 UTC (rev 40952)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeWizardPage.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Red Hat, Inc.
+ * Copyright (c) 2012 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,
@@ -22,19 +22,13 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.viewers.IElementComparer;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
@@ -44,14 +38,10 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.jboss.tools.common.ui.WizardUtils;
import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
-import org.jboss.tools.openshift.express.internal.ui.utils.StringUtils;
-import com.openshift.client.IApplication;
-import com.openshift.client.ICartridge;
import com.openshift.client.IEmbeddableCartridge;
import com.openshift.client.IEmbeddedCartridge;
import com.openshift.client.OpenShiftException;
@@ -61,13 +51,13 @@
*/
public class EmbedCartridgeWizardPage extends AbstractOpenShiftWizardPage {
- private EmbedCartridgeWizardPageModel model;
+ private EmbedCartridgeWizardPageModel pageModel;
private CheckboxTableViewer viewer;
public EmbedCartridgeWizardPage(ApplicationWizardModel wizardModel, IWizard wizard) {
super("Embed Cartridges", "Please select the cartridges to embed into your application",
"EmbedCartridgePage", wizard);
- this.model = new EmbedCartridgeWizardPageModel(wizardModel);
+ this.pageModel = new EmbedCartridgeWizardPageModel(wizardModel);
}
@Override
@@ -85,8 +75,8 @@
this.viewer = createTable(tableContainer);
GridDataFactory.fillDefaults()
.span(3, 1).align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(tableContainer);
- viewer.addCheckStateListener(onCartridgeChecked());
-
+ viewer.addCheckStateListener(new EmbedCartridgeListener(viewer, pageModel, this));
+
// hiding buttons for now: https://issues.jboss.org/browse/JBIDE-10399
// Button checkAllButton = new Button(embedGroup, SWT.PUSH);
// checkAllButton.setText("Embed A&ll");
@@ -130,121 +120,6 @@
layout.setColumnData(column.getColumn(), new ColumnWeightData(weight, true));
}
- private ICheckStateListener onCartridgeChecked() {
- return new ICheckStateListener() {
-
- @Override
- public void checkStateChanged(CheckStateChangedEvent event) {
- try {
- IEmbeddableCartridge cartridge = (IEmbeddableCartridge) event.getElement();
- if (event.getChecked()) {
- if (IEmbeddedCartridge.PHPMYADMIN_34.equals(cartridge)) {
- addPhpMyAdminCartridge(cartridge);
- } else if (IEmbeddedCartridge.JENKINS_14.equals(cartridge)) {
- addJenkinsCartridge(cartridge);
- } else {
- addCartridge(cartridge);
- }
- } else {
- if (IEmbeddedCartridge.MYSQL_51.equals(cartridge)) {
- removeMySQLCartridge(cartridge);
- } else {
- removeCartridge(cartridge);
- }
- }
- } catch (OpenShiftException e) {
- OpenShiftUIActivator.log("Could not process embeddable cartridges", e);
- } catch (SocketTimeoutException e) {
- OpenShiftUIActivator.log("Could not process embeddable cartridges", e);
- }
- }
- };
- }
-
- private void addJenkinsCartridge(final IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException {
- if (model.hasApplication(ICartridge.JENKINS_14)) {
- model.getSelectedEmbeddableCartridges().add(cartridge);
- } else {
- final JenkinsApplicationDialog dialog = new JenkinsApplicationDialog(getShell());
- if (dialog.open() == Dialog.OK) {
- createJenkinsApplication(cartridge, dialog.getValue());
- } else {
- viewer.setChecked(cartridge, false);
- }
- }
- }
-
- private void createJenkinsApplication(final IEmbeddableCartridge cartridge, final String name) {
- try {
- WizardUtils.runInWizard(new Job(
- NLS.bind("Creating jenkins application \"{0}\"...", name)) {
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- try {
- IApplication jenkinsApplication = model.createJenkinsApplication(name, monitor);
- model.getSelectedEmbeddableCartridges().add(cartridge);
-
- openLogDialog(jenkinsApplication);
-
- return Status.OK_STATUS;
- } catch (Exception e) {
- getShell().getDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- viewer.setChecked(cartridge, false);
- }
- });
- return OpenShiftUIActivator
- .createErrorStatus("Could not load embeddable cartridges", e);
- }
- }
-
- }, getContainer(), getDataBindingContext());
- } catch (Exception e) {
- // ignore
- }
- }
-
- private void addPhpMyAdminCartridge(IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException {
- if (!viewer.getChecked(IEmbeddedCartridge.MYSQL_51)) {
- if (MessageDialog.openQuestion(getShell(), "Embed mysql cartridge",
- "To embed phpmyadmin, you'd also have to embed mysql.")) {
- model.getSelectedEmbeddableCartridges().add(IEmbeddedCartridge.MYSQL_51);
- model.getSelectedEmbeddableCartridges().add(cartridge);
- viewer.setChecked(IEmbeddedCartridge.MYSQL_51, true);
- } else {
- viewer.setChecked(cartridge, false);
- }
- } else {
- model.getSelectedEmbeddableCartridges().add(cartridge);
- }
- }
-
- private void addCartridge(IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException {
- model.getSelectedEmbeddableCartridges().add(cartridge);
- }
-
- private void removeMySQLCartridge(IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException {
- List<IEmbeddableCartridge> checkedCartridges = model.getSelectedEmbeddableCartridges();
- if (viewer.getChecked(IEmbeddedCartridge.PHPMYADMIN_34)) {
- if (MessageDialog.openQuestion(getShell(), "Remove phpmyadmin cartridge",
- "If you remove the mysql cartridge, you'd also have to remove phpmyadmin.")) {
- checkedCartridges.remove(IEmbeddedCartridge.PHPMYADMIN_34);
- checkedCartridges.remove(cartridge);
- viewer.setChecked(IEmbeddedCartridge.PHPMYADMIN_34, false);
- } else {
- viewer.setChecked(cartridge, true);
- }
- } else {
- checkedCartridges.remove(cartridge);
- }
- }
-
- private void removeCartridge(IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException {
- model.getSelectedEmbeddableCartridges().remove(cartridge);
- }
-
// private SelectionListener onCheckAll() {
// return new SelectionAdapter() {
//
@@ -282,8 +157,8 @@
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
- setViewerInput(model.loadEmbeddableCartridges());
- setViewerCheckedElements(model.getSelectedEmbeddableCartridges());
+ setViewerInput(pageModel.loadEmbeddableCartridges());
+ setViewerCheckedElements(pageModel.getSelectedEmbeddableCartridges());
return Status.OK_STATUS;
} catch (Exception e) {
clearViewer();
@@ -321,52 +196,29 @@
});
}
- private static class JenkinsApplicationDialog extends InputDialog {
-
- public JenkinsApplicationDialog(Shell shell) {
- super(shell
- , "New Jenkins application"
- , "To embed jenkins into your application, you'd first have to create a jenkins application.\n"
- + "Please provide a name for your jenkins application:"
- , null
- , new JenkinsNameValidator());
- }
-
- private static class JenkinsNameValidator implements IInputValidator {
-
- @Override
- public String isValid(String input) {
- if (StringUtils.isEmpty(input)) {
- return "You have to provide a name for the jenkins application";
- }
- return null;
- }
- }
- }
-
public boolean processCartridges() {
final ArrayBlockingQueue<Boolean> queue = new ArrayBlockingQueue<Boolean>(1);
try {
WizardUtils.runInWizard(
new Job(NLS.bind("Adding/Removing embedded cartridges for application {0}...",
- model.getApplication().getName())) {
+ pageModel.getApplication().getName())) {
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
- List<IEmbeddedCartridge> addedCartridges = model.embedCartridges();
+ List<IEmbeddedCartridge> addedCartridges = pageModel.embedCartridges();
openLogDialog(addedCartridges);
queue.offer(true);
} catch (OpenShiftException e) {
queue.offer(false);
return new Status(IStatus.ERROR, OpenShiftUIActivator.PLUGIN_ID,
NLS.bind("Could not embed cartridges to application {0}",
- model.getApplication().getName()), e);
+ pageModel.getApplication().getName()), e);
} catch (SocketTimeoutException e) {
queue.offer(false);
return new Status(IStatus.ERROR, OpenShiftUIActivator.PLUGIN_ID,
NLS.bind("Could not embed cartridges to application {0}",
- model.getApplication().getName()), e);
+ pageModel.getApplication().getName()), e);
}
return Status.OK_STATUS;
}
@@ -392,16 +244,6 @@
});
}
- private void openLogDialog(final IApplication application) {
- getShell().getDisplay().syncExec(new Runnable() {
-
- @Override
- public void run() {
- new CreationLogDialog(getShell(), application).open();
- }
- });
- }
-
/**
* Viewer element comparer based on #equals(). The default implementation in
* CheckboxTableViewer compares elements based on instance identity.
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeWizardPageModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeWizardPageModel.java 2012-05-11 14:46:44 UTC (rev 40952)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbedCartridgeWizardPageModel.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Red Hat, Inc.
+ * Copyright (c) 2012 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,
@@ -12,15 +12,14 @@
import java.net.SocketTimeoutException;
import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
import org.eclipse.core.runtime.IProgressMonitor;
import org.jboss.tools.common.ui.databinding.ObservableUIPojo;
+import org.jboss.tools.openshift.express.internal.core.CreateApplicationOperation;
+import org.jboss.tools.openshift.express.internal.core.EmbedCartridgesOperation;
import com.openshift.client.ApplicationScale;
import com.openshift.client.IApplication;
@@ -33,25 +32,22 @@
/**
* @author André Dietisheim
*/
-public class EmbedCartridgeWizardPageModel extends ObservableUIPojo {
+public class EmbedCartridgeWizardPageModel extends ObservableUIPojo implements IEmbedCartridgesWizardPageModel {
- public static final String PROPERTY_APPLICATION = "application";
- public static final String PROPERTY_NAME = "name";
- public static final String PROPERTY_CARTRIDGES = "cartridges";
public static final String PROPERTY_EMBEDDABLE_CARTRIDGES = "embeddableCartridges";
public static final String PROPERTY_SELECTED_CARTRIDGE = "selectedCartridge";
private ApplicationWizardModel wizardModel;
private List<IEmbeddableCartridge> embeddedCartridges = new ArrayList<IEmbeddableCartridge>();
- private List<IEmbeddableCartridge> selectedCartridges;
+ private Set<IEmbeddableCartridge> selectedCartridges;
public EmbedCartridgeWizardPageModel(ApplicationWizardModel wizardModel) {
this.wizardModel = wizardModel;
}
- public void loadConfiguredEmbeddedCartridges() throws OpenShiftException, SocketTimeoutException {
- selectedCartridges = new ArrayList<IEmbeddableCartridge>();
+ private void loadEmbeddedCartridges() throws OpenShiftException, SocketTimeoutException {
+ selectedCartridges = new HashSet<IEmbeddableCartridge>();
IApplication application = wizardModel.getApplication();
if (application == null
|| application.getEmbeddedCartridges() == null) {
@@ -75,9 +71,10 @@
return embeddedCartridges;
}
- public List<IEmbeddableCartridge> getSelectedEmbeddableCartridges() throws OpenShiftException, SocketTimeoutException {
+ public Set<IEmbeddableCartridge> getSelectedEmbeddableCartridges()
+ throws OpenShiftException, SocketTimeoutException {
if (selectedCartridges == null) {
- loadConfiguredEmbeddedCartridges();
+ loadEmbeddedCartridges();
}
return selectedCartridges;
}
@@ -90,76 +87,44 @@
return wizardModel.getApplication();
}
- public IApplication createJenkinsApplication(String name, IProgressMonitor monitor) throws OpenShiftException, SocketTimeoutException {
- return wizardModel.createApplication(name, ICartridge.JENKINS_14, ApplicationScale.NO_SCALE, IGearProfile.SMALL, monitor);
+ @Override
+ public void selectEmbeddedCartridges(IEmbeddableCartridge cartridge) throws OpenShiftException,
+ SocketTimeoutException {
+ getSelectedEmbeddableCartridges().add(cartridge);
}
-
+
+ @Override
+ public void unselectEmbeddedCartridges(IEmbeddableCartridge cartridge) throws OpenShiftException,
+ SocketTimeoutException {
+ getSelectedEmbeddableCartridges().remove(cartridge);
+ }
+
/**
* Embeds/removes the cartridges that were added/removed in this wizard
* page.
*
* @return the cartridges that were added (embedded).
* @throws OpenShiftException
- * @throws SocketTimeoutException
+ * @throws SocketTimeoutException
*/
public List<IEmbeddedCartridge> embedCartridges() throws OpenShiftException, SocketTimeoutException {
- if (selectedCartridges == null) {
- return Collections.emptyList();
- }
- List<IEmbeddableCartridge> cartridgesToAdd = new ArrayList<IEmbeddableCartridge>();
- List<IEmbeddableCartridge> cartridgesToRemove = new ArrayList<IEmbeddableCartridge>();
- computeAdditionsAndRemovals(cartridgesToAdd, cartridgesToRemove, selectedCartridges);
- final List<IEmbeddedCartridge> addedCartridges = addEmbeddedCartridges(cartridgesToAdd);
- removeEmbeddedCartridges(cartridgesToRemove);
- return addedCartridges;
+ return new EmbedCartridgesOperation(getApplication())
+ .execute(new ArrayList<IEmbeddableCartridge>(selectedCartridges), null);
}
- private void removeEmbeddedCartridges(List<IEmbeddableCartridge> cartridgesToRemove) throws OpenShiftException, SocketTimeoutException {
- if (cartridgesToRemove.isEmpty()) {
- return;
- }
- //Collections.sort(removedCartridges, new CartridgeComparator());
- for(IEmbeddableCartridge cartridgeToRemove : cartridgesToRemove) {
- final IEmbeddedCartridge embeddedCartridge = getApplication().getEmbeddedCartridge(cartridgeToRemove);
- if(embeddedCartridge != null) {
- embeddedCartridge.destroy();
- }
- }
+ @Override
+ public boolean hasApplicationOfType(ICartridge cartridge) throws SocketTimeoutException, OpenShiftException {
+ return wizardModel.getUser().hasApplicationOfType(cartridge);
}
- private List<IEmbeddedCartridge> addEmbeddedCartridges(List<IEmbeddableCartridge> cartridgesToAdd) throws OpenShiftException, SocketTimeoutException {
- if (cartridgesToAdd.isEmpty()) {
- return Collections.emptyList();
- }
- //Collections.sort(addedCartridges, new CartridgeComparator());
- return getApplication().addEmbeddableCartridges(cartridgesToAdd);
+ public IApplication createJenkinsApplication(String name, IProgressMonitor monitor) throws OpenShiftException {
+ IApplication application =
+ new CreateApplicationOperation(wizardModel.getUser()).execute(
+ name,
+ ICartridge.JENKINS_14,
+ ApplicationScale.NO_SCALE,
+ IGearProfile.SMALL,
+ monitor);
+ return application;
}
-
- private void computeAdditionsAndRemovals(List<IEmbeddableCartridge> addedCartridges,
- List<IEmbeddableCartridge> removedCartridges, List<IEmbeddableCartridge> selectedCartridges)
- throws OpenShiftException, SocketTimeoutException {
- ListDiff listDiff = Diffs.computeListDiff(getApplication().getEmbeddedCartridges(), selectedCartridges);
- for (ListDiffEntry entry : listDiff.getDifferences()) {
- if (entry.isAddition()) {
- addedCartridges.add((IEmbeddableCartridge) entry.getElement());
- } else {
- removedCartridges.add((IEmbeddableCartridge) entry.getElement());
- }
- }
- }
-
- private static class CartridgeComparator implements Comparator<IEmbeddableCartridge> {
-
- @Override
- public int compare(IEmbeddableCartridge thisCartridge, IEmbeddableCartridge thatCartridge) {
- // mysql has to be added/removed before phpmyadmin
- if (thisCartridge.equals(IEmbeddableCartridge.MYSQL_51)) {
- return -1;
- } else if (thatCartridge.equals(IEmbeddableCartridge.MYSQL_51)) {
- return 1;
- }
- return 0;
- }
- }
-
}
Deleted: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbeddedCartridgeWizardStrategy.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbeddedCartridgeWizardStrategy.java 2012-05-11 14:46:44 UTC (rev 40952)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/EmbeddedCartridgeWizardStrategy.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -1,283 +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.net.SocketTimeoutException;
-
-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.Dialog;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.wizard.IWizardContainer;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.jboss.tools.common.ui.WizardUtils;
-import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
-import org.jboss.tools.openshift.express.internal.ui.utils.StringUtils;
-
-import com.openshift.client.IApplication;
-import com.openshift.client.ICartridge;
-import com.openshift.client.IEmbeddableCartridge;
-import com.openshift.client.OpenShiftException;
-
-/**
- * A UI strategy that is able to add and remove embedded cartridges while
- * fullfilling requirements and resolving conflicts (ex. mutual exclusivity
- * etc.)
- *
- * @author Andre Dietisheim
- */
-public class EmbeddedCartridgeWizardStrategy {
-
- private CheckboxTableViewer viewer;
- private ApplicationConfigurationWizardPageModel pageModel;
- private IWizardPage wizardPage;
-
- public EmbeddedCartridgeWizardStrategy(CheckboxTableViewer viewer, IWizardPage wizardPage,
- ApplicationConfigurationWizardPageModel pageModel) {
- this.viewer = viewer;
- this.wizardPage = wizardPage;
- this.pageModel = pageModel;
- }
-
- public void addCartridge(IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException {
- if (IEmbeddableCartridge.PHPMYADMIN_34.equals(cartridge)) {
- addPhpMyAdmin();
- } else if (IEmbeddableCartridge.JENKINS_14.equals(cartridge)) {
- addJenkins(cartridge);
- } else if (IEmbeddableCartridge.MYSQL_51.equals(cartridge)) {
- addMySql();
- } else if (IEmbeddableCartridge.POSTGRESQL_84.equals(cartridge)) {
- addPostgreSql();
- } else if (IEmbeddableCartridge.ROCKMONGO_11.equals(cartridge)) {
- addRockMongo();
- } else if (IEmbeddableCartridge._10GEN_MMS_AGENT_01.equals(cartridge)) {
- add10gen();
- } else {
- pageModel.selectEmbeddedCartridges(cartridge);
- }
- }
-
- public void removeCartridge(IEmbeddableCartridge cartridge) throws OpenShiftException {
- if (IEmbeddableCartridge.MYSQL_51.equals(cartridge)) {
- removeMySQL();
- } else if (IEmbeddableCartridge.MONGODB_20.equals(cartridge)) {
- removeMongoDb();
- } else {
- pageModel.unselectEmbeddedCartridges(cartridge);
- }
- }
-
- private void addJenkins(final IEmbeddableCartridge cartridge) throws OpenShiftException,
- SocketTimeoutException {
- if (pageModel.hasApplicationOfType(ICartridge.JENKINS_14)) {
- pageModel.getSelectedEmbeddableCartridges().add(cartridge);
- } else {
- final JenkinsApplicationDialog dialog = new JenkinsApplicationDialog(getShell());
- if (dialog.open() == Dialog.OK) {
- createJenkinsApplication(cartridge, dialog.getValue());
- } else {
- viewer.setChecked(cartridge, false);
- }
- }
- }
-
- private void createJenkinsApplication(final IEmbeddableCartridge cartridge, final String name) {
- try {
- WizardUtils.runInWizard(new Job(NLS.bind("Creating jenkins application \"{0}\"...", name)) {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- try {
- IApplication jenkinsApplication = pageModel.createJenkinsApplication(name, monitor);
- pageModel.getSelectedEmbeddableCartridges().add(cartridge);
- openLogDialog(jenkinsApplication);
- return Status.OK_STATUS;
- } catch (Exception e) {
- getShell().getDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- viewer.setChecked(cartridge, false);
- }
- });
- return OpenShiftUIActivator.createErrorStatus("Could not load embeddable cartridges", e);
- }
- }
-
- }, getContainer());
- } catch (Exception e) {
- // ignore
- }
- }
-
- private void addPhpMyAdmin() throws OpenShiftException {
- if (!viewer.getChecked(IEmbeddableCartridge.MYSQL_51)) {
- if (MessageDialog.openQuestion(getShell(), "Embed phpMyAdmin Cartridge",
- "To embed phpMyAdmin, you'd also have to embed MySQL. \n\nAlso embed MySQL?")) {
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
- viewer.setChecked(IEmbeddableCartridge.MYSQL_51, true);
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
- } else {
- viewer.setChecked(IEmbeddableCartridge.MYSQL_51, false);
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
- viewer.setChecked(IEmbeddableCartridge.PHPMYADMIN_34, false);
- }
- } else {
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
- }
- }
-
- private void addMySql()
- throws OpenShiftException, SocketTimeoutException {
- if (viewer.getChecked(IEmbeddableCartridge.POSTGRESQL_84)) {
- if (MessageDialog
- .openQuestion(getShell(), "Remove PostgreSQL Cartridge",
- "MySQL and PostgreSQL are mutually exclusive. To embed MySQL, you have to remove PostgreSQL. \n\nRemove PostgreSQL?")) {
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.POSTGRESQL_84);
- viewer.setChecked(IEmbeddableCartridge.POSTGRESQL_84, false);
- } else {
- viewer.setChecked(IEmbeddableCartridge.MYSQL_51, false);
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
- }
- } else {
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
- }
- }
-
- private void addPostgreSql()
- throws OpenShiftException, SocketTimeoutException {
- if (viewer.getChecked(IEmbeddableCartridge.MYSQL_51)) {
- if (MessageDialog
- .openQuestion(getShell(), "Remove MySQL Cartridge",
- "MySQL and PostgreSQL are mutually exclusive. To embed PostgreSQL, you have to remove MySQL. \n\nRemove MySQL?")) {
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.POSTGRESQL_84);
- viewer.setChecked(IEmbeddableCartridge.MYSQL_51, false);
- } else {
- viewer.setChecked(IEmbeddableCartridge.POSTGRESQL_84, false);
- }
- } else {
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.POSTGRESQL_84);
- }
- }
-
- private void removeMySQL() throws OpenShiftException {
- if (viewer.getChecked(IEmbeddableCartridge.PHPMYADMIN_34)) {
- if (MessageDialog.openQuestion(getShell(), "Remove phpmyadmin cartridge",
- "If you remove the mysql cartridge, you'd also have to remove phpmyadmin.")) {
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
- viewer.setChecked(IEmbeddableCartridge.PHPMYADMIN_34, false);
- } else {
- viewer.setChecked(IEmbeddableCartridge.MYSQL_51, true);
- }
- } else {
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
- }
- }
-
- private void addRockMongo() throws OpenShiftException {
- if (!viewer.getChecked(IEmbeddableCartridge.MONGODB_20)) {
- if (MessageDialog.openQuestion(getShell(), "Embed MongoDB Cartridge",
- "To embed RockMongo, you'd also have to embed MongoDB. \n\nAlso embed MongoDB?")) {
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.MONGODB_20);
- viewer.setChecked(IEmbeddableCartridge.MONGODB_20, true);
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.ROCKMONGO_11);
- } else {
- viewer.setChecked(IEmbeddableCartridge.MONGODB_20, false);
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MONGODB_20);
- viewer.setChecked(IEmbeddableCartridge.ROCKMONGO_11, false);
- }
- } else {
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
- }
- }
-
- private void removeMongoDb() throws OpenShiftException {
- if (viewer.getChecked(IEmbeddableCartridge.ROCKMONGO_11)) {
- if (MessageDialog.openQuestion(getShell(), "Remove MongoDB cartridge",
- "If you remove the MongoDB cartridge, you'd also have to remove RockMongo.")) {
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.ROCKMONGO_11);
- viewer.setChecked(IEmbeddableCartridge.ROCKMONGO_11, false);
- } else {
- viewer.setChecked(IEmbeddableCartridge.MONGODB_20, true);
- }
- } else {
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MONGODB_20);
- }
- }
-
- private void add10gen() throws OpenShiftException {
- if (!viewer.getChecked(IEmbeddableCartridge.MONGODB_20)) {
- if (MessageDialog.openQuestion(getShell(), "Embed 10gen Cartridge",
- "To embed 10gen cartridge, you'd also have to embed MongoDB. \n\nAlso embed MongoDB?")) {
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.MONGODB_20);
- viewer.setChecked(IEmbeddableCartridge.MONGODB_20, true);
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge._10GEN_MMS_AGENT_01);
- } else {
- viewer.setChecked(IEmbeddableCartridge.MONGODB_20, false);
- pageModel.unselectEmbeddedCartridges(IEmbeddableCartridge.MYSQL_51);
- viewer.setChecked(IEmbeddableCartridge._10GEN_MMS_AGENT_01, false);
- }
- } else {
- pageModel.selectEmbeddedCartridges(IEmbeddableCartridge.PHPMYADMIN_34);
- }
- }
-
-
- private Shell getShell() {
- return viewer.getControl().getShell();
- }
-
- private IWizardContainer getContainer() {
- return wizardPage.getWizard().getContainer();
- }
-
- private void openLogDialog(final IApplication application) {
- getShell().getDisplay().syncExec(new Runnable() {
-
- @Override
- public void run() {
- new CreationLogDialog(getShell(), application).open();
- }
- });
- }
-
- private static class JenkinsApplicationDialog extends InputDialog {
-
- public JenkinsApplicationDialog(Shell shell) {
- super(
- shell,
- "New Jenkins application",
- "To embed Jenkins into your application, you first have to create a separate Jenkins application. "
- + "Please provide a name for this new Jenkins application (lower-case letters and digits only):"
- , null, new JenkinsNameValidator());
- }
-
- private static class JenkinsNameValidator implements IInputValidator {
-
- @Override
- public String isValid(String input) {
- if (StringUtils.isEmpty(input)) {
- return "You have to provide a name for the jenkins application";
- }
-
- if (!StringUtils.isAlphaNumeric(input)) {
- return "The name may only contain lower-case letters and digits.";
- }
- return null;
- }
- }
- }
-}
Added: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/IEmbedCartridgesWizardPageModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/IEmbedCartridgesWizardPageModel.java (rev 0)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/IEmbedCartridgesWizardPageModel.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2012 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.net.SocketTimeoutException;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import com.openshift.client.IApplication;
+import com.openshift.client.ICartridge;
+import com.openshift.client.IEmbeddableCartridge;
+import com.openshift.client.OpenShiftException;
+
+/**
+ * @author Andre Dietisheim
+ */
+public interface IEmbedCartridgesWizardPageModel {
+
+ public Set<IEmbeddableCartridge> getSelectedEmbeddableCartridges() throws OpenShiftException, SocketTimeoutException;
+
+ public void selectEmbeddedCartridges(IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException;
+
+ public void unselectEmbeddedCartridges(IEmbeddableCartridge cartridge) throws OpenShiftException, SocketTimeoutException;
+
+ public boolean hasApplicationOfType(ICartridge cartridge) throws SocketTimeoutException, OpenShiftException;
+
+ public IApplication createJenkinsApplication(String name, IProgressMonitor monitor) throws OpenShiftException;
+}
\ No newline at end of file
Property changes on: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/IEmbedCartridgesWizardPageModel.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizard.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizard.java 2012-05-11 14:46:44 UTC (rev 40952)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizard.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -38,6 +38,7 @@
import org.jboss.tools.common.ui.DelegatingProgressMonitor;
import org.jboss.tools.common.ui.JobUtils;
import org.jboss.tools.common.ui.WizardUtils;
+import org.jboss.tools.openshift.express.internal.core.EmbedCartridgesOperation;
import org.jboss.tools.openshift.express.internal.core.console.UserDelegate;
import org.jboss.tools.openshift.express.internal.ui.ImportFailedException;
import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
@@ -56,17 +57,19 @@
public abstract class OpenShiftExpressApplicationWizard extends Wizard implements IImportWizard, INewWizard {
private final boolean skipCredentialsPage;
-
+
private final OpenShiftExpressApplicationWizardModel wizardModel;
OpenShiftExpressApplicationWizard(final boolean useExistingApplication, final String wizardTitle) {
this(null, null, null, useExistingApplication, wizardTitle);
}
-
- OpenShiftExpressApplicationWizard(UserDelegate user, IProject project, IApplication application, boolean useExistingApplication, String wizardTitle) {
+
+ OpenShiftExpressApplicationWizard(UserDelegate user, IProject project, IApplication application,
+ boolean useExistingApplication, String wizardTitle) {
setWindowTitle(wizardTitle);
setNeedsProgressMonitor(true);
- this.wizardModel = new OpenShiftExpressApplicationWizardModel(user, project, application, useExistingApplication);
+ this.wizardModel = new OpenShiftExpressApplicationWizardModel(user, project, application,
+ useExistingApplication);
this.skipCredentialsPage = (user != null);
}
@@ -135,7 +138,7 @@
public boolean performFinish() {
boolean success = getWizardModel().isUseExistingApplication();
if (!success) {
- if(createApplication()) {
+ if (createApplication()) {
success = addRemoveCartridges(
getWizardModel().getApplication(), getWizardModel().getSelectedEmbeddableCartridges());
}
@@ -146,7 +149,7 @@
wizardModel.addUserToModel();
return success;
}
-
+
private boolean importProject() {
try {
final DelegatingProgressMonitor delegatingMonitor = new DelegatingProgressMonitor();
@@ -174,7 +177,8 @@
return Status.OK_STATUS;
} catch (OpenShiftEndpointException e) {
// TODO: refresh user
- return OpenShiftUIActivator.createErrorStatus("Could not create application \"{0}\": {1}",
+ return OpenShiftUIActivator.createErrorStatus(
+ "Could not create application \"{0}\": {1}",
e, applicationName, e.getRestResponseMessages());
} catch (OpenShiftException e) {
// TODO: refresh user
@@ -193,7 +197,7 @@
private boolean addRemoveCartridges(final IApplication application,
final Set<IEmbeddableCartridge> selectedCartridges) {
try {
- final String applicationName = getWizardModel().getApplication().getName();
+ final String applicationName = application.getName();
IStatus status = WizardUtils.runInWizard(
new Job(NLS.bind("Adding selected embedded cartridges for application {0}...", applicationName)) {
@@ -201,15 +205,17 @@
protected IStatus run(IProgressMonitor monitor) {
try {
if (selectedCartridges != null && !selectedCartridges.isEmpty()) {
- List<IEmbeddableCartridge> embeddableCartridges = new ArrayList<IEmbeddableCartridge>();
- embeddableCartridges.addAll(selectedCartridges);
- final List<IEmbeddedCartridge> embeddedCartridges = application.addEmbeddableCartridges(embeddableCartridges);
+ final List<IEmbeddedCartridge> embeddedCartridges =
+ new EmbedCartridgesOperation(application).execute(
+ new ArrayList<IEmbeddableCartridge>(selectedCartridges)
+ , monitor);
openCreationLogDialog(embeddedCartridges);
}
} catch (OpenShiftEndpointException e) {
// TODO: refresh user
return OpenShiftUIActivator.createErrorStatus(NLS.bind(
- "Could not embed cartridges to application {0}: {1}", applicationName, e.getRestResponseMessages()));
+ "Could not embed cartridges to application {0}: {1}", applicationName,
+ e.getRestResponseMessages()));
} catch (OpenShiftException e) {
return OpenShiftUIActivator.createErrorStatus(NLS.bind(
"Could not embed cartridges to application {0}", getWizardModel()
@@ -243,7 +249,8 @@
}
/**
- * A workspace job that will create a new project or enable the selected project to be used with OpenShift.
+ * A workspace job that will create a new project or enable the selected
+ * project to be used with OpenShift.
*/
class ImportJob extends WorkspaceJob {
@@ -263,11 +270,12 @@
wizardModel.importProject(delegatingMonitor);
} else if (!wizardModel.isGitSharedProject()) {
if (!askForConfirmation(
- NLS.bind("OpenShift application \"{0}\" will be enabled on project \"{1}\" by "
- + "copying OpenShift configuration and enabling Git for the project.\n"
- + "This cannot be undone.\n"
- + "Furthermore publishing to your OpenShift app will eventually override existing content.\n"
- + "\nDo you wish to continue ?",
+ NLS.bind(
+ "OpenShift application \"{0}\" will be enabled on project \"{1}\" by "
+ + "copying OpenShift configuration and enabling Git for the project.\n"
+ + "This cannot be undone.\n"
+ + "Furthermore publishing to your OpenShift app will eventually override existing content.\n"
+ + "\nDo you wish to continue ?",
wizardModel.getApplicationName(), wizardModel.getProjectName()),
wizardModel.getApplicationName())) {
return Status.CANCEL_STATUS;
@@ -275,11 +283,12 @@
getWizardModel().configureUnsharedProject(delegatingMonitor);
} else {
if (!askForConfirmation(
- NLS.bind("OpenShift application \"{0}\" will be enabled on project \"{1}\" by "
- + "copying OpenShift configuration and enabling Git for the project.\n"
- + "This cannot be undone.\n"
- + "Furthermore publishing to your OpenShift app will eventually override existing content.\n"
- + "\nDo you wish to continue ?",
+ NLS.bind(
+ "OpenShift application \"{0}\" will be enabled on project \"{1}\" by "
+ + "copying OpenShift configuration and enabling Git for the project.\n"
+ + "This cannot be undone.\n"
+ + "Furthermore publishing to your OpenShift app will eventually override existing content.\n"
+ + "\nDo you wish to continue ?",
wizardModel.getApplicationName(), wizardModel.getProjectName()),
wizardModel.getApplicationName())) {
return Status.CANCEL_STATUS;
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizardModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizardModel.java 2012-05-11 14:46:44 UTC (rev 40952)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizardModel.java 2012-05-11 15:08:22 UTC (rev 40953)
@@ -9,27 +9,21 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.FutureTask;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osgi.util.NLS;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IServerType;
import org.eclipse.wst.server.core.ServerCore;
import org.jboss.tools.common.ui.databinding.ObservableUIPojo;
import org.jboss.tools.openshift.egit.core.EGitUtils;
+import org.jboss.tools.openshift.express.internal.core.CreateApplicationOperation;
import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
import org.jboss.tools.openshift.express.internal.core.console.UserDelegate;
import org.jboss.tools.openshift.express.internal.core.console.UserModel;
-import org.jboss.tools.openshift.express.internal.ui.messages.OpenShiftExpressUIMessages;
-import org.jboss.tools.openshift.express.internal.ui.utils.Logger;
import org.jboss.tools.openshift.express.internal.ui.wizard.appimport.ConfigureGitSharedProject;
import org.jboss.tools.openshift.express.internal.ui.wizard.appimport.ConfigureUnsharedProject;
import org.jboss.tools.openshift.express.internal.ui.wizard.appimport.ImportNewProject;
@@ -47,14 +41,14 @@
protected HashMap<String, Object> dataModel = new HashMap<String, Object>();
- private static final int APP_CREATION_TIMEOUT = 180;
private static final String KEY_SELECTED_EMBEDDABLE_CARTRIDGES = "selectedEmbeddableCartridges";
public OpenShiftExpressApplicationWizardModel(UserDelegate user) {
this(user, null, null, false);
}
- public OpenShiftExpressApplicationWizardModel(UserDelegate user, IProject project, IApplication application, boolean useExistingApplication) {
+ public OpenShiftExpressApplicationWizardModel(UserDelegate user, IProject project, IApplication application,
+ boolean useExistingApplication) {
// default value(s)
setUser(user);
setProject(project);
@@ -92,12 +86,12 @@
addSettingsFiles(importedProjects);
createServerAdapter(monitor, importedProjects);
}
-
+
private void addSettingsFiles(List<IProject> imported) {
Iterator<IProject> i = imported.iterator();
- while(i.hasNext()) {
+ while (i.hasNext()) {
IProject p = i.next();
- if( p.getFolder(".git").exists()) {
+ if (p.getFolder(".git").exists()) {
// This is our project
IApplication app = getApplication();
IProject project = p;
@@ -108,7 +102,7 @@
}
}
}
-
+
/**
* Enables the user chosen, unshared project to be used on the chosen
* OpenShift application. Clones the application git repository, copies the
@@ -189,13 +183,13 @@
private void createServerAdapter(IProgressMonitor monitor, List<IProject> importedProjects)
throws OpenShiftException {
Assert.isTrue(importedProjects.size() > 0);
- if (isCreateServerAdapter()) {
+ if (isCreateServerAdapter()) {
Assert.isTrue(importedProjects.size() > 0);
IProject project = importedProjects.get(0);
new ServerAdapterFactory().create(project, this, monitor);
}
}
-
+
@Override
public File getRepositoryFile() {
String repositoryPath = getRepositoryPath();
@@ -231,7 +225,7 @@
setApplicationName(application);
setApplicationScaling(application);
setApplicationGearProfile(application);
-
+
}
@Override
@@ -300,7 +294,7 @@
@Override
public IProject getProject() {
String projectName = getProjectName();
- if(projectName == null || projectName.isEmpty()) {
+ if (projectName == null || projectName.isEmpty()) {
return null;
}
return ResourcesPlugin.getWorkspace().getRoot().getProject(getProjectName());
@@ -369,68 +363,24 @@
@Override
public ApplicationScale setApplicationScale(final ApplicationScale scale) {
- return (ApplicationScale) setProperty(APPLICATION_SCALE, scale);
+ return (ApplicationScale) setProperty(APPLICATION_SCALE, scale);
}
protected void setApplicationScaling(IApplication application) {
- if(application != null) {
+ if (application != null) {
setApplicationScale(application.getApplicationScale());
}
}
- private void waitForAccessible(IApplication application, IProgressMonitor monitor)
- throws OpenShiftApplicationNotAvailableException, OpenShiftException {
- // monitor.subTask("waiting for application to become accessible...");
- if (!application.waitForAccessible(APP_CREATION_TIMEOUT * 1000)) {
- throw new OpenShiftApplicationNotAvailableException(NLS.bind(
- OpenShiftExpressUIMessages.HOSTNAME_NOT_ANSWERING, application.getApplicationUrl()));
- }
- }
-
- protected IApplication createApplication(final String name, final ICartridge cartridge, final ApplicationScale scale, final IGearProfile gearProfile, final IProgressMonitor monitor)
- throws OpenShiftApplicationNotAvailableException, OpenShiftException {
- final UserDelegate user = getUser();
- if (user == null) {
- throw new OpenShiftException("Could not create application, have no valid user credentials");
- }
- ExecutorService executor = Executors.newFixedThreadPool(1);
- try {
- FutureTask<IApplication> future = new FutureTask<IApplication>(
- new Callable<IApplication>() {
- @Override
- public IApplication call() throws Exception {
- monitor.setTaskName("Creating application \"" + name + "\"...");
- Logger.debug("creating application...");
- final IApplication application
- = user.createApplication(name, cartridge, scale, gearProfile);
- monitor.beginTask("Waiting for application to be reachable...",
- IProgressMonitor.UNKNOWN);
- Logger.debug("Waiting for application to be reachable...");
- waitForAccessible(application, monitor);
- return application;
- }
- });
- executor.execute(future);
- while (!future.isDone()) {
- if(monitor.isCanceled()) {
- throw new OpenShiftException("Operation was cancelled by user.");
- }
- Thread.sleep(1000);
- }
- final IApplication application = future.get();
- return application;
- } catch (Exception e) { // InterruptedException and ExecutionException
- Throwable cause = e.getCause() !=null ?e.getCause() : e;
- Logger.error("Failed to create application", cause);
- throw new OpenShiftException("Failed to create application: {0}", cause.getMessage());
- } finally {
- executor.shutdown();
- }
- }
-
public void createApplication(IProgressMonitor monitor) throws OpenShiftApplicationNotAvailableException,
OpenShiftException {
- IApplication application = createApplication(getApplicationName(), getApplicationCartridge(), getApplicationScale(), getApplicationGearProfile(), monitor);
+ IApplication application =
+ new CreateApplicationOperation(getUser()).execute(
+ getApplicationName(),
+ getApplicationCartridge(),
+ getApplicationScale(),
+ getApplicationGearProfile(),
+ monitor);
setApplication(application);
}
@@ -469,7 +419,7 @@
public IGearProfile getApplicationGearProfile() {
return (IGearProfile) getProperty(APPLICATION_GEAR_PROFILE);
}
-
+
@Override
public IGearProfile setApplicationGearProfile(IGearProfile gearProfile) {
return (IGearProfile) setProperty(APPLICATION_GEAR_PROFILE, gearProfile);
13 years, 11 months
JBoss Tools SVN: r40952 - workspace/snjeza/jbossas7-examples.
by jbosstools-commits@lists.jboss.org
Author: snjeza
Date: 2012-05-11 10:46:44 -0400 (Fri, 11 May 2012)
New Revision: 40952
Modified:
workspace/snjeza/jbossas7-examples/login.zip
Log:
JBIDE-11843 - Update jboss-as-maven plugin version in jboss-as-login quickstart
Modified: workspace/snjeza/jbossas7-examples/login.zip
===================================================================
(Binary files differ)
13 years, 11 months
JBoss Tools SVN: r40951 - trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke.
by jbosstools-commits@lists.jboss.org
Author: jgargula
Date: 2012-05-11 10:37:34 -0400 (Fri, 11 May 2012)
New Revision: 40951
Modified:
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java
Log:
Changed deleting objects (clicking menu instead of unstable simulating pressing delete key)
Modified: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java 2012-05-11 14:29:09 UTC (rev 40950)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java 2012-05-11 14:37:34 UTC (rev 40951)
@@ -11,7 +11,7 @@
package org.jboss.tools.drools.ui.bot.test.smoke;
-import java.awt.event.KeyEvent;
+//import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
@@ -41,7 +41,7 @@
import org.jboss.tools.ui.bot.ext.SWTUtilExt;
import org.jboss.tools.ui.bot.ext.Timing;
import org.jboss.tools.ui.bot.ext.gen.ActionItem;
-import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+//import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
import org.jboss.tools.ui.bot.ext.types.IDELabel;
import org.jboss.tools.ui.bot.ext.types.ViewType;
import org.junit.Test;
@@ -175,12 +175,14 @@
" Name=" + name, id.equals("1") && name.equals("Start"));
// Delete each component
gefEditor.activateTool("Select");
+ bot.sleep(Timing.time1S());
for (int toolIndex = 0;toolIndex < tools.length;toolIndex++){
gefEditor.click(xspacing * (toolIndex % 3) + xoffset + 10,
yspacing * (toolIndex / 3) + yoffset + 10);
gefEditor.setFocus();
- bot.sleep(Timing.time1S());
- KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
+ //bot.sleep(Timing.time1S());
+ //KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
+ bot.menu(IDELabel.Menu.EDIT).menu(IDELabel.Menu.DELETE).click();
}
// Restore maximized editor
bot.menu(IDELabel.Menu.WINDOW)
@@ -666,14 +668,16 @@
errorDescription = checkNodeName(nodesNode, NODES_NODE_NAME);
if (errorDescription == null) {
List<Node> nodes = removeTextNodes(nodesNode.getChildNodes());
+ bot.sleep(Timing.time1S());
for (Node node : nodes){
NamedNodeMap attributes = node.getAttributes();
int xPos = Integer.parseInt(attributes.getNamedItem("x").getNodeValue());
int yPos = Integer.parseInt(attributes.getNamedItem("y").getNodeValue());
gefEditor.click(xPos + 3, yPos + 3);
- bot.sleep(Timing.time1S());
- KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
- bot.sleep(Timing.time1S());
+ //bot.sleep(Timing.time1S());
+ bot.menu(IDELabel.Menu.EDIT).menu(IDELabel.Menu.DELETE).click();
+ //KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
+ //bot.sleep(Timing.time1S());
}
}
} else {
@@ -708,8 +712,9 @@
final int OFFSET = 3;
gefEditor.click(x + OFFSET, y + OFFSET);
bot.sleep(Timing.time1S());
- KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
- bot.sleep(Timing.time1S());
+ bot.menu(IDELabel.Menu.EDIT).menu(IDELabel.Menu.DELETE).click();
+ //KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
+ //bot.sleep(Timing.time1S());
}
}
}
13 years, 11 months
JBoss Tools SVN: r40950 - trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext.
by jbosstools-commits@lists.jboss.org
Author: jgargula
Date: 2012-05-11 10:29:09 -0400 (Fri, 11 May 2012)
New Revision: 40950
Modified:
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTEclipseExt.java
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTUtilExt.java
Log:
Added support for finding menu matching regular expression.
Modified: trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTEclipseExt.java
===================================================================
--- trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTEclipseExt.java 2012-05-11 12:29:33 UTC (rev 40949)
+++ trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTEclipseExt.java 2012-05-11 14:29:09 UTC (rev 40950)
@@ -1244,7 +1244,9 @@
//System.out.println (treeItem.contextMenu("Run As").menu("2 Java Application").getText());
bot.sleep(Timing.time30S());
- treeItem.contextMenu("Run As").menu("2 Java Application").click();
+ //treeItem.contextMenu("Run As").menu("2 Java Application").click();
+ SWTUtilExt.menuWithRegex("(.*) Java Application", treeItem.contextMenu(IDELabel.Menu.RUN_AS)).click();
+
//runJavaApplication("helloworld_testclient","org.jboss.soa.esb.samples.quickstart.helloworld.test.SendJMSMessage"," ");
bot.sleep(Timing.time30S()); // This is needed to enable the test to run successfully to completion
Modified: trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTUtilExt.java
===================================================================
--- trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTUtilExt.java 2012-05-11 12:29:33 UTC (rev 40949)
+++ trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTUtilExt.java 2012-05-11 14:29:09 UTC (rev 40950)
@@ -10,6 +10,8 @@
******************************************************************************/
package org.jboss.tools.ui.bot.ext;
+import static org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable.syncExec;
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withRegex;
import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withTooltip;
import static org.junit.Assert.fail;
@@ -29,6 +31,7 @@
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
@@ -36,21 +39,24 @@
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.SWTBot;
import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.finders.MenuFinder;
import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
import org.eclipse.swtbot.swt.finder.results.Result;
+import org.eclipse.swtbot.swt.finder.results.WidgetResult;
import org.eclipse.swtbot.swt.finder.utils.SWTUtils;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.hamcrest.BaseMatcher;
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
import org.jboss.tools.ui.bot.ext.parts.SWTBotBrowserExt;
import org.jboss.tools.ui.bot.ext.types.IDELabel;
import org.jboss.tools.ui.bot.ext.types.JobLists;
import org.jboss.tools.ui.bot.ext.types.JobState;
import org.osgi.framework.Bundle;
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.hamcrest.Matcher;
/**
* SWTUtilExt is contains helper method for writing SWTBot tests, i.e. various delay methods
@@ -822,4 +828,29 @@
projectName;
}
+ /**
+ * Returns the first found menu which matches given regular expression.
+ *
+ * @param menuRegex Regular expression which is looking for in menu text.
+ * @param parentMenu Parent menu which is used for searching.
+ *
+ * @return Menu matching regular expression.
+ *
+ * @throws WidgetNotFoundException If no menu matches.
+ */
+ public static SWTBotMenu menuWithRegex(final String menuRegex, final SWTBotMenu parentMenu) throws WidgetNotFoundException {
+ final Matcher<? extends Widget> matcher = withRegex(menuRegex);
+ MenuItem menuItem = syncExec(new WidgetResult<MenuItem>() {
+ public MenuItem run() {
+ Menu bar = parentMenu.widget.getMenu();
+ Matcher<MenuItem> withRegex = withRegex(menuRegex);
+ List<MenuItem> menus = new MenuFinder().findMenus(bar, withRegex, true);
+ if (!menus.isEmpty())
+ return menus.get(0);
+ return null;
+ }
+ });
+ return new SWTBotMenu(menuItem, matcher);
+ }
+
}
\ No newline at end of file
13 years, 11 months
JBoss Tools SVN: r40949 - in trunk/bpel/tests/org.jboss.tools.bpel.ui.bot.test: src/org/jboss/tools/bpel/ui/bot/test/util and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: apodhrad
Date: 2012-05-11 08:29:33 -0400 (Fri, 11 May 2012)
New Revision: 40949
Modified:
trunk/bpel/tests/org.jboss.tools.bpel.ui.bot.test/org.jboss.tools.bpel.ui.bot.test.properties
trunk/bpel/tests/org.jboss.tools.bpel.ui.bot.test/src/org/jboss/tools/bpel/ui/bot/test/util/ResourceHelper.java
Log:
BPEL bot tests: setting the java version as default in org.jboss.tools.bpel.ui.bot.test.properties
Modified: trunk/bpel/tests/org.jboss.tools.bpel.ui.bot.test/org.jboss.tools.bpel.ui.bot.test.properties
===================================================================
--- trunk/bpel/tests/org.jboss.tools.bpel.ui.bot.test/org.jboss.tools.bpel.ui.bot.test.properties 2012-05-11 12:11:44 UTC (rev 40948)
+++ trunk/bpel/tests/org.jboss.tools.bpel.ui.bot.test/org.jboss.tools.bpel.ui.bot.test.properties 2012-05-11 12:29:33 UTC (rev 40949)
@@ -1,11 +1,11 @@
# SWTBotTest properties
# all properties are optional, all defined paths should exist
# <java version>,<jre/jdk home>
-JAVA=1.6,/opt/java/jdk1.6.0_30
+#JAVA=1.6,/opt/java/jdk1.6.0_30
#EAP|JBOSS_AS|EPP|SOA,<server version>,<jre version to run with>|default,<server home>
# note : when server is type of SOA, version is version of SOA (not the bundled EAP)
#SERVER=JBOSS_AS,5.0,1.6,/home/psrna/data/jboss/jboss/jboss-as
-SERVER=SOA,5.2,1.6,../../../requirements/target/jboss-soa-p-5/jboss-as
+SERVER=SOA,5.2,default,../../../requirements/target/jboss-soa-p-5/jboss-as
#SERVER=AS,5.1,1.6,/home/apodhrad/Software/jboss-5.1.0.GA
#<seam version>,<seam runtime home>
#SEAM=2.2,/home/psrna/data/jboss/soa-5.1.0.ER6-eds/seam
Modified: trunk/bpel/tests/org.jboss.tools.bpel.ui.bot.test/src/org/jboss/tools/bpel/ui/bot/test/util/ResourceHelper.java
===================================================================
--- trunk/bpel/tests/org.jboss.tools.bpel.ui.bot.test/src/org/jboss/tools/bpel/ui/bot/test/util/ResourceHelper.java 2012-05-11 12:11:44 UTC (rev 40948)
+++ trunk/bpel/tests/org.jboss.tools.bpel.ui.bot.test/src/org/jboss/tools/bpel/ui/bot/test/util/ResourceHelper.java 2012-05-11 12:29:33 UTC (rev 40949)
@@ -32,6 +32,7 @@
Thread.sleep(3000);
} catch (Exception e) {
+ e.printStackTrace();
throw new RuntimeException("Failed to import project: " + projectName, e.getCause());
}
}
13 years, 11 months
JBoss Tools SVN: r40948 - in branches/jbosstools-3.3.0.Beta3/maven/plugins/org.jboss.tools.maven.project.examples/src/org/jboss/tools/maven/project/examples: utils and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: fbricon
Date: 2012-05-11 08:11:44 -0400 (Fri, 11 May 2012)
New Revision: 40948
Modified:
branches/jbosstools-3.3.0.Beta3/maven/plugins/org.jboss.tools.maven.project.examples/src/org/jboss/tools/maven/project/examples/messages.properties
branches/jbosstools-3.3.0.Beta3/maven/plugins/org.jboss.tools.maven.project.examples/src/org/jboss/tools/maven/project/examples/utils/MavenArtifactHelper.java
Log:
JBIDE-11684 : check enterprise version of jboss spec using a version range (version containing redhat)
Modified: branches/jbosstools-3.3.0.Beta3/maven/plugins/org.jboss.tools.maven.project.examples/src/org/jboss/tools/maven/project/examples/messages.properties
===================================================================
--- branches/jbosstools-3.3.0.Beta3/maven/plugins/org.jboss.tools.maven.project.examples/src/org/jboss/tools/maven/project/examples/messages.properties 2012-05-11 10:17:09 UTC (rev 40947)
+++ branches/jbosstools-3.3.0.Beta3/maven/plugins/org.jboss.tools.maven.project.examples/src/org/jboss/tools/maven/project/examples/messages.properties 2012-05-11 12:11:44 UTC (rev 40948)
@@ -5,6 +5,6 @@
ArchetypeExamplesWizardFirstPage_ProjectName_Label=Project name
ArchetypeExamplesWizardFirstPage_Target_Runtime_Label=Target Runtime
ArchetypeExamplesWizardFirstPage_Title=Create a new Java EE project
-ArchetypeExamplesWizardFirstPage_Unresolved_Enterprise_Repo={0} cannot be found. This indicates you do not have access to a JBoss Enterprise Maven repository.\nThis can cause build problems. Follow this <a href\="http\://community.jboss.org/wiki/SettingUpTheJBossEnterpriseRepositories">link</a> for more details.
+ArchetypeExamplesWizardFirstPage_Unresolved_Enterprise_Repo=A *-redhat version of {0} cannot be found. This indicates you do not have access to a JBoss Enterprise Maven repository.\nThis can cause build problems. Follow this <a href\="http\://community.jboss.org/wiki/SettingUpTheJBossEnterpriseRepositories">link</a> for more details.
ArchetypeExamplesWizardFirstPage_Unresolved_WFK_Repo=The enterprise version of this project has a dependency on {0} which cannot be found. This indicates you do not have access to a JBoss WFK Maven repository or that repository is incomplete.\nThis can cause build problems. Follow this <a href\="http\://community.jboss.org/wiki/SettingUpTheJBossEnterpriseRepositories">link</a> for more details.
ArchetypeExamplesWizardFirstPage_Error_Package=Invalid package name
\ No newline at end of file
Modified: branches/jbosstools-3.3.0.Beta3/maven/plugins/org.jboss.tools.maven.project.examples/src/org/jboss/tools/maven/project/examples/utils/MavenArtifactHelper.java
===================================================================
--- branches/jbosstools-3.3.0.Beta3/maven/plugins/org.jboss.tools.maven.project.examples/src/org/jboss/tools/maven/project/examples/utils/MavenArtifactHelper.java 2012-05-11 10:17:09 UTC (rev 40947)
+++ branches/jbosstools-3.3.0.Beta3/maven/plugins/org.jboss.tools.maven.project.examples/src/org/jboss/tools/maven/project/examples/utils/MavenArtifactHelper.java 2012-05-11 12:11:44 UTC (rev 40948)
@@ -11,14 +11,18 @@
package org.jboss.tools.maven.project.examples.utils;
import java.util.ArrayList;
+import java.util.List;
import java.util.Set;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.repository.internal.MavenRepositorySystemSession;
+import org.codehaus.plexus.DefaultPlexusContainer;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.m2e.core.MavenPlugin;
import org.eclipse.m2e.core.embedder.IMaven;
@@ -27,18 +31,27 @@
import org.jboss.tools.maven.project.examples.Messages;
import org.jboss.tools.maven.project.examples.xpl.DependencyKey;
import org.jboss.tools.project.examples.model.ProjectExample;
+import org.sonatype.aether.RepositorySystem;
+import org.sonatype.aether.repository.LocalRepository;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.resolution.VersionRangeRequest;
+import org.sonatype.aether.resolution.VersionRangeResolutionException;
+import org.sonatype.aether.resolution.VersionRangeResult;
+import org.sonatype.aether.util.artifact.DefaultArtifact;
+import org.sonatype.aether.version.Version;
public class MavenArtifactHelper {
- private static final DependencyKey ENTERPRISE_JBOSS_SPEC = DependencyKey.fromPortableString("org.jboss.spec:jboss-javaee-web-6.0:pom:3.0.0.Beta1-redhat-1::"); //$NON-NLS-1$
+ private static final String JBOSS_SPEC = "org.jboss.spec:jboss-javaee-web-6.0"; //$NON-NLS-1$
+ private static final String COORDS = JBOSS_SPEC+":[0,)"; //$NON-NLS-1$
/**
* Checks if the EAP repository is available
*
- * @return true if org.jboss.spec:jboss-javaee-web-6.0:pom:3.0.0.Beta1-redhat-1 can be resolved
+ * @return true if org.jboss.spec:jboss-javaee-web-6.0:pom:*redhat* can be resolved
*/
public static boolean isEnterpriseRepositoryAvailable() {
- boolean isRepoAvailable = isArtifactAvailable(ENTERPRISE_JBOSS_SPEC); //$NON-NLS-1$
+ boolean isRepoAvailable = redHatArtifactExists(COORDS);
return isRepoAvailable;
}
@@ -74,7 +87,7 @@
if (!isEnterpriseRepositoryAvailable()) {
return new Status(IStatus.ERROR,
MavenProjectExamplesActivator.PLUGIN_ID,
- NLS.bind(Messages.ArchetypeExamplesWizardFirstPage_Unresolved_Enterprise_Repo, ENTERPRISE_JBOSS_SPEC));
+ NLS.bind(Messages.ArchetypeExamplesWizardFirstPage_Unresolved_Enterprise_Repo, JBOSS_SPEC));
}
if (project != null) {
Set<String> requirements = project.getEssentialEnterpriseDependencyGavs();
@@ -91,4 +104,47 @@
}
return Status.OK_STATUS;
}
+
+ private static boolean redHatArtifactExists(String coords) {
+ RepositorySystem system;
+ try {
+ system = new DefaultPlexusContainer()
+ .lookup(RepositorySystem.class);
+ } catch (Exception e) {
+ MavenProjectExamplesActivator.log(e);
+ return false;
+ }
+ MavenRepositorySystemSession session = new MavenRepositorySystemSession();
+ IMaven maven = MavenPlugin.getMaven();
+ String localRepoHome = maven.getLocalRepositoryPath();
+ LocalRepository localRepo = new LocalRepository(localRepoHome);
+ session.setLocalRepositoryManager(system.newLocalRepositoryManager(localRepo));
+
+ VersionRangeRequest rangeRequest = new VersionRangeRequest();
+ rangeRequest.setArtifact( new DefaultArtifact(coords));
+
+ List<ArtifactRepository> repos = new ArrayList<ArtifactRepository>();
+ try {
+ repos.addAll(maven.getArtifactRepositories(false));
+ } catch (CoreException e) {
+ MavenProjectExamplesActivator.log(e);
+ return false;
+ }
+ for (ArtifactRepository repo : repos) {
+ RemoteRepository remoteRepo = new RemoteRepository(repo.getId(), "default", repo.getUrl()); //$NON-NLS-1$
+ rangeRequest.addRepository(remoteRepo);
+ }
+ try {
+ VersionRangeResult result = system.resolveVersionRange( session, rangeRequest);
+ List<Version> versions = result.getVersions();
+ for (Version version:versions) {
+ if (version != null && version.toString().contains("redhat")) { //$NON-NLS-1$
+ return true;
+ }
+ }
+ } catch (VersionRangeResolutionException e) {
+ MavenProjectExamplesActivator.log(e);
+ }
+ return false;
+ }
}
13 years, 11 months
JBoss Tools SVN: r40947 - in trunk/requirements: jbossas-5.1.0.GA-riftsaw-2.3.0.Final and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: apodhrad
Date: 2012-05-11 06:17:09 -0400 (Fri, 11 May 2012)
New Revision: 40947
Added:
trunk/requirements/jbossas-5.1.0.GA-riftsaw-2.3.0.Final/
trunk/requirements/jbossas-5.1.0.GA-riftsaw-2.3.0.Final/buildRequirement.xml
Log:
Added new requirement jbossas-5.1.0.GA-riftsaw-2.3.0.Final
Added: trunk/requirements/jbossas-5.1.0.GA-riftsaw-2.3.0.Final/buildRequirement.xml
===================================================================
--- trunk/requirements/jbossas-5.1.0.GA-riftsaw-2.3.0.Final/buildRequirement.xml (rev 0)
+++ trunk/requirements/jbossas-5.1.0.GA-riftsaw-2.3.0.Final/buildRequirement.xml 2012-05-11 10:17:09 UTC (rev 40947)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+download required dependencies
+-jbossas
+-jbossesb
+-riftsaw
+
+unpack jbossas to location different from default
+install jbossesb
+install riftsaw
+
+-->
+<project name="projectroject" default="build.requirement">
+ <property file="build.properties" />
+
+ <target name="build.requirement" depends="unpack.requirement,install-jbossas,install-jbossesb,install-riftsaw" />
+ <target name="download.requirement" />
+ <target name="unpack.requirement" >
+ <ant dir="../jbossas-5.1.0.GA" antfile="../generic/build.xml" target="download.requirement" inheritall="true">
+ <property name="requirement" value="jbossas-5.1.0.GA"/>
+ </ant>
+ <ant dir="../jbossesb-4.10" antfile="../generic/build.xml" target="build.requirement" inheritall="true">
+ <property name="requirement" value="jbossesb-4.10"/>
+ </ant>
+ <ant dir="../riftsaw-2.3.0.Final" antfile="../generic/build.xml" target="build.requirement" inheritall="true">
+ <property name="requirement" value="riftsaw-2.3.0.Final"/>
+ </ant>
+ </target>
+ <target name="install-jbossas" >
+ <property file="../jbossas-5.1.0.GA/build.properties" />
+ <unzip src="${requirement.build.root}/../download/jbossas-5.1.0.GA/${jboss51.build.archive}" dest="${unzip.dest}" >
+ <mapper type="glob" from="jboss-5.1.0.GA/*" to="${jboss51.build.name}-riftsaw-2.3.0.Final/*"/>
+ </unzip>
+ </target>
+ <target name="install-jbossesb" >
+ <property file="../jbossesb-4.10/build.properties" prefix="jbossesb-4.10" />
+ <ant dir="${unzip.dest}/${jbossesb-4.10.build.archive.root}/install" target="deploy">
+ <property name="org.jboss.esb.server.home" value="${unzip.dest}/${jboss51.build.name}-riftsaw-2.3.0.Final" />
+ <property name="org.jboss.esb.server.config" value="default" />
+ </ant>
+ </target>
+ <target name="install-riftsaw" >
+ <property file="../riftsaw-2.3.0.Final/build.properties" prefix="riftsaw-2.3.0.Final" />
+ <ant dir="${unzip.dest}/${riftsaw-2.3.0.Final.build.archive.root}/install" target="deploy">
+ <property name="org.jboss.as.home" value="${unzip.dest}/${jboss51.build.name}-riftsaw-2.3.0.Final" />
+ <property name="org.jboss.as.config" value="default" />
+ <property name="org.jboss.esb.home" value="${unzip.dest}/${jbossesb.build.archive.root}" />
+ <property name="databasev" value="hsql" />
+ <property name="ws.version" value="3.4.0.GA" />
+
+ </ant>
+ </target>
+
+
+</project>
13 years, 11 months
JBoss Tools SVN: r40946 - in trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console: workbench and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: dgeraskov
Date: 2012-05-11 04:01:15 -0400 (Fri, 11 May 2012)
New Revision: 40946
Added:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/Messages.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/ProjectCompilerVersionChecker.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/messages.properties
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/ExecuteQueryAction.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/ConsoleConfigurationWorkbenchAdapter.java
Log:
https://issues.jboss.org/browse/JBIDE-11773
Warn user about the problem with JDK levels
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/ExecuteQueryAction.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/ExecuteQueryAction.java 2012-05-11 06:33:15 UTC (rev 40945)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/ExecuteQueryAction.java 2012-05-11 08:01:15 UTC (rev 40946)
@@ -31,6 +31,7 @@
import org.hibernate.eclipse.console.HibernateConsolePlugin;
import org.hibernate.eclipse.console.QueryEditor;
import org.hibernate.eclipse.console.utils.EclipseImages;
+import org.hibernate.eclipse.console.workbench.ProjectCompilerVersionChecker;
/**
* @author max
@@ -65,21 +66,23 @@
if (cfg != null) {
//keep states of ConsoleConfiguration and HibernateExtension synchronized
if (!(cfg.isSessionFactoryCreated() && cfg.getHibernateExtension().isSessionFactoryCreated())) {
- if (queryEditor.askUserForConfiguration(cfg.getName())) {
- if (!(cfg.hasConfiguration() && cfg.getHibernateExtension().hasConfiguration())) {
- try {
- cfg.build();
- } catch (HibernateException he) {
- HibernateConsolePlugin.getDefault().showError(
- HibernateConsolePlugin.getShell(),
- HibernateConsoleMessages.LoadConsoleCFGCompletionProposal_could_not_load_configuration +
- ' ' + cfg.getName(), he);
- }
+ if (ProjectCompilerVersionChecker.validateProjectComplianceLevel(cfg)){
+ if (queryEditor.askUserForConfiguration(cfg.getName())) {
+ if (!(cfg.hasConfiguration() && cfg.getHibernateExtension().hasConfiguration())) {
+ try {
+ cfg.build();
+ } catch (HibernateException he) {
+ HibernateConsolePlugin.getDefault().showError(
+ HibernateConsolePlugin.getShell(),
+ HibernateConsoleMessages.LoadConsoleCFGCompletionProposal_could_not_load_configuration +
+ ' ' + cfg.getName(), he);
+ }
+ }
+ if (cfg.hasConfiguration() && cfg.getHibernateExtension().hasConfiguration()) {
+ cfg.buildSessionFactory();
+ queryEditor.executeQuery(cfg);
+ }
}
- if (cfg.hasConfiguration() && cfg.getHibernateExtension().hasConfiguration()) {
- cfg.buildSessionFactory();
- queryEditor.executeQuery(cfg);
- }
}
} else {
queryEditor.executeQuery(cfg);
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/ConsoleConfigurationWorkbenchAdapter.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/ConsoleConfigurationWorkbenchAdapter.java 2012-05-11 06:33:15 UTC (rev 40945)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/ConsoleConfigurationWorkbenchAdapter.java 2012-05-11 08:01:15 UTC (rev 40946)
@@ -32,8 +32,11 @@
public class ConsoleConfigurationWorkbenchAdapter extends BasicWorkbenchAdapter {
- public Object[] getChildren(Object o) {
+ public Object[] getChildren(Object o) {
final ConsoleConfiguration ccfg = getConsoleConfiguration( o );
+ if (!ProjectCompilerVersionChecker.validateProjectComplianceLevel(ccfg)){
+ return new Object[0];
+ }
//String sfError = null;
if(!ccfg.hasConfiguration()) {
ccfg.build();
Added: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/Messages.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/Messages.java (rev 0)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/Messages.java 2012-05-11 08:01:15 UTC (rev 40946)
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2012 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.eclipse.console.workbench;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author Dmitry Geraskov (geraskov(a)gmail.com)
+ *
+ */
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.hibernate.eclipse.console.workbench.messages"; //$NON-NLS-1$
+ public static String ProjectCompilerVersionChecker_title;
+ public static String ProjectCompilerVersionChecker_message;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
Added: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/ProjectCompilerVersionChecker.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/ProjectCompilerVersionChecker.java (rev 0)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/ProjectCompilerVersionChecker.java 2012-05-11 08:01:15 UTC (rev 40946)
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2012 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.eclipse.console.workbench;
+
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Display;
+import org.hibernate.console.ConsoleConfiguration;
+import org.hibernate.eclipse.console.utils.ProjectUtils;
+
+/**
+ * @author Dmitry Geraskov (geraskov(a)gmail.com)
+ *
+ */
+@SuppressWarnings("restriction")
+public class ProjectCompilerVersionChecker {
+
+ /**
+ *
+ * @param ccfg
+ * @return false if Projects jdk version is bigger than Eclipse jdk version
+ */
+ public static boolean validateProjectComplianceLevel(final ConsoleConfiguration ccfg){
+ IJavaProject[] javaProjects = ProjectUtils.findJavaProjects(ccfg);
+ if (javaProjects.length > 0){
+ for (final IJavaProject iJavaProject : javaProjects) {
+ if (iJavaProject.exists()) {
+ String projectTarget = iJavaProject.getOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, true);
+ String eclipseCompilerVersion = System.getProperty("java.specification.version"); //$NON-NLS-1$
+ long projectJdkLevel = CompilerOptions.versionToJdkLevel(projectTarget);
+ long eclipseJdkLevel = CompilerOptions.versionToJdkLevel(eclipseCompilerVersion);
+ if (eclipseJdkLevel <= projectJdkLevel){
+ Display.getDefault().syncExec(new Runnable(){
+ @Override
+ public void run() {
+ MessageDialog.openWarning(null, Messages.ProjectCompilerVersionChecker_title,
+ NLS.bind(Messages.ProjectCompilerVersionChecker_message, iJavaProject.getElementName()));
+ }
+ });
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+ }
+}
Added: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/messages.properties
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/messages.properties (rev 0)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/workbench/messages.properties 2012-05-11 08:01:15 UTC (rev 40946)
@@ -0,0 +1,2 @@
+ProjectCompilerVersionChecker_title=Wrong Compiler Settings
+ProjectCompilerVersionChecker_message=Project ''{0}'' has higher compiler option than running Eclipse. Hibernate plugins unable to load its classes. Please decrease the compiler option or run the Eclipse with higher JDK level
13 years, 11 months
JBoss Tools SVN: r40945 - trunk/openshift/docs/reference/en-US.
by jbosstools-commits@lists.jboss.org
Author: irooskov(a)redhat.com
Date: 2012-05-11 02:33:15 -0400 (Fri, 11 May 2012)
New Revision: 40945
Modified:
trunk/openshift/docs/reference/en-US/Book_Info.xml
Log:
updated for brew
Modified: trunk/openshift/docs/reference/en-US/Book_Info.xml
===================================================================
--- trunk/openshift/docs/reference/en-US/Book_Info.xml 2012-05-11 06:32:49 UTC (rev 40944)
+++ trunk/openshift/docs/reference/en-US/Book_Info.xml 2012-05-11 06:33:15 UTC (rev 40945)
@@ -13,7 +13,7 @@
<edition>5.0.0</edition>
- <pubsnumber>7</pubsnumber>
+ <pubsnumber>8</pubsnumber>
<abstract>
<para>
13 years, 11 months
JBoss Tools SVN: r40944 - trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard.
by jbosstools-commits@lists.jboss.org
Author: xcoulon
Date: 2012-05-11 02:32:49 -0400 (Fri, 11 May 2012)
New Revision: 40944
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPage.java
Log:
Rejected - JBIDE-10305
The username should get selected when you click into the Username text field
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPage.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPage.java 2012-05-11 06:30:46 UTC (rev 40943)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPage.java 2012-05-11 06:32:49 UTC (rev 40944)
@@ -87,7 +87,6 @@
rhLoginText = new Text(container, SWT.BORDER);
GridDataFactory.fillDefaults()
.align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(rhLoginText);
- UIUtils.selectAllOnFocus(rhLoginText);
final IObservableValue rhLoginObservable =
BeanProperties.value(CredentialsWizardPageModel.PROPERTY_RHLOGIN).observe(pageModel);
dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(rhLoginText), rhLoginObservable);
@@ -99,7 +98,6 @@
passwordText = new Text(container, SWT.BORDER | SWT.PASSWORD);
GridDataFactory.fillDefaults()
.align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(passwordText);
- UIUtils.selectAllOnFocus(passwordText);
final IObservableValue passwordModelObservable =
BeanProperties.value(CredentialsWizardPageModel.PROPERTY_PASSWORD).observe(pageModel);
final ISWTObservableValue passwordTextObservable = WidgetProperties.text(SWT.Modify).observe(passwordText);
13 years, 11 months