Author: rob.stryker(a)jboss.com
Date: 2010-09-26 23:54:38 -0400 (Sun, 26 Sep 2010)
New Revision: 25209
Modified:
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/SingleDeployableFactory.java
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/IJBossRuntimeResourceConstants.java
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSELaunchDelegate.java
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEPublishMethod.java
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/archives/RSEZippedJSTPublisher.java
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ServerModeSection.java
Log:
JBIDE-6792 JBIDE-6975 JBIDE-7065
Modified:
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/SingleDeployableFactory.java
===================================================================
---
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/SingleDeployableFactory.java 2010-09-27
02:50:07 UTC (rev 25208)
+++
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/SingleDeployableFactory.java 2010-09-27
03:54:38 UTC (rev 25209)
@@ -251,6 +251,14 @@
return moduleIdToModule.get(path);
}
+ @Override
+ public IModule findModule(String id) {
+ IModule s = super.findModule(id);
+ if( s == null && new Path(id).isAbsolute())
+ s = super.findModule(id.substring(1));
+ return s;
+ }
+
protected boolean addModule(IPath path) {
IResource resource = ResourcesPlugin.getWorkspace().getRoot().findMember(path);
if( resource != null && resource.exists() ) {
Modified:
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java
===================================================================
---
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java 2010-09-27
02:50:07 UTC (rev 25208)
+++
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java 2010-09-27
03:54:38 UTC (rev 25209)
@@ -228,6 +228,10 @@
public static IModuleResource[] getResources(IModule module, IProgressMonitor monitor)
throws CoreException {
monitor.beginTask("Fetching Module Resources", 100); //$NON-NLS-1$
ModuleDelegate md = (ModuleDelegate)module.loadAdapter(ModuleDelegate.class,
ProgressMonitorUtil.submon(monitor, 100));
+ if( md == null ) {
+ // Deleted Module, TODO handle this differently!
+ return new IModuleResource[]{};
+ }
IModuleResource[] members = md.members();
monitor.done();
return members;
Modified:
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/IJBossRuntimeResourceConstants.java
===================================================================
---
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/IJBossRuntimeResourceConstants.java 2010-09-27
02:50:07 UTC (rev 25208)
+++
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/IJBossRuntimeResourceConstants.java 2010-09-27
03:54:38 UTC (rev 25209)
@@ -29,6 +29,7 @@
public static final String[] JBOSS_TEMPORARY_FOLDERS = new String[] { WORK, DATA,
FOLDER_TMP, FOLDER_LOG};
public static final String TWIDDLE_JAR = "twiddle.jar"; //$NON-NLS-1$
+ public static final String TWIDDLE_SH = "twiddle.sh"; //$NON-NLS-1$
public static final String SHUTDOWN_JAR = "shutdown.jar"; //$NON-NLS-1$
public static final String SHUTDOWN_SH = "shutdown.sh"; //$NON-NLS-1$
public static final String START_JAR = "run.jar"; //$NON-NLS-1$
Modified:
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSELaunchDelegate.java
===================================================================
---
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSELaunchDelegate.java 2010-09-27
02:50:07 UTC (rev 25208)
+++
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSELaunchDelegate.java 2010-09-27
03:54:38 UTC (rev 25209)
@@ -111,6 +111,32 @@
beh.setServerStarted();
}
+ public static void launchCommandNoResult(JBossServerBehavior behaviour, int delay,
String command) {
+ IShellService service = null;
+ try {
+ service = findShellService(behaviour);
+ } catch(CoreException ce) {
+ // TODO log and return
+ return;
+ }
+ try {
+ final IHostShell hs = service.runCommand("/", command, new String[]{}, new
NullProgressMonitor());
+ if( hs != null ) {
+ try {
+ Thread.sleep(delay);
+ } catch(InterruptedException ie) {
+ // ignore
+ }
+ }
+ } catch( SystemMessageException sme) {
+ // TODO
+ sme.printStackTrace();
+ } catch( RuntimeException re ) {
+ // TODO
+ re.printStackTrace();
+ }
+ }
+
public static void launchStopServerCommand(JBossServerBehavior behaviour) {
behaviour.setServerStopping();
IPath home = new Path(RSEUtils.getRSEHomeDir(behaviour.getServer()));
Modified:
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEPublishMethod.java
===================================================================
---
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEPublishMethod.java 2010-09-27
02:50:07 UTC (rev 25208)
+++
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/RSEPublishMethod.java 2010-09-27
03:54:38 UTC (rev 25209)
@@ -16,7 +16,10 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
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.rse.core.RSECorePlugin;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.subsystems.ISubSystem;
@@ -29,7 +32,9 @@
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
import org.jboss.ide.eclipse.as.core.server.internal.DeployableServerBehavior;
import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServerBehavior;
import
org.jboss.ide.eclipse.as.core.server.xpl.PublishCopyUtil.IPublishCopyCallbackHandler;
+import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeResourceConstants;
import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
import org.jboss.ide.eclipse.as.core.util.ServerConverter;
@@ -46,53 +51,99 @@
private IFileServiceSubSystem fileSubSystem = null;
private IPath remoteRootFolder;
- private IPath remoteTemporaryFolder;
+ @Deprecated private IPath remoteTemporaryFolder;
+
public void publishStart(DeployableServerBehavior behaviour,
IProgressMonitor monitor) throws CoreException {
this.behaviour = behaviour;
loadRemoteDeploymentDetails();
+ ensureConnection(monitor);
+ if( getServer().getServerState() == IServer.STATE_STARTED ) {
+ stopDeploymentScanner();
+ }
+ super.publishStart(behaviour, monitor);
+ }
+
+ public int publishFinish(DeployableServerBehavior behaviour,
+ IProgressMonitor monitor) throws CoreException {
+ if( getServer().getServerState() == IServer.STATE_STARTED ) {
+ startDeploymentScanner();
+ }
+ return super.publishFinish(behaviour, monitor);
+ }
+
+ protected void startDeploymentScanner() {
+ String cmd = getDeploymentScannerCommand(new NullProgressMonitor(), true);
+ RSELaunchDelegate.launchCommandNoResult((JBossServerBehavior)behaviour, 1000, cmd);
+ }
+
+ protected void stopDeploymentScanner() {
+ String cmd = getDeploymentScannerCommand(new NullProgressMonitor(), false);
+ RSELaunchDelegate.launchCommandNoResult((JBossServerBehavior)behaviour, 1000, cmd);
+ }
+
+ protected String getDeploymentScannerCommand(IProgressMonitor monitor, boolean start) {
+ // ./twiddle.sh -s localhost -u admin -p admin invoke
+ // jboss.deployment:flavor=URL,type=DeploymentScanner start
+ IPath home = new Path(RSEUtils.getRSEHomeDir(behaviour.getServer()));
+ IPath twiddle =
home.append(IJBossRuntimeResourceConstants.BIN).append(IJBossRuntimeResourceConstants.TWIDDLE_SH);
+
+ String cmd = twiddle.toString() + " -s " + getServer().getHost() + " -u
" + getJBossServer().getUsername()
+ + " -p " + getJBossServer().getPassword() + " invoke
jboss.deployment:flavor=URL,type=DeploymentScanner "
+ + (start ? "start" : "stop");
+ return cmd;
+ }
+
+ protected JBossServer getJBossServer() {
+ return (JBossServer)getServer().loadAdapter(JBossServer.class, new
NullProgressMonitor());
+ }
+
+ protected IServer getServer() {
+ return behaviour.getServer();
+ }
+
+ private void ensureConnection(IProgressMonitor monitor) {
if (fileSubSystem != null && !fileSubSystem.isConnected()) {
try {
fileSubSystem.connect(monitor, false);
} catch (Exception e) {
}
}
- super.publishStart(behaviour, monitor);
}
public IPath getRemoteRootFolder() {
return remoteRootFolder;
}
+
+ @Deprecated
public IPath getRemoteTemporaryFolder() {
+ // This should not be used anymore. We do not need to upload and move the file if
+ // deployment scanner is disabled
return remoteTemporaryFolder;
}
public IFileServiceSubSystem getFileServiceSubSystem() {
return fileSubSystem;
}
- public IFileService getFileService() {
+ public IFileService getFileService() throws CoreException {
+ if( fileSubSystem == null ) {
+ try {
+ loadRemoteDeploymentDetails();
+ } catch(CoreException ce) {
+ // TODO log
+ }
+ }
return fileSubSystem.getFileService();
}
- public int publishFinish(DeployableServerBehavior behaviour,
- IProgressMonitor monitor) throws CoreException {
- return super.publishFinish(behaviour, monitor);
- }
-
protected void loadRemoteDeploymentDetails() throws CoreException{
- // TODO obviously fix this
-// String homeDir = RSEUtils.getRSEHomeDir(behaviour.getServer());
-// String conf = RSEUtils.getRSEConfigName(behaviour.getServer());
String connectionName = RSEUtils.getRSEConnectionName(behaviour.getServer());
-// this.remoteRootFolder = new Path("/home/rob/redhat/deploy"); //$NON-NLS-1$
-// this.remoteTemporaryFolder = new Path("/home/rob/redhat/tmp");
//$NON-NLS-1$
JBossServer jbs = ServerConverter.getJBossServer(behaviour.getServer());
this.remoteRootFolder = new Path(RSEUtils.getDeployRootFolder(jbs));
- this.remoteTemporaryFolder = new Path("/home/rob/redhat/tmp"); //$NON-NLS-1$
IHost host = RSEUtils.findHost(connectionName);
if( host != null ) {
fileSubSystem = findFileTransferSubSystem(host);
} else {
- // TODO error host not found in RSE
+ throw new CoreException(new Status(IStatus.ERROR,
org.jboss.ide.eclipse.as.rse.core.RSECorePlugin.PLUGIN_ID, "RSE Host Not
Found."));
}
}
Modified:
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/archives/RSEZippedJSTPublisher.java
===================================================================
---
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/archives/RSEZippedJSTPublisher.java 2010-09-27
02:50:07 UTC (rev 25208)
+++
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.rse.core/src/org/jboss/ide/eclipse/as/rse/core/archives/RSEZippedJSTPublisher.java 2010-09-27
03:54:38 UTC (rev 25209)
@@ -69,13 +69,13 @@
IPath sourcePath = PublishUtil.getDeployPath(module, remoteTempDeployRoot);
IModule lastMod = module[module.length-1];
IPath destFolder = RSEPublishMethod.findModuleFolderWithDefault(lastMod, server2,
method2.getRemoteRootFolder());
- IPath tempDestFolder = RSEPublishMethod.findModuleFolderWithDefault(lastMod, server2,
method2.getRemoteTemporaryFolder());
+ //IPath tempDestFolder = RSEPublishMethod.findModuleFolderWithDefault(lastMod, server2,
method2.getRemoteTemporaryFolder());
String name = sourcePath.lastSegment();
// Now transfer the file to RSE
try {
- method2.getFileService().upload(sourcePath.toFile(), tempDestFolder.toString(), name,
true, null, null, new NullProgressMonitor());
- method2.getFileService().move(tempDestFolder.toString(), name, destFolder.toString(),
name, new NullProgressMonitor());
+ method2.getFileService().upload(sourcePath.toFile(), destFolder.toString(), name,
true, null, null, new NullProgressMonitor());
+ //method2.getFileService().move(tempDestFolder.toString(), name,
destFolder.toString(), name, new NullProgressMonitor());
} catch( SystemMessageException sme ) {
// TODO fix or return error
sme.printStackTrace();
Modified:
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ServerModeSection.java
===================================================================
---
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ServerModeSection.java 2010-09-27
02:50:07 UTC (rev 25208)
+++
branches/jbosstools-3.2.0.Beta1/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ServerModeSection.java 2010-09-27
03:54:38 UTC (rev 25209)
@@ -171,12 +171,17 @@
private String oldVal;
private String newVal;
public ChangeServerPropertyCommand(IServerWorkingCopy server, String key, String val,
String commandName) {
+ this(server, key, val, LocalPublishMethod.LOCAL_PUBLISH_METHOD, commandName);
+ }
+
+ public ChangeServerPropertyCommand(IServerWorkingCopy server, String key, String val,
String oldDefault, String commandName) {
super(server, commandName);
this.server = server;
this.key = key;
this.newVal = val;
- this.oldVal = server.getAttribute(key, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
+ this.oldVal = server.getAttribute(key, oldDefault);
}
+
public void execute() {
server.setAttribute(key, newVal);
}