fixed it, can you have a look please?
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://rmannibucau.metawerx.net/> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> 2017-10-11 0:14 GMT+02:00 Romain Manni-Bucau <[email protected]>: > Hi > > > Can we revert it and add a flag - false by default - or a scope rule - new > ScopeRule(RequestScoped.class, ...) - to solve it. > > Implicit start hides issues in actual deployment if not controllable. > > > > ---------- Message transféré ---------- > De : <[email protected]> > Date : 10 oct. 2017 20:53 > Objet : svn commit: r1811764 - in /openwebbeans/meecrowave/trunk: ./ > meecrowave-junit/src/main/java/org/apache/meecrowave/junit/ > meecrowave-junit/src/main/java/org/apache/meecrowave/testing/ > meecrowave-junit/src/test/java/org/apache/meecrowave/junit/ meecrowav... > À : <[email protected]> > Cc : > > Author: struberg > Date: Tue Oct 10 19:53:51 2017 > New Revision: 1811764 > > URL: http://svn.apache.org/viewvc?rev=1811764&view=rev > Log: > MEECROWAVE-71 setup RequestContext and SessionContext for each test > > Added: > > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java/org/app/MyAppClass.java > (with props) > > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java/org/app/MyReqClass.java > (with props) > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/resources/ > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/reso > urces/META-INF/ > > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/resources/META-INF/beans.xml > (with props) > Modified: > openwebbeans/meecrowave/trunk/meecrowave-junit/src/main/java > /org/apache/meecrowave/junit/MonoMeecrowave.java > openwebbeans/meecrowave/trunk/meecrowave-junit/src/main/java > /org/apache/meecrowave/testing/MonoBase.java > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java > /org/apache/meecrowave/junit/MonoMeecrowaveRuleTest.java > openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/ma > in/resources/bin/meecrowave.sh > openwebbeans/meecrowave/trunk/pom.xml > > Modified: openwebbeans/meecrowave/trunk/meecrowave-junit/src/main/java > /org/apache/meecrowave/junit/MonoMeecrowave.java > URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/m > eecrowave-junit/src/main/java/org/apache/meecrowave/junit/ > MonoMeecrowave.java?rev=1811764&r1=1811763&r2=1811764&view=diff > ============================================================ > ================== > --- openwebbeans/meecrowave/trunk/meecrowave-junit/src/main/java > /org/apache/meecrowave/junit/MonoMeecrowave.java (original) > +++ openwebbeans/meecrowave/trunk/meecrowave-junit/src/main/java > /org/apache/meecrowave/junit/MonoMeecrowave.java Tue Oct 10 19:53:51 2017 > @@ -21,15 +21,24 @@ package org.apache.meecrowave.junit; > import org.apache.meecrowave.Meecrowave; > import org.apache.meecrowave.testing.Injector; > import org.apache.meecrowave.testing.MonoBase; > +import org.apache.webbeans.config.WebBeansContext; > +import org.apache.webbeans.spi.ContextsService; > import org.junit.rules.MethodRule; > import org.junit.runners.BlockJUnit4ClassRunner; > import org.junit.runners.model.InitializationError; > import org.junit.runners.model.Statement; > > +import javax.enterprise.context.RequestScoped; > +import javax.enterprise.context.SessionScoped; > import javax.enterprise.context.spi.CreationalContext; > import java.util.List; > > -// a MeecrowaveRule starting a single container, very awesome for > forkCount=1, reuseForks=true > +/** > + * A MeecrowaveRule starting a single container. > + * Very awesome for forkCount=1, reuseForks=true > + * > + */ > + > public class MonoMeecrowave { > private static final MonoBase BASE = new MonoBase(); > private static final AutoCloseable NOOP_CLOSEABLE = () -> { > @@ -47,12 +56,18 @@ public class MonoMeecrowave { > @Override > public void evaluate() throws Throwable { > BASE.startIfNeeded(); > + ContextsService contextsService = > WebBeansContext.currentInstance().getContextsService(); > + > configInjection(test.getClass(), test); > final CreationalContext<?> creationalContext = > Injector.inject(test); > try { > + contextsService.startContext(RequestScoped.class, > null); > + contextsService.startContext(SessionScoped.class, > null); > base.evaluate(); > } finally { > creationalContext.release(); > + contextsService.endContext(SessionScoped.class, > null); > + contextsService.endContext(RequestScoped.class, > null); > } > } > > > Modified: openwebbeans/meecrowave/trunk/meecrowave-junit/src/main/java > /org/apache/meecrowave/testing/MonoBase.java > URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/m > eecrowave-junit/src/main/java/org/apache/meecrowave/testing/ > MonoBase.java?rev=1811764&r1=1811763&r2=1811764&view=diff > ============================================================ > ================== > --- openwebbeans/meecrowave/trunk/meecrowave-junit/src/main/java > /org/apache/meecrowave/testing/MonoBase.java (original) > +++ openwebbeans/meecrowave/trunk/meecrowave-junit/src/main/java > /org/apache/meecrowave/testing/MonoBase.java Tue Oct 10 19:53:51 2017 > @@ -27,7 +27,7 @@ import java.util.concurrent.atomic.Atomi > import java.util.stream.StreamSupport; > > public class MonoBase { > - private static final AtomicReference<AutoCloseable> CONTAINER = new > AtomicReference<>(); > + private static final AtomicReference<Meecrowave> CONTAINER = new > AtomicReference<>(); > private static final AtomicReference<Meecrowave.Builder> > CONFIGURATION = new AtomicReference<>(); > > public Meecrowave.Builder doBoot() { > @@ -90,6 +90,8 @@ public class MonoBase { > return getConfiguration(); > } > > + > + > public interface Configuration { > default int order() { > return 0; > > Modified: openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java > /org/apache/meecrowave/junit/MonoMeecrowaveRuleTest.java > URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/m > eecrowave-junit/src/test/java/org/apache/meecrowave/junit/ > MonoMeecrowaveRuleTest.java?rev=1811764&r1=1811763&r2=1811764&view=diff > ============================================================ > ================== > --- openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java > /org/apache/meecrowave/junit/MonoMeecrowaveRuleTest.java (original) > +++ openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java > /org/apache/meecrowave/junit/MonoMeecrowaveRuleTest.java Tue Oct 10 > 19:53:51 2017 > @@ -21,9 +21,12 @@ package org.apache.meecrowave.junit; > import org.apache.meecrowave.Meecrowave; > import org.apache.meecrowave.io.IO; > import org.apache.meecrowave.testing.ConfigurationInject; > +import org.app.MyAppClass; > +import org.app.MyReqClass; > import org.junit.Test; > import org.junit.runner.RunWith; > > +import javax.inject.Inject; > import java.io.IOException; > import java.io.InputStream; > import java.net.URL; > @@ -38,14 +41,43 @@ public class MonoMeecrowaveRuleTest { > public static final MonoMeecrowave.Rule RULE = new > MonoMeecrowave.Rule(); > */ > > + private static int count = 0; > + > @ConfigurationInject > private Meecrowave.Builder config; > > + private @Inject MyAppClass appClass; > + private @Inject MyReqClass reqClass; > + > + > @Test > public void test() throws IOException { > assertEquals("simple", slurp(new URL("http://localhost:" + > config.getHttpPort() + "/api/test"))); > + > + testScopes(); > + } > + > + @Test > + public void anotherTest() throws IOException { > + assertEquals("simple", slurp(new URL("http://localhost:" + > config.getHttpPort() + "/api/test"))); > + > + testScopes(); > + } > + > + private void testScopes() { > + count++; > + > + if (count == 2) { > + assertEquals("beenhere", appClass.getX()); > + assertEquals("init", reqClass.getX()); > + } > + else { > + reqClass.setX("beenhere"); > + appClass.setX("beenhere"); > + } > } > > + > private String slurp(final URL url) { > try (final InputStream is = url.openStream()) { > return IO.toString(is); > @@ -54,4 +86,5 @@ public class MonoMeecrowaveRuleTest { > } > return null; > } > + > } > > Added: openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java > /org/app/MyAppClass.java > URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/m > eecrowave-junit/src/test/java/org/app/MyAppClass.java?rev= > 1811764&view=auto > ============================================================ > ================== > --- > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java/org/app/MyAppClass.java > (added) > +++ > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java/org/app/MyAppClass.java > Tue Oct 10 19:53:51 2017 > @@ -0,0 +1,35 @@ > +/* > + * 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.app; > + > +import javax.enterprise.context.ApplicationScoped; > + > +/** > + * @author <a href="mailto:[email protected]">Mark Struberg</a> > + */ > +@ApplicationScoped > +public class MyAppClass { > + private String x = "init"; > + > + public String getX() { > + return x; > + } > + > + public void setX(String x) { > + this.x = x; > + } > +} > > Propchange: openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java > /org/app/MyAppClass.java > ------------------------------------------------------------ > ------------------ > svn:eol-style = native > > Added: openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java > /org/app/MyReqClass.java > URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/m > eecrowave-junit/src/test/java/org/app/MyReqClass.java?rev= > 1811764&view=auto > ============================================================ > ================== > --- > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java/org/app/MyReqClass.java > (added) > +++ > openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java/org/app/MyReqClass.java > Tue Oct 10 19:53:51 2017 > @@ -0,0 +1,35 @@ > +/* > + * 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.app; > + > +import javax.enterprise.context.RequestScoped; > + > +/** > + * @author <a href="mailto:[email protected]">Mark Struberg</a> > + */ > +@RequestScoped > +public class MyReqClass { > + private String x = "init"; > + > + public String getX() { > + return x; > + } > + > + public void setX(String x) { > + this.x = x; > + } > +} > > Propchange: openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/java > /org/app/MyReqClass.java > ------------------------------------------------------------ > ------------------ > svn:eol-style = native > > Added: openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/reso > urces/META-INF/beans.xml > URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/m > eecrowave-junit/src/test/resources/META-INF/beans.xml?rev= > 1811764&view=auto > ============================================================ > ================== > (empty) > > Propchange: openwebbeans/meecrowave/trunk/meecrowave-junit/src/test/reso > urces/META-INF/beans.xml > ------------------------------------------------------------ > ------------------ > svn:eol-style = native > > Modified: openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/ma > in/resources/bin/meecrowave.sh > URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/m > eecrowave-maven-plugin/src/main/resources/bin/meecrowave.sh? > rev=1811764&r1=1811763&r2=1811764&view=diff > ============================================================ > ================== > --- > openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.sh > (original) > +++ > openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.sh > Tue Oct 10 19:53:51 2017 > @@ -209,6 +209,7 @@ if $cygwin; then > MEECROWAVE_BASE=`cygpath --absolute --windows "$MEECROWAVE_BASE"` > MEECROWAVE_TMPDIR=`cygpath --absolute --windows "$MEECROWAVE_TMPDIR"` > CLASSPATH=`cygpath --path --windows "$CLASSPATH"` > + JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"` > fi > > if [ -z "$JSSE_OPTS" ] ; then > > Modified: openwebbeans/meecrowave/trunk/pom.xml > URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/p > om.xml?rev=1811764&r1=1811763&r2=1811764&view=diff > ============================================================ > ================== > --- openwebbeans/meecrowave/trunk/pom.xml (original) > +++ openwebbeans/meecrowave/trunk/pom.xml Tue Oct 10 19:53:51 2017 > @@ -93,7 +93,6 @@ > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-surefire-plugin</artifactId> > - <version>2.19.1</version> > <configuration> > <trimStackTrace>false</trimStackTrace> > </configuration> > > > >
