[jboss-svn-commits] JBoss Common SVN: r3971 - in shrinkwrap/trunk/extension-glassfish/src: test/java/org/jboss/shrinkwrap/glassfish and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Jan 31 14:17:21 EST 2010
Author: ALRubinger
Date: 2010-01-31 14:17:20 -0500 (Sun, 31 Jan 2010)
New Revision: 3971
Modified:
shrinkwrap/trunk/extension-glassfish/src/main/java/org/jboss/shrinkwrap/glassfish/impl/ShrinkwrapReadableArchiveImpl.java
shrinkwrap/trunk/extension-glassfish/src/test/java/org/jboss/shrinkwrap/glassfish/GlassFishDeploymentUnitTestCase.java
Log:
[SHRINKWRAP-126] Do not provide the entry size; add test case showing we can deploy nested archives to GF
Modified: shrinkwrap/trunk/extension-glassfish/src/main/java/org/jboss/shrinkwrap/glassfish/impl/ShrinkwrapReadableArchiveImpl.java
===================================================================
--- shrinkwrap/trunk/extension-glassfish/src/main/java/org/jboss/shrinkwrap/glassfish/impl/ShrinkwrapReadableArchiveImpl.java 2010-01-31 17:59:31 UTC (rev 3970)
+++ shrinkwrap/trunk/extension-glassfish/src/main/java/org/jboss/shrinkwrap/glassfish/impl/ShrinkwrapReadableArchiveImpl.java 2010-01-31 19:17:20 UTC (rev 3971)
@@ -16,7 +16,6 @@
*/
package org.jboss.shrinkwrap.glassfish.impl;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
@@ -39,7 +38,6 @@
import org.jboss.shrinkwrap.impl.base.Validate;
import org.jboss.shrinkwrap.impl.base.asset.ArchiveAsset;
import org.jboss.shrinkwrap.impl.base.asset.DirectoryAsset;
-import org.jboss.shrinkwrap.impl.base.io.IOUtil;
/**
* ShrinkWrap extension to support GlassFishs {@link ReadableArchive}
@@ -117,22 +115,11 @@
* {@inheritDoc}
* @see org.glassfish.api.deployment.archive.ReadableArchive#getEntrySize(java.lang.String)
*/
- // TODO: ShrinkWrap have not know the size of a Asset. Hacking figure it out runtime.
- // Needed by GlassFish for buff sizes.
@Override
public long getEntrySize(String path)
{
- Asset asset = archive.get(ArchivePaths.create(path));
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- try
- {
- IOUtil.copyWithClose(asset.openStream(), output);
- return output.toByteArray().length;
- }
- catch (IOException e)
- {
- throw new RuntimeException(e);
- }
+ // Per API, signal that we don't know by using 0.
+ return 0;
}
/**
Modified: shrinkwrap/trunk/extension-glassfish/src/test/java/org/jboss/shrinkwrap/glassfish/GlassFishDeploymentUnitTestCase.java
===================================================================
--- shrinkwrap/trunk/extension-glassfish/src/test/java/org/jboss/shrinkwrap/glassfish/GlassFishDeploymentUnitTestCase.java 2010-01-31 17:59:31 UTC (rev 3970)
+++ shrinkwrap/trunk/extension-glassfish/src/test/java/org/jboss/shrinkwrap/glassfish/GlassFishDeploymentUnitTestCase.java 2010-01-31 19:17:20 UTC (rev 3971)
@@ -26,13 +26,13 @@
import org.glassfish.api.deployment.DeployCommandParameters;
import org.glassfish.api.embedded.ContainerBuilder;
-import org.glassfish.api.embedded.EmbeddedContainer;
import org.glassfish.api.embedded.EmbeddedDeployer;
import org.glassfish.api.embedded.EmbeddedFileSystem;
import org.glassfish.api.embedded.LifecycleException;
import org.glassfish.api.embedded.Server;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.Archives;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.jboss.shrinkwrap.glassfish.api.ShrinkwrapReadableArchive;
import org.jboss.shrinkwrap.glassfish.ejb.EchoBean;
@@ -79,24 +79,37 @@
private static Context namingContext;
/**
- * Name of the deployment
+ * Name of the deployments
*/
- private static final String NAME_DEPLOYMENT = "slsb.jar";
+ private static final String NAME_DEPLOYMENT_EAR = "slsb.ear";
+ private static final String NAME_DEPLOYMENT_JAR = "slsb.jar";
+
/**
- * Name in JNDI under which the test EJB will be registered
+ * Names in JNDI under which the test EJB will be registered for the JAR/EAR
*/
- private static final String NAME_JNDI = "java:global/" + NAME_DEPLOYMENT + "/" + EchoBean.class.getSimpleName()
+ private static final String NAME_JNDI_JAR = "java:global/" + NAME_DEPLOYMENT_JAR + "/"
+ + EchoBean.class.getSimpleName() + "!" + EchoLocalBusiness.class.getName();
+
+ private static final String NAME_JNDI_EAR = "java:global/" + NAME_DEPLOYMENT_EAR + "/"
+ + NAME_DEPLOYMENT_JAR.substring(0, NAME_DEPLOYMENT_JAR.indexOf('.')) + "/" + EchoBean.class.getSimpleName()
+ "!" + EchoLocalBusiness.class.getName();
/**
- * EJB Archive to be deployed
+ * EJB Archives to be deployed
*/
- private static final ShrinkwrapReadableArchive archive;
+ private static final ShrinkwrapReadableArchive enterpriseArchive;
+
+ private static final ShrinkwrapReadableArchive javaArchive;
static
{
- archive = Archives.create(NAME_DEPLOYMENT, JavaArchive.class).addClasses(EchoLocalBusiness.class, EchoBean.class)
- .as(ShrinkwrapReadableArchive.class);
+
+ // Create the packaging
+ javaArchive = Archives.create(NAME_DEPLOYMENT_JAR, JavaArchive.class).addClasses(EchoLocalBusiness.class,
+ EchoBean.class).as(ShrinkwrapReadableArchive.class);
+ enterpriseArchive = Archives.create(NAME_DEPLOYMENT_EAR, EnterpriseArchive.class).addModule(
+ javaArchive.as(JavaArchive.class)).as(ShrinkwrapReadableArchive.class);
+
}
//-------------------------------------------------------------------------------------||
@@ -119,8 +132,7 @@
server = builder.build();
// Add an EJB Container
- final ContainerBuilder<EmbeddedContainer> containerBuilder = server.createConfig(ContainerBuilder.Type.ejb);
- server.addContainer(containerBuilder);
+ server.addContainer(ContainerBuilder.Type.all);
// Set the deployer
deployer = server.getDeployer();
@@ -144,9 +156,12 @@
public void deploy()
{
- final DeployCommandParameters params = new DeployCommandParameters();
- params.name = NAME_DEPLOYMENT;
- deployer.deploy(archive, params);
+ final DeployCommandParameters paramsEar = new DeployCommandParameters();
+ paramsEar.name = NAME_DEPLOYMENT_EAR;
+ final DeployCommandParameters paramsJar = new DeployCommandParameters();
+ paramsJar.name = NAME_DEPLOYMENT_JAR;
+ deployer.deploy(enterpriseArchive, paramsEar);
+ deployer.deploy(javaArchive, paramsJar);
}
/**
@@ -156,7 +171,8 @@
@After
public void undeploy()
{
- deployer.undeploy(NAME_DEPLOYMENT, null);
+ deployer.undeploy(NAME_DEPLOYMENT_EAR, null);
+ deployer.undeploy(NAME_DEPLOYMENT_JAR, null);
}
//-------------------------------------------------------------------------------------||
@@ -164,14 +180,41 @@
//-------------------------------------------------------------------------------------||
/**
- * Ensures the EJB can be looked up in JNDI and invoked upon, proving
- * the deployment was a success
+ * Ensures the EJB from a JAR deployment can be looked up in JNDI and
+ * invoked upon, proving the deployment was a success
*/
@Test
- public void testSlsb() throws NamingException
+ public void testSlsbFromJarDeployment() throws NamingException
{
+ this.testSlsb(NAME_JNDI_JAR);
+ }
+
+ /**
+ * Ensures the EJB from a EAR deployment can be looked up in JNDI and
+ * invoked upon, proving the deployment was a success
+ *
+ * SHRINKWRAP-126
+ */
+ @Test
+ public void testSlsbFromEarDeployment() throws NamingException
+ {
+ this.testSlsb(NAME_JNDI_EAR);
+ }
+
+ //-------------------------------------------------------------------------------------||
+ // Internal Helper Methods ------------------------------------------------------------||
+ //-------------------------------------------------------------------------------------||
+
+ /**
+ * Ensures the EJB from a JAR deployment can be looked up in JNDI and
+ * invoked upon, proving the deployment was a success
+ */
+ private void testSlsb(final String jndiName) throws NamingException
+ {
+ assert jndiName != null : "JNDI Name must be specified";
+
// Get the proxy
- final EchoLocalBusiness bean = (EchoLocalBusiness) namingContext.lookup(NAME_JNDI);
+ final EchoLocalBusiness bean = (EchoLocalBusiness) namingContext.lookup(jndiName);
// Define the expected return value
final String expected = "ShrinkWrap>GlassFish (booyeah)";
More information about the jboss-svn-commits
mailing list