Skip to content

Commit

Permalink
split porting impl into separate project, move mock to main
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@1435 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
pmuir committed Feb 7, 2009
1 parent 73d9a9b commit 66b7a81
Show file tree
Hide file tree
Showing 25 changed files with 321 additions and 51 deletions.
1 change: 1 addition & 0 deletions pom.xml
Expand Up @@ -75,6 +75,7 @@
<module>webbeans-api</module>
<module>webbeans-ri</module>
<module>webbeans-ri-spi</module>
<module>porting-package</module>
</modules>

<properties>
Expand Down
30 changes: 30 additions & 0 deletions porting-package/pom.xml
@@ -0,0 +1,30 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>parent</artifactId>
<groupId>org.jboss.webbeans</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.webbeans</groupId>
<artifactId>porting-package</artifactId>
<name>Web Beans Porting Package for JSR-299 TCK</name>
<dependencies>

<dependency>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-api</artifactId>
</dependency>

<dependency>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-ri</artifactId>
</dependency>

<dependency>
<groupId>org.jboss.webbeans.tck</groupId>
<artifactId>webbeans-tck-api</artifactId>
</dependency>

</dependencies>

</project>
@@ -0,0 +1,121 @@
package org.jboss.webbeans.porting;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

import javax.inject.manager.Bean;

import org.jboss.webbeans.CurrentManager;
import org.jboss.webbeans.bean.AbstractClassBean;
import org.jboss.webbeans.bean.EnterpriseBean;
import org.jboss.webbeans.bean.ProducerFieldBean;
import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.ejb.spi.EjbDescriptor;
import org.jboss.webbeans.mock.MockEjbDescriptor;
import org.jboss.webbeans.tck.spi.Beans;
import org.jboss.webbeans.util.Reflections;

/**
* Implements the Beans SPI for the TCK specifically for the JBoss RI.
*
* @author Shane Bryzak
* @author Pete Muir
* @author David Allen
*
*/
@Deprecated
public class BeansImpl implements Beans
{

public <T> Bean<T> createSimpleBean(Class<T> clazz)
{
return SimpleBean.of(clazz, CurrentManager.rootManager());
}

public <T> Bean<T> createProducerMethodBean(Method method, Bean<?> declaringBean)
{
if (declaringBean instanceof AbstractClassBean)
{
return ProducerMethodBean.of(method, (AbstractClassBean<?>) declaringBean, CurrentManager.rootManager());
}
else
{
throw new IllegalStateException("Cannot create a producer method from a bean that wasn't created by the RI " + declaringBean);
}
}

public <T> Bean<T> createProducerFieldBean(Field field, Bean<?> declaringBean)
{
if (declaringBean instanceof AbstractClassBean)
{
return ProducerFieldBean.of(field, (AbstractClassBean<?>) declaringBean, CurrentManager.rootManager());
}
else
{
throw new IllegalStateException("Cannot create a producer field from a bean that wasn't created by the RI " + declaringBean);
}
}

public <T> Bean<T> createEnterpriseBean(Class<T> clazz)
{
CurrentManager.rootManager().getEjbDescriptorCache().add(MockEjbDescriptor.of(clazz));
return EnterpriseBean.of(clazz, CurrentManager.rootManager());
}

public boolean isEnterpriseBean(Class<?> clazz)
{
return CurrentManager.rootManager().getEjbDescriptorCache().containsKey(clazz);
}

public boolean isEntityBean(Class<?> clazz)
{
if (CurrentManager.rootManager().getEjbDescriptorCache().containsKey(clazz))
{
for (EjbDescriptor<?> ejbDescriptor : CurrentManager.rootManager().getEjbDescriptorCache().get(clazz))
{
if (!ejbDescriptor.isMessageDriven() && !ejbDescriptor.isSingleton() && !ejbDescriptor.isStateful() && !ejbDescriptor.isStateless())
{
return true;
}
}
}
return false;
}

public boolean isStatefulBean(Class<?> clazz)
{
if (CurrentManager.rootManager().getEjbDescriptorCache().containsKey(clazz))
{
for (EjbDescriptor<?> ejbDescriptor : CurrentManager.rootManager().getEjbDescriptorCache().get(clazz))
{
if (ejbDescriptor.isStateful())
{
return true;
}
}
}
return false;
}

public boolean isStatelessBean(Class<?> clazz)
{
if (CurrentManager.rootManager().getEjbDescriptorCache().containsKey(clazz))
{
for (EjbDescriptor<?> ejbDescriptor : CurrentManager.rootManager().getEjbDescriptorCache().get(clazz))
{
if (ejbDescriptor.isStateless())
{
return true;
}
}
}
return false;
}

public boolean isProxy(Object instance)
{
return Reflections.isProxy(instance);
}

}
@@ -0,0 +1,60 @@
package org.jboss.webbeans.porting;

import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.util.List;

import javax.el.ELContext;
import javax.inject.manager.Manager;

import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.mock.MockBootstrap;
import org.jboss.webbeans.mock.MockWebBeanDiscovery;
import org.jboss.webbeans.mock.el.EL;
import org.jboss.webbeans.tck.spi.StandaloneContainers;

public class ContainersImpl implements StandaloneContainers
{

public Manager deploy(List<Class<? extends Annotation>> enabledDeploymentTypes, Class<?>... classes)
{
MockBootstrap bootstrap = new MockBootstrap();
ManagerImpl manager = bootstrap.getManager();
if (enabledDeploymentTypes != null)
{
manager.setEnabledDeploymentTypes(enabledDeploymentTypes);
}
bootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(classes));
bootstrap.boot();
return manager;
}

public Manager deploy(java.lang.Class<?>... classes)
{
return deploy(null, classes);
}

public Manager deploy(InputStream archive)
{
throw new UnsupportedOperationException();
}

public Manager deploy(List<Class<? extends Annotation>> enabledDeploymentTypes, InputStream archive)
{
throw new UnsupportedOperationException();
}

@SuppressWarnings("unchecked")
public <T> T evaluateValueExpression(String expression, Class<T> expectedType)
{
ELContext elContext = EL.createELContext();
return (T) EL.EXPRESSION_FACTORY.createValueExpression(elContext, expression, expectedType).getValue(elContext);
}

@SuppressWarnings("unchecked")
public <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes, Object[] expectedParams)
{
ELContext elContext = EL.createELContext();
return (T) EL.EXPRESSION_FACTORY.createMethodExpression(elContext, expression, expectedType, expectedParamTypes).invoke(elContext, expectedParams);
}
}
@@ -0,0 +1,44 @@
package org.jboss.webbeans.porting;

import org.jboss.webbeans.context.AbstractBeanMapContext;
import org.jboss.webbeans.context.AbstractContext;
import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.context.RequestContext;
import org.jboss.webbeans.tck.spi.Contexts;

public class ContextsImpl implements Contexts<AbstractContext>
{

public RequestContext getRequestContext()
{
return RequestContext.INSTANCE;
}

public void setActive(AbstractContext context)
{
context.setActive(true);
}

public void setInactive(AbstractContext context)
{
context.setActive(false);
}

public AbstractContext getDependentContext()
{
return DependentContext.INSTANCE;
}

public void destroyContext(AbstractContext context)
{
if (context instanceof AbstractBeanMapContext)
{
((AbstractBeanMapContext) context).destroy();
}
else
{
throw new UnsupportedOperationException();
}
}

}
@@ -0,0 +1,29 @@
package org.jboss.webbeans.porting;

import java.lang.annotation.Annotation;
import java.util.List;

import javax.inject.manager.Manager;

import org.jboss.webbeans.CurrentManager;
import org.jboss.webbeans.tck.spi.Managers;

public class ManagersImpl implements Managers
{

public Manager getManager()
{
return CurrentManager.rootManager();
}

public void setEnabledDeploymentTypes(List<Class<? extends Annotation>> enabledDeploymentTypes)
{
CurrentManager.rootManager().setEnabledDeploymentTypes(enabledDeploymentTypes);
}

public List<Class<? extends Annotation>> getEnabledDeploymentTypes()
{
return CurrentManager.rootManager().getEnabledDeploymentTypes();
}

}
@@ -0,0 +1,4 @@
org.jboss.webbeans.tck.spi.Managers=org.jboss.webbeans.porting.ManagersImpl
org.jboss.webbeans.tck.spi.Beans=org.jboss.webbeans.porting.BeansImpl
org.jboss.webbeans.tck.spi.Contexts=org.jboss.webbeans.porting.ContextsImpl
org.jboss.webbeans.tck.spi.Containers=org.jboss.webbeans.porting.ContainersImpl
16 changes: 1 addition & 15 deletions webbeans-ri/pom.xml
Expand Up @@ -39,17 +39,9 @@
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.jboss.ejb3</groupId>
<artifactId>jboss-ejb3-embedded</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.jboss.ejb3</groupId>
<artifactId>jboss-ejb3-api</artifactId>
<scope>test</scope>
</dependency>

<dependency>
Expand All @@ -61,13 +53,7 @@
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
</dependency>

<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<optional>true</optional>
</dependency>


<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
Expand Down
@@ -1,4 +1,4 @@
package org.jboss.webbeans.test.mock;
package org.jboss.webbeans.mock;

import java.lang.annotation.Annotation;

Expand All @@ -19,13 +19,13 @@
import org.jboss.webbeans.bootstrap.spi.EjbDiscovery;
import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
import org.jboss.webbeans.ejb.spi.EjbResolver;
import org.jboss.webbeans.mock.context.MockApplicationContext;
import org.jboss.webbeans.mock.context.MockDependentContext;
import org.jboss.webbeans.mock.context.MockRequestContext;
import org.jboss.webbeans.mock.context.MockSessionContext;
import org.jboss.webbeans.resource.AbstractNamingContext;
import org.jboss.webbeans.resources.spi.NamingContext;
import org.jboss.webbeans.resources.spi.ResourceLoader;
import org.jboss.webbeans.test.mock.context.MockApplicationContext;
import org.jboss.webbeans.test.mock.context.MockDependentContext;
import org.jboss.webbeans.test.mock.context.MockRequestContext;
import org.jboss.webbeans.test.mock.context.MockSessionContext;

public class MockBootstrap extends WebBeansBootstrap
{
Expand Down
@@ -1,4 +1,4 @@
package org.jboss.webbeans.test.mock;
package org.jboss.webbeans.mock;

import java.lang.reflect.Method;
import java.util.ArrayList;
Expand Down
@@ -1,4 +1,4 @@
package org.jboss.webbeans.test.mock;
package org.jboss.webbeans.mock;

import java.util.ArrayList;
import java.util.HashSet;
Expand Down
@@ -1,4 +1,4 @@
package org.jboss.webbeans.test.mock;
package org.jboss.webbeans.mock;

import java.io.IOException;
import java.net.URL;
Expand Down
@@ -1,4 +1,4 @@
package org.jboss.webbeans.test.mock;
package org.jboss.webbeans.mock;

import java.net.URL;
import java.util.Arrays;
Expand Down
@@ -1,4 +1,4 @@
package org.jboss.webbeans.test.mock.context;
package org.jboss.webbeans.mock.context;

import org.jboss.webbeans.context.ApplicationContext;
import org.jboss.webbeans.context.beanmap.SimpleBeanMap;
Expand Down
@@ -1,4 +1,4 @@
package org.jboss.webbeans.test.mock.context;
package org.jboss.webbeans.mock.context;

import org.jboss.webbeans.context.DependentContext;

Expand Down

0 comments on commit 66b7a81

Please sign in to comment.