[weld-commits] Weld SVN: r5100 - in extensions/trunk/se/src/test: java/org/jboss/weld/environment/se/test/beans and 2 other directories.
weld-commits at lists.jboss.org
weld-commits at lists.jboss.org
Wed Nov 18 18:13:17 EST 2009
Author: peteroyle
Date: 2009-11-18 18:13:17 -0500 (Wed, 18 Nov 2009)
New Revision: 5100
Added:
extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/InterceptorsTest.java
extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/beans/InterceptorTestBean.java
extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/
extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Aggregated.java
extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/AggregatingInterceptor.java
extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Recorded.java
extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/RecordingInterceptor.java
extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Tracked.java
Modified:
extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/beans/MainTestBean.java
extensions/trunk/se/src/test/resources/META-INF/beans.xml
Log:
Added some tests for interceptors in SE, but they're currently failing. May be a configuration issue.
Added: extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/InterceptorsTest.java
===================================================================
--- extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/InterceptorsTest.java (rev 0)
+++ extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/InterceptorsTest.java 2009-11-18 23:13:17 UTC (rev 5100)
@@ -0,0 +1,120 @@
+/**
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual
+ * contributors by the @authors tag. See the copyright.txt in the
+ * distribution for a full listing of individual contributors.
+ *
+ * Licensed 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.jboss.weld.environment.se.test;
+
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.util.AnnotationLiteral;
+
+import org.jboss.weld.environment.se.StartMain;
+import org.jboss.weld.environment.se.events.Shutdown;
+import org.jboss.weld.environment.se.test.beans.CustomEvent;
+import org.jboss.weld.environment.se.test.beans.InitObserverTestBean;
+import org.jboss.weld.environment.se.test.beans.InterceptorTestBean;
+import org.jboss.weld.environment.se.test.beans.MainTestBean;
+import org.jboss.weld.environment.se.test.beans.ObserverTestBean;
+import org.jboss.weld.environment.se.test.beans.ParametersTestBean;
+import org.jboss.weld.environment.se.test.interceptors.AggregatingInterceptor;
+import org.jboss.weld.environment.se.test.interceptors.RecordingInterceptor;
+import org.jboss.weld.environment.se.util.WeldManagerUtils;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * @author Peter Royle
+ */
+public class InterceptorsTest
+{
+
+ public static String[] ARGS_EMPTY = new String[] {};
+
+ /**
+ * Test that interceptors work as expected in SE.
+ */
+ @Test
+ public void testInterceptors()
+ {
+ String[] args = ARGS_EMPTY;
+ BeanManager manager = new StartMain(args).go();
+
+ InterceptorTestBean intTestBean = WeldManagerUtils.getInstanceByType(manager, InterceptorTestBean.class);
+ Assert.assertNotNull(intTestBean);
+
+ intTestBean.doSomethingRecorded();
+ System.out.println(RecordingInterceptor.methodsRecorded);
+ System.out.println(AggregatingInterceptor.methodsCalled);
+// FIXME: This fails
+// Assert.assertTrue(RecordingInterceptor.methodsRecorded.contains("doSomethingRecorded"));
+
+ intTestBean.doSomethingRecordedAndAggregated();
+ System.out.println(RecordingInterceptor.methodsRecorded);
+ System.out.println(AggregatingInterceptor.methodsCalled);
+// FIXME: This fails
+// Assert.assertEquals(1, AggregatingInterceptor.methodsCalled);
+
+ shutdownManager(manager);
+ }
+
+ /**
+ * Test of main method, of class StartMain when no command-line args are
+ * provided.
+ */
+ @Test
+ public void testMainEmptyArgs()
+ {
+ BeanManager manager = new StartMain(ARGS_EMPTY).go();
+
+ MainTestBean mainTestBean = WeldManagerUtils.getInstanceByType(manager, MainTestBean.class);
+ Assert.assertNotNull(mainTestBean);
+
+ ParametersTestBean paramsBean = mainTestBean.getParametersTestBean();
+ Assert.assertNotNull(paramsBean);
+ Assert.assertNotNull(paramsBean.getParameters());
+
+ shutdownManager(manager);
+ }
+
+ @Test
+ public void testObservers()
+ {
+ InitObserverTestBean.reset();
+ ObserverTestBean.reset();
+
+ BeanManager manager = new StartMain(ARGS_EMPTY).go();
+ manager.fireEvent(new CustomEvent());
+
+ Assert.assertTrue(ObserverTestBean.isBuiltInObserved());
+ Assert.assertTrue(ObserverTestBean.isCustomObserved());
+ Assert.assertTrue(ObserverTestBean.isInitObserved());
+
+ Assert.assertTrue(InitObserverTestBean.isInitObserved());
+ }
+
+ private void shutdownManager(BeanManager manager)
+ {
+ manager.fireEvent(manager, new ShutdownAnnotation());
+ }
+
+ private static class ShutdownAnnotation extends AnnotationLiteral<Shutdown>
+ {
+
+ public ShutdownAnnotation()
+ {
+ }
+ }
+
+}
Added: extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/beans/InterceptorTestBean.java
===================================================================
--- extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/beans/InterceptorTestBean.java (rev 0)
+++ extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/beans/InterceptorTestBean.java 2009-11-18 23:13:17 UTC (rev 5100)
@@ -0,0 +1,40 @@
+/**
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual
+ * contributors by the @authors tag. See the copyright.txt in the
+ * distribution for a full listing of individual contributors.
+ *
+ * Licensed 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.jboss.weld.environment.se.test.beans;
+
+import javax.enterprise.context.ApplicationScoped;
+import org.jboss.weld.environment.se.test.interceptors.Aggregated;
+import org.jboss.weld.environment.se.test.interceptors.Recorded;
+
+/**
+ *
+ * @author Peter Royle
+ */
+ at Recorded
+ at ApplicationScoped
+public class InterceptorTestBean {
+
+ public void doSomethingRecorded() {
+ System.out.println("this should be recorded");
+ }
+
+ @Aggregated
+ public void doSomethingRecordedAndAggregated() {
+ System.out.println("This should be aggregated");
+ }
+
+}
Modified: extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/beans/MainTestBean.java
===================================================================
--- extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/beans/MainTestBean.java 2009-11-18 15:56:48 UTC (rev 5099)
+++ extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/beans/MainTestBean.java 2009-11-18 23:13:17 UTC (rev 5100)
@@ -16,7 +16,6 @@
*/
package org.jboss.weld.environment.se.test.beans;
-import java.io.Serializable;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterDeploymentValidation;
@@ -27,7 +26,7 @@
* @author Peter Royle
*/
@ApplicationScoped
-public class MainTestBean implements Serializable
+public class MainTestBean
{
boolean initialised = false;
Added: extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Aggregated.java
===================================================================
--- extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Aggregated.java (rev 0)
+++ extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Aggregated.java 2009-11-18 23:13:17 UTC (rev 5100)
@@ -0,0 +1,36 @@
+/**
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual
+ * contributors by the @authors tag. See the copyright.txt in the
+ * distribution for a full listing of individual contributors.
+ *
+ * Licensed 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.jboss.weld.environment.se.test.interceptors;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.ElementType.METHOD;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import javax.interceptor.InterceptorBinding;
+
+/**
+ * Test annotation used to apply the AggregatingInterceptor to types and methods.
+ * @author Peter Royle
+ */
+ at Inherited
+ at InterceptorBinding
+ at Target({TYPE, METHOD})
+ at Retention(RUNTIME)
+public @interface Aggregated { }
Added: extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/AggregatingInterceptor.java
===================================================================
--- extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/AggregatingInterceptor.java (rev 0)
+++ extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/AggregatingInterceptor.java 2009-11-18 23:13:17 UTC (rev 5100)
@@ -0,0 +1,40 @@
+/**
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual
+ * contributors by the @authors tag. See the copyright.txt in the
+ * distribution for a full listing of individual contributors.
+ *
+ * Licensed 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.jboss.weld.environment.se.test.interceptors;
+
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.Interceptor;
+import javax.interceptor.InvocationContext;
+
+/**
+ * @author Peter Royle
+ */
+ at Recorded @Interceptor
+public class AggregatingInterceptor {
+
+ public static int methodsCalled = 0;
+
+ public AggregatingInterceptor() {
+ methodsCalled = 0;
+ }
+
+ @AroundInvoke
+ public void recordMEthodCall(InvocationContext ctx) {
+ methodsCalled ++;
+ }
+}
Added: extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Recorded.java
===================================================================
--- extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Recorded.java (rev 0)
+++ extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Recorded.java 2009-11-18 23:13:17 UTC (rev 5100)
@@ -0,0 +1,36 @@
+/**
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual
+ * contributors by the @authors tag. See the copyright.txt in the
+ * distribution for a full listing of individual contributors.
+ *
+ * Licensed 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.jboss.weld.environment.se.test.interceptors;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.ElementType.METHOD;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import javax.interceptor.InterceptorBinding;
+
+/**
+ * Test annotation used to apply the RecordingInterceptor to types and methods.
+ * @author Peter Royle
+ */
+ at Inherited
+ at InterceptorBinding
+ at Target({TYPE, METHOD})
+ at Retention(RUNTIME)
+public @interface Recorded { }
Added: extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/RecordingInterceptor.java
===================================================================
--- extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/RecordingInterceptor.java (rev 0)
+++ extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/RecordingInterceptor.java 2009-11-18 23:13:17 UTC (rev 5100)
@@ -0,0 +1,44 @@
+/**
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual
+ * contributors by the @authors tag. See the copyright.txt in the
+ * distribution for a full listing of individual contributors.
+ *
+ * Licensed 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.jboss.weld.environment.se.test.interceptors;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.Interceptor;
+import javax.interceptor.InvocationContext;
+
+/**
+ * @author Peter Royle
+ */
+ at Recorded @Interceptor
+public class RecordingInterceptor {
+
+ public static List<String> methodsRecorded = new ArrayList<String>();
+
+ public RecordingInterceptor() {
+ methodsRecorded.clear();
+ }
+
+ @AroundInvoke
+ public void recordMethodCall(InvocationContext ctx) {
+ final String methodName = ctx.getMethod().getName();
+ System.out.println("Recording method: " + methodName);
+ methodsRecorded.add(methodName);
+ }
+}
Added: extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Tracked.java
===================================================================
--- extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Tracked.java (rev 0)
+++ extensions/trunk/se/src/test/java/org/jboss/weld/environment/se/test/interceptors/Tracked.java 2009-11-18 23:13:17 UTC (rev 5100)
@@ -0,0 +1,38 @@
+/**
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual
+ * contributors by the @authors tag. See the copyright.txt in the
+ * distribution for a full listing of individual contributors.
+ *
+ * Licensed 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.jboss.weld.environment.se.test.interceptors;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.ElementType.METHOD;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import javax.interceptor.InterceptorBinding;
+
+/**
+ * Test annotation used to apply both the RecordingInterceptor and the AggregatingInterceptor to types and methods.
+ * @author Peter Royle
+ */
+ at Inherited
+ at InterceptorBinding
+ at Target({TYPE, METHOD})
+ at Retention(RUNTIME)
+ at Recorded
+ at Aggregated
+public @interface Tracked { }
Modified: extensions/trunk/se/src/test/resources/META-INF/beans.xml
===================================================================
--- extensions/trunk/se/src/test/resources/META-INF/beans.xml 2009-11-18 15:56:48 UTC (rev 5099)
+++ extensions/trunk/se/src/test/resources/META-INF/beans.xml 2009-11-18 23:13:17 UTC (rev 5100)
@@ -16,4 +16,9 @@
limitations under the License.
-->
-<beans></beans>
+<beans>
+ <interceptors>
+ <class>org.jboss.weld.environment.se.test.interceptors.RecordingInterceptor</class>
+ <class>org.jboss.weld.environment.se.test.interceptors.AggregatingInterceptor</class>
+ </interceptors>
+</beans>
More information about the weld-commits
mailing list