I think that I would like to use the porting package when implementing JSR-330 TCK. Example using StandaloneContainerImpl. and other stuff there while deployment/undeployment/starting/stopping the container.
Thanks; --Gurkan 2009/10/17 Mark Struberg <[email protected]> > Is there a reason for moving the TCK-API integration classes over from > webbeans-tck to an own module? > As far as I see, they cannot be reused e.g. for the JSR-330 TCK. > > We should be really careful with introducing new child modules. While > modularity is good, each new module increases the chance to introduce cyclic > references between modules (which must not happen). > > LieGrue, > strub > > > > ----- Original Message ---- > > From: "[email protected]" <[email protected]> > > To: [email protected] > > Sent: Sat, October 17, 2009 12:16:40 AM > > Subject: svn commit: r826111 - in > /incubator/openwebbeans/trunk/webbeans-porting: ./ src/ src/main/ > src/main/java/ src/main/java/org/ src/main/java/org/apache/ > src/main/java/org/apache/webbeans/ src/main/java/org/apache/webbeans/test/ > src/main/java/org/apache/w... > > > > Author: gerdogdu > > Date: Fri Oct 16 22:16:39 2009 > > New Revision: 826111 > > > > URL: http://svn.apache.org/viewvc?rev=826111&view=rev > > Log: > > Adding TCK Porting project > > > > Added: > > incubator/openwebbeans/trunk/webbeans-porting/ (with props) > > incubator/openwebbeans/trunk/webbeans-porting/pom.xml (with props) > > incubator/openwebbeans/trunk/webbeans-porting/src/ > > incubator/openwebbeans/trunk/webbeans-porting/src/main/ > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/ > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/ > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/ > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/ > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/ > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java > > (with props) > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContainersImpl.java > > (with props) > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContextsImpl.java > > (with props) > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ELImpl.java > > (with props) > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ManagersImpl.java > > (with props) > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java > > (with props) > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/mock/ > > > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/mock/TCKMetaDataDiscoveryImpl.java > > (with props) > > incubator/openwebbeans/trunk/webbeans-porting/src/main/resources/ > > > > Propchange: incubator/openwebbeans/trunk/webbeans-porting/ > > > ------------------------------------------------------------------------------ > > --- svn:ignore (added) > > +++ svn:ignore Fri Oct 16 22:16:39 2009 > > @@ -0,0 +1,4 @@ > > +target > > +.classpath > > +.project > > +.settings > > > > Added: incubator/openwebbeans/trunk/webbeans-porting/pom.xml > > URL: > > > http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-porting/pom.xml?rev=826111&view=auto > > > ============================================================================== > > --- incubator/openwebbeans/trunk/webbeans-porting/pom.xml (added) > > +++ incubator/openwebbeans/trunk/webbeans-porting/pom.xml Fri Oct 16 > 22:16:39 > > 2009 > > @@ -0,0 +1,74 @@ > > + > > + > > + > > + > > + 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"> > > + 4.0.0 > > + > > + org.apache.openwebbeans > > + openwebbeans > > + 1.0.0-incubating-SNAPSHOT > > + > > + > > + openwebbeans-porting > > + Apache OpenWebBeans :: TCK Porting Package > > + jar > > + 1.0.0-incubating-SNAPSHOT > > + TCK Porting Package OpenWebBeans Implementation > > + > > + > > + > > + > > + org.apache.openwebbeans > > + openwebbeans-impl > > + ${project.version} > > + tests > > + > > + > > + > > + org.apache.openwebbeans > > + openwebbeans-impl > > + > > + > > + > > + org.apache.geronimo.specs > > + geronimo-jpa_3.0_spec > > + > > + > > + > > + org.apache.geronimo.specs > > + geronimo-servlet_2.5_spec > > + > > + > > + > > + > > + org.jboss.jsr299.tck > > + jsr299-tck-api > > + 1.0.0-SNAPSHOT > > + > > + > > + > > + org.apache.geronimo.specs > > + geronimo-el_1.0_spec > > + > > + > > + > > + > > + > > + > > > > Propchange: incubator/openwebbeans/trunk/webbeans-porting/pom.xml > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > Added: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java > > URL: > > > http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java?rev=826111&view=auto > > > ============================================================================== > > --- > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java > > (added) > > +++ > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java > > Fri Oct 16 22:16:39 2009 > > @@ -0,0 +1,76 @@ > > +/* > > + * Licensed to the Apache Software Foundation (ASF) under one or more > > + * contributor license agreements. See the NOTICE file distributed with > this > > + * work for additional information regarding copyright ownership. The > ASF > > + * licenses this file to You under the Apache License, Version 2.0 (the > > + * "License"); you may not use this file except in compliance with the > License. > > + * You may obtain a copy of the License at > > + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by > applicable law > > + * or agreed to in writing, software distributed under the License is > > + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF > ANY > > + * KIND, either express or implied. See the License for the specific > language > > + * governing permissions and limitations under the License. > > + */ > > +package org.apache.webbeans.test.tck; > > + > > +import java.lang.reflect.Method; > > + > > +import javax.enterprise.inject.spi.Bean; > > +import javax.persistence.Entity; > > + > > + > > +import org.apache.webbeans.component.AbstractBean; > > +import org.apache.webbeans.component.ManagedBean; > > +import org.apache.webbeans.component.WebBeansType; > > +import org.apache.webbeans.config.DefinitionUtil; > > +import org.apache.webbeans.config.ManagedBeanConfigurator; > > +import org.apache.webbeans.util.AnnotationUtil; > > +import org.jboss.jsr299.tck.spi.Beans; > > + > > +public class BeansImpl implements Beans > > +{ > > + > > + @SuppressWarnings("unchecked") > > + public BeancreateProducerMethodBean(Method method, Bean > > declaringBean) > > + { > > + return > > DefinitionUtil.createProducerComponent((Class)method.getReturnType(), > method, > > (AbstractBean)declaringBean, false); > > + > > + } > > + > > + public BeancreateSimpleBean(Classclazz) > > + { > > + ManagedBeanbean = null; > > + > > + ManagedBeanConfigurator.checkSimpleWebBeanCondition(clazz); > > + > > + bean = ManagedBeanConfigurator.define(clazz, > WebBeansType.MANAGED); > > + > > + return bean; > > + } > > + > > + public boolean isEnterpriseBean( Class clazz ) { > > + return false; > > + } > > + > > + public boolean isEntityBean( Class clazz ) > > + { > > + return (AnnotationUtil.hasClassAnnotation(clazz, Entity.class)); > > + } > > + > > + public boolean isProxy( Object instance ) { > > + return instance.getClass().getName().contains("$$"); > > + } > > + > > + public boolean isStatefulBean( Class clazz ) { > > + return false; > > + } > > + > > + public boolean isStatelessBean( Class clazz ) { > > + return false; > > + } > > + > > + public T getEnterpriseBean(Class beanType, Class > > localInterface) > > + { > > + return null; > > + } > > +} > > \ No newline at end of file > > > > Propchange: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > Added: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContainersImpl.java > > URL: > > > http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContainersImpl.java?rev=826111&view=auto > > > ============================================================================== > > --- > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContainersImpl.java > > (added) > > +++ > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContainersImpl.java > > Fri Oct 16 22:16:39 2009 > > @@ -0,0 +1,74 @@ > > +/* > > + * Licensed to the Apache Software Foundation (ASF) under one or more > > + * contributor license agreements. See the NOTICE file distributed with > this > > + * work for additional information regarding copyright ownership. The > ASF > > + * licenses this file to You under the Apache License, Version 2.0 (the > > + * "License"); you may not use this file except in compliance with the > License. > > + * You may obtain a copy of the License at > > + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by > applicable law > > + * or agreed to in writing, software distributed under the License is > > + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF > ANY > > + * KIND, either express or implied. See the License for the specific > language > > + * governing permissions and limitations under the License. > > + */ > > +package org.apache.webbeans.test.tck; > > + > > +import java.io.File; > > +import java.io.FileOutputStream; > > +import java.io.IOException; > > +import java.io.InputStream; > > + > > +import org.jboss.testharness.api.DeploymentException; > > +import org.jboss.testharness.spi.Containers; > > + > > + > > +public class ContainersImpl implements Containers > > +{ > > + > > + // private Logger logger = Logger.getLogger(ContainersImpl.class); > > + > > + public void cleanup() throws IOException > > + { > > + > > + } > > + > > + public boolean deploy(InputStream archive, String name) > > + { > > + try > > + { > > + if(archive.available() > 0) > > + { > > + File file = new File("target/container/" + name); > > + FileOutputStream os = new FileOutputStream(file); > > + byte temp[] = new byte[512]; > > + > > + while(archive.read(temp) != -1) > > + { > > + os.write(temp); > > + } > > + > > + } > > + } catch (Exception e) > > + { > > + throw new RuntimeException(e); > > + } > > + return false; > > + } > > + > > + public void setup() throws IOException > > + { > > + > > + } > > + > > + public void undeploy(String name) throws IOException > > + { > > + > > + } > > + > > + public DeploymentException getDeploymentException() > > + { > > + // TODO Auto-generated method stub > > + return null; > > + } > > + > > +} > > > > Propchange: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContainersImpl.java > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > Added: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContextsImpl.java > > URL: > > > http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContextsImpl.java?rev=826111&view=auto > > > ============================================================================== > > --- > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContextsImpl.java > > (added) > > +++ > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContextsImpl.java > > Fri Oct 16 22:16:39 2009 > > @@ -0,0 +1,50 @@ > > +/* > > + * Licensed to the Apache Software Foundation (ASF) under one or more > > + * contributor license agreements. See the NOTICE file distributed with > this > > + * work for additional information regarding copyright ownership. The > ASF > > + * licenses this file to You under the Apache License, Version 2.0 (the > > + * "License"); you may not use this file except in compliance with the > License. > > + * You may obtain a copy of the License at > > + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by > applicable law > > + * or agreed to in writing, software distributed under the License is > > + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF > ANY > > + * KIND, either express or implied. See the License for the specific > language > > + * governing permissions and limitations under the License. > > + */ > > +package org.apache.webbeans.test.tck; > > + > > +import org.apache.webbeans.context.AbstractContext; > > +import org.apache.webbeans.context.ContextFactory; > > +import org.apache.webbeans.context.type.ContextTypes; > > +import org.jboss.jsr299.tck.spi.Contexts; > > + > > +public class ContextsImpl implements Contexts > > +{ > > + > > + public AbstractContext getRequestContext() > > + { > > + ContextFactory.initRequestContext(null); > > + return (AbstractContext) > > ContextFactory.getStandartContext(ContextTypes.REQUEST); > > + } > > + > > + public void setActive(AbstractContext context) > > + { > > + context.setActive(true); > > + > > + } > > + > > + public void setInactive(AbstractContext context) > > + { > > + context.setActive(false); > > + } > > + > > + public AbstractContext getDependentContext() { > > + return (AbstractContext) > > ContextFactory.getStandartContext(ContextTypes.DEPENDENT); > > + } > > + > > + public void destroyContext(AbstractContext context) > > + { > > + context.destroy(); > > + } > > + > > +} > > > > Propchange: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ContextsImpl.java > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > Added: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ELImpl.java > > URL: > > > http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ELImpl.java?rev=826111&view=auto > > > ============================================================================== > > --- > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ELImpl.java > > (added) > > +++ > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ELImpl.java > > Fri Oct 16 22:16:39 2009 > > @@ -0,0 +1,119 @@ > > +/* > > + * Licensed to the Apache Software Foundation (ASF) under one or more > > + * contributor license agreements. See the NOTICE file distributed with > this > > + * work for additional information regarding copyright ownership. The > ASF > > + * licenses this file to You under the Apache License, Version 2.0 (the > > + * "License"); you may not use this file except in compliance with the > License. > > + * You may obtain a copy of the License at > > + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by > applicable law > > + * or agreed to in writing, software distributed under the License is > > + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF > ANY > > + * KIND, either express or implied. See the License for the specific > language > > + * governing permissions and limitations under the License. > > + */ > > +package org.apache.webbeans.test.tck; > > + > > +import java.lang.reflect.InvocationTargetException; > > +import java.lang.reflect.Method; > > + > > +import javax.el.ELContext; > > +import javax.el.ELResolver; > > +import javax.el.FunctionMapper; > > +import javax.el.VariableMapper; > > + > > +import org.apache.webbeans.el.WebBeansELResolver; > > +import org.jboss.jsr299.tck.spi.EL; > > + > > +public class ELImpl implements EL > > +{ > > + private WebBeansELResolver resolver = new WebBeansELResolver(); > > + > > + public static class ELContextImpl extends ELContext > > + { > > + > > + @Override > > + public ELResolver getELResolver() > > + { > > + // TODO Auto-generated method stub > > + return null; > > + } > > + > > + @Override > > + public FunctionMapper getFunctionMapper() > > + { > > + // TODO Auto-generated method stub > > + return null; > > + } > > + > > + @Override > > + public VariableMapper getVariableMapper() > > + { > > + // TODO Auto-generated method stub > > + return null; > > + } > > + > > + } > > + > > + @SuppressWarnings("unchecked") > > + public T evaluateMethodExpression(String expression, Class > > expectedType, Class[] expectedParamTypes, Object[] expectedParams) > > + { > > + int firstDot = expression.indexOf('.'); > > + String property = > > expression.substring(expression.indexOf("#"),firstDot) + "}"; //object > name > > + String methodName = > > expression.substring(firstDot+1,expression.length()-1); > > + > > + Object object = evaluateValueExpression(property, expectedType); > > + > > + try > > + { > > + Method method = object.getClass().getMethod(methodName, > > expectedParamTypes); > > + return (T)method.invoke(object, expectedParams); > > + } > > + catch (SecurityException e) > > + { > > + // TODO Auto-generated catch block > > + e.printStackTrace(); > > + } > > + catch (NoSuchMethodException e) > > + { > > + // TODO Auto-generated catch block > > + e.printStackTrace(); > > + } > > + catch (IllegalArgumentException e) > > + { > > + // TODO Auto-generated catch block > > + e.printStackTrace(); > > + } > > + catch (IllegalAccessException e) > > + { > > + // TODO Auto-generated catch block > > + e.printStackTrace(); > > + } > > + catch (InvocationTargetException e) > > + { > > + // TODO Auto-generated catch block > > + e.printStackTrace(); > > + } > > + > > + return null; > > + } > > + > > + @SuppressWarnings("unchecked") > > + public T evaluateValueExpression(String expression, Class > > expectedType) > > + { > > + String property = > > expression.substring(expression.indexOf("#")+2,expression.length()-1); > > + > > + T object = (T) resolver.getValue(new ELContextImpl() , null, > property); > > + > > + return object; > > + } > > + > > + @Override > > + public ELContext createELContext() > > + { > > + // TODO Auto-generated method stub > > + return null; > > + } > > + > > + > > + > > +} > > > > Propchange: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ELImpl.java > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > Added: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ManagersImpl.java > > URL: > > > http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ManagersImpl.java?rev=826111&view=auto > > > ============================================================================== > > --- > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ManagersImpl.java > > (added) > > +++ > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ManagersImpl.java > > Fri Oct 16 22:16:39 2009 > > @@ -0,0 +1,64 @@ > > +/* > > + * Licensed to the Apache Software Foundation (ASF) under one or more > > + * contributor license agreements. See the NOTICE file distributed with > this > > + * work for additional information regarding copyright ownership. The > ASF > > + * licenses this file to You under the Apache License, Version 2.0 (the > > + * "License"); you may not use this file except in compliance with the > License. > > + * You may obtain a copy of the License at > > + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by > applicable law > > + * or agreed to in writing, software distributed under the License is > > + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF > ANY > > + * KIND, either express or implied. See the License for the specific > language > > + * governing permissions and limitations under the License. > > + */ > > +package org.apache.webbeans.test.tck; > > + > > +import javax.enterprise.inject.spi.BeanManager; > > + > > +import org.apache.webbeans.container.BeanManagerImpl; > > +import org.apache.webbeans.container.activity.ActivityManager; > > +import org.apache.webbeans.exception.inject.DefinitionException; > > +import org.jboss.jsr299.tck.spi.Managers; > > +import org.jboss.testharness.api.DeploymentException; > > + > > +public class ManagersImpl implements Managers > > +{ > > + > > + public BeanManager getManager() > > + { > > + BeanManagerImpl impl = > ActivityManager.getInstance().getRootActivity(); > > + > > + if(impl == null) > > + { > > + impl = new BeanManagerImpl(); > > + ActivityManager.getInstance().setRootActivity(impl); > > + } > > + > > + return impl; > > + } > > + > > + public boolean isDefinitionError(DeploymentException > deploymentException) > > + { > > + Throwable cause = deploymentException.getCause(); > > + > > + if(DefinitionException.class.isAssignableFrom(cause.getClass())) > > + { > > + return true; > > + } > > + > > + return false; > > + } > > + > > + public boolean isDeploymentError(DeploymentException > deploymentException) > > + { > > + Throwable cause = deploymentException.getCause(); > > + > > + if(DeploymentException.class.isAssignableFrom(cause.getClass())) > > + { > > + return true; > > + } > > + > > + return false; > > + } > > + > > +} > > > > Propchange: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/ManagersImpl.java > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > Added: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java > > URL: > > > http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java?rev=826111&view=auto > > > ============================================================================== > > --- > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java > > (added) > > +++ > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java > > Fri Oct 16 22:16:39 2009 > > @@ -0,0 +1,134 @@ > > +/* > > + * Licensed to the Apache Software Foundation (ASF) under one or more > > + * contributor license agreements. See the NOTICE file distributed with > this > > + * work for additional information regarding copyright ownership. The > ASF > > + * licenses this file to You under the Apache License, Version 2.0 (the > > + * "License"); you may not use this file except in compliance with the > License. > > + * You may obtain a copy of the License at > > + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by > applicable law > > + * or agreed to in writing, software distributed under the License is > > + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF > ANY > > + * KIND, either express or implied. See the License for the specific > language > > + * governing permissions and limitations under the License. > > + */ > > +package org.apache.webbeans.test.tck; > > + > > +import java.net.URL; > > +import java.util.Iterator; > > + > > +import org.apache.webbeans.context.ContextFactory; > > +import org.apache.webbeans.lifecycle.WebBeansLifeCycle; > > +import org.apache.webbeans.spi.ServiceLoader; > > +import org.apache.webbeans.spi.deployer.MetaDataDiscoveryService; > > +import org.apache.webbeans.test.mock.MockHttpSession; > > +import org.apache.webbeans.test.mock.MockServletContextEvent; > > +import org.apache.webbeans.test.tck.mock.TCKMetaDataDiscoveryImpl; > > +import org.jboss.testharness.api.DeploymentException; > > +import org.jboss.testharness.spi.StandaloneContainers; > > + > > +public class StandaloneContainersImpl implements StandaloneContainers > > +{ > > + private WebBeansLifeCycle lifeCycle = null; > > + > > + private MockServletContextEvent servletContextEvent; > > + > > + private MockHttpSession mockHttpSession; > > + > > + private DeploymentException excpetion; > > + > > + public void deploy(Iterable> classes) throws DeploymentException > > + { > > + initializeContexts(); > > + > > + TCKMetaDataDiscoveryImpl discovery = > > > (TCKMetaDataDiscoveryImpl)ServiceLoader.getService(MetaDataDiscoveryService.class); > > + > > + this.lifeCycle = new WebBeansLifeCycle(); > > + > > + try > > + { > > + Iterator> it = classes.iterator(); > > + while(it.hasNext()) > > + { > > + discovery.addBeanClass(it.next()); > > + } > > + > > + this.lifeCycle.applicationStarted(servletContextEvent); > > + > > + }catch(Throwable e) > > + { > > + this.excpetion = new DeploymentException("Standalone > Container > > Impl.",e); > > + } > > + > > + } > > + > > + > > + public boolean deploy(Iterable> classes, IterablebeansXmls) > > + { > > + try > > + { > > + initializeContexts(); > > + > > + TCKMetaDataDiscoveryImpl discovery = > > > (TCKMetaDataDiscoveryImpl)ServiceLoader.getService(MetaDataDiscoveryService.class); > > + > > + this.lifeCycle = new WebBeansLifeCycle(); > > + > > + Iterator> it = classes.iterator(); > > + while(it.hasNext()) > > + { > > + discovery.addBeanClass(it.next()); > > + } > > + > > + IteratoritUrl = beansXmls.iterator(); > > + while(itUrl.hasNext()) > > + { > > + discovery.addBeanXml(itUrl.next()); > > + } > > + > > + this.lifeCycle.applicationStarted(servletContextEvent); > > + } > > + catch(Throwable e) > > + { > > + this.excpetion = new DeploymentException("Standalone > Container > > Impl.",e); > > + } > > + > > + return true; > > + } > > + > > + > > + private void initializeContexts() > > + { > > + this.mockHttpSession = new MockHttpSession(); > > + > > + ContextFactory.initRequestContext(null); > > + ContextFactory.initSessionContext(mockHttpSession); > > + ContextFactory.initConversationContext(null); > > + > > + this.servletContextEvent = new MockServletContextEvent(); > > + } > > + > > + public void setup() > > + { > > + > > + } > > + > > + public void cleanup() > > + { > > + > > + } > > + > > + > > + public void undeploy() > > + { > > + ContextFactory.destroyRequestContext(null); > > + ContextFactory.destroySessionContext(this.mockHttpSession); > > + ContextFactory.destroyConversationContext(); > > + > > + this.lifeCycle.applicationEnded(this.servletContextEvent); > > + } > > + > > + public DeploymentException getDeploymentException() > > + { > > + return this.excpetion; > > + } > > + > > +} > > > > Propchange: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > Added: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/mock/TCKMetaDataDiscoveryImpl.java > > URL: > > > http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/mock/TCKMetaDataDiscoveryImpl.java?rev=826111&view=auto > > > ============================================================================== > > --- > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/mock/TCKMetaDataDiscoveryImpl.java > > (added) > > +++ > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/mock/TCKMetaDataDiscoveryImpl.java > > Fri Oct 16 22:16:39 2009 > > @@ -0,0 +1,63 @@ > > +/* > > + * Licensed to the Apache Software Foundation (ASF) under one or more > > + * contributor license agreements. See the NOTICE file distributed > with > > + * this work for additional information regarding copyright ownership. > > + * The ASF licenses this file to You under the Apache License, Version > 2.0 > > + * (the "License"); you may not use this file except in compliance with > > + * the License. You may obtain a copy of the License at > > + * > > + * http://www.apache.org/licenses/LICENSE-2.0 > > + * > > + * Unless required by applicable law or agreed to in writing, software > > + * distributed under the License is distributed on an "AS IS" BASIS, > > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > > + * See the License for the specific language governing permissions and > > + * limitations under the License. > > + */ > > +package org.apache.webbeans.test.tck.mock; > > + > > +import java.io.IOException; > > +import java.net.URL; > > + > > +import javassist.ClassPool; > > + > > +import org.apache.webbeans.spi.deployer.AbstractMetaDataDiscovery; > > +import org.apache.webbeans.util.Asserts; > > + > > +public class TCKMetaDataDiscoveryImpl extends AbstractMetaDataDiscovery > > +{ > > + > > + public TCKMetaDataDiscoveryImpl() > > + { > > + super(); > > + } > > + > > + @Override > > + protected void configure() throws Exception > > + { > > + > > + > > + } > > + > > + public void addBeanClass(Class clazz) > > + { > > + Asserts.assertNotNull(clazz); > > + > > + URL url = ClassPool.getDefault().find(clazz.getName()); > > + try > > + { > > + this.getAnnotationDB().scanClass(url.openStream()); > > + } > > + catch (IOException e) > > + { > > + e.printStackTrace(); > > + } > > + } > > + > > + public void addBeanXml(URL url) > > + { > > + Asserts.assertNotNull(url); > > + addWebBeansXmlLocation(url); > > + } > > + > > +} > > > > Propchange: > > > incubator/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/mock/TCKMetaDataDiscoveryImpl.java > > > ------------------------------------------------------------------------------ > > svn:eol-style = native > > > > > -- Gurkan Erdogdu http://gurkanerdogdu.blogspot.com
