Author: adietish
Date: 2011-07-08 11:41:23 -0400 (Fri, 08 Jul 2011)
New Revision: 32770
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7BehaviourDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7StartLaunchDelegate.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7ServerBehavior.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7StartLaunchConfiguration.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7StartLaunchDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSECorePlugin.java
Log:
[JBIDE-9215] added remote launching (not functional yet, need further investigation
what's wrong. But infrastructure's here)
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7ServerBehavior.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7ServerBehavior.java 2011-07-08
15:34:37 UTC (rev 32769)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7ServerBehavior.java 2011-07-08
15:41:23 UTC (rev 32770)
@@ -81,7 +81,7 @@
public void setupLaunchConfiguration(ILaunchConfigurationWorkingCopy launchConfig,
IProgressMonitor monitor)
throws CoreException {
// TODO: implement setup for RSE launch delegate too
- new LocalJBoss7StartupConfigurator(getServer()).configure(launchConfig);
+ DelegatingJBoss7StartLaunchConfiguration.setupLaunchConfiguration(launchConfig,
getServer());
}
public void setProcess(IProcess process) {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7StartLaunchConfiguration.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7StartLaunchConfiguration.java 2011-07-08
15:34:37 UTC (rev 32769)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7StartLaunchConfiguration.java 2011-07-08
15:41:23 UTC (rev 32770)
@@ -20,11 +20,16 @@
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerUtil;
+import org.eclipse.wst.server.core.internal.IStartup;
import org.jboss.ide.eclipse.as.core.publishers.LocalPublishMethod;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerPublishMethodType;
+import org.jboss.ide.eclipse.as.core.server.internal.DeployableServerBehavior;
import
org.jboss.ide.eclipse.as.core.server.internal.launch.DelegatingStartLaunchConfiguration;
import org.jboss.ide.eclipse.as.core.server.internal.launch.IStartLaunchDelegate;
import
org.jboss.ide.eclipse.as.core.server.internal.launch.IStartLaunchSetupParticipant;
import
org.jboss.ide.eclipse.as.core.server.internal.launch.LocalJBossStartLaunchDelegate;
+import org.jboss.ide.eclipse.as.core.util.ServerConverter;
/**
* @author Rob Stryker
@@ -54,20 +59,16 @@
// unless their operation mode (local / rse / etc) is in use
public static void setupLaunchConfiguration(ILaunchConfigurationWorkingCopy workingCopy,
IServer server) throws CoreException {
for( Iterator<IStartLaunchSetupParticipant> i = setupParticipants.iterator();
i.hasNext(); ) {
- i.next().setupLaunchConfiguration(workingCopy, server);
+ IStartLaunchSetupParticipant setupParticipant = i.next();
+ setupParticipant.setupLaunchConfiguration(workingCopy, server);
}
}
protected IStartLaunchDelegate getDelegate(ILaunchConfiguration configuration) throws
CoreException {
-// TODO: choose delegate upon setting (server editor)
-// IServer server = ServerUtil.getServer(configuration);
-// DeployableServerBehavior beh = ServerConverter.getDeployableServerBehavior(server);
-// IJBossServerPublishMethodType type =
beh.createPublishMethod().getPublishMethodType();
-// return launchDelegates.get(type.getId());
-
-// always return local launch delegate until all parts were implemented
- return new LocalJBoss7StartLaunchDelegate();
-
+ IServer server = ServerUtil.getServer(configuration);
+ DeployableServerBehavior beh = ServerConverter.getDeployableServerBehavior(server);
+ IJBossServerPublishMethodType type = beh.createPublishMethod().getPublishMethodType();
+ return launchDelegates.get(type.getId());
}
public void actualLaunch(ILaunchConfiguration configuration,
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7StartLaunchDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7StartLaunchDelegate.java 2011-07-08
15:34:37 UTC (rev 32769)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7StartLaunchDelegate.java 2011-07-08
15:41:23 UTC (rev 32770)
@@ -14,7 +14,9 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.core.model.IProcess;
+import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.extensions.polling.WebPortPoller;
import org.jboss.ide.eclipse.as.core.server.internal.DelegatingServerBehavior;
import org.jboss.ide.eclipse.as.core.server.internal.LocalJBossBehaviorDelegate;
@@ -77,4 +79,11 @@
// report it
}
}
+
+ @Override
+ public void setupLaunchConfiguration(
+ ILaunchConfigurationWorkingCopy workingCopy, IServer server) throws CoreException {
+ new LocalJBoss7StartupConfigurator(server).configure(workingCopy);
+ }
+
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSECorePlugin.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSECorePlugin.java 2011-07-08
15:34:37 UTC (rev 32769)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSECorePlugin.java 2011-07-08
15:41:23 UTC (rev 32770)
@@ -14,6 +14,8 @@
import org.jboss.ide.eclipse.as.core.server.internal.DelegatingServerBehavior;
import
org.jboss.ide.eclipse.as.core.server.internal.launch.DelegatingStartLaunchConfiguration;
+import org.jboss.ide.eclipse.as.core.server.internal.v7.DelegatingJBoss7ServerBehavior;
+import
org.jboss.ide.eclipse.as.core.server.internal.v7.DelegatingJBoss7StartLaunchConfiguration;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
@@ -35,6 +37,11 @@
DelegatingServerBehavior.addDelegateMapping(RSEPublishMethod.RSE_ID,
RSEBehaviourDelegate.class);
DelegatingStartLaunchConfiguration.addLaunchDelegateMapping(RSEPublishMethod.RSE_ID,
new RSEJBossStartLaunchDelegate());
DelegatingStartLaunchConfiguration.addSetupLaunchParticipant(new
RSEJBossStartLaunchDelegate());
+
+ DelegatingJBoss7ServerBehavior.addDelegateMapping(RSEPublishMethod.RSE_ID,
RSEJBoss7BehaviourDelegate.class);
+ DelegatingJBoss7StartLaunchConfiguration.addLaunchDelegateMapping(RSEPublishMethod.RSE_ID,
new RSEJBoss7StartLaunchDelegate());
+ DelegatingJBoss7StartLaunchConfiguration.addSetupLaunchParticipant(new
RSEJBossStartLaunchDelegate());
+
}
/*
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7BehaviourDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7BehaviourDelegate.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7BehaviourDelegate.java 2011-07-08
15:41:23 UTC (rev 32770)
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * 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
+ *
+ * TODO: Logging and Progress Monitors
+ ******************************************************************************/
+package org.jboss.ide.eclipse.as.rse.core;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
+import org.jboss.ide.eclipse.as.core.util.ServerUtil;
+
+public class RSEJBoss7BehaviourDelegate extends AbstractRSEBehaviourDelegate {
+
+ @Override
+ protected String getShutdownCommand(IServer server) throws CoreException {
+ String defaultCommand =
ServerUtil.checkedGetBehaviorDelegate(server).getDefaultStopArguments();
+ ILaunchConfiguration config = getServer().getLaunchConfiguration(false, new
NullProgressMonitor());
+ return RSELaunchConfigProperties.getShutdownCommand(config, defaultCommand);
+ }
+
+ @Override
+ public void serverIsStarting() {
+ pollServer(IServerStatePoller.SERVER_UP);
+ }
+
+ @Override
+ public void serverIsStopping() {
+ pollServer(IServerStatePoller.SERVER_DOWN);
+ }
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7BehaviourDelegate.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7StartLaunchDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7StartLaunchDelegate.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7StartLaunchDelegate.java 2011-07-08
15:41:23 UTC (rev 32770)
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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
+ *
+ * TODO: Logging and Progress Monitors
+ ******************************************************************************/
+package org.jboss.ide.eclipse.as.rse.core;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.core.server.internal.DelegatingServerBehavior;
+import org.jboss.ide.eclipse.as.core.server.internal.DeployableServerBehavior;
+import org.jboss.ide.eclipse.as.core.server.internal.IJBossBehaviourDelegate;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import
org.jboss.ide.eclipse.as.core.server.internal.launch.DelegatingStartLaunchConfiguration;
+import
org.jboss.ide.eclipse.as.core.server.internal.launch.configuration.JBossLaunchConfigProperties;
+import org.jboss.ide.eclipse.as.core.util.ArgsUtil;
+import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeConstants;
+import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeResourceConstants;
+import org.jboss.ide.eclipse.as.core.util.JBossServerBehaviorUtils;
+import org.jboss.ide.eclipse.as.core.util.LaunchCommandPreferences;
+import org.jboss.ide.eclipse.as.core.util.ServerConverter;
+import org.jboss.ide.eclipse.as.core.util.ServerUtil;
+import org.jboss.ide.eclipse.as.core.util.ThreadUtils;
+
+public class RSEJBoss7StartLaunchDelegate extends AbstractRSELaunchDelegate {
+ public void actualLaunch(DelegatingStartLaunchConfiguration launchConfig,
+ ILaunchConfiguration configuration, String mode, ILaunch launch,
+ IProgressMonitor monitor) throws CoreException {
+ DelegatingServerBehavior beh =
JBossServerBehaviorUtils.getServerBehavior(configuration);
+ beh.setServerStarting();
+ if (LaunchCommandPreferences.isIgnoreLaunchCommand(beh.getServer())) {
+ beh.setServerStarted();
+ return;
+ }
+ String command = RSELaunchConfigProperties.getStartupCommand(configuration);
+ executeRemoteCommand(command, beh);
+ launchPingThread(beh);
+ }
+
+ private void launchPingThread(DeployableServerBehavior beh) {
+ // TODO do it properly here
+ ThreadUtils.sleepFor(30000);
+ beh.setServerStarted();
+ }
+
+ public void preLaunch(ILaunchConfiguration configuration, String mode,
+ ILaunch launch, IProgressMonitor monitor) throws CoreException {
+ }
+
+ public void postLaunch(ILaunchConfiguration configuration, String mode,
+ ILaunch launch, IProgressMonitor monitor) throws CoreException {
+ }
+
+ public void setupLaunchConfiguration(ILaunchConfigurationWorkingCopy workingCopy,
IServer server)
+ throws CoreException {
+ new RSELaunchConfigurator(getDefaultLaunchCommand(workingCopy),
getDefaultStopCommand(server))
+ .configure(workingCopy);
+ /*
+ * /usr/lib/jvm/jre/bin/java -Dprogram.name=run.sh -server -Xms1530M
+ * -Xmx1530M -XX:PermSize=425M -XX:MaxPermSize=425M
+ * -Dorg.jboss.resolver.warning=true
+ * -Dsun.rmi.dgc.client.gcInterval=3600000
+ * -Dsun.rmi.dgc.server.gcInterval=3600000
+ * -Djboss.partition.udpGroup=228.1.2.3
+ * -Djboss.webpartition.mcast_port=45577
+ * -Djboss.hapartition.mcast_port=45566
+ * -Djboss.ejb3entitypartition.mcast_port=43333
+ * -Djboss.ejb3sfsbpartition.mcast_port=45551
+ * -Djboss.jvmRoute=node-10.209.183.100 -Djboss.gossip_port=12001
+ * -Djboss.gossip_refresh=5000 -Djava.awt.headless=true
+ * -Djava.net.preferIPv4Stack=true
+ * -Djava.endorsed.dirs=/opt/jboss-eap-5.1.0.Beta/jboss-as/lib/endorsed
+ * -classpath /opt/jboss-eap-5.1.0.Beta/jboss-as/bin/run.jar
+ * org.jboss.Main -c default -b 10.209.183.100
+ */
+ }
+
+ private String getDefaultStopCommand(IServer server) {
+ try {
+ return getDefaultStopCommand(server, false);
+ } catch (CoreException ce) {/* ignore, INTENTIONAL */
+ }
+ return null;
+ }
+
+ private String getDefaultStopCommand(IServer server, boolean errorOnFail) throws
CoreException {
+ String rseHome = RSEUtils.getRSEHomeDir(server, errorOnFail);
+
+ String stop = new Path(rseHome)
+ .append(IJBossRuntimeResourceConstants.BIN)
+ .append(IJBossRuntimeResourceConstants.SHUTDOWN_SH).toString()
+ + IJBossRuntimeConstants.SPACE;
+
+ // Pull args from single utility method
+ // stop += StopLaunchConfiguration.getDefaultArgs(jbs);
+ IJBossBehaviourDelegate delegate = ServerUtil.checkedGetBehaviorDelegate(server);
+ stop += delegate.getDefaultStopArguments();
+ return stop;
+ }
+
+ private String getDefaultLaunchCommand(ILaunchConfiguration config) throws CoreException
{
+ String serverId = JBossLaunchConfigProperties.getServerId(config);
+ JBossServer jbossServer = ServerConverter.checkedFindJBossServer(serverId);
+ String rseHome = jbossServer.getServer().getAttribute(RSEUtils.RSE_SERVER_HOME_DIR,
"");
+ // initialize startup command to something reasonable
+ String currentArgs =
config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS,
""); //$NON-NLS-1$
+ String currentVMArgs =
config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "");
//$NON-NLS-1$
+
+ currentVMArgs = ArgsUtil.setArg(currentVMArgs, null,
+ IJBossRuntimeConstants.SYSPROP + IJBossRuntimeConstants.ENDORSED_DIRS,
+ new Path(rseHome).append(
+ IJBossRuntimeResourceConstants.LIB).append(
+ IJBossRuntimeResourceConstants.ENDORSED).toOSString(), true);
+
+ String libPath = new Path(rseHome).append(IJBossRuntimeResourceConstants.BIN)
+ .append(IJBossRuntimeResourceConstants.NATIVE).toOSString();
+ currentVMArgs = ArgsUtil.setArg(currentVMArgs, null,
+ IJBossRuntimeConstants.SYSPROP + IJBossRuntimeConstants.JAVA_LIB_PATH,
+ libPath, true);
+
+ String cmd = "java " + currentVMArgs + " -classpath " +
+ new Path(rseHome).append(IJBossRuntimeResourceConstants.BIN).append(
+ IJBossRuntimeResourceConstants.START_JAR).toString() + IJBossRuntimeConstants.SPACE
+
+ IJBossRuntimeConstants.START_MAIN_TYPE + IJBossRuntimeConstants.SPACE + currentArgs +
"&";
+ return cmd;
+ }
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEJBoss7StartLaunchDelegate.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain