diff --git a/impl/core/src/test/java/management/ManagementTestCase.java b/impl/core/src/test/java/management/ManagementTestCase.java
index a6dfbc6..9bc802b 100644
--- a/impl/core/src/test/java/management/ManagementTestCase.java
+++ b/impl/core/src/test/java/management/ManagementTestCase.java
@@ -42,6 +42,8 @@ import junit.framework.Assert;
import management.testclasses.DummyManagedClass;
import management.testclasses.DummyManagementExtension;
import management.testclasses.ManagedClassStore;
+import management.testclasses.RequestScopeBeanClient;
+import management.testclasses.RequestScopedClass;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
@@ -75,7 +77,11 @@ public class ManagementTestCase {
new File("src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension"),
"services/javax.enterprise.inject.spi.Extension")
.addPackages(false, ManagementTestCase.class.getPackage())
- .addClasses(DummyManagementExtension.class, DummyManagedClass.class, ManagedClassStore.class);
+ .addClasses(DummyManagementExtension.class
+ , DummyManagedClass.class
+ , ManagedClassStore.class
+ , RequestScopeBeanClient.class
+ , RequestScopedClass.class);
}
@Test
@@ -161,4 +167,18 @@ public class ManagementTestCase {
}
}
+
+ @Test
+ public void testRequestScopedOperation() {
+ ManagedClassStore store = Beans.getReference(ManagedClassStore.class);
+
+ //Esta operação faz multiplos acessos a um bean RequestScoped. Durante a operação todos os acessos devem
+ //operar sob a mesma instância, mas uma segunda invocação deve operar em uma instância nova
+ Object info = store.invoke(DummyManagedClass.class, "requestScopedOperation");
+ Assert.assertEquals("-OPERATION ONE CALLED--OPERATION TWO CALLED-", info);
+
+ //Segunda invocação para testar se uma nova instância é criada, já que esse é um novo request.
+ info = store.invoke(DummyManagedClass.class, "requestScopedOperation");
+ Assert.assertEquals("-OPERATION ONE CALLED--OPERATION TWO CALLED-", info);
+ }
}
diff --git a/impl/core/src/test/java/management/testclasses/DummyManagedClass.java b/impl/core/src/test/java/management/testclasses/DummyManagedClass.java
index 54198bf..a5d44b5 100644
--- a/impl/core/src/test/java/management/testclasses/DummyManagedClass.java
+++ b/impl/core/src/test/java/management/testclasses/DummyManagedClass.java
@@ -43,6 +43,7 @@ import javax.validation.constraints.NotNull;
import br.gov.frameworkdemoiselle.annotation.ManagedOperation;
import br.gov.frameworkdemoiselle.annotation.ManagedProperty;
import br.gov.frameworkdemoiselle.stereotype.ManagementController;
+import br.gov.frameworkdemoiselle.util.Beans;
@ManagementController
public class DummyManagedClass {
@@ -196,7 +197,15 @@ public class DummyManagedClass {
this.gender = gender;
}
-
+ @ManagedOperation
+ public String requestScopedOperation(){
+ RequestScopeBeanClient client = Beans.getReference(RequestScopeBeanClient.class);
+ client.operationOne();
+ client.operationTwo();
+
+ RequestScopedClass bean = Beans.getReference(RequestScopedClass.class);
+ return bean.getInfo();
+ }
}
diff --git a/impl/core/src/test/java/management/testclasses/RequestScopeBeanClient.java b/impl/core/src/test/java/management/testclasses/RequestScopeBeanClient.java
new file mode 100644
index 0000000..e218371
--- /dev/null
+++ b/impl/core/src/test/java/management/testclasses/RequestScopeBeanClient.java
@@ -0,0 +1,22 @@
+package management.testclasses;
+
+import br.gov.frameworkdemoiselle.util.Beans;
+
+
+public class RequestScopeBeanClient {
+
+ public void operationOne(){
+
+ RequestScopedClass bean = Beans.getReference(RequestScopedClass.class);
+ bean.setInfo( bean.getInfo() + "-OPERATION ONE CALLED-");
+
+ }
+
+ public void operationTwo(){
+
+ RequestScopedClass bean = Beans.getReference(RequestScopedClass.class);
+ bean.setInfo( bean.getInfo() + "-OPERATION TWO CALLED-");
+
+ }
+
+}
diff --git a/impl/core/src/test/java/management/testclasses/RequestScopedClass.java b/impl/core/src/test/java/management/testclasses/RequestScopedClass.java
new file mode 100644
index 0000000..70ff672
--- /dev/null
+++ b/impl/core/src/test/java/management/testclasses/RequestScopedClass.java
@@ -0,0 +1,22 @@
+package management.testclasses;
+
+import javax.enterprise.context.RequestScoped;
+
+@RequestScoped
+public class RequestScopedClass {
+
+ private String info = "";
+
+
+ public String getInfo() {
+ return info;
+ }
+
+
+ public void setInfo(String info) {
+ this.info = info;
+ }
+
+
+
+}
diff --git a/parent/bom/pom.xml b/parent/bom/pom.xml
index 9f6364a..fd893c8 100755
--- a/parent/bom/pom.xml
+++ b/parent/bom/pom.xml
@@ -349,6 +349,11 @@
${arquillian.weld.se.embedded.version}
+ org.jboss.arquillian.container
+ arquillian-weld-ee-embedded-1.1
+ ${arquillian.weld.ee.embedded.version}
+
+
org.jboss.weld.se
weld-se-core
${weld.version}
@@ -399,6 +404,7 @@
1.0.3.Final
1.0.0.CR6
+ 1.0.0.CR6
1.4.6
3.4
--
libgit2 0.21.2