Author: rob.stryker(a)jboss.com
Date: 2007-09-11 00:54:29 -0400 (Tue, 11 Sep 2007)
New Revision: 3525
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossLaunchAdapter.java
Removed:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/client/
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml
Log:
Moved as.core.launch package's files into the as.core.server package.
Moving to a cleaner API which can be opened up logically and more easily extended.
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF 2007-09-11
04:53:04 UTC (rev 3524)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF 2007-09-11
04:54:29 UTC (rev 3525)
@@ -22,7 +22,6 @@
org.apache.ant
Eclipse-LazyStart: true
Export-Package: org.jboss.ide.eclipse.as.core,
- org.jboss.ide.eclipse.as.core.client,
org.jboss.ide.eclipse.as.core.launch,
org.jboss.ide.eclipse.as.core.model,
org.jboss.ide.eclipse.as.core.model.descriptor,
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossLaunchAdapter.java
(from rev 3519,
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/client/JBossLaunchAdapter.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossLaunchAdapter.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossLaunchAdapter.java 2007-09-11
04:54:29 UTC (rev 3525)
@@ -0,0 +1,100 @@
+package org.jboss.ide.eclipse.as.core.server;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.server.core.EJBBean;
+import org.eclipse.jst.server.core.JndiLaunchable;
+import org.eclipse.jst.server.core.JndiObject;
+import org.eclipse.jst.server.core.Servlet;
+import org.eclipse.wst.server.core.IModuleArtifact;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.model.IURLProvider;
+import org.eclipse.wst.server.core.model.LaunchableAdapterDelegate;
+import org.eclipse.wst.server.core.model.ServerDelegate;
+import org.eclipse.wst.server.core.util.HttpLaunchable;
+import org.eclipse.wst.server.core.util.WebResource;
+
+public class JBossLaunchAdapter extends LaunchableAdapterDelegate {
+
+ private static final String JAVA_NAMING_PROVIDER_URL_PROPKEY =
"java.naming.provider.url"; //$NON-NLS-1$
+ private static final String JAVA_NAMING_FACTORY_INITIAL_PROPKEY =
"java.naming.factory.initial"; //$NON-NLS-1$
+ public JBossLaunchAdapter() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /*
+ * @see ILaunchableAdapterDelegate#getLaunchable(IServer, IModuleObject)
+ */
+ public Object getLaunchable(IServer server, IModuleArtifact moduleObject) {
+ ServerDelegate delegate =
(ServerDelegate)server.loadAdapter(ServerDelegate.class,null);
+ if (!(delegate instanceof JBossServer ))
+ return null;
+ if ((moduleObject instanceof Servlet) ||(moduleObject instanceof WebResource))
+ return prepareHttpLaunchable(moduleObject, delegate);
+
+ if((moduleObject instanceof EJBBean) || (moduleObject instanceof JndiObject))
+ return prepareJndiLaunchable(moduleObject,delegate);
+ return null;
+ }
+
+ private Object prepareJndiLaunchable(IModuleArtifact moduleObject, ServerDelegate
delegate) {
+ JndiLaunchable launchable = null;
+ JBossServer server = (JBossServer)delegate;
+ IPath p = new
Path(server.getConfigDirectory()).append("jndi.properties");
+ Properties props = new Properties();
+ try {
+ props.load(new FileInputStream(p.toFile()));
+ } catch( IOException ioe ) {
+ props.put(JAVA_NAMING_FACTORY_INITIAL_PROPKEY,
"org.jnp.interfaces.NamingContextFactory");
+
props.put(JAVA_NAMING_PROVIDER_URL_PROPKEY,"org.jboss.naming:org.jnp.interfaces");
+ }
+
+ if(moduleObject instanceof EJBBean) {
+ EJBBean bean = (EJBBean)moduleObject;
+ launchable = new JndiLaunchable(props,bean.getJndiName());
+ }
+ if(moduleObject instanceof JndiObject) {
+ JndiObject jndi = (JndiObject)moduleObject;
+ launchable = new JndiLaunchable(props,jndi.getJndiName());
+ }
+ return launchable;
+ }
+
+ /**
+ * @param moduleObject
+ * @param delegate
+ * @return object
+ */
+ private Object prepareHttpLaunchable(IModuleArtifact moduleObject, ServerDelegate
delegate) {
+ try {
+ URL url = ((IURLProvider) delegate).getModuleRootURL(moduleObject.getModule());
+
+ if (moduleObject instanceof Servlet) {
+ Servlet servlet = (Servlet) moduleObject;
+ if (servlet.getAlias() != null) {
+ String path = servlet.getAlias();
+ if (path.startsWith("/")) //$NON-NLS-1$
+ path = path.substring(1);
+ url = new URL(url, path);
+ } else
+ url = new URL(url, servlet.getName()); //$NON-NLS-1$
+ } else if (moduleObject instanceof WebResource) {
+ WebResource resource = (WebResource) moduleObject;
+ String path = resource.getPath().toString();
+ if (path != null && path.startsWith("/") && path.length()
> 0) //$NON-NLS-1$
+ path = path.substring(1);
+ if (path != null && path.length() > 0)
+ url = new URL(url, path);
+ }
+ return new HttpLaunchable(url);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml 2007-09-11 04:53:04 UTC (rev
3524)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml 2007-09-11 04:54:29 UTC (rev
3525)
@@ -281,7 +281,7 @@
<extension
point="org.eclipse.wst.server.core.launchableAdapters">
<launchableAdapter
- class="org.jboss.ide.eclipse.as.core.client.JBossLaunchAdapter"
+ class="org.jboss.ide.eclipse.as.core.server.JBossLaunchAdapter"
id="org.jboss.ide.eclipse.as.core.launchableAdapter1"/>
</extension>