You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2016/12/03 16:37:27 UTC
[01/50] tomee git commit: dont warn log4j is not there cause
log4j.configurationFile was found,
this logs a warn with log4j2 which is quite inconvenient for prod monitoring
[Forced Update!]
Repository: tomee
Updated Branches:
refs/heads/tomee-1.7.x c34885ec7 -> 1f4b821b9 (forced update)
dont warn log4j is not there cause log4j.configurationFile was found, this logs a warn with log4j2 which is quite inconvenient for prod monitoring
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/43342dbc
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/43342dbc
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/43342dbc
Branch: refs/heads/tomee-1.7.x
Commit: 43342dbc6a3df54c5b2502471da8ebcbdbd8bd0a
Parents: 0189b84
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 19:49:16 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 19:49:16 2016 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/openejb/util/Logger.java | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/43342dbc/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java b/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
index 40f422b..edb563b 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
@@ -142,6 +142,11 @@ public class Logger {
if (configFile.size() == 0 && systemProperties.size() == 0) {
return;
}
+ if (systemProperties.size() == 1 && "log4j.configurationFile".equals(systemProperties.stringPropertyNames().iterator().next())) {
+ // not a logger config but the overall config
+ // since log4j2 uses it too we can't pollute logs with warnings there for that only
+ return;
+ }
final LogStream stream = logStreamFactory.createLogStream(LogCategory.OPENEJB);
[32/50] tomee git commit: trying to ensure we build on j7 even using
j8 features in some tests
Posted by rm...@apache.org.
trying to ensure we build on j7 even using j8 features in some tests
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/b95c9292
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/b95c9292
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/b95c9292
Branch: refs/heads/tomee-1.7.x
Commit: b95c9292c00bfa9816908ab1c38abc8524847a38
Parents: c31477c
Author: rmannibucau <rm...@apache.org>
Authored: Fri Oct 14 11:43:24 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Oct 14 11:43:24 2016 +0200
----------------------------------------------------------------------
.../org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/b95c9292/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
----------------------------------------------------------------------
diff --git a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java b/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
index e7e617e..5022bd8 100644
--- a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
+++ b/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
@@ -23,6 +23,7 @@ import org.apache.openejb.config.DeploymentFilterable;
import org.apache.openejb.loader.IO;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.util.NetworkUtil;
+import org.junit.Assume;
import org.junit.Before;
import org.junit.Test;
@@ -207,6 +208,8 @@ public class TomEEEmbeddedMojoTest {
@Test
public void customScript() throws Exception {
+ Assume.assumeFalse(System.getProperty("java.version").startsWith("1.7"));
+
// we use a dynamic InputStream to be able to simulate commands without hacking System.in
final Input input = new Input();
final Semaphore reloaded = new Semaphore(0);
[08/50] tomee git commit: few more library exclude for shades +
allowing to exclude only some classes too
Posted by rm...@apache.org.
few more library exclude for shades + allowing to exclude only some classes too
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/8b40e93e
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/8b40e93e
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/8b40e93e
Branch: refs/heads/tomee-1.7.x
Commit: 8b40e93ecd5d4bae2a773927064a837e846ee4c4
Parents: 0abf01b
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 21:40:15 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 21:40:15 2016 +0200
----------------------------------------------------------------------
.../org/apache/openejb/config/ContainerClassesFilterTest.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/8b40e93e/container/openejb-core/src/test/java/org/apache/openejb/config/ContainerClassesFilterTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/config/ContainerClassesFilterTest.java b/container/openejb-core/src/test/java/org/apache/openejb/config/ContainerClassesFilterTest.java
index 9adad42..a5a0b89 100644
--- a/container/openejb-core/src/test/java/org/apache/openejb/config/ContainerClassesFilterTest.java
+++ b/container/openejb-core/src/test/java/org/apache/openejb/config/ContainerClassesFilterTest.java
@@ -34,6 +34,7 @@ public class ContainerClassesFilterTest {
assertFalse(filter.accept("org.apache.openejb.Bar"));
assertFalse(filter.accept("org.apache.openejb.foo.Bar"));
assertFalse(filter.accept("org.jasypt.dfzg.Bar"));
- assertFalse(filter.accept("org.apache.commons.dbcp2.AbandonedTrace"));
+ assertFalse(filter.accept("org.codehaus.swizzle.Grep"));
+ assertTrue(filter.accept("org.codehaus.swizzle.Gre"));
}
}
[12/50] tomee git commit: wiring TomEEEmbeddedArg in
TomEEEmbeddedApplicationRunner
Posted by rm...@apache.org.
wiring TomEEEmbeddedArg in TomEEEmbeddedApplicationRunner
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/63792008
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/63792008
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/63792008
Branch: refs/heads/tomee-1.7.x
Commit: 63792008eb783003970777fe43ca87a264d9d4ec
Parents: dafe6d2
Author: rmannibucau <rm...@apache.org>
Authored: Sat Oct 1 11:18:58 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Sat Oct 1 11:18:58 2016 +0200
----------------------------------------------------------------------
.../TomEEEmbeddedApplicationRunner.java | 27 +++++++++++---------
.../embedded/component/TomEEEmbeddedArgs.java | 6 +++++
2 files changed, 21 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/63792008/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index c16b970..12033d2 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -17,6 +17,7 @@
package org.apache.tomee.embedded;
import org.apache.openejb.config.DeploymentsResolver;
+import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.testing.Application;
import org.apache.openejb.testing.ApplicationComposers;
import org.apache.openejb.testing.Classes;
@@ -24,6 +25,7 @@ import org.apache.openejb.testing.ContainerProperties;
import org.apache.openejb.testing.Jars;
import org.apache.openejb.testing.RandomPort;
import org.apache.openejb.testing.WebResource;
+import org.apache.tomee.embedded.component.TomEEEmbeddedArgs;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.inject.OWBInjector;
import org.apache.xbean.finder.AnnotationFinder;
@@ -87,7 +89,7 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
}
}
try {
- start(app.getClass(), overrides);
+ start(app.getClass(), overrides, args);
return this;
} catch (final Exception e) {
throw new IllegalStateException(e);
@@ -102,7 +104,7 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
return app;
}
- public synchronized void start(final Class<?> marker, final Properties config) throws Exception {
+ public synchronized void start(final Class<?> marker, final Properties config, final String... args) throws Exception {
if (started) {
return;
}
@@ -195,7 +197,7 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
}
final Jars jars = appClass.getAnnotation(Jars.class);
- List<URL> urls = null;
+ final List<URL> urls;
if (jars != null) {
final Collection<File> files = ApplicationComposers.findFiles(jars);
urls = new ArrayList<>(files.size());
@@ -225,15 +227,16 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
configuration.loadFromProperties(config);
}
- final Container container = new Container(configuration)
- .deploy(new Container.DeploymentRequest(
- context,
- // call ClasspathSearcher that lazily since container needs to be started to not preload logging
- urls == null ? new DeploymentsResolver.ClasspathSearcher().loadUrls(Thread.currentThread().getContextClassLoader()).getUrls() : urls,
- webResource != null ? new File(webResource) : null,
- true,
- null,
- archive));
+ final Container container = new Container(configuration);
+ SystemInstance.get().setComponent(TomEEEmbeddedArgs.class, new TomEEEmbeddedArgs(args, null));
+ container.deploy(new Container.DeploymentRequest(
+ context,
+ // call ClasspathSearcher that lazily since container needs to be started to not preload logging
+ urls == null ? new DeploymentsResolver.ClasspathSearcher().loadUrls(Thread.currentThread().getContextClassLoader()).getUrls() : urls,
+ webResource != null ? new File(webResource) : null,
+ true,
+ null,
+ archive));
for (final Map.Entry<String, Field> f : ports.entrySet()) {
switch (f.getKey()) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/63792008/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/component/TomEEEmbeddedArgs.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/component/TomEEEmbeddedArgs.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/component/TomEEEmbeddedArgs.java
index 51bd8c5..6750364 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/component/TomEEEmbeddedArgs.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/component/TomEEEmbeddedArgs.java
@@ -27,10 +27,16 @@ public class TomEEEmbeddedArgs {
this.commandLine = commandLine;
}
+ /**
+ * @return the args passed to the launcher.
+ */
public String[] getArgs() {
return args;
}
+ /**
+ * @return the command like if used from tomee Main/FatApp, null otherwise.
+ */
public CommandLine getCommandLine() {
return commandLine;
}
[43/50] tomee git commit: TOMEE-1962 deprecate
LocalInitialContextFactory
Posted by rm...@apache.org.
TOMEE-1962 deprecate LocalInitialContextFactory
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/1ead0093
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/1ead0093
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/1ead0093
Branch: refs/heads/tomee-1.7.x
Commit: 1ead00932d18728d6b66c923f76953ee4ac7914d
Parents: e0bbf0b
Author: rmannibucau <rm...@apache.org>
Authored: Thu Oct 20 18:27:57 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Oct 20 18:27:57 2016 +0200
----------------------------------------------------------------------
.../core/LocalInitialContextFactory.java | 1 +
.../core/OpenEJBInitialContextFactory.java | 76 ++++++++++++++++
.../client/LocalInitialContextFactory.java | 1 +
.../core/OpenEJBInitialContextFactoryTest.java | 92 ++++++++++++++++++++
4 files changed, 170 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/1ead0093/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContextFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContextFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContextFactory.java
index ef318e0..de7961c 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContextFactory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/LocalInitialContextFactory.java
@@ -34,6 +34,7 @@ import java.util.concurrent.locks.ReentrantLock;
* @version $Rev$ $Date$
*/
@SuppressWarnings("UseOfObsoleteCollectionType")
+@Deprecated // use org.apache.openejb.core.OpenEJBInitialContextFactory
public class LocalInitialContextFactory implements InitialContextFactory {
private static final ReentrantLock lock = new ReentrantLock();
http://git-wip-us.apache.org/repos/asf/tomee/blob/1ead0093/container/openejb-core/src/main/java/org/apache/openejb/core/OpenEJBInitialContextFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/OpenEJBInitialContextFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/core/OpenEJBInitialContextFactory.java
new file mode 100644
index 0000000..0d91b41
--- /dev/null
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/OpenEJBInitialContextFactory.java
@@ -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.openejb.core;
+
+import org.apache.openejb.core.ivm.naming.ContextWrapper;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
+
+import javax.naming.Context;
+import javax.naming.NameNotFoundException;
+import javax.naming.NamingException;
+import javax.naming.spi.InitialContextFactory;
+import java.util.Hashtable;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+public class OpenEJBInitialContextFactory implements InitialContextFactory {
+ @Override
+ public Context getInitialContext(final Hashtable env) throws NamingException {
+ // don't validate there env content, it is commonly built from System properties and therefore can inherit a bunch of things
+ return new LocalFallbackContextWrapper(SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext());
+ }
+
+ private static class LocalFallbackContextWrapper extends ContextWrapper {
+ private final ConcurrentMap<String, String> mapping = new ConcurrentHashMap<>();
+
+ private LocalFallbackContextWrapper(final Context jndiContext) {
+ super(jndiContext);
+ }
+
+ @Override
+ public Object lookup(final String userName) throws NamingException {
+ String jndi = mapping.get(userName);
+ if (jndi == null) {
+ jndi = userName;
+ }
+ try {
+ return super.lookup(jndi);
+ } catch (final NameNotFoundException nnfe) {
+ if (!jndi.startsWith("java:") && !jndi.startsWith("openejb:")) { // try jndi lookup
+ try {
+ final String ejb = "java:openejb/local/" + jndi;
+ final Object lookup = super.lookup(ejb);
+ mapping.put(userName, ejb);
+ return lookup;
+ } catch (final NameNotFoundException nnfeIgnored) { // resource
+ try {
+ final String resource = "java:openejb/Resource/" + jndi;
+ final Object resourceInstance = super.lookup(resource);
+ mapping.put(userName, resource);
+ return resourceInstance;
+ } catch (final NameNotFoundException nnfeIgnoredAgain) {
+ throw nnfe;
+ }
+ }
+ }
+ throw nnfe;
+ }
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tomee/blob/1ead0093/container/openejb-core/src/main/java/org/openejb/client/LocalInitialContextFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/openejb/client/LocalInitialContextFactory.java b/container/openejb-core/src/main/java/org/openejb/client/LocalInitialContextFactory.java
index 01372e1..ed3adfc 100644
--- a/container/openejb-core/src/main/java/org/openejb/client/LocalInitialContextFactory.java
+++ b/container/openejb-core/src/main/java/org/openejb/client/LocalInitialContextFactory.java
@@ -21,5 +21,6 @@ package org.openejb.client;
* @version $Revision: 1222119 $ $Date: 2011-12-22 10:23:14 +0100 (jeu. 22 d�c. 2011) $
* @deprecated use org.apache.openejb.core.LocalInitialContextFactory
*/
+@Deprecated
public class LocalInitialContextFactory extends org.apache.openejb.core.LocalInitialContextFactory {
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/1ead0093/container/openejb-core/src/test/java/org/apache/openejb/core/OpenEJBInitialContextFactoryTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/core/OpenEJBInitialContextFactoryTest.java b/container/openejb-core/src/test/java/org/apache/openejb/core/OpenEJBInitialContextFactoryTest.java
new file mode 100644
index 0000000..95be0e3
--- /dev/null
+++ b/container/openejb-core/src/test/java/org/apache/openejb/core/OpenEJBInitialContextFactoryTest.java
@@ -0,0 +1,92 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.openejb.core;
+
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.ContainerProperties;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ejb.Singleton;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.sql.DataSource;
+import java.util.concurrent.Callable;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(ApplicationComposer.class)
+@Classes(innerClassesAsBean = true)
+@ContainerProperties(@ContainerProperties.Property(name = "db", value = "new://Resource?type=DataSource"))
+public class OpenEJBInitialContextFactoryTest {
+ @Test
+ public void run() throws Exception {
+ final Callable<Boolean> innerTest = new Callable<Boolean>() {
+ @Override
+ public Boolean call() throws Exception {
+ final Context ctx = new InitialContext(new PropertiesBuilder()
+ .p(Context.INITIAL_CONTEXT_FACTORY, OpenEJBInitialContextFactory.class.getName())
+ .build());
+
+ // ejbs
+ assertEquals("ejb", SomeEjb.class.cast(ctx.lookup("java:global/openejb/SomeEjb")).from());
+ assertEquals("ejb", SomeEjb.class.cast(ctx.lookup("global/openejb/SomeEjb")).from());
+ assertEquals("ejb", SomeEjb.class.cast(ctx.lookup("java:openejb/local/SomeEjbLocalBean")).from());
+ assertEquals("ejb", SomeEjb.class.cast(ctx.lookup("openejb/local/SomeEjbLocalBean")).from());
+ assertEquals("ejb", SomeEjb.class.cast(ctx.lookup("openejb:local/SomeEjbLocalBean")).from());
+ assertEquals("ejb", SomeEjb.class.cast(ctx.lookup("SomeEjbLocalBean")).from());
+
+ // resources (hibernate use case for instance)
+ assertTrue(DataSource.class.isInstance(ctx.lookup("openejb:Resource/db")));
+ assertTrue(DataSource.class.isInstance(ctx.lookup("java:openejb/Resource/db")));
+ assertTrue(DataSource.class.isInstance(ctx.lookup("openejb/Resource/db")));
+ assertTrue(DataSource.class.isInstance(ctx.lookup("db")));
+ return true;
+ }
+ };
+
+ // in an unmanaged thread
+ final AtomicBoolean result = new AtomicBoolean(false);
+ final Thread outOfContext = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ result.set(innerTest.call());
+ } catch (final Exception e) {
+ result.set(false);
+ }
+ }
+ });
+ outOfContext.start();
+ outOfContext.join();
+ assertTrue(result.get());
+
+ // and in a managed thread
+ assertTrue(innerTest.call());
+ }
+
+ @Singleton
+ public static class SomeEjb {
+ public String from() {
+ return "ejb";
+ }
+ }
+}
[37/50] tomee git commit: cxf 3.1.8
Posted by rm...@apache.org.
cxf 3.1.8
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/6db9f418
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/6db9f418
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/6db9f418
Branch: refs/heads/tomee-1.7.x
Commit: 6db9f41800fcf0434804307bf152d52ee89a449a
Parents: 04c0e98
Author: rmannibucau <rm...@apache.org>
Authored: Tue Oct 18 22:17:56 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Oct 18 22:17:56 2016 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/6db9f418/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 4f5ebcd..6731cbc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -129,7 +129,7 @@
<tomcat.version>8.5.6</tomcat.version>
- <cxf.version>3.1.7</cxf.version>
+ <cxf.version>3.1.8</cxf.version>
<ehcache.version>2.9.0</ehcache.version>
<!-- used by cxf for security (replay attack) -->
<jetty.version>7.5.3.v20111011</jetty.version>
[17/50] tomee git commit: trying to suspend the tx in progress if
there when the emf is lazily created to avoid issues with our managed
connections
Posted by rm...@apache.org.
trying to suspend the tx in progress if there when the emf is lazily created to avoid issues with our managed connections
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/78b76fca
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/78b76fca
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/78b76fca
Branch: refs/heads/tomee-1.7.x
Commit: 78b76fcaea62d78d19f9416bd361dc4346f40cc2
Parents: 9f14c06
Author: rmannibucau <rm...@apache.org>
Authored: Mon Oct 3 17:30:16 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Mon Oct 3 17:30:16 2016 +0200
----------------------------------------------------------------------
.../classic/EntityManagerFactoryCallable.java | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/78b76fca/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
index 854c9c4..6ef05e9 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
@@ -17,6 +17,7 @@
package org.apache.openejb.assembler.classic;
+import org.apache.openejb.OpenEJB;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.persistence.PersistenceUnitInfoImpl;
import org.apache.openejb.util.LogCategory;
@@ -28,6 +29,7 @@ import javax.enterprise.inject.spi.BeanManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.ValidationMode;
import javax.persistence.spi.PersistenceProvider;
+import javax.transaction.Transaction;
import javax.validation.ValidatorFactory;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
@@ -108,7 +110,21 @@ public class EntityManagerFactoryCallable implements Callable<EntityManagerFacto
customizeProperties(properties);
- final EntityManagerFactory emf = persistenceProvider.createContainerEntityManagerFactory(unitInfo, properties);
+ // ensure no tx is there cause a managed connection would fail if the provider setAutocCommit(true) and some hib* have this good idea
+ final Transaction transaction;
+ if (unitInfo.isLazilyInitialized()) {
+ transaction = OpenEJB.getTransactionManager().suspend();
+ } else {
+ transaction = null;
+ }
+ final EntityManagerFactory emf;
+ try {
+ emf = persistenceProvider.createContainerEntityManagerFactory(unitInfo, properties);
+ } finally {
+ if (unitInfo.isLazilyInitialized() && transaction != null) {
+ OpenEJB.getTransactionManager().resume(transaction);
+ }
+ }
if (unitInfo.getProperties() != null
&& "true".equalsIgnoreCase(unitInfo.getProperties().getProperty(OPENEJB_JPA_INIT_ENTITYMANAGER))
[18/50] tomee git commit: ensuring lifecycle tasks instances can be
retrieved by the application
Posted by rm...@apache.org.
ensuring lifecycle tasks instances can be retrieved by the application
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/d5e01c0e
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/d5e01c0e
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/d5e01c0e
Branch: refs/heads/tomee-1.7.x
Commit: d5e01c0ee492f2d5fda30171637e78e47a9753a7
Parents: 78b76fc
Author: rmannibucau <rm...@apache.org>
Authored: Tue Oct 4 11:29:57 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Oct 4 11:29:57 2016 +0200
----------------------------------------------------------------------
.../TomEEEmbeddedApplicationRunner.java | 48 ++++++++++++++++++--
.../embedded/SingleInstanceRunnerTest.java | 16 ++++++-
2 files changed, 59 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/d5e01c0e/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index 12033d2..b328d4b 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -54,6 +54,7 @@ import java.util.Map;
import java.util.Properties;
import java.util.concurrent.CountDownLatch;
+import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import static org.apache.openejb.loader.JarLocation.jarLocation;
@@ -151,11 +152,14 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
}
}
+ final Collection<org.apache.tomee.embedded.LifecycleTask> lifecycleTasks = new ArrayList<>();
final Collection<Closeable> postTasks = new ArrayList<>();
final LifecycleTasks tasks = appClass.getAnnotation(LifecycleTasks.class);
if (tasks != null) {
for (final Class<? extends org.apache.tomee.embedded.LifecycleTask> type : tasks.value()) {
- postTasks.add(type.newInstance().beforeContainerStartup());
+ final org.apache.tomee.embedded.LifecycleTask lifecycleTask = type.newInstance();
+ lifecycleTasks.add(lifecycleTask);
+ postTasks.add(lifecycleTask.beforeContainerStartup());
}
}
@@ -229,6 +233,7 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
final Container container = new Container(configuration);
SystemInstance.get().setComponent(TomEEEmbeddedArgs.class, new TomEEEmbeddedArgs(args, null));
+ SystemInstance.get().setComponent(LifecycleTaskAccessor.class, new LifecycleTaskAccessor(lifecycleTasks));
container.deploy(new Container.DeploymentRequest(
context,
// call ClasspathSearcher that lazily since container needs to be started to not preload logging
@@ -281,9 +286,7 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
}
try {
- if (container != null) {
- container.close();
- }
+ container.close();
} catch (final Exception e) {
e.printStackTrace();
}
@@ -406,6 +409,14 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
f.setAccessible(true);
}
f.set(target, app);
+ } else if (f.isAnnotationPresent(LifecycleTask.class)) {
+ if (!f.isAccessible()) {
+ f.setAccessible(true);
+ }
+ final LifecycleTaskAccessor accessor = SystemInstance.get().getComponent(LifecycleTaskAccessor.class);
+ final Class type = f.getType();
+ final Object taskByType = accessor.getTaskByType(type);
+ f.set(target, taskByType);
}
}
final Class<?> superclass = aClass.getSuperclass();
@@ -421,6 +432,11 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
}
@Retention(RUNTIME)
+ @Target(FIELD)
+ public @interface LifecycleTask {
+ }
+
+ @Retention(RUNTIME)
@Target(TYPE)
public @interface Configurers {
Class<? extends Configurer>[] value();
@@ -429,4 +445,28 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
public interface Configurer {
void configure(Configuration configuration);
}
+
+ public static class LifecycleTaskAccessor {
+ private final Collection<org.apache.tomee.embedded.LifecycleTask> tasks;
+
+ private LifecycleTaskAccessor(final Collection<org.apache.tomee.embedded.LifecycleTask> lifecycleTasks) {
+ this.tasks = lifecycleTasks;
+ }
+
+ public Collection<org.apache.tomee.embedded.LifecycleTask> getTasks() {
+ return tasks;
+ }
+
+ public <T> T getTaskByType(final Class<T> type) {
+ for (final org.apache.tomee.embedded.LifecycleTask task : tasks) {
+ if (type == task.getClass()) {
+ return (T) task;
+ }
+ }
+ if (Collection.class.isAssignableFrom(type)) {
+ return (T) tasks;
+ }
+ return null;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/d5e01c0e/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
index cf2d039..3c5ae7d 100644
--- a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
+++ b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
@@ -30,6 +30,7 @@ import org.junit.runner.RunWith;
import java.io.Closeable;
import java.io.IOException;
import java.net.URL;
+import java.util.Collection;
import java.util.Properties;
import static org.junit.Assert.assertEquals;
@@ -39,7 +40,6 @@ import static org.junit.Assert.assertTrue;
// just a manual test to check it works, can't be executed with the rest of the suite,
// we could use a different surefire execution if we want to add it to the default run
-//@Ignore("can't run with by test containers")
@RunWith(TomEEEmbeddedSingleRunner.class)
public class SingleInstanceRunnerTest {
@Application // app can have several injections/helpers
@@ -58,6 +58,11 @@ public class SingleInstanceRunnerTest {
assertNotEquals(8080, app.port);
assertTrue(app.base.toExternalForm().endsWith("/app"));
assertEquals(app.port, port);
+ assertNotNull(app.task);
+ assertNotNull(app.tasks);
+ assertEquals(1, app.tasks.size());
+ assertEquals(app.task, app.tasks.iterator().next());
+ assertEquals(app.task, MyTask.instance);
}
@Application
@@ -72,6 +77,12 @@ public class SingleInstanceRunnerTest {
@RandomPort("http")
private URL base;
+ @TomEEEmbeddedApplicationRunner.LifecycleTask
+ private MyTask task;
+
+ @TomEEEmbeddedApplicationRunner.LifecycleTask
+ private Collection<LifecycleTask> tasks;
+
@org.apache.openejb.testing.Configuration
public Properties add() {
return new PropertiesBuilder().p("prog", "p").build();
@@ -79,8 +90,11 @@ public class SingleInstanceRunnerTest {
}
public static class MyTask implements LifecycleTask {
+ private static MyTask instance;
+
@Override
public Closeable beforeContainerStartup() {
+ instance = this;
System.out.println(">>> start");
System.setProperty("my.server.port", "128463");
return new Closeable() {
[46/50] tomee git commit: preparing bval upgrade
Posted by rm...@apache.org.
preparing bval upgrade
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/f1eacc39
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/f1eacc39
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/f1eacc39
Branch: refs/heads/tomee-1.7.x
Commit: f1eacc39db8606b1fef2e8761243d9ded59158a5
Parents: a36aa12
Author: rmannibucau <rm...@apache.org>
Authored: Thu Oct 27 17:46:22 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Oct 27 17:46:22 2016 +0200
----------------------------------------------------------------------
.../apache/openejb/util/proxy/QueryProxy.java | 39 ++++++++++++++------
pom.xml | 2 +-
2 files changed, 28 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/f1eacc39/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/QueryProxy.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/QueryProxy.java b/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/QueryProxy.java
index 042b039..ae3b673 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/QueryProxy.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/QueryProxy.java
@@ -17,7 +17,6 @@
package org.apache.openejb.util.proxy;
-import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
@@ -33,6 +32,7 @@ import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.persistence.metamodel.EntityType;
import javax.persistence.metamodel.SingularAttribute;
+import java.lang.reflect.Field;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -44,6 +44,8 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import static org.apache.commons.lang3.StringUtils.capitalize;
+
public class QueryProxy implements InvocationHandler {
private static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB, QueryProxy.class);
@@ -242,17 +244,7 @@ public class QueryProxy implements InvocationHandler {
}
final String idName = id.getName();
- final Object idValue;
- try {
- idValue = BeanUtils.getProperty(entity, idName);
- } catch (final InvocationTargetException e) {
- throw new IllegalArgumentException("can't invoke to get entity id");
- } catch (final NoSuchMethodException e) {
- throw new IllegalArgumentException("can't find the method to get entity id");
- } catch (final IllegalAccessException e) {
- throw new IllegalArgumentException("can't access field/method to get entity id");
- }
-
+ final Object idValue = getProperty(entity, idName);
entity = em.getReference(et.getJavaType(), idValue);
if (entity == null) {
throw new IllegalArgumentException("entity " + entity + " is not managed and can't be found.");
@@ -264,6 +256,29 @@ public class QueryProxy implements InvocationHandler {
}
}
+ // can be optimized for runtime, since there are today nice alternative we probably don't need
+ private Object getProperty(final Object entity, final String idName) {
+ try {
+ final Method method = entity.getClass().getMethod("get" + capitalize(idName));
+ if (!method.isAccessible()) {
+ method.setAccessible(true);
+ }
+ return method.invoke(entity);
+ } catch (final NoSuchMethodException | IllegalAccessException e) {
+ try {
+ final Field declaredField = entity.getClass().getDeclaredField(idName);
+ if (!declaredField.isAccessible()) {
+ declaredField.setAccessible(true);
+ }
+ return declaredField.get(entity);
+ } catch (final NoSuchFieldException | IllegalAccessException e1) {
+ throw new IllegalArgumentException("Bad id: " + idName + " for " + entity);
+ }
+ } catch (final InvocationTargetException e) {
+ throw new IllegalStateException(e.getCause());
+ }
+ }
+
private Object merge(final Object[] args, final Class<?> returnType) {
if (args != null && args.length == 1 && returnType.equals(args[0].getClass())) {
return em.merge(args[0]);
http://git-wip-us.apache.org/repos/asf/tomee/blob/f1eacc39/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index c06eaae..0ece54c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -161,7 +161,7 @@
<commons-io.version>2.4</commons-io.version>
<commons-net.version>3.3</commons-net.version>
- <bval.version>1.1.1</bval.version>
+ <bval.version>1.1.2-SNAPSHOT</bval.version>
<org.apache.activemq.version>5.14.1</org.apache.activemq.version>
<org.springframework.version>3.1.4.RELEASE</org.springframework.version>
<junit.version>4.12</junit.version>
[22/50] tomee git commit: making our best to ensure
TomEEEmbeddedApplicationRunner stops the container before we delete base dir
Posted by rm...@apache.org.
making our best to ensure TomEEEmbeddedApplicationRunner stops the container before we delete base dir
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/8143fc0f
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/8143fc0f
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/8143fc0f
Branch: refs/heads/tomee-1.7.x
Commit: 8143fc0fda1394153f21971bdf2126bad59e2b7b
Parents: 59deb62
Author: rmannibucau <rm...@apache.org>
Authored: Tue Oct 4 15:53:32 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Oct 4 15:53:32 2016 +0200
----------------------------------------------------------------------
.../org/apache/tomee/embedded/Container.java | 2 +-
.../TomEEEmbeddedApplicationRunner.java | 31 +++++++++++++++++---
2 files changed, 28 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/8143fc0f/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
index 0cd4cfa..06b33dd 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
@@ -424,6 +424,7 @@ public class Container implements AutoCloseable {
// create basic installation in setup to be able to handle anything the caller does between setup() and start()
base = new File(getBaseDir());
if (base.exists()) {
+ // TODO: get rid of Files which has its own shutdown hook which can mess up order if started/shutdown multiple times?
Files.delete(base);
}
@@ -1103,7 +1104,6 @@ public class Container implements AutoCloseable {
}
private static class TomcatWithFastSessionIDs extends InternalTomcat {
-
@Override
public void start() throws LifecycleException {
// Use fast, insecure session ID generation for all tests
http://git-wip-us.apache.org/repos/asf/tomee/blob/8143fc0f/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index 5753bc0..7f69d32 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -53,16 +53,38 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CountDownLatch;
+import java.util.logging.Logger;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.util.logging.Level.SEVERE;
import static org.apache.openejb.loader.JarLocation.jarLocation;
import static org.apache.openejb.util.Classes.ancestors;
@Vetoed
public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
+ private static final ConcurrentMap<Runnable, Runnable> SHUTDOWN_TASKS = new ConcurrentHashMap<>();
+
+ static { // to ensure we have an ordering for shutdown tasks, we typically want to avoid Files.delete() before stop()
+ Runtime.getRuntime().addShutdownHook(new Thread("TomEEEmbeddedApplicationRunner-shutdown") {
+ @Override
+ public void run() {
+ for (final Runnable task : SHUTDOWN_TASKS.keySet()) {
+ try {
+ task.run();
+ } catch (final Exception e) {
+ Logger.getLogger(TomEEEmbeddedApplicationRunner.class.getName()).log(SEVERE, e.getMessage(), e);
+ }
+ }
+ SHUTDOWN_TASKS.clear();
+ }
+ });
+ }
+
private volatile boolean started = false;
private volatile Object app;
private volatile Thread hook;
@@ -269,7 +291,7 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
}
}
- Runtime.getRuntime().addShutdownHook(hook = new Thread() {
+ hook = new Thread() {
@Override
public void run() { // ensure to log errors but not fail there
for (final Method mtd : appFinder.findAnnotatedMethods(PreDestroy.class)) {
@@ -302,12 +324,13 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
postTasks.clear();
app = null;
try {
- Runtime.getRuntime().removeShutdownHook(this);
+ SHUTDOWN_TASKS.remove(this);
} catch (final Exception e) {
// no-op: that's ok at that moment if not called manually
}
}
- });
+ };
+ SHUTDOWN_TASKS.put(hook, hook);
}
// if app is not set then we'll check if -Dtomee.application-composer.application is set otherwise
@@ -350,7 +373,7 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
public synchronized void close() {
if (hook != null) {
hook.run();
- Runtime.getRuntime().removeShutdownHook(hook);
+ SHUTDOWN_TASKS.remove(hook);
hook = null;
app = null;
}
[33/50] tomee git commit: upgrading javaee-api to have a valid bean
validation api
Posted by rm...@apache.org.
upgrading javaee-api to have a valid bean validation api
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/190b51ee
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/190b51ee
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/190b51ee
Branch: refs/heads/tomee-1.7.x
Commit: 190b51eea0bc8e2cf9f8ac5ea99b00f253bb7396
Parents: b95c929
Author: rmannibucau <rm...@apache.org>
Authored: Fri Oct 14 12:00:09 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Oct 14 12:00:09 2016 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/190b51ee/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5fc5677..3679ba9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,7 +94,7 @@
<tomee.version>${project.version}</tomee.version>
<!-- to change easily the javaee api version -->
- <version.javaee-api>7.0</version.javaee-api>
+ <version.javaee-api>7.0-1-SNAPSHOT</version.javaee-api>
<openjpa.version>2.4.1</openjpa.version>
<org.apache.openwebbeans.version>1.7.0</org.apache.openwebbeans.version>
[36/50] tomee git commit: TOMEE-1960,
closing JarFile - thanks Kaloyan Spiridonov
Posted by rm...@apache.org.
TOMEE-1960, closing JarFile - thanks Kaloyan Spiridonov
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/04c0e98e
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/04c0e98e
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/04c0e98e
Branch: refs/heads/tomee-1.7.x
Commit: 04c0e98e9e58110e6da47070caf4f88ae72ad3d8
Parents: 80b788d
Author: rmannibucau <rm...@apache.org>
Authored: Fri Oct 14 17:21:28 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Oct 14 17:21:28 2016 +0200
----------------------------------------------------------------------
.../tomee/catalina/TomcatWebAppBuilder.java | 9 ++--
.../org/apache/tomee/installer/Installer.java | 49 +++++++++-----------
.../apache/tomee/loader/OpenEJBListener.java | 3 +-
3 files changed, 27 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/04c0e98e/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
index 1553219..e834e83 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
@@ -471,10 +471,11 @@ public class TomcatWebAppBuilder implements WebAppBuilder, ContextListener, Pare
logger.info("using context file " + cXml.getAbsolutePath());
}
} else { // war
- final JarFile warAsJar = new JarFile(war);
- final JarEntry entry = warAsJar.getJarEntry(Constants.ApplicationContextXml);
- if (entry != null) {
- contextXmlUrl = new URL("jar:" + war.getAbsoluteFile().toURI().toURL().toExternalForm() + "!/" + Constants.ApplicationContextXml);
+ try (final JarFile warAsJar = new JarFile(war)) {
+ final JarEntry entry = warAsJar.getJarEntry(Constants.ApplicationContextXml);
+ if (entry != null) {
+ contextXmlUrl = new URL("jar:" + war.getAbsoluteFile().toURI().toURL().toExternalForm() + "!/" + Constants.ApplicationContextXml);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/04c0e98e/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java b/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java
index 1581045..301dfd5 100644
--- a/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java
+++ b/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Installer.java
@@ -598,29 +598,24 @@ public class Installer implements InstallerInterface {
// the core jar contains the config files
return;
}
- final JarFile coreJar;
- try {
- coreJar = new JarFile(openejbCoreJar);
- } catch (final IOException e) {
- return;
- }
-
- //
- // conf/tomee.xml
- //
- final File openEjbXmlFile = new File(confDir, "tomee.xml");
- if (!openEjbXmlFile.exists()) {
- // read in the openejb.xml file from the openejb core jar
- final String openEjbXml = Installers.readEntry(coreJar, "default.openejb.conf", alerts);
- if (openEjbXml != null) {
- if (Installers.writeAll(openEjbXmlFile, openEjbXml.replace("<openejb>", "<tomee>").replace("</openejb>", "</tomee>"), alerts)) {
- alerts.addInfo("Copy tomee.xml to conf");
+ try (final JarFile coreJar = new JarFile(openejbCoreJar)) {
+ //
+ // conf/tomee.xml
+ //
+ final File openEjbXmlFile = new File(confDir, "tomee.xml");
+ if (!openEjbXmlFile.exists()) {
+ // read in the openejb.xml file from the openejb core jar
+ final String openEjbXml = Installers.readEntry(coreJar, "default.openejb.conf", alerts);
+ if (openEjbXml != null) {
+ if (Installers.writeAll(openEjbXmlFile, openEjbXml.replace("<openejb>", "<tomee>").replace("</openejb>", "</tomee>"), alerts)) {
+ alerts.addInfo("Copy tomee.xml to conf");
+ }
}
}
+ } catch (final IOException e) {
+ return;
}
-
- //
// conf/logging.properties
// now we are using tomcat one of jdk one by default
//
@@ -809,16 +804,14 @@ public class Installer implements InstallerInterface {
//
// conf/web.xml
//
- final JarFile openejbTomcatCommonJar;
- try {
- openejbTomcatCommonJar = new JarFile(paths.geOpenEJBTomcatCommonJar());
+ try (final JarFile openejbTomcatCommonJar = new JarFile(paths.geOpenEJBTomcatCommonJar())) {
+ final File webXmlFile = new File(confDir, "web.xml");
+ final String webXml = Installers.readEntry(openejbTomcatCommonJar, "conf/web.xml", alerts);
+ if (Installers.writeAll(webXmlFile, webXml, alerts)) {
+ alerts.addInfo("Set jasper in production mode in TomEE web.xml");
+ }
} catch (final IOException e) {
- return;
- }
- final File webXmlFile = new File(confDir, "web.xml");
- final String webXml = Installers.readEntry(openejbTomcatCommonJar, "conf/web.xml", alerts);
- if (Installers.writeAll(webXmlFile, webXml, alerts)) {
- alerts.addInfo("Set jasper in production mode in TomEE web.xml");
+ // no-op
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/04c0e98e/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java
index 3eb0e9a..b76d35d 100644
--- a/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java
+++ b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/OpenEJBListener.java
@@ -141,8 +141,7 @@ public class OpenEJBListener implements LifecycleListener {
private static boolean isTomEEWar(final File file) {
final String name = file.getName();
- try {
- final JarFile jarFile = new JarFile(file);
+ try (final JarFile jarFile = new JarFile(file)) {
return jarFile.getEntry("lib") != null
&& (name.startsWith("tomee") || name.startsWith("openejb")
&& name.endsWith(".war"));
[07/50] tomee git commit: excluding log4j-sl4j and out internal
swizzle classes, pretty much no risk there
Posted by rm...@apache.org.
excluding log4j-sl4j and out internal swizzle classes, pretty much no risk there
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/0abf01b6
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/0abf01b6
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/0abf01b6
Branch: refs/heads/tomee-1.7.x
Commit: 0abf01b667c1fdf612f45fdffedf96c9e31f53b9
Parents: eb2b301
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 21:30:29 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 21:30:29 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/openejb/util/ContainerClassesFilter.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/0abf01b6/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index 70fc8b7..eb3e811 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -96,6 +96,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.apache.johnzon");
excluded.add("org.apache.juli");
excluded.add("org.apache.logging.log4j.core");
+ excluded.add("org.apache.logging.slf4j");
excluded.add("org.apache.myfaces");
excluded.add("org.apache.neethi");
excluded.add("org.apache.openejb");
@@ -109,6 +110,8 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.apache.xml.resolver");
excluded.add("org.bouncycastle");
excluded.add("org.codehaus.stax2");
+ excluded.add("org.codehaus.swizzle.Grep");
+ excluded.add("org.codehaus.swizzle.Lexer");
excluded.add("org.cryptacular");
excluded.add("org.eclipse.jdt.core");
excluded.add("org.eclipse.jdt.internal");
[10/50] tomee git commit: cleanup some tests
Posted by rm...@apache.org.
cleanup some tests
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/d5522107
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/d5522107
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/d5522107
Branch: refs/heads/tomee-1.7.x
Commit: d5522107219d60175f60180dc870dd2e3759e4f3
Parents: 4d3b3fb
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 22:56:15 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 22:56:15 2016 +0200
----------------------------------------------------------------------
.../src/test/java/org/superbiz/AlternateDataSourceTest.java | 2 +-
.../src/test/java/org/superbiz/moviefun/MoviesEJBTest.java | 1 -
.../java/org/superbiz/moviefun/MoviesArquillianHtmlUnitTest.java | 1 -
.../src/test/java/org/superbiz/moviefun/MoviesEJBTest.java | 1 -
.../src/test/java/org/apache/tomee/embedded/ConfigurationTest.java | 1 -
5 files changed, 1 insertion(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/d5522107/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java
----------------------------------------------------------------------
diff --git a/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java b/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java
index 2877434..c7def46 100644
--- a/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java
+++ b/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java
@@ -41,7 +41,7 @@ public class AlternateDataSourceTest {
return ShrinkWrap.create(WebArchive.class, "test.war")
.addClasses(DataSourceTester.class)
- .addAsResource(new ClassLoaderAsset("META-INF/ejb-jar.xml"), "META-INF/ejb-jar.xml");
+ .addAsResource(new ClassLoaderAsset("META-INF/beans.xml"), "META-INF/beans.xml");
//We are using src/test/conf/tomee.xml, but this also works - .addAsResource(new ClassLoaderAsset("META-INF/resources.xml"), "META-INF/resources.xml");
//Or even using a persistence context - .addAsResource(new ClassLoaderAsset("META-INF/persistence.xml"), "META-INF/persistence.xml");
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/d5522107/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
----------------------------------------------------------------------
diff --git a/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java b/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
index 15a0f22..e195c0c 100644
--- a/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
+++ b/examples/moviefun-rest/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
@@ -39,7 +39,6 @@ public class MoviesEJBTest {
public static WebArchive createDeployment() {
return ShrinkWrap.create(WebArchive.class, "test.war")
.addClasses(Movie.class, MoviesBean.class, MoviesEJBTest.class)
- .addAsResource(new ClassLoaderAsset("META-INF/ejb-jar.xml"), "META-INF/ejb-jar.xml")
.addAsResource(new ClassLoaderAsset("META-INF/persistence.xml"), "META-INF/persistence.xml");
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/d5522107/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesArquillianHtmlUnitTest.java
----------------------------------------------------------------------
diff --git a/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesArquillianHtmlUnitTest.java b/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesArquillianHtmlUnitTest.java
index c83cac4..6ae1dd0 100644
--- a/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesArquillianHtmlUnitTest.java
+++ b/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesArquillianHtmlUnitTest.java
@@ -61,7 +61,6 @@ public class MoviesArquillianHtmlUnitTest {
WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war")
.addClasses(Movie.class, MoviesBean.class, MoviesArquillianHtmlUnitTest.class, ActionServlet.class)
- .addAsResource(new ClassLoaderAsset("META-INF/ejb-jar.xml"), "META-INF/ejb-jar.xml")
.addAsResource(new ClassLoaderAsset("META-INF/persistence.xml"), "META-INF/persistence.xml")
.addAsLibraries(libs);
http://git-wip-us.apache.org/repos/asf/tomee/blob/d5522107/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
----------------------------------------------------------------------
diff --git a/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java b/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
index 3824df9..63a081d 100644
--- a/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
+++ b/examples/moviefun/src/test/java/org/superbiz/moviefun/MoviesEJBTest.java
@@ -39,7 +39,6 @@ public class MoviesEJBTest {
public static WebArchive createDeployment() {
return ShrinkWrap.create(WebArchive.class, "test.war")
.addClasses(Movie.class, MoviesBean.class, MoviesEJBTest.class)
- .addAsResource(new ClassLoaderAsset("META-INF/ejb-jar.xml"), "META-INF/ejb-jar.xml")
.addAsResource(new ClassLoaderAsset("META-INF/persistence.xml"), "META-INF/persistence.xml");
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/d5522107/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/ConfigurationTest.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/ConfigurationTest.java b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/ConfigurationTest.java
index b072491..ccb9a3b 100644
--- a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/ConfigurationTest.java
+++ b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/ConfigurationTest.java
@@ -56,7 +56,6 @@ public class ConfigurationTest {
.p("login", "")
.p("login.realmName", "app")
.p("login.authMethod", "BASIC")
- .p("login", "")
.p("securityConstraint", "")
.p("securityConstraint.authConstraint", "true")
.p("securityConstraint.authRole", "**")
[16/50] tomee git commit: ensure lazy jpa property is read from
system properties too
Posted by rm...@apache.org.
ensure lazy jpa property is read from system properties too
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/9f14c061
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/9f14c061
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/9f14c061
Branch: refs/heads/tomee-1.7.x
Commit: 9f14c0610d24a519bf4a58387f1de9bddb7446e7
Parents: 6cba733
Author: rmannibucau <rm...@apache.org>
Authored: Mon Oct 3 17:17:12 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Mon Oct 3 17:17:12 2016 +0200
----------------------------------------------------------------------
.../org/apache/openejb/assembler/classic/PersistenceBuilder.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/9f14c061/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
index 5a54b21..1502888 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
@@ -69,7 +69,8 @@ public class PersistenceBuilder {
// Exclude Unlisted Classes
unitInfo.setExcludeUnlistedClasses(info.excludeUnlistedClasses);
- unitInfo.setLazilyInitialized(info.webappName != null || "true".equalsIgnoreCase(info.properties.getProperty("tomee.jpa.factory.lazy", "false")));
+ unitInfo.setLazilyInitialized(info.webappName != null || "true".equalsIgnoreCase(info.properties.getProperty("tomee.jpa.factory.lazy",
+ SystemInstance.get().getProperty("tomee.jpa.factory.lazy", "false"))));
final Context context = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
[40/50] tomee git commit: excluding owb too
Posted by rm...@apache.org.
excluding owb too
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/2d23d108
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/2d23d108
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/2d23d108
Branch: refs/heads/tomee-1.7.x
Commit: 2d23d10894de4898f97cc17ff6f8d2b527877135
Parents: 16fa1d5
Author: rmannibucau <rm...@apache.org>
Authored: Wed Oct 19 09:54:43 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Wed Oct 19 09:54:43 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/openejb/util/ContainerClassesFilter.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/2d23d108/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index 0ab89f1..e58ccb4 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -107,6 +107,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.apache.tomcat");
excluded.add("org.apache.tomee");
excluded.add("org.apache.velocity");
+ excluded.add("org.apache.webbeans");
excluded.add("org.apache.ws");
excluded.add("org.apache.wss4j");
excluded.add("org.apache.xbean");
[21/50] tomee git commit: final
Posted by rm...@apache.org.
final
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/59deb622
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/59deb622
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/59deb622
Branch: refs/heads/tomee-1.7.x
Commit: 59deb6220eb8da2f74d03e64dfad4dc20dc425f2
Parents: 5c33866
Author: rmannibucau <rm...@apache.org>
Authored: Tue Oct 4 13:35:22 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Oct 4 13:35:22 2016 +0200
----------------------------------------------------------------------
.../org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/59deb622/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index 7721aa7..5753bc0 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -449,7 +449,7 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
void configure(Configuration configuration);
}
- public static class LifecycleTaskAccessor {
+ public static final class LifecycleTaskAccessor {
private final Collection<org.apache.tomee.embedded.LifecycleTask> tasks;
private LifecycleTaskAccessor(final Collection<org.apache.tomee.embedded.LifecycleTask> lifecycleTasks) {
[30/50] tomee git commit: TOMEE-1958 mockito integration for app
composer doesn't support to be set as property
Posted by rm...@apache.org.
TOMEE-1958 mockito integration for app composer doesn't support to be set as property
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/4d1a577c
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/4d1a577c
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/4d1a577c
Branch: refs/heads/tomee-1.7.x
Commit: 4d1a577c9d18d2b8e660b38b8cbafc2f26a00798
Parents: 823790b
Author: rmannibucau <rm...@apache.org>
Authored: Thu Oct 13 13:32:40 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Oct 13 13:32:40 2016 +0200
----------------------------------------------------------------------
.../openejb/mockito/MockitoExtension.java | 9 ++-
.../MockitoAndAppComposerClassLevelTest.java | 71 ++++++++++++++++++++
2 files changed, 79 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/4d1a577c/utils/openejb-mockito/src/main/java/org/apache/openejb/mockito/MockitoExtension.java
----------------------------------------------------------------------
diff --git a/utils/openejb-mockito/src/main/java/org/apache/openejb/mockito/MockitoExtension.java b/utils/openejb-mockito/src/main/java/org/apache/openejb/mockito/MockitoExtension.java
index 2e08ea3..854a536 100644
--- a/utils/openejb-mockito/src/main/java/org/apache/openejb/mockito/MockitoExtension.java
+++ b/utils/openejb-mockito/src/main/java/org/apache/openejb/mockito/MockitoExtension.java
@@ -16,17 +16,19 @@
*/
package org.apache.openejb.mockito;
+import org.apache.openejb.injection.FallbackPropertyInjector;
+import org.apache.openejb.loader.SystemInstance;
import org.apache.webbeans.annotation.AnyLiteral;
import org.apache.webbeans.annotation.DefaultLiteral;
import org.apache.webbeans.annotation.NamedLiteral;
import org.mockito.cglib.proxy.Factory;
-import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.Dependent;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeforeBeanDiscovery;
import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.InjectionPoint;
import java.lang.annotation.Annotation;
@@ -44,6 +46,11 @@ public class MockitoExtension implements Extension {
private static final Annotation DEFAULT_ANNOTATION = new DefaultLiteral();
private static final Annotation ANY_ANNOTATION = new AnyLiteral();
+ public void addMocks(@Observes final BeforeBeanDiscovery bbd) {
+ // ensure it is init
+ SystemInstance.get().getComponent(FallbackPropertyInjector.class);
+ }
+
public void addMocks(@Observes final AfterBeanDiscovery abd) {
for (Map.Entry<Class<?>, Object> instance : MockRegistry.mocksByType().entrySet()) {
abd.addBean(new MockBean(instance.getKey(), instance.getValue()));
http://git-wip-us.apache.org/repos/asf/tomee/blob/4d1a577c/utils/openejb-mockito/src/test/java/org/apache/openejb/mockito/MockitoAndAppComposerClassLevelTest.java
----------------------------------------------------------------------
diff --git a/utils/openejb-mockito/src/test/java/org/apache/openejb/mockito/MockitoAndAppComposerClassLevelTest.java b/utils/openejb-mockito/src/test/java/org/apache/openejb/mockito/MockitoAndAppComposerClassLevelTest.java
new file mode 100644
index 0000000..d454f58
--- /dev/null
+++ b/utils/openejb-mockito/src/test/java/org/apache/openejb/mockito/MockitoAndAppComposerClassLevelTest.java
@@ -0,0 +1,71 @@
+/**
+ * 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.openejb.mockito;
+
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.ContainerProperties;
+import org.apache.openejb.testing.Module;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+import javax.ejb.EJB;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+
+@RunWith(ApplicationComposer.class)
+@ContainerProperties(
+ @ContainerProperties.Property(name = "org.apache.openejb.injection.FallbackPropertyInjector", value = "org.apache.openejb.mockito.MockitoInjector")
+)
+public class MockitoAndAppComposerClassLevelTest {
+ @EJB
+ private Facade facade;
+
+ @Mock
+ private Hello mock;
+
+ @Mock(name = "named")
+ private Hello named;
+
+ @Module
+ public Class<?>[] classes() {
+ return new Class<?>[] { Hello.class, Facade.class };
+ }
+
+ @Test
+ public void testDefault() {
+ // play with mocks
+ when(mock.hi())
+ .thenReturn("openejb-mockito");
+ when(mock.id())
+ .thenReturn(12345);
+
+ // test
+ assertEquals("openejb-mockito", facade.hello());
+ }
+
+ @Test
+ public void testName() {
+ // play with mocks
+ when(named.hi())
+ .thenReturn("named");
+
+ // test
+ assertEquals("named", facade.name());
+ }
+}
[19/50] tomee git commit: app class should be an observer by default
and adding TomEEEmbeddedApplicationRunnerInjection to simplify custom
injections
Posted by rm...@apache.org.
app class should be an observer by default and adding TomEEEmbeddedApplicationRunnerInjection to simplify custom injections
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3bb08cbe
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3bb08cbe
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3bb08cbe
Branch: refs/heads/tomee-1.7.x
Commit: 3bb08cbe19cb9c1ae3419ac40e9467ed8fcb8eae
Parents: d5e01c0
Author: rmannibucau <rm...@apache.org>
Authored: Tue Oct 4 11:44:52 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Oct 4 11:44:52 2016 +0200
----------------------------------------------------------------------
.../TomEEEmbeddedApplicationRunner.java | 4 ++
...TomEEEmbeddedApplicationRunnerInjection.java | 54 ++++++++++++++++++++
.../embedded/SingleInstanceRunnerTest.java | 19 ++++++-
3 files changed, 76 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/3bb08cbe/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index b328d4b..34826c3 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -26,6 +26,7 @@ import org.apache.openejb.testing.Jars;
import org.apache.openejb.testing.RandomPort;
import org.apache.openejb.testing.WebResource;
import org.apache.tomee.embedded.component.TomEEEmbeddedArgs;
+import org.apache.tomee.embedded.event.TomEEEmbeddedApplicationRunnerInjection;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.inject.OWBInjector;
import org.apache.xbean.finder.AnnotationFinder;
@@ -255,6 +256,7 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
}
}
+ SystemInstance.get().addObserver(app);
composerInject(app);
final AnnotationFinder appFinder = new AnnotationFinder(new ClassesArchive(appClass));
@@ -423,6 +425,8 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
if (superclass != Object.class) {
composerInject(superclass);
}
+
+ SystemInstance.get().fireEvent(new TomEEEmbeddedApplicationRunnerInjection(target));
}
@Retention(RUNTIME)
http://git-wip-us.apache.org/repos/asf/tomee/blob/3bb08cbe/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/event/TomEEEmbeddedApplicationRunnerInjection.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/event/TomEEEmbeddedApplicationRunnerInjection.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/event/TomEEEmbeddedApplicationRunnerInjection.java
new file mode 100644
index 0000000..8be133a
--- /dev/null
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/event/TomEEEmbeddedApplicationRunnerInjection.java
@@ -0,0 +1,54 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.tomee.embedded.event;
+
+import org.apache.openejb.observer.Event;
+
+import java.lang.reflect.Field;
+
+@Event
+public class TomEEEmbeddedApplicationRunnerInjection {
+ private final Object instance;
+
+ public TomEEEmbeddedApplicationRunnerInjection(final Object instance) {
+ this.instance = instance;
+ }
+
+ public Object getInstance() {
+ return instance;
+ }
+
+ public <T> TomEEEmbeddedApplicationRunnerInjection inject(final Class<T> type, final T value) {
+ Class<?> aClass = instance.getClass();
+ while (aClass != null) {
+ for (final Field f : aClass.getDeclaredFields()) {
+ if (f.getType().isAssignableFrom(type)) {
+ if (!f.isAccessible()) {
+ f.setAccessible(true);
+ }
+ try {
+ f.set(instance, value);
+ } catch (final IllegalAccessException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+ }
+ aClass = aClass.getSuperclass();
+ }
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tomee/blob/3bb08cbe/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
index 3c5ae7d..8bb73e7 100644
--- a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
+++ b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
@@ -18,11 +18,13 @@ package org.apache.tomee.embedded;
import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.observer.Observes;
import org.apache.openejb.testing.Application;
import org.apache.openejb.testing.Classes;
import org.apache.openejb.testing.ContainerProperties;
import org.apache.openejb.testing.RandomPort;
import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.tomee.embedded.event.TomEEEmbeddedApplicationRunnerInjection;
import org.apache.tomee.embedded.junit.TomEEEmbeddedSingleRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -63,12 +65,14 @@ public class SingleInstanceRunnerTest {
assertEquals(1, app.tasks.size());
assertEquals(app.task, app.tasks.iterator().next());
assertEquals(app.task, MyTask.instance);
+ assertNotNull(app.custom);
}
@Application
@Classes(context = "app")
@ContainerProperties(@ContainerProperties.Property(name = "t", value = "set"))
- @TomEEEmbeddedApplicationRunner.LifecycleTasks(MyTask.class) // can start a ftp/sftp/elasticsearch/mongo/... server before tomee
+ @TomEEEmbeddedApplicationRunner.LifecycleTasks(MyTask.class)
+ // can start a ftp/sftp/elasticsearch/mongo/... server before tomee
@TomEEEmbeddedApplicationRunner.Configurers(SetMyProperty.class)
public static class TheApp {
@RandomPort("http")
@@ -87,6 +91,19 @@ public class SingleInstanceRunnerTest {
public Properties add() {
return new PropertiesBuilder().p("prog", "p").build();
}
+
+ private Custom custom;
+
+ public void doInject(@Observes final TomEEEmbeddedApplicationRunnerInjection injector) {
+ injector.inject(Custom.class, new Custom())
+ .inject(NotHere.class, new NotHere());
+ }
+ }
+
+ public static class NotHere {
+ }
+
+ public static class Custom {
}
public static class MyTask implements LifecycleTask {
[45/50] tomee git commit: upgrading commons lang3
Posted by rm...@apache.org.
upgrading commons lang3
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/a36aa128
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/a36aa128
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/a36aa128
Branch: refs/heads/tomee-1.7.x
Commit: a36aa128cd5ec832b334113db26ded733c40925e
Parents: 37eb102
Author: rmannibucau <rm...@apache.org>
Authored: Sat Oct 22 19:56:31 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Sat Oct 22 19:56:31 2016 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/a36aa128/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 6731cbc..c06eaae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,7 +157,7 @@
<commons-codec.version>1.10</commons-codec.version>
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<commons-discovery.version>0.5</commons-discovery.version>
- <commons-lang3.version>3.4</commons-lang3.version>
+ <commons-lang3.version>3.5</commons-lang3.version>
<commons-io.version>2.4</commons-io.version>
<commons-net.version>3.3</commons-net.version>
[41/50] tomee git commit: catalina from tomcat doesnt need scanning
too
Posted by rm...@apache.org.
catalina from tomcat doesnt need scanning too
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/209a0bfa
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/209a0bfa
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/209a0bfa
Branch: refs/heads/tomee-1.7.x
Commit: 209a0bfa60c2788d49a3a3330c3d6da520eb7ee8
Parents: 2d23d10
Author: rmannibucau <rm...@apache.org>
Authored: Wed Oct 19 09:55:31 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Wed Oct 19 09:55:31 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/openejb/util/ContainerClassesFilter.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/209a0bfa/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index e58ccb4..219d1b8 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -77,6 +77,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.aeonbits.owner");
excluded.add("org.apache.activemq");
excluded.add("org.apache.bval");
+ excluded.add("org.apache.catalina");
excluded.add("org.apache.camel");
excluded.add("org.apache.commons.beanutils");
excluded.add("org.apache.commons.cli");
[38/50] tomee git commit: skipping coyote too
Posted by rm...@apache.org.
skipping coyote too
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/32e6d194
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/32e6d194
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/32e6d194
Branch: refs/heads/tomee-1.7.x
Commit: 32e6d194088a26b382e6111562f4cbaafb47b7e6
Parents: 6db9f41
Author: rmannibucau <rm...@apache.org>
Authored: Wed Oct 19 09:49:37 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Wed Oct 19 09:49:37 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/openejb/util/ContainerClassesFilter.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/32e6d194/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index 1baff7e..950b5c9 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -89,6 +89,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.apache.commons.lang3");
excluded.add("org.apache.commons.logging");
excluded.add("org.apache.commons.pool2");
+ excluded.add("org.apache.coyote");
excluded.add("org.apache.cxf");
excluded.add("org.apache.geronimo.javamail");
excluded.add("org.apache.geronimo.mail");
[28/50] tomee git commit: tomcat 8.5.6
Posted by rm...@apache.org.
tomcat 8.5.6
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/4e1571d0
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/4e1571d0
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/4e1571d0
Branch: refs/heads/tomee-1.7.x
Commit: 4e1571d098c078bdeac97abef0c948237a4c8a9b
Parents: 14c7483
Author: rmannibucau <rm...@apache.org>
Authored: Tue Oct 11 22:34:13 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Oct 11 22:34:13 2016 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/4e1571d0/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 782ed64..5fc5677 100644
--- a/pom.xml
+++ b/pom.xml
@@ -127,7 +127,7 @@
<version.shrinkwrap.descriptor>2.0.0-alpha-7</version.shrinkwrap.descriptor>
<version.shrinkwrap.shrinkwrap>1.2.2</version.shrinkwrap.shrinkwrap>
- <tomcat.version>8.5.5</tomcat.version>
+ <tomcat.version>8.5.6</tomcat.version>
<cxf.version>3.1.7</cxf.version>
<ehcache.version>2.9.0</ehcache.version>
[09/50] tomee git commit: few more library exclude for shades +
allowing to exclude only some classes too
Posted by rm...@apache.org.
few more library exclude for shades + allowing to exclude only some classes too
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/4d3b3fb7
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/4d3b3fb7
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/4d3b3fb7
Branch: refs/heads/tomee-1.7.x
Commit: 4d3b3fb7169be42b145252e9aed96dc6d7ca59e9
Parents: 8b40e93
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 21:40:42 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 21:40:42 2016 +0200
----------------------------------------------------------------------
.../java/org/apache/openejb/util/ContainerClassesFilter.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/4d3b3fb7/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index eb3e811..1baff7e 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -58,6 +58,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("com.sun.xml.bind");
excluded.add("com.sun.xml.messaging.saaj");
excluded.add("com.sun.xml.txw2");
+ excluded.add("io.jsonwebtoken");
excluded.add("io.netty");
excluded.add("io.swagger.annotations");
excluded.add("io.swagger.config");
@@ -73,6 +74,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("junit");
excluded.add("net.sf.ehcache");
excluded.add("net.shibboleth.utilities.java.support");
+ excluded.add("org.aeonbits.owner");
excluded.add("org.apache.activemq");
excluded.add("org.apache.bval");
excluded.add("org.apache.camel");
@@ -121,6 +123,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.jasypt");
excluded.add("org.jboss.marshalling");
excluded.add("org.joda.time");
+ excluded.add("org.jose4j");
excluded.add("org.junit");
excluded.add("org.jvnet.mimepull");
excluded.add("org.metatype.sxc");
@@ -134,6 +137,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.terracotta.entity");
excluded.add("org.terracotta.modules.ehcache");
excluded.add("org.terracotta.statistics");
+ excluded.add("org.yaml.snakeyaml");
excluded.add("serp");
final Set<String> included = new HashSet<>();
@@ -186,7 +190,7 @@ public class ContainerClassesFilter implements Filter {
}
dot = name.indexOf('.', dot + 1);
}
- return false;
+ return included.contains(name);
}
}
}
[06/50] tomee git commit: ecj and hsqldb dont need to be scanned and
is big + excluding swagger which is common in shades
Posted by rm...@apache.org.
ecj and hsqldb dont need to be scanned and is big + excluding swagger which is common in shades
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/eb2b3018
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/eb2b3018
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/eb2b3018
Branch: refs/heads/tomee-1.7.x
Commit: eb2b3018eedb0623d1d201b6ef52d172dca5596f
Parents: a56f66a
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 21:24:44 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 21:24:44 2016 +0200
----------------------------------------------------------------------
.../org/apache/openejb/util/ContainerClassesFilter.java | 12 ++++++++++++
1 file changed, 12 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/eb2b3018/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index 34715ee..70fc8b7 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -59,6 +59,15 @@ public class ContainerClassesFilter implements Filter {
excluded.add("com.sun.xml.messaging.saaj");
excluded.add("com.sun.xml.txw2");
excluded.add("io.netty");
+ excluded.add("io.swagger.annotations");
+ excluded.add("io.swagger.config");
+ excluded.add("io.swagger.converter");
+ excluded.add("io.swagger.core");
+ excluded.add("io.swagger.jackson");
+ excluded.add("io.swagger.jaxrs");
+ excluded.add("io.swagger.model");
+ excluded.add("io.swagger.models");
+ excluded.add("io.swagger.util");
excluded.add("javax");
excluded.add("jnr");
excluded.add("junit");
@@ -101,8 +110,11 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.bouncycastle");
excluded.add("org.codehaus.stax2");
excluded.add("org.cryptacular");
+ excluded.add("org.eclipse.jdt.core");
+ excluded.add("org.eclipse.jdt.internal");
excluded.add("org.fusesource.hawtbuf");
excluded.add("org.hamcrest");
+ excluded.add("org.hsqldb");
excluded.add("org.jasypt");
excluded.add("org.jboss.marshalling");
excluded.add("org.joda.time");
[49/50] tomee git commit: TOMEE-1964 always return false for
isSameResource when required on a XADataSource
Posted by rm...@apache.org.
TOMEE-1964 always return false for isSameResource when required on a XADataSource
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/1b222cab
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/1b222cab
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/1b222cab
Branch: refs/heads/tomee-1.7.x
Commit: 1b222cabd659ed661830ec4e11e995cadc556e48
Parents: d39d1bc
Author: rmannibucau <rm...@apache.org>
Authored: Thu Nov 3 19:26:39 2016 +0100
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Nov 3 19:26:39 2016 +0100
----------------------------------------------------------------------
.../openejb/config/ConfigurationFactory.java | 5 +-
.../resource/jdbc/DataSourceFactory.java | 15 ++-
.../jdbc/xa/IsDifferentXaDataSourceWrapper.java | 107 +++++++++++++++++++
.../jdbc/XADataSourceIsDifferentTest.java | 87 +++++++++++++++
4 files changed, 211 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/1b222cab/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
index f5dd8ba..a348da3 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
@@ -1778,8 +1778,9 @@ public class ConfigurationFactory implements OpenEjbConfigurationFactory {
}
} else {
final String trim = String.valueOf(value).trim();
- if (ids.contains(trim)) {
- refs.add(trim);
+ final String id = (trim.startsWith("@") || trim.startsWith("$")) && trim.length() > 1 ? trim.substring(1) : trim;
+ if (ids.contains(id)) {
+ refs.add(id);
}
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/1b222cab/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
index be23efa..e0db5e3 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
@@ -77,6 +77,8 @@ public class DataSourceFactory {
public static final String GLOBAL_FLUSH_PROPERTY = "openejb.jdbc.flushable";
public static final String POOL_PROPERTY = "openejb.datasource.pool";
public static final String DATA_SOURCE_CREATOR_PROP = "DataSourceCreator";
+ public static final String XA_GLOBAL_FORCE_DIFFERENT = "openejb.datasource.xa.force-different-xaresource";
+ public static final String XA_FORCE_DIFFERENT = "XAForceDifferent";
public static final String HANDLER_PROPERTY = "TomEEProxyHandler";
public static final String GLOBAL_HANDLER_PROPERTY = "openejb.jdbc.handler";
@@ -105,6 +107,7 @@ public class DataSourceFactory {
final String handler = SystemInstance.get().getOptions().get(GLOBAL_HANDLER_PROPERTY, (String) properties.remove(HANDLER_PROPERTY));
boolean flushable = SystemInstance.get().getOptions().get(GLOBAL_FLUSH_PROPERTY,
"true".equalsIgnoreCase((String) properties.remove(FLUSHABLE_PROPERTY)));
+ final String forceDifferent = SystemInstance.get().getOptions().get(XA_GLOBAL_FORCE_DIFFERENT, String.class.cast(properties.remove(XA_FORCE_DIFFERENT)));
convert(properties, maxWaitTime, "maxWaitTime", "maxWait");
convert(properties, timeBetweenEvictionRuns, "timeBetweenEvictionRuns", "timeBetweenEvictionRunsMillis");
@@ -175,8 +178,18 @@ public class DataSourceFactory {
recipe.setProperty("url", properties.getProperty("JdbcUrl"));
}
- final CommonDataSource dataSource = (CommonDataSource) recipe.create();
+ CommonDataSource dataSource = (CommonDataSource) recipe.create();
final boolean isDs = DataSource.class.isInstance(dataSource);
+ if (!isDs && XADataSource.class.isInstance(dataSource) && forceDifferent != null) {
+ try {
+ dataSource = CommonDataSource.class.cast(Thread.currentThread().getContextClassLoader()
+ .loadClass("true".equals(forceDifferent) ? "org.apache.openejb.resource.jdbc.xa.IsDifferentXaDataSourceWrapper" : forceDifferent)
+ .getConstructor(XADataSource.class)
+ .newInstance(dataSource));
+ } catch (InvocationTargetException | ClassNotFoundException | NoSuchMethodException e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
if (managed) {
if (isDs && usePool(properties)) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/1b222cab/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/xa/IsDifferentXaDataSourceWrapper.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/xa/IsDifferentXaDataSourceWrapper.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/xa/IsDifferentXaDataSourceWrapper.java
new file mode 100644
index 0000000..e15e8cb
--- /dev/null
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/xa/IsDifferentXaDataSourceWrapper.java
@@ -0,0 +1,107 @@
+/*
+ * 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.openejb.resource.jdbc.xa;
+
+import javax.sql.XAConnection;
+import javax.sql.XADataSource;
+import javax.transaction.xa.XAResource;
+import java.io.PrintWriter;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
+import java.util.logging.Logger;
+
+public class IsDifferentXaDataSourceWrapper implements XADataSource {
+ private static final Class<?>[] API_CONNECTION = {XAConnection.class};
+ private static final Class<?>[] API_RESOURCE = {XAResource.class};
+ private final XADataSource delegate;
+
+ public IsDifferentXaDataSourceWrapper(final XADataSource delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public XAConnection getXAConnection() throws SQLException {
+ return wrap(delegate.getXAConnection());
+ }
+
+ @Override
+ public XAConnection getXAConnection(final String user, final String password) throws SQLException {
+ return wrap(delegate.getXAConnection(user, password));
+ }
+
+ private XAConnection wrap(final XAConnection xaConnection) {
+ return XAConnection.class.cast(Proxy.newProxyInstance(xaConnection.getClass().getClassLoader(), API_CONNECTION, new InvocationHandler() {
+ @Override
+ public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
+ if ("getXAResource".equals(method.getName())) {
+ try {
+ final Object xaResource = method.invoke(xaConnection, args);
+ return Proxy.newProxyInstance(xaResource.getClass().getClassLoader(), API_RESOURCE, new InvocationHandler() {
+ @Override
+ public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
+ if ("isSameRM".equals(method.getName())) {
+ return false; // that's the goal!
+ }
+ try {
+ return method.invoke(xaResource, args);
+ } catch (final InvocationTargetException ite) {
+ throw ite.getCause();
+ }
+ }
+ });
+ } catch (final InvocationTargetException ite) {
+ throw ite.getCause();
+ }
+ }
+ try {
+ return method.invoke(xaConnection, args);
+ } catch (final InvocationTargetException ite) {
+ throw ite.getCause();
+ }
+ }
+ }));
+ }
+
+ @Override
+ public PrintWriter getLogWriter() throws SQLException {
+ return delegate.getLogWriter();
+ }
+
+ @Override
+ public void setLogWriter(final PrintWriter out) throws SQLException {
+ delegate.setLogWriter(out);
+ }
+
+ @Override
+ public void setLoginTimeout(final int seconds) throws SQLException {
+ delegate.setLoginTimeout(seconds);
+ }
+
+ @Override
+ public int getLoginTimeout() throws SQLException {
+ return delegate.getLoginTimeout();
+ }
+
+ @Override
+ public Logger getParentLogger() throws SQLFeatureNotSupportedException {
+ return delegate.getParentLogger();
+ }
+}
http://git-wip-us.apache.org/repos/asf/tomee/blob/1b222cab/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceIsDifferentTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceIsDifferentTest.java b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceIsDifferentTest.java
new file mode 100644
index 0000000..9ab23bd
--- /dev/null
+++ b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceIsDifferentTest.java
@@ -0,0 +1,87 @@
+/*
+ * 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.openejb.resource.jdbc;
+
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.loader.Files;
+import org.apache.openejb.resource.jdbc.dbcp.DbcpDataSourceCreator;
+import org.apache.openejb.resource.jdbc.pool.DataSourceCreator;
+import org.apache.openejb.resource.jdbc.xa.IsDifferentXaDataSourceWrapper;
+import org.apache.openejb.testing.Configuration;
+import org.apache.openejb.testing.Module;
+import org.hsqldb.jdbc.pool.JDBCXADataSource;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.annotation.Resource;
+import javax.sql.XADataSource;
+import javax.transaction.UserTransaction;
+import java.io.File;
+import java.util.Properties;
+
+import static org.junit.Assert.assertFalse;
+
+@RunWith(ApplicationComposer.class)
+public class XADataSourceIsDifferentTest {
+ @Resource
+ private UserTransaction ut;
+
+ @Resource(name = "xaFacade")
+ private XADataSource ds;
+
+ @Test
+ public void run() throws Exception {
+ ut.begin();
+ try {
+ assertFalse(ds.getXAConnection().getXAResource().isSameRM(ds.getXAConnection().getXAResource()));
+ } finally {
+ ut.commit();
+ }
+ }
+
+ @Configuration
+ public Properties config() {
+ final File file = new File("target/test/xa/howl");
+ if (file.isDirectory()) {
+ Files.delete(file);
+ }
+
+ final Properties p = new Properties();
+ p.put(DataSourceCreator.class.getName(), DbcpDataSourceCreator.class.getName()); // default dbcp pool supports xaDataSource config, not our proxy layer
+
+ p.put("txMgr", "new://TransactionManager?type=TransactionManager");
+ p.put("txMgr.txRecovery", "true");
+ p.put("txMgr.logFileDir", "target/test/xa/howl");
+
+ p.put("xa", "new://Resource?class-name=" + JDBCXADataSource.class.getName());
+ p.put("xa.url", "jdbc:hsqldb:mem:xa");
+ p.put("xa.user", "sa");
+ p.put("xa.password", "");
+ p.put("xa.SkipImplicitAttributes", "true"); // conflict with connectionProperties
+
+ p.put("xaFacade", "new://Resource?class-name=" + IsDifferentXaDataSourceWrapper.class.getName() + "&constructor=delegate");
+ p.put("xaFacade.delegate", "@xa");
+
+ return p;
+ }
+
+ @Module
+ public EjbJar app() throws Exception {
+ return new EjbJar();
+ }
+}
[42/50] tomee git commit: naming too
Posted by rm...@apache.org.
naming too
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/e0bbf0be
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/e0bbf0be
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/e0bbf0be
Branch: refs/heads/tomee-1.7.x
Commit: e0bbf0be6b40fc1331f06eed6feda5f28b782f3a
Parents: 209a0bf
Author: rmannibucau <rm...@apache.org>
Authored: Wed Oct 19 09:56:14 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Wed Oct 19 09:56:14 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/openejb/util/ContainerClassesFilter.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/e0bbf0be/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index 219d1b8..0946a54 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -102,6 +102,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.apache.logging.log4j.core");
excluded.add("org.apache.logging.slf4j");
excluded.add("org.apache.myfaces");
+ excluded.add("org.apache.naming");
excluded.add("org.apache.neethi");
excluded.add("org.apache.openejb");
excluded.add("org.apache.oro");
[15/50] tomee git commit: TOMEE-1905 AMQ 5.14.1
Posted by rm...@apache.org.
TOMEE-1905 AMQ 5.14.1
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/6cba7334
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/6cba7334
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/6cba7334
Branch: refs/heads/tomee-1.7.x
Commit: 6cba7334abc99ef456414d94fde71d0a7829850a
Parents: e2a4c2a
Author: rmannibucau <rm...@apache.org>
Authored: Mon Oct 3 14:45:54 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Mon Oct 3 14:45:54 2016 +0200
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/6cba7334/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3dc0fed..782ed64 100644
--- a/pom.xml
+++ b/pom.xml
@@ -162,7 +162,7 @@
<commons-net.version>3.3</commons-net.version>
<bval.version>1.1.1</bval.version>
- <org.apache.activemq.version>5.14.0</org.apache.activemq.version>
+ <org.apache.activemq.version>5.14.1</org.apache.activemq.version>
<org.springframework.version>3.1.4.RELEASE</org.springframework.version>
<junit.version>4.12</junit.version>
<org.apache.axis2.version>1.4.1</org.apache.axis2.version>
[26/50] tomee git commit: TOMEE-1953 adding custom web resources list
in tomee embedded configuration and wiring it in its mojo
Posted by rm...@apache.org.
TOMEE-1953 adding custom web resources list in tomee embedded configuration and wiring it in its mojo
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/fb545612
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/fb545612
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/fb545612
Branch: refs/heads/tomee-1.7.x
Commit: fb545612f726039605e2a82187b97df74f919cad
Parents: 446c578
Author: rmannibucau <rm...@apache.org>
Authored: Thu Oct 6 11:29:55 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Oct 6 11:29:55 2016 +0200
----------------------------------------------------------------------
.../gradle/embedded/TomEEEmbeddedExtension.java | 9 ++
.../gradle/embedded/TomEEEmbeddedTask.java | 12 +++
.../maven/plugins/TomEEEmbeddedMojo.java | 11 ++
.../maven/plugins/TomEEEmbeddedMojoTest.java | 105 ++++++++++++++-----
tomee/tomee-embedded/pom.xml | 6 ++
.../apache/tomee/embedded/Configuration.java | 19 ++++
.../internal/StandardContextCustomizer.java | 17 +++
7 files changed, 152 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/fb545612/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedExtension.java
----------------------------------------------------------------------
diff --git a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedExtension.java b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedExtension.java
index 809667b..98ef2b0 100644
--- a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedExtension.java
+++ b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedExtension.java
@@ -60,6 +60,7 @@ public class TomEEEmbeddedExtension {
private String inlinedTomEEXml;
private File workDir;
private List<File> modules;
+ private List<String> customWebResources;
private File docBase;
private String dir;
private String conf;
@@ -343,4 +344,12 @@ public class TomEEEmbeddedExtension {
public void setConf(final String conf) {
this.conf = conf;
}
+
+ public List<String> getCustomWebResources() {
+ return customWebResources;
+ }
+
+ public void setCustomWebResources(final List<String> customWebResources) {
+ this.customWebResources = customWebResources;
+ }
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/fb545612/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java
----------------------------------------------------------------------
diff --git a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java
index b3ce50d..82c6526 100644
--- a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java
+++ b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java
@@ -126,6 +126,10 @@ public class TomEEEmbeddedTask extends DefaultTask {
@Optional
@Input
+ private Collection<String> customWebResources;
+
+ @Optional
+ @Input
private boolean webResourceCached = true;
@Optional
@@ -712,4 +716,12 @@ public class TomEEEmbeddedTask extends DefaultTask {
public void setSingleClassloader(final boolean singleClassloader) {
this.singleClassloader = singleClassloader;
}
+
+ public Collection<String> getCustomWebResources() {
+ return customWebResources;
+ }
+
+ public void setCustomWebResources(final Collection<String> customWebResources) {
+ this.customWebResources = customWebResources;
+ }
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/fb545612/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
----------------------------------------------------------------------
diff --git a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
index 95038ab..da697cb 100644
--- a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
+++ b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
@@ -213,6 +213,12 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
protected List<File> modules;
/**
+ * Additional web resources (directories).
+ */
+ @Parameter(property = "tomee-embedded-plugin.web-resources")
+ protected List<File> webResources;
+
+ /**
* Where is docBase/web resources.
*/
@Parameter(property = "tomee-embedded-plugin.docBase", defaultValue = "${project.basedir}/src/main/webapp")
@@ -662,6 +668,11 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
}
config.getProperties().setProperty("tomee.force-reloadable", "true");
}
+ if (webResources != null && !webResources.isEmpty()) {
+ for (final File f : webResources) {
+ config.addCustomWebResources(f.getAbsolutePath());
+ }
+ }
return config;
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/fb545612/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
----------------------------------------------------------------------
diff --git a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java b/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
index 21a511a..3a51b51 100644
--- a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
+++ b/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
@@ -40,6 +40,7 @@ import java.util.concurrent.atomic.AtomicReference;
import static java.lang.System.lineSeparator;
import static java.lang.Thread.sleep;
+import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@@ -86,33 +87,7 @@ public class TomEEEmbeddedMojoTest {
}
});
- final CountDownLatch stopped = new CountDownLatch(1);
-
- final AtomicReference<Exception> error = new AtomicReference<>();
- final Thread mojoThread = new Thread() {
- {
- setName("Mojo-Starter");
- }
-
- @Override
- public void run() {
- try {
- mojo.execute();
- } catch (final Exception e) {
- error.set(e);
- } finally {
- stopped.countDown();
- }
- }
- };
- mojoThread.start();
- try {
- started.await(10, TimeUnit.MINUTES);
- } catch (final InterruptedException e) {
- Thread.interrupted();
- }
-
- assertNull("all started fine", error.get());
+ final CountDownLatch stopped = doStart(started, mojo);
assertEquals("ok", IO.slurp(new URL("http://localhost:" + mojo.httpPort + "/endpoint/")).trim());
long initTs = timestamp(mojo);
@@ -156,6 +131,82 @@ public class TomEEEmbeddedMojoTest {
input.close();
}
+
+ @Test
+ public void customWebResource() throws Exception {
+ final File docBase = new File("target/TomEEEmbeddedMojoTest/customWebResource");
+ docBase.mkdirs();
+ try (final FileWriter w = new FileWriter(new File(docBase, "index.html"))) {
+ w.write("resource");
+ }
+
+ // we use a dynamic InputStream to be able to simulate commands without hacking System.in
+ final Input input = new Input();
+ final Semaphore reloaded = new Semaphore(0);
+ final CountDownLatch started = new CountDownLatch(1);
+ final TomEEEmbeddedMojo mojo = new TomEEEmbeddedMojo() {
+ @Override
+ protected Scanner newScanner() {
+ return new Scanner(input);
+ }
+ };
+ mojo.classpathAsWar = true;
+ mojo.httpPort = NetworkUtil.getNextAvailablePort();
+ mojo.ssl = false;
+ mojo.webResources = singletonList(docBase);
+ mojo.webResourceCached = false;
+ mojo.setLog(new SystemStreamLog() { // not the best solution but fine for now...
+ @Override
+ public void info(final CharSequence charSequence) {
+ final String string = charSequence.toString();
+ if (string.startsWith("TomEE embedded started on") || string.equals("can't start TomEE")) {
+ started.countDown();
+ } else if (string.contains("Redeployed /")) {
+ reloaded.release();
+ }
+ super.info(charSequence);
+ }
+ });
+
+ final CountDownLatch stopped = doStart(started, mojo);
+ assertEquals("resource", IO.slurp(new URL("http://localhost:" + mojo.httpPort + "/")).trim());
+
+ input.write("exit");
+ stopped.await(5, TimeUnit.MINUTES);
+ input.close();
+ }
+
+ private CountDownLatch doStart(final CountDownLatch started, final TomEEEmbeddedMojo mojo) {
+ final CountDownLatch stopped = new CountDownLatch(1);
+
+ final AtomicReference<Exception> error = new AtomicReference<>();
+ final Thread mojoThread = new Thread() {
+ {
+ setName("Mojo-Starter");
+ }
+
+ @Override
+ public void run() {
+ try {
+ mojo.execute();
+ } catch (final Exception e) {
+ error.set(e);
+ } finally {
+ stopped.countDown();
+ }
+ }
+ };
+ mojoThread.start();
+ try {
+ started.await(10, TimeUnit.MINUTES);
+ } catch (final InterruptedException e) {
+ Thread.interrupted();
+ }
+
+ assertNull("all started fine", error.get());
+ return stopped;
+ }
+
private long timestamp(final TomEEEmbeddedMojo mojo) throws IOException {
return Long.parseLong(IO.slurp(new URL("http://localhost:" + mojo.httpPort + "/endpoint/timestamp")).trim());
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/fb545612/tomee/tomee-embedded/pom.xml
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/pom.xml b/tomee/tomee-embedded/pom.xml
index 81e4cfe..99e1255 100644
--- a/tomee/tomee-embedded/pom.xml
+++ b/tomee/tomee-embedded/pom.xml
@@ -452,6 +452,12 @@
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-websocket</artifactId>
<version>${tomcat.version}</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>tomcat-juli</artifactId>
+ <groupId>org.apache.tomcat</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>commons-io</groupId>
http://git-wip-us.apache.org/repos/asf/tomee/blob/fb545612/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
index e55f0cf..61f5530 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
@@ -37,6 +37,8 @@ import java.util.LinkedList;
import java.util.Map;
import java.util.Properties;
+import static java.util.Arrays.asList;
+
/**
* @version $Rev$ $Date$
*/
@@ -65,6 +67,7 @@ public class Configuration {
private String webXml;
private LoginConfigBuilder loginConfig;
private Collection<SecurityConstaintBuilder> securityConstraints = new LinkedList<>();
+ private Collection<String> customWebResources = new LinkedList<>();
private Realm realm;
@@ -225,6 +228,10 @@ public class Configuration {
if (tempDir != null) {
setTempDir(tempDir);
}
+ final String customWebResources = config.getProperty("customWebResources");
+ if (customWebResources != null) {
+ setCustomWebResources(customWebResources);
+ }
final String classesFilterType = config.getProperty("classesFilter");
if (classesFilterType != null) {
try {
@@ -611,6 +618,18 @@ public class Configuration {
this.deleteBaseOnStartup = deleteBaseOnStartup;
}
+ public void setCustomWebResources(final String web) {
+ customWebResources.addAll(asList(web.split(",")));
+ }
+
+ public void addCustomWebResources(final String web) {
+ customWebResources.add(web);
+ }
+
+ public Collection<String> getCustomWebResources() {
+ return customWebResources;
+ }
+
public interface ConfigurationCustomizer {
void customize(Configuration configuration);
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/fb545612/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/internal/StandardContextCustomizer.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/internal/StandardContextCustomizer.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/internal/StandardContextCustomizer.java
index 3fa62a5..736a1f5 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/internal/StandardContextCustomizer.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/internal/StandardContextCustomizer.java
@@ -37,8 +37,10 @@ import org.apache.tomee.embedded.SecurityConstaintBuilder;
import java.beans.PropertyChangeListener;
import java.io.File;
+import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
+import java.util.logging.Logger;
public class StandardContextCustomizer {
private final WebModule module;
@@ -96,6 +98,21 @@ public class StandardContextCustomizer {
} // else endsWith .war => ignore
}
}
+ if (config.getCustomWebResources() != null) {
+ for (final String web : config.getCustomWebResources()) {
+ final File file = new File(web);
+ if (file.isDirectory()) {
+ try {
+ resources.createWebResourceSet(WebResourceRoot.ResourceSetType.RESOURCE_JAR, "/", file.toURI().toURL(), "/");
+ } catch (final MalformedURLException e) {
+ throw new IllegalArgumentException(e);
+ }
+ } else {
+ Logger.getLogger(StandardContextCustomizer.class.getName())
+ .warning("'" + web + "' is not a directory, ignoring");
+ }
+ }
+ }
if (config.getLoginConfig() != null) {
context.setLoginConfig(config.getLoginConfig().build());
[50/50] tomee git commit: TOMEE-1974 backporting url cleanup from
master to use authorization parameter instead of introducing a new
authentication way less powerful
Posted by rm...@apache.org.
TOMEE-1974 backporting url cleanup from master to use authorization parameter instead of introducing a new authentication way less powerful
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/1f4b821b
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/1f4b821b
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/1f4b821b
Branch: refs/heads/tomee-1.7.x
Commit: 1f4b821b91960f651d57792fdfe5ca2bb38d70f1
Parents: 1b222ca
Author: rmannibucau <rm...@apache.org>
Authored: Sat Dec 3 17:33:07 2016 +0100
Committer: rmannibucau <rm...@apache.org>
Committed: Sat Dec 3 17:33:07 2016 +0100
----------------------------------------------------------------------
.../java/org/apache/openejb/client/Client.java | 4 +--
.../apache/openejb/client/ClientDataSource.java | 4 ++-
.../openejb/client/EjbObjectInputStream.java | 2 +-
.../openejb/client/HttpConnectionFactory.java | 29 ++++++++++++++++----
.../apache/openejb/client/ResourceFinder.java | 4 ++-
.../apache/openejb/client/ServiceLocator.java | 4 ++-
.../openejb/client/proxy/Jdk13ProxyFactory.java | 2 +-
.../openejb/client/HttpConnectionTest.java | 4 +++
8 files changed, 40 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/1f4b821b/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java b/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
index 837a2ea..1559e37 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
@@ -56,7 +56,7 @@ public class Client {
private boolean FINEST = logger.isLoggable(Level.FINEST);
private boolean FINER = logger.isLoggable(Level.FINER);
- public static final ThreadLocal<Set<URI>> failed = new ThreadLocal<>();
+ public static final ThreadLocal<Set<URI>> failed = new ThreadLocal<Set<URI>>();
private static final ProtocolMetaData PROTOCOL_META_DATA = new ProtocolMetaData();
private static Client client = new Client();
@@ -67,7 +67,7 @@ public class Client {
COMPATIBLE_META_DATA = (null != version ? new ProtocolMetaData(version) : null);
}
- private List<Class<? extends Throwable>> retryConditions = new CopyOnWriteArrayList<>();
+ private List<Class<? extends Throwable>> retryConditions = new CopyOnWriteArrayList<Class<? extends Throwable>>();
private boolean retry = false;
private final Observers observers = new Observers();
http://git-wip-us.apache.org/repos/asf/tomee/blob/1f4b821b/server/openejb-client/src/main/java/org/apache/openejb/client/ClientDataSource.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/ClientDataSource.java b/server/openejb-client/src/main/java/org/apache/openejb/client/ClientDataSource.java
index 3f28b34..ab44500 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/ClientDataSource.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/ClientDataSource.java
@@ -69,8 +69,10 @@ public class ClientDataSource implements DataSource {
final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
try {
Class.forName(jdbcDriver, true, classLoader);
- } catch (ClassNotFoundException | NoClassDefFoundError e) {
+ } catch (final NoClassDefFoundError e) {
throw new IllegalStateException("Cannot use DataSource in client VM without the JDBC Driver in classpath: " + jdbcDriver, e);
+ } catch (final ClassNotFoundException cnfe) {
+ throw new IllegalStateException("Cannot use DataSource in client VM without the JDBC Driver in classpath: " + jdbcDriver, cnfe);
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/1f4b821b/server/openejb-client/src/main/java/org/apache/openejb/client/EjbObjectInputStream.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/EjbObjectInputStream.java b/server/openejb-client/src/main/java/org/apache/openejb/client/EjbObjectInputStream.java
index 59b48df..66d0570 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/EjbObjectInputStream.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/EjbObjectInputStream.java
@@ -29,7 +29,7 @@ import java.util.regex.Pattern;
*/
public class EjbObjectInputStream extends ObjectInputStream {
private static final AtomicReference<BlacklistClassResolver> RESOLVER_ATOMIC_REFERENCE =
- new AtomicReference<>(new BlacklistClassResolver());
+ new AtomicReference<BlacklistClassResolver>(new BlacklistClassResolver());
public static void reloadResolverConfig() {
RESOLVER_ATOMIC_REFERENCE.set(new BlacklistClassResolver());
http://git-wip-us.apache.org/repos/asf/tomee/blob/1f4b821b/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java b/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java
index 7344864..a93fdcb 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java
@@ -38,8 +38,8 @@ import java.util.concurrent.ConcurrentMap;
*/
public class HttpConnectionFactory implements ConnectionFactory {
// this map only ensures JVM keep alive socket caching works properly
- private final ConcurrentMap<URI, SSLSocketFactory> socketFactoryMap = new ConcurrentHashMap<>();
- private final Queue<byte[]> drainBuffers = new ConcurrentLinkedQueue<>();
+ private final ConcurrentMap<URI, SSLSocketFactory> socketFactoryMap = new ConcurrentHashMap<URI, SSLSocketFactory>();
+ private final Queue<byte[]> drainBuffers = new ConcurrentLinkedQueue<byte[]>();
@Override
public Connection getConnection(final URI uri) throws IOException {
@@ -74,7 +74,10 @@ public class HttpConnectionFactory implements ConnectionFactory {
throw new IllegalArgumentException("Invalid uri " + uri.toString(), e);
}
- httpURLConnection = (HttpURLConnection) url.openConnection();
+ final String authorization = params.get("authorization");
+
+ httpURLConnection = (HttpURLConnection) (authorization == null ?
+ url : new URL(stripQuery(url.toExternalForm(), "authorization"))).openConnection();
httpURLConnection.setDoOutput(true);
final int timeout;
@@ -89,8 +92,8 @@ public class HttpConnectionFactory implements ConnectionFactory {
if (params.containsKey("readTimeout")) {
httpURLConnection.setReadTimeout(Integer.parseInt(params.get("readTimeout")));
}
- if (params.containsKey("authorization")) {
- httpURLConnection.setRequestProperty("Authorization", params.get("authorization"));
+ if (authorization != null) {
+ httpURLConnection.setRequestProperty("Authorization", authorization);
}
if (params.containsKey("sslKeyStore") || params.containsKey("sslTrustStore")) {
@@ -105,7 +108,9 @@ public class HttpConnectionFactory implements ConnectionFactory {
}
((HttpsURLConnection) httpURLConnection).setSSLSocketFactory(sslSocketFactory);
- } catch (final NoSuchAlgorithmException | KeyManagementException e) {
+ } catch (final KeyManagementException e) {
+ throw new ClientRuntimeException(e.getMessage(), e);
+ } catch (final NoSuchAlgorithmException e) {
throw new ClientRuntimeException(e.getMessage(), e);
}
}
@@ -117,6 +122,18 @@ public class HttpConnectionFactory implements ConnectionFactory {
}
}
+ private String stripQuery(final String url, final String param) {
+ String result = url;
+ do {
+ final int h = result.indexOf(param + '=');
+ final int end = result.indexOf('&', h);
+ if (h <= 0) {
+ return result;
+ }
+ result = result.substring(0, h - 1) + (end < 0 ? "" : result.substring(end + 1, result.length()));
+ } while (true);
+ }
+
@Override
public void discard() {
try {
http://git-wip-us.apache.org/repos/asf/tomee/blob/1f4b821b/server/openejb-client/src/main/java/org/apache/openejb/client/ResourceFinder.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/ResourceFinder.java b/server/openejb-client/src/main/java/org/apache/openejb/client/ResourceFinder.java
index b768b75..848a30f 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/ResourceFinder.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/ResourceFinder.java
@@ -1067,8 +1067,10 @@ public class ResourceFinder {
return resourceURL;
}
}
- } catch (SecurityException | IOException e) {
+ } catch (final IOException e) {
// Keep iterating through the URL list
+ } catch (final SecurityException e) {
+ // no-op
}
}
return null;
http://git-wip-us.apache.org/repos/asf/tomee/blob/1f4b821b/server/openejb-client/src/main/java/org/apache/openejb/client/ServiceLocator.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/ServiceLocator.java b/server/openejb-client/src/main/java/org/apache/openejb/client/ServiceLocator.java
index 72b42bd..ed18d54 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/ServiceLocator.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/ServiceLocator.java
@@ -58,7 +58,9 @@ public class ServiceLocator {
public Object lookup(final String name) {
try {
return context.lookup(name);
- } catch (NamingException | RuntimeException e) {
+ } catch (final RuntimeException e) {
+ throw new IllegalArgumentException(e);
+ } catch (final NamingException e) {
throw new IllegalArgumentException(e);
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/1f4b821b/server/openejb-client/src/main/java/org/apache/openejb/client/proxy/Jdk13ProxyFactory.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/proxy/Jdk13ProxyFactory.java b/server/openejb-client/src/main/java/org/apache/openejb/client/proxy/Jdk13ProxyFactory.java
index a8e0f8e..e0c7fbb 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/proxy/Jdk13ProxyFactory.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/proxy/Jdk13ProxyFactory.java
@@ -108,7 +108,7 @@ public class Jdk13ProxyFactory implements ProxyFactory {
//noinspection RedundantArrayCreation
return cons.newInstance(new Object[]{new Jdk13InvocationHandler()});
- } catch (NoSuchMethodException | InvocationTargetException | InstantiationException | IllegalAccessException e) {
+ } catch (final Exception e) {
throw new InternalError(e.toString());
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/1f4b821b/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java b/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java
index a37d8d3..1f6717e 100644
--- a/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java
+++ b/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java
@@ -48,6 +48,10 @@ public class HttpConnectionTest {
final OutputStream responseBody = exchange.getResponseBody();
responseBody.write("secure page".getBytes());
+ final String query = exchange.getRequestURI().getQuery();
+ if (query != null) {
+ responseBody.write(query.getBytes());
+ }
final String authorization = exchange.getRequestHeaders().getFirst("Authorization");
if (authorization != null) {
responseBody.write(authorization.getBytes("UTF-8"));
[25/50] tomee git commit: TOMEE-1889 ensuring complex uri work with
basic auth for openejb-client http connection
Posted by rm...@apache.org.
TOMEE-1889 ensuring complex uri work with basic auth for openejb-client http connection
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/446c5784
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/446c5784
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/446c5784
Branch: refs/heads/tomee-1.7.x
Commit: 446c5784300da33266be0bc79afb2b883c87d5d5
Parents: 2493f40
Author: rmannibucau <rm...@apache.org>
Authored: Wed Oct 5 23:24:01 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Wed Oct 5 23:24:01 2016 +0200
----------------------------------------------------------------------
.../client/FailoverConnectionFactory.java | 4 +--
.../openejb/client/HttpConnectionTest.java | 31 ++++++++++++++++++++
2 files changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/446c5784/server/openejb-client/src/main/java/org/apache/openejb/client/FailoverConnectionFactory.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/FailoverConnectionFactory.java b/server/openejb-client/src/main/java/org/apache/openejb/client/FailoverConnectionFactory.java
index 22fd8a9..47c8ff5 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/FailoverConnectionFactory.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/FailoverConnectionFactory.java
@@ -57,12 +57,12 @@ public class FailoverConnectionFactory implements ConnectionFactory {
// failover:sticky:ejbd://foo:4201,ejbd://bar:4202
// trim off the "failover:"
- final String remainder = failoverUri.getSchemeSpecificPart();
+ final String remainder = failoverUri.getRawSchemeSpecificPart();
final URI uri = URI.create(remainder);
String strategy = uri.getScheme();
- String servers = uri.getSchemeSpecificPart();
+ String servers = uri.getRawSchemeSpecificPart();
if (servers.startsWith("//")) {
strategy = "default";
http://git-wip-us.apache.org/repos/asf/tomee/blob/446c5784/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java b/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java
index 565ce56..a37d8d3 100644
--- a/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java
+++ b/server/openejb-client/src/test/java/org/apache/openejb/client/HttpConnectionTest.java
@@ -32,6 +32,8 @@ import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URISyntaxException;
+import static org.junit.Assert.fail;
+
public class HttpConnectionTest {
private HttpServer server;
@@ -124,4 +126,33 @@ public class HttpConnectionTest {
Assert.assertTrue("should contain", sb.toString().contains("secure pageBasic token"));
}
}
+
+ @Test
+ public void complexURIAuthorization() throws IOException, URISyntaxException {
+ final String baseHttp = "http://localhost:" + server.getAddress().getPort() + "/e?authorization=";
+ final String uri = "failover:sticky+random:" + baseHttp + "Basic%20ABCD&" + baseHttp + "Basic%20EFG";
+ final Connection connection = ConnectionManager.getConnection(new URI(uri));
+ BufferedReader br = null;
+ final StringBuilder sb = new StringBuilder();
+ String line;
+ try {
+ br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+ while ((line = br.readLine()) != null) {
+ sb.append(line);
+ }
+ } catch (final IOException e) {
+ fail(e.getMessage());
+ } finally {
+ if (br != null) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ connection.close();
+ }
+ final String out = sb.toString();
+ Assert.assertTrue(out, out.contains("secure pageBasic ABCD"));
+ }
}
[23/50] tomee git commit: adding DeleteBaseOnStartup option to tomee
embedded and ensuring properties are filtered
Posted by rm...@apache.org.
adding DeleteBaseOnStartup option to tomee embedded and ensuring properties are filtered
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/f86f5a35
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/f86f5a35
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/f86f5a35
Branch: refs/heads/tomee-1.7.x
Commit: f86f5a355d7f324df989613ee61ae501d4343ec0
Parents: 8143fc0
Author: rmannibucau <rm...@apache.org>
Authored: Tue Oct 4 16:04:00 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Oct 4 16:04:00 2016 +0200
----------------------------------------------------------------------
.../apache/tomee/embedded/Configuration.java | 35 ++++++++++++++++++++
.../org/apache/tomee/embedded/Container.java | 19 ++++++-----
.../TomEEEmbeddedApplicationRunner.java | 4 ++-
.../embedded/SingleInstanceRunnerTest.java | 7 +++-
4 files changed, 54 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/f86f5a35/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
index b74ad95..e55f0cf 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
@@ -18,6 +18,8 @@ package org.apache.tomee.embedded;
import org.apache.catalina.Realm;
import org.apache.catalina.connector.Connector;
+import org.apache.commons.lang3.text.StrLookup;
+import org.apache.commons.lang3.text.StrSubstitutor;
import org.apache.openejb.loader.IO;
import org.apache.openejb.util.NetworkUtil;
import org.apache.xbean.finder.filter.Filter;
@@ -85,6 +87,7 @@ public class Configuration {
private boolean webResourceCached = true;
private String conf;
+ private boolean deleteBaseOnStartup = true;
public Configuration loadFrom(final String resource) {
try (final InputStream is = findStream(resource)) {
@@ -110,6 +113,26 @@ public class Configuration {
}
public void loadFromProperties(final Properties config) {
+ // filtering properties with system properties or themself
+ final StrSubstitutor strSubstitutor = new StrSubstitutor(new StrLookup<String>() {
+ @Override
+ public String lookup(final String key) {
+ final String property = System.getProperty(key);
+ return property == null ? config.getProperty(key) : null;
+ }
+ });
+ for (final String key : config.stringPropertyNames()) {
+ final String val = config.getProperty(key);
+ if (val == null || val.trim().isEmpty()) {
+ continue;
+ }
+ final String newVal = strSubstitutor.replace(config.getProperty(key));
+ if (!val.equals(newVal)) {
+ config.setProperty(key, newVal);
+ }
+ }
+
+
final String http = config.getProperty("http");
if (http != null) {
setHttpPort(Integer.parseInt(http));
@@ -154,6 +177,10 @@ public class Configuration {
if (http2 != null) {
setHttp2(Boolean.parseBoolean(http2));
}
+ final String deleteBaseOnStartup = config.getProperty("deleteBaseOnStartup");
+ if (deleteBaseOnStartup != null) {
+ setDeleteBaseOnStartup(Boolean.parseBoolean(deleteBaseOnStartup));
+ }
final String webResourceCached = config.getProperty("webResourceCached");
if (webResourceCached != null) {
setWebResourceCached(Boolean.parseBoolean(webResourceCached));
@@ -576,6 +603,14 @@ public class Configuration {
return classesFilter;
}
+ public boolean isDeleteBaseOnStartup() {
+ return deleteBaseOnStartup;
+ }
+
+ public void setDeleteBaseOnStartup(final boolean deleteBaseOnStartup) {
+ this.deleteBaseOnStartup = deleteBaseOnStartup;
+ }
+
public interface ConfigurationCustomizer {
void customize(Configuration configuration);
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/f86f5a35/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
index 06b33dd..aa2d054 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
@@ -423,14 +423,13 @@ public class Container implements AutoCloseable {
// create basic installation in setup to be able to handle anything the caller does between setup() and start()
base = new File(getBaseDir());
- if (base.exists()) {
- // TODO: get rid of Files which has its own shutdown hook which can mess up order if started/shutdown multiple times?
+ if (base.exists() && configuration.isDeleteBaseOnStartup()) {
Files.delete(base);
+ } else if (!base.exists()) {
+ Files.mkdirs(base);
+ Files.deleteOnExit(base);
}
- Files.mkdirs(base);
- Files.deleteOnExit(base);
-
final File conf = createDirectory(base, "conf");
createDirectory(base, "lib");
createDirectory(base, "logs");
@@ -842,10 +841,12 @@ public class Container implements AutoCloseable {
} catch (final LifecycleException e) {
e.printStackTrace();
}
- try {
- deleteTree(base);
- } catch (final Exception e) {
- e.printStackTrace();
+ if (configuration.isDeleteBaseOnStartup()) {
+ try {
+ deleteTree(base);
+ } catch (final Exception e) {
+ e.printStackTrace();
+ }
}
OpenEJB.destroy();
http://git-wip-us.apache.org/repos/asf/tomee/blob/f86f5a35/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index 7f69d32..ffc4dcd 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -16,6 +16,7 @@
*/
package org.apache.tomee.embedded;
+import org.apache.commons.lang3.text.StrSubstitutor;
import org.apache.openejb.config.DeploymentsResolver;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.testing.Application;
@@ -147,9 +148,10 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
for (final ContainerProperties.Property p : props.value()) {
final String name = p.name();
if (name.startsWith("tomee.embedded.application.runner.")) { // allow to tune the Configuration
+ // no need to filter there since it is done in loadFromProperties()
runnerProperties.setProperty(name.substring("tomee.embedded.application.runner.".length()), p.value());
} else {
- configuration.property(name, p.value());
+ configuration.property(name, StrSubstitutor.replaceSystemProperties(p.value()));
}
}
if (!runnerProperties.isEmpty()) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/f86f5a35/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
index 8bb73e7..7435205 100644
--- a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
+++ b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/SingleInstanceRunnerTest.java
@@ -53,6 +53,7 @@ public class SingleInstanceRunnerTest {
@Test
public void run() {
assertNotNull(SystemInstance.get().getComponent(Assembler.class));
+ assertEquals("val", SystemInstance.get().getProperty("simple"));
assertEquals("set", SystemInstance.get().getProperty("t"));
assertEquals("p", SystemInstance.get().getProperty("prog"));
assertEquals("128463", SystemInstance.get().getProperty("my.server.port"));
@@ -70,7 +71,11 @@ public class SingleInstanceRunnerTest {
@Application
@Classes(context = "app")
- @ContainerProperties(@ContainerProperties.Property(name = "t", value = "set"))
+ @ContainerProperties({
+ @ContainerProperties.Property(name = "simple", value = "val"),
+ @ContainerProperties.Property(name = "tomee.embedded.application.runner.properties.t", value = "${t.value}"),
+ @ContainerProperties.Property(name = "tomee.embedded.application.runner.t.value", value = "set")
+ })
@TomEEEmbeddedApplicationRunner.LifecycleTasks(MyTask.class)
// can start a ftp/sftp/elasticsearch/mongo/... server before tomee
@TomEEEmbeddedApplicationRunner.Configurers(SetMyProperty.class)
[02/50] tomee git commit: TOMEE-1949 remove descriptors from
openejb-core
Posted by rm...@apache.org.
TOMEE-1949 remove descriptors from openejb-core
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/f367d4ae
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/f367d4ae
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/f367d4ae
Branch: refs/heads/tomee-1.7.x
Commit: f367d4ae9d29d8c2e9ef57235e541c7ce046cb99
Parents: 43342db
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 20:42:19 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 20:42:19 2016 +0200
----------------------------------------------------------------------
.../src/main/resources/META-INF/ejb-jar.xml | 21 ----------------
.../src/main/resources/META-INF/openejb-jar.xml | 26 --------------------
2 files changed, 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/f367d4ae/container/openejb-core/src/main/resources/META-INF/ejb-jar.xml
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/resources/META-INF/ejb-jar.xml b/container/openejb-core/src/main/resources/META-INF/ejb-jar.xml
deleted file mode 100644
index 7e42c45..0000000
--- a/container/openejb-core/src/main/resources/META-INF/ejb-jar.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<!-- $Rev$ $Date$ -->
-
-<ejb-jar/>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tomee/blob/f367d4ae/container/openejb-core/src/main/resources/META-INF/openejb-jar.xml
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/resources/META-INF/openejb-jar.xml b/container/openejb-core/src/main/resources/META-INF/openejb-jar.xml
deleted file mode 100644
index 4d1746a..0000000
--- a/container/openejb-core/src/main/resources/META-INF/openejb-jar.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- -->
-
-<!-- $Rev$ $Date$ -->
-
-<openejb-jar>
- <properties>
- openejb.deploymentId.format = {ejbName}
- openejb.jndiname.format = {deploymentId}{interfaceType.openejbLegacyName}
- </properties>
-</openejb-jar>
[04/50] tomee git commit: adding log4j2 core to container classes to
not scan them
Posted by rm...@apache.org.
adding log4j2 core to container classes to not scan them
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/187a5321
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/187a5321
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/187a5321
Branch: refs/heads/tomee-1.7.x
Commit: 187a5321c98282936dacafa6edb2855e92219c68
Parents: 12f29b9
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 21:10:40 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 21:10:40 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/openejb/util/ContainerClassesFilter.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/187a5321/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index 62f896c..1396a35 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -80,6 +80,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.apache.jcp");
excluded.add("org.apache.johnzon");
excluded.add("org.apache.juli");
+ excluded.add("org.apache.logging.log4j.core");
excluded.add("org.apache.myfaces");
excluded.add("org.apache.neethi");
excluded.add("org.apache.openejb");
[29/50] tomee git commit: treat / as a different path for cxf jaxrs
resource handling integration - due to tomcat 8.5.6 upgrade
Posted by rm...@apache.org.
treat / as a different path for cxf jaxrs resource handling integration - due to tomcat 8.5.6 upgrade
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/823790b9
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/823790b9
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/823790b9
Branch: refs/heads/tomee-1.7.x
Commit: 823790b98af391c721e1d4103fc94c6d688f1de5
Parents: 4e1571d
Author: rmannibucau <rm...@apache.org>
Authored: Wed Oct 12 16:52:18 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Wed Oct 12 16:52:18 2016 +0200
----------------------------------------------------------------------
...AvoidConflictWithWebXmlWithNoResourceMatchingTest.java | 4 ++--
.../apache/openejb/server/cxf/rs/CxfRsHttpListener.java | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/823790b9/arquillian/arquillian-tomee-tests/arquillian-tomee-jaxrs-tests/src/test/java/org/apache/openejb/arquillian/tests/jaxrs/staticresources/AvoidConflictWithWebXmlWithNoResourceMatchingTest.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-tomee-tests/arquillian-tomee-jaxrs-tests/src/test/java/org/apache/openejb/arquillian/tests/jaxrs/staticresources/AvoidConflictWithWebXmlWithNoResourceMatchingTest.java b/arquillian/arquillian-tomee-tests/arquillian-tomee-jaxrs-tests/src/test/java/org/apache/openejb/arquillian/tests/jaxrs/staticresources/AvoidConflictWithWebXmlWithNoResourceMatchingTest.java
index dd8de77..8ebbf44 100644
--- a/arquillian/arquillian-tomee-tests/arquillian-tomee-jaxrs-tests/src/test/java/org/apache/openejb/arquillian/tests/jaxrs/staticresources/AvoidConflictWithWebXmlWithNoResourceMatchingTest.java
+++ b/arquillian/arquillian-tomee-tests/arquillian-tomee-jaxrs-tests/src/test/java/org/apache/openejb/arquillian/tests/jaxrs/staticresources/AvoidConflictWithWebXmlWithNoResourceMatchingTest.java
@@ -74,12 +74,12 @@ public class AvoidConflictWithWebXmlWithNoResourceMatchingTest {
// but it would be not deterministic otherwise so not better
@Test(expected = FileNotFoundException.class)
public void jsp() throws IOException {
- assertEquals("JSP 5", IO.slurp(new URL(url + "index.jsp")).trim());
+ IO.slurp(new URL(url + "index.jsp"));
}
@Test(expected = FileNotFoundException.class) // same as for jsp()
public void home() throws IOException {
- assertEquals("JSP 5", IO.slurp(url).trim());
+ IO.slurp(url);
}
@Test
http://git-wip-us.apache.org/repos/asf/tomee/blob/823790b9/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
----------------------------------------------------------------------
diff --git a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
index e08ca05..7bede36 100644
--- a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
+++ b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
@@ -279,16 +279,16 @@ public class CxfRsHttpListener implements RsHttpListener {
pathInfo = pathInfo.substring(0, indexOf);
}
}
- InputStream is = request.getServletContext().getResourceAsStream(pathInfo);
- if (is == null && ("/".equals(pathInfo) || pathInfo.isEmpty())) {
+ if ("/".equals(pathInfo) || pathInfo.isEmpty()) { // root is redirected to welcomefiles
for (final String n : welcomeFiles) {
- is = request.getServletContext().getResourceAsStream(n);
+ final InputStream is = request.getServletContext().getResourceAsStream(n);
if (is != null) {
- break;
+ return is;
}
}
+ return null; // "/" resolves to an empty string otherwise, we need to avoid it
}
- return is;
+ return request.getServletContext().getResourceAsStream(pathInfo);
}
public boolean serveStaticContent(final HttpServletRequest request,
[39/50] tomee git commit: skipping xbean too
Posted by rm...@apache.org.
skipping xbean too
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/16fa1d5d
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/16fa1d5d
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/16fa1d5d
Branch: refs/heads/tomee-1.7.x
Commit: 16fa1d5db20444f7439da511615cece1428c460c
Parents: 32e6d19
Author: rmannibucau <rm...@apache.org>
Authored: Wed Oct 19 09:51:05 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Wed Oct 19 09:51:05 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/openejb/util/ContainerClassesFilter.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/16fa1d5d/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index 950b5c9..0ab89f1 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -109,6 +109,7 @@ public class ContainerClassesFilter implements Filter {
excluded.add("org.apache.velocity");
excluded.add("org.apache.ws");
excluded.add("org.apache.wss4j");
+ excluded.add("org.apache.xbean");
excluded.add("org.apache.xml");
excluded.add("org.apache.xml.resolver");
excluded.add("org.bouncycastle");
[44/50] tomee git commit: style
Posted by rm...@apache.org.
style
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/37eb102e
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/37eb102e
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/37eb102e
Branch: refs/heads/tomee-1.7.x
Commit: 37eb102e47bceceda1507dcb05c82cdba215d364
Parents: 1ead009
Author: rmannibucau <rm...@apache.org>
Authored: Thu Oct 20 22:10:40 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Oct 20 22:10:40 2016 +0200
----------------------------------------------------------------------
.../java/org/apache/openejb/core/OpenEJBInitialContextFactory.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/37eb102e/container/openejb-core/src/main/java/org/apache/openejb/core/OpenEJBInitialContextFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/OpenEJBInitialContextFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/core/OpenEJBInitialContextFactory.java
index 0d91b41..e614159 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/OpenEJBInitialContextFactory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/OpenEJBInitialContextFactory.java
@@ -36,7 +36,7 @@ public class OpenEJBInitialContextFactory implements InitialContextFactory {
return new LocalFallbackContextWrapper(SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext());
}
- private static class LocalFallbackContextWrapper extends ContextWrapper {
+ private static final class LocalFallbackContextWrapper extends ContextWrapper {
private final ConcurrentMap<String, String> mapping = new ConcurrentHashMap<>();
private LocalFallbackContextWrapper(final Context jndiContext) {
[48/50] tomee git commit: bval release
Posted by rm...@apache.org.
bval release
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/d39d1bc2
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/d39d1bc2
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/d39d1bc2
Branch: refs/heads/tomee-1.7.x
Commit: d39d1bc2a92a419cd53479c6d68d6730d7bea4a4
Parents: 8381fdb
Author: rmannibucau <rm...@apache.org>
Authored: Thu Nov 3 17:57:36 2016 +0100
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Nov 3 17:57:36 2016 +0100
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/d39d1bc2/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 0ece54c..dc450b5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -161,7 +161,7 @@
<commons-io.version>2.4</commons-io.version>
<commons-net.version>3.3</commons-net.version>
- <bval.version>1.1.2-SNAPSHOT</bval.version>
+ <bval.version>1.1.2</bval.version>
<org.apache.activemq.version>5.14.1</org.apache.activemq.version>
<org.springframework.version>3.1.4.RELEASE</org.springframework.version>
<junit.version>4.12</junit.version>
[47/50] tomee git commit: beanutils is no more there by default
Posted by rm...@apache.org.
beanutils is no more there by default
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/8381fdbc
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/8381fdbc
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/8381fdbc
Branch: refs/heads/tomee-1.7.x
Commit: 8381fdbc37557a633a5e0b8246052eb4fa2cb299
Parents: f1eacc3
Author: rmannibucau <rm...@apache.org>
Authored: Thu Oct 27 23:40:26 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Oct 27 23:40:26 2016 +0200
----------------------------------------------------------------------
examples/deltaspike-fullstack/pom.xml | 4 ----
1 file changed, 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/8381fdbc/examples/deltaspike-fullstack/pom.xml
----------------------------------------------------------------------
diff --git a/examples/deltaspike-fullstack/pom.xml b/examples/deltaspike-fullstack/pom.xml
index fb95228..5116ec8 100644
--- a/examples/deltaspike-fullstack/pom.xml
+++ b/examples/deltaspike-fullstack/pom.xml
@@ -294,10 +294,6 @@
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
- <exclusion>
- <artifactId>commons-beanutils</artifactId>
- <groupId>commons-beanutils</groupId>
- </exclusion>
</exclusions>
</dependency>
<dependency>
[05/50] tomee git commit: adding jsch and jackson to default fatjar
exclusions
Posted by rm...@apache.org.
adding jsch and jackson to default fatjar exclusions
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/a56f66a7
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/a56f66a7
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/a56f66a7
Branch: refs/heads/tomee-1.7.x
Commit: a56f66a72f7368f6f4eb9ead914d89569eb7f5e9
Parents: 187a532
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 21:15:40 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 21:15:40 2016 +0200
----------------------------------------------------------------------
.../java/org/apache/openejb/util/ContainerClassesFilter.java | 6 ++++++
1 file changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/a56f66a7/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
index 1396a35..34715ee 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/ContainerClassesFilter.java
@@ -43,9 +43,15 @@ public class ContainerClassesFilter implements Filter {
excluded.add("com.codehale.metrics");
excluded.add("com.ctc.wstx");
excluded.add("com.datastax.driver.core");
+ excluded.add("com.fasterxml.jackson.annotation");
+ excluded.add("com.fasterxml.jackson.core");
+ excluded.add("com.fasterxml.jackson.databind");
+ excluded.add("com.fasterxml.jackson.dataformat");
+ excluded.add("com.fasterxml.jackson.module");
excluded.add("com.google.common");
excluded.add("com.google.thirdparty");
excluded.add("com.ibm.wsdl");
+ excluded.add("com.jcraft.jsch");
excluded.add("com.kenai.jffi");
excluded.add("com.kenai.jnr");
excluded.add("com.sun.istack");
[24/50] tomee git commit: TOMEE-1952 throw denied exception when
logged in the request for ejbd more properly
Posted by rm...@apache.org.
TOMEE-1952 throw denied exception when logged in the request for ejbd more properly
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/2493f404
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/2493f404
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/2493f404
Branch: refs/heads/tomee-1.7.x
Commit: 2493f404f443025ddcfb6707de46b07b61ce4ec0
Parents: f86f5a3
Author: rmannibucau <rm...@apache.org>
Authored: Tue Oct 4 17:08:51 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Oct 4 17:08:51 2016 +0200
----------------------------------------------------------------------
.../apache/openejb/client/EJBObjectHandler.java | 5 +++
.../org/apache/openejb/client/EJBResponse.java | 3 ++
.../apache/openejb/AuthentWithRequestTest.java | 44 ++++++++++++++------
3 files changed, 40 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/2493f404/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java b/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java
index 7923b70..cac4399 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java
@@ -307,6 +307,11 @@ public abstract class EJBObjectHandler extends EJBInvocationHandler {
throw new ApplicationException((ThrowableArtifact) getResult(res));
case ResponseCodes.EJB_OK:
return getResult(res);
+ case ResponseCodes.AUTH_DENIED:
+ final Object result = res.getResult();
+ if (ThrowableArtifact.class.isInstance(result)) {
+ throw ThrowableArtifact.class.cast(result).getThrowable();
+ } // else it be a remote exception
default:
throw new RemoteException("Received invalid response code from server: " + res.getResponseCode());
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/2493f404/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java b/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
index 04c8c29..46959eb 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
@@ -110,6 +110,9 @@ public class EJBResponse implements ClusterableResponse {
case ResponseCodes.EJB_SYS_EXCEPTION:
s = new StringBuffer("EJB_SYS_EXCEPTION");
break;
+ case ResponseCodes.AUTH_DENIED:
+ s = new StringBuffer("AUTH_DENIED");
+ break;
default:
s = new StringBuffer("UNKNOWN_RESPONSE");
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/2493f404/server/openejb-ejbd/src/test/java/org/apache/openejb/AuthentWithRequestTest.java
----------------------------------------------------------------------
diff --git a/server/openejb-ejbd/src/test/java/org/apache/openejb/AuthentWithRequestTest.java b/server/openejb-ejbd/src/test/java/org/apache/openejb/AuthentWithRequestTest.java
index 70d834d..4d282f7 100644
--- a/server/openejb-ejbd/src/test/java/org/apache/openejb/AuthentWithRequestTest.java
+++ b/server/openejb-ejbd/src/test/java/org/apache/openejb/AuthentWithRequestTest.java
@@ -33,6 +33,7 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
+import javax.ejb.EJBException;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.naming.Context;
@@ -49,6 +50,7 @@ import java.util.Properties;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
public class AuthentWithRequestTest {
@@ -82,19 +84,37 @@ public class AuthentWithRequestTest {
assembler.createApplication(config.configureApplication(ejbJar));
try {
+ { // ok case
+ final Context context = new InitialContext(new PropertiesBuilder()
+ .p(Context.INITIAL_CONTEXT_FACTORY, RemoteInitialContextFactory.class.getName())
+ .p(Context.PROVIDER_URL, "ejbd://127.0.0.1:" + port)
+ .p(JNDIContext.AUTHENTICATE_WITH_THE_REQUEST, "true")
+ .p("java.naming.security.principal", "foo")
+ .p("java.naming.security.credentials", "bar")
+ .p("openejb.authentication.realmName", "LM")
+ .build());
+ final AnInterfaceRemote client = AnInterfaceRemote.class.cast(context.lookup("RemoteWithSecurityRemote"));
+ assertNotNull(client);
+
+ assertEquals("foo", client.call());
+ }
- final Context context = new InitialContext(new PropertiesBuilder()
- .p(Context.INITIAL_CONTEXT_FACTORY, RemoteInitialContextFactory.class.getName())
- .p(Context.PROVIDER_URL, "ejbd://127.0.0.1:" + port)
- .p(JNDIContext.AUTHENTICATE_WITH_THE_REQUEST, "true")
- .p("java.naming.security.principal", "foo")
- .p("java.naming.security.credentials", "bar")
- .p("openejb.authentication.realmName", "LM")
- .build());
- final AnInterfaceRemote client = AnInterfaceRemote.class.cast(context.lookup("RemoteWithSecurityRemote"));
- assertNotNull(client);
-
- assertEquals("foo", client.call());
+ {// now the failing case
+ final Context context = new InitialContext(new PropertiesBuilder()
+ .p(Context.INITIAL_CONTEXT_FACTORY, RemoteInitialContextFactory.class.getName())
+ .p(Context.PROVIDER_URL, "ejbd://127.0.0.1:" + port)
+ .p(JNDIContext.AUTHENTICATE_WITH_THE_REQUEST, "true")
+ .p("java.naming.security.principal", "wrong")
+ .p("java.naming.security.credentials", "wrong")
+ .p("openejb.authentication.realmName", "LM")
+ .build());
+ final AnInterfaceRemote client = AnInterfaceRemote.class.cast(context.lookup("RemoteWithSecurityRemote"));
+ try {
+ client.call();
+ } catch (final EJBException e) {
+ assertTrue(LoginException.class.isInstance(e.getCause()));
+ }
+ }
} finally {
serviceDaemon.stop();
OpenEJB.destroy();
[27/50] tomee git commit: TOMEE-1957 adding @Args for tomee embedded
Posted by rm...@apache.org.
TOMEE-1957 adding @Args for tomee embedded
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/14c7483b
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/14c7483b
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/14c7483b
Branch: refs/heads/tomee-1.7.x
Commit: 14c7483b9a972a4b60795c5c3cde363061abc4dd
Parents: fb54561
Author: rmannibucau <rm...@apache.org>
Authored: Sun Oct 9 18:23:09 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Sun Oct 9 18:23:09 2016 +0200
----------------------------------------------------------------------
.../embedded/TomEEEmbeddedApplicationRunner.java | 14 ++++++++++++++
.../tomee/embedded/NoScannerSingleRunnerTest.java | 4 ++++
2 files changed, 18 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/14c7483b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index ffc4dcd..62f305d 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -445,6 +445,15 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
final Class type = f.getType();
final Object taskByType = accessor.getTaskByType(type);
f.set(target, taskByType);
+ } else if (f.isAnnotationPresent(Args.class)) {
+ if (String[].class != f.getType()) {
+ throw new IllegalArgumentException("@Args can only be used for String[] field, not on " + f.getType());
+ }
+ if (!f.isAccessible()) {
+ f.setAccessible(true);
+ }
+ final TomEEEmbeddedArgs args = SystemInstance.get().getComponent(TomEEEmbeddedArgs.class);
+ f.set(target, args == null ? new String[0] : args.getArgs());
}
}
aClass = aClass.getSuperclass();
@@ -465,6 +474,11 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
}
@Retention(RUNTIME)
+ @Target(FIELD)
+ public @interface Args {
+ }
+
+ @Retention(RUNTIME)
@Target(TYPE)
public @interface Configurers {
Class<? extends Configurer>[] value();
http://git-wip-us.apache.org/repos/asf/tomee/blob/14c7483b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java
index 570f88a..78927db 100644
--- a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java
+++ b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java
@@ -37,8 +37,12 @@ public class NoScannerSingleRunnerTest {
@Application // app can have several injections/helpers
private ScanApp app;
+ @TomEEEmbeddedApplicationRunner.Args
+ private String[] args;
+
@Test
public void run() {
+ assertNotNull(app);
app.check();
}
[34/50] tomee git commit: removing codehause snapshot repo,
shouldnt be needed
Posted by rm...@apache.org.
removing codehause snapshot repo, shouldnt be needed
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/6a2ecdd8
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/6a2ecdd8
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/6a2ecdd8
Branch: refs/heads/tomee-1.7.x
Commit: 6a2ecdd841abb9df8a0fd8b6774b08ea5bb7d49c
Parents: 190b51e
Author: rmannibucau <rm...@apache.org>
Authored: Fri Oct 14 12:05:58 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Oct 14 12:05:58 2016 +0200
----------------------------------------------------------------------
pom.xml | 45 ---------------------------------------------
1 file changed, 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/6a2ecdd8/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3679ba9..95ed2b3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -593,13 +593,6 @@
<repositories>
<repository>
- <releases>
- <enabled>false</enabled>
- </releases>
- <id>Codehaus Snapshots</id>
- <url>http://snapshots.repository.codehaus.org/</url>
- </repository>
- <repository>
<id>apache-snapshots</id>
<name>Apache Snapshots Repository</name>
<url>https://repository.apache.org/content/groups/snapshots</url>
@@ -611,16 +604,6 @@
</snapshots>
</repository>
</repositories>
-
- <pluginRepositories>
- <pluginRepository>
- <releases>
- <enabled>false</enabled>
- </releases>
- <id>Codehaus Snapshots</id>
- <url>http://snapshots.repository.codehaus.org/</url>
- </pluginRepository>
- </pluginRepositories>
</profile>
<profile>
@@ -677,24 +660,6 @@
</plugin>
</plugins>
</build>
- <repositories>
- <repository>
- <releases>
- <enabled>false</enabled>
- </releases>
- <id>Codehaus Snapshots</id>
- <url>http://snapshots.repository.codehaus.org/</url>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <releases>
- <enabled>false</enabled>
- </releases>
- <id>Codehaus Snapshots</id>
- <url>http://snapshots.repository.codehaus.org/</url>
- </pluginRepository>
- </pluginRepositories>
</profile>
</profiles>
<repositories>
@@ -771,16 +736,6 @@
<enabled>true</enabled>
</snapshots>
</pluginRepository>
- <pluginRepository>
- <id>Codehaus Snapshots</id>
- <url>http://snapshots.repository.codehaus.org/</url>
- <releases>
- <enabled>false</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </pluginRepository>
</pluginRepositories>
<dependencyManagement>
<dependencies>
[14/50] tomee git commit: align eclipselink version used in
core-eclipselink
Posted by rm...@apache.org.
align eclipselink version used in core-eclipselink
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/e2a4c2a8
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/e2a4c2a8
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/e2a4c2a8
Branch: refs/heads/tomee-1.7.x
Commit: e2a4c2a870915969e1ef6887076e267d13b41d7e
Parents: 0737513
Author: rmannibucau <rm...@apache.org>
Authored: Mon Oct 3 14:31:19 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Mon Oct 3 14:31:19 2016 +0200
----------------------------------------------------------------------
utils/openejb-core-eclipselink/pom.xml | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/e2a4c2a8/utils/openejb-core-eclipselink/pom.xml
----------------------------------------------------------------------
diff --git a/utils/openejb-core-eclipselink/pom.xml b/utils/openejb-core-eclipselink/pom.xml
index 2a06871..1d3c066 100644
--- a/utils/openejb-core-eclipselink/pom.xml
+++ b/utils/openejb-core-eclipselink/pom.xml
@@ -44,12 +44,20 @@
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
- <version>2.5.2</version>
+ <version>${version.eclipselink}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish</groupId>
+ <artifactId>javax.json</artifactId>
+ </exclusion>
</exclusions>
</dependency>
</dependencies>
[35/50] tomee git commit: removing terracota repo
Posted by rm...@apache.org.
removing terracota repo
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/80b788d4
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/80b788d4
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/80b788d4
Branch: refs/heads/tomee-1.7.x
Commit: 80b788d460efac91d530a51ccc33b5cb774538a4
Parents: 6a2ecdd
Author: rmannibucau <rm...@apache.org>
Authored: Fri Oct 14 13:16:56 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Oct 14 13:16:56 2016 +0200
----------------------------------------------------------------------
pom.xml | 16 ----------------
1 file changed, 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/80b788d4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 95ed2b3..4f5ebcd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -707,22 +707,6 @@
<enabled>true</enabled>
</snapshots>
</repository>
- <!--<repository>-->
- <!--<id>apache-incubating-repository</id>-->
- <!--<name>Apache Incubating Repository</name>-->
- <!--<url>http://people.apache.org/repo/m2-incubating-repository</url>-->
- <!--<releases>-->
- <!--<enabled>true</enabled>-->
- <!--</releases>-->
- <!--<snapshots>-->
- <!--<enabled>false</enabled>-->
- <!--</snapshots>-->
- <!--</repository>-->
- <repository>
- <id>terracotta</id>
- <name>Terracotta</name>
- <url>http://repo.terracotta.org/maven2/</url>
- </repository>
</repositories>
<pluginRepositories>
<pluginRepository>
[03/50] tomee git commit: TOMEE-1950 support of most of descriptors
in classpath for tomee embedded case
Posted by rm...@apache.org.
TOMEE-1950 support of most of descriptors in classpath for tomee embedded case
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/12f29b90
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/12f29b90
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/12f29b90
Branch: refs/heads/tomee-1.7.x
Commit: 12f29b9076a8b47d165f866635c16a82bf9c3eff
Parents: f367d4a
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 20:43:20 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 20:43:20 2016 +0200
----------------------------------------------------------------------
.../org/apache/tomee/embedded/Container.java | 23 +++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/12f29b90/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
index 600a4d8..0cd4cfa 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
@@ -102,6 +102,7 @@ import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -279,7 +280,7 @@ public class Container implements AutoCloseable {
} catch (final MalformedURLException e) {
// no-op
}
- }
+ } // else no classpath finding since we'll likely find it
DeploymentLoader.addBeansXmls(webModule);
final AppModule app = new AppModule(loader, null);
@@ -288,6 +289,26 @@ public class Container implements AutoCloseable {
app.setModuleId(webModule.getModuleId());
try {
final Map<String, URL> webDescriptors = DeploymentLoader.getWebDescriptors(jarLocation);
+ if (webDescriptors.isEmpty()) { // likely so let's try to find them in the classpath
+ final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ final Collection<String> metaDir = asList("META-INF/tomee/", "META-INF/");
+ for (final String dd : asList(
+ "app-ctx.xml", "module.properties", "application.properties",
+ "env-entries.properties", NewLoaderLogic.EXCLUSION_FILE,
+ "web.xml", "ejb-jar.xml", "openejb-jar.xml", "validation.xml")) {
+ if (Boolean.parseBoolean(SystemInstance.get().getProperty("tomee.embedded.descriptors.classpath." + dd + ".skip"))
+ || webDescriptors.containsKey(dd)) {
+ continue;
+ }
+ for (final String meta : metaDir) {
+ final URL url = classLoader.getResource(meta + dd);
+ if (url != null) {
+ webDescriptors.put(dd, url);
+ break;
+ }
+ }
+ }
+ }
webDescriptors.remove("beans.xml");
webModule.getAltDDs().putAll(webDescriptors);
DeploymentLoader.addWebModule(webModule, app);
[31/50] tomee git commit: TOMEE-1959 script customizers for tomee
embedded plugin
Posted by rm...@apache.org.
TOMEE-1959 script customizers for tomee embedded plugin
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/c31477cf
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/c31477cf
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/c31477cf
Branch: refs/heads/tomee-1.7.x
Commit: c31477cf61c4942fa4959a3bb90af949194405fb
Parents: 4d1a577
Author: rmannibucau <rm...@apache.org>
Authored: Fri Oct 14 09:30:58 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Oct 14 09:30:58 2016 +0200
----------------------------------------------------------------------
.../maven/plugins/TomEEEmbeddedMojo.java | 40 ++++++++++
.../maven/plugins/TomEEEmbeddedMojoTest.java | 82 +++++++++++++++++++-
.../maven/plugin/test/JsCustomizertest.java | 2 +-
.../org/apache/tomee/embedded/Container.java | 11 +++
4 files changed, 133 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/c31477cf/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
----------------------------------------------------------------------
diff --git a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
index da697cb..1267169 100644
--- a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
+++ b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
@@ -49,8 +49,13 @@ import org.codehaus.plexus.configuration.PlexusConfiguration;
import org.codehaus.plexus.util.FileUtils;
import javax.naming.NamingException;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
+import javax.script.SimpleBindings;
import java.io.File;
import java.io.IOException;
+import java.io.StringReader;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.net.MalformedURLException;
@@ -332,6 +337,18 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
@Parameter(property = "tomee-plugin.liveReload", defaultValue = "false")
private boolean withLiveReload;
+ /**
+ * A list of js scripts executed before the container starts.
+ */
+ @Parameter
+ protected List<String> jsCustomizers;
+
+ /**
+ * A list of groovy scripts executed before the container starts. Needs to add groovy as dependency.
+ */
+ @Parameter
+ protected List<String> groovyCustomizers;
+
private Map<String, Command> commands;
private String deployedName;
@@ -385,6 +402,10 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
throw new TomEERuntimeException(e);
}
}
+
+ final String base = getBase().getAbsolutePath();
+ scriptCustomization(jsCustomizers, "js", base);
+ scriptCustomization(groovyCustomizers, "groovy", base);
}
};
final Configuration config = getConfig();
@@ -478,6 +499,25 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
}
}
+ private void scriptCustomization(final List<String> customizers, final String ext, final String base) {
+ if (customizers == null || customizers.isEmpty()) {
+ return;
+ }
+ final ScriptEngine engine = new ScriptEngineManager().getEngineByExtension(ext);
+ if (engine == null) {
+ throw new IllegalStateException("No engine for " + ext + ". Maybe add the JSR223 implementation as plugin dependency.");
+ }
+ for (final String js : customizers) {
+ try {
+ final SimpleBindings bindings = new SimpleBindings();
+ bindings.put("catalinaBase", base);
+ engine.eval(new StringReader(js), bindings);
+ } catch (final ScriptException e) {
+ throw new IllegalStateException(e.getMessage(), e);
+ }
+ }
+ }
+
protected Scanner newScanner() {
return new Scanner(System.in);
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/c31477cf/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
----------------------------------------------------------------------
diff --git a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java b/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
index 3a51b51..e7e617e 100644
--- a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
+++ b/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java
@@ -21,15 +21,23 @@ import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.logging.SystemStreamLog;
import org.apache.openejb.config.DeploymentFilterable;
import org.apache.openejb.loader.IO;
+import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.util.NetworkUtil;
+import org.junit.Before;
import org.junit.Test;
+import javax.management.InstanceNotFoundException;
+import javax.management.IntrospectionException;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
+import java.lang.management.ManagementFactory;
import java.net.URL;
import java.util.HashMap;
import java.util.Scanner;
@@ -42,11 +50,33 @@ import static java.lang.System.lineSeparator;
import static java.lang.Thread.sleep;
import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
public class TomEEEmbeddedMojoTest {
+ @Before // there can be a small latency stopping/restarting tomcat so ensure we don't have conflicts between tests
+ public void ensureTomcatIsDown() throws MalformedObjectNameException, IntrospectionException, ReflectionException {
+ for (int i = 0; i < 10; i++) {
+ try {
+ assertFalse(SystemInstance.isInitialized());
+ try {
+ assertNull(ManagementFactory.getPlatformMBeanServer().getMBeanInfo(new ObjectName("Tomcat:type=Server")));
+ } catch (final InstanceNotFoundException e) {
+ // ok
+ }
+ } catch (final AssertionError ae) {
+ try {
+ sleep(1000);
+ } catch (final InterruptedException e) {
+ Thread.interrupted();
+ fail();
+ }
+ }
+ }
+ }
+
@Test
public void run() throws MojoFailureException, MojoExecutionException, IOException, InterruptedException {
final File docBase = new File("target/TomEEEmbeddedMojoTest/base");
@@ -131,7 +161,6 @@ public class TomEEEmbeddedMojoTest {
input.close();
}
-
@Test
public void customWebResource() throws Exception {
final File docBase = new File("target/TomEEEmbeddedMojoTest/customWebResource");
@@ -176,6 +205,57 @@ public class TomEEEmbeddedMojoTest {
input.close();
}
+ @Test
+ public void customScript() throws Exception {
+ // we use a dynamic InputStream to be able to simulate commands without hacking System.in
+ final Input input = new Input();
+ final Semaphore reloaded = new Semaphore(0);
+ final CountDownLatch started = new CountDownLatch(1);
+ final TomEEEmbeddedMojo mojo = new TomEEEmbeddedMojo() {
+ @Override
+ protected Scanner newScanner() {
+ return new Scanner(input);
+ }
+ };
+ mojo.classpathAsWar = true;
+ mojo.httpPort = NetworkUtil.getNextAvailablePort();
+ mojo.ssl = false;
+ mojo.webResourceCached = false;
+ mojo.jsCustomizers = singletonList(
+ "var File = Java.type('java.io.File');" +
+ "var FileWriter = Java.type('java.io.FileWriter');" +
+ "var out = new File(catalinaBase, 'conf/app.conf');" +
+ "var writer = new FileWriter(out);" +
+ "writer.write('test=ok');" +
+ "writer.close();");
+ mojo.setLog(new SystemStreamLog() { // not the best solution but fine for now...
+ @Override
+ public void info(final CharSequence charSequence) {
+ final String string = charSequence.toString();
+ if (string.startsWith("TomEE embedded started on") || string.equals("can't start TomEE")) {
+ started.countDown();
+ } else if (string.contains("Redeployed /")) {
+ reloaded.release();
+ }
+ super.info(charSequence);
+ }
+ });
+
+ CountDownLatch stopped = null;
+ try {
+ stopped = doStart(started, mojo);
+ final File appConf = new File(System.getProperty("catalina.base"), "conf/app.conf");
+ assertTrue(appConf.exists());
+ assertEquals("ok", IO.readProperties(appConf).getProperty("test", "ko"));
+ } finally {
+ input.write("exit");
+ if (stopped != null) {
+ stopped.await(5, TimeUnit.MINUTES);
+ }
+ input.close();
+ }
+ }
+
private CountDownLatch doStart(final CountDownLatch started, final TomEEEmbeddedMojo mojo) {
final CountDownLatch stopped = new CountDownLatch(1);
http://git-wip-us.apache.org/repos/asf/tomee/blob/c31477cf/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/test/JsCustomizertest.java
----------------------------------------------------------------------
diff --git a/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/test/JsCustomizertest.java b/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/test/JsCustomizertest.java
index b8c340f..1d0c556 100644
--- a/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/test/JsCustomizertest.java
+++ b/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/test/JsCustomizertest.java
@@ -42,8 +42,8 @@ public class JsCustomizertest {
"" +
"var junit = resolver.resolve('junit', 'junit', '4.12');" +
"Files.copy(junit.toPath(), new File(catalinaBase, 'lib/JsCustomizertest.jar').toPath(), StandardCopyOption.REPLACE_EXISTING);"
- );
+ );
@Config
private final File catalinaBase = new File("target/JsCustomizertest");
http://git-wip-us.apache.org/repos/asf/tomee/blob/c31477cf/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
index aa2d054..4a30f0e 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
@@ -106,6 +106,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -356,6 +357,16 @@ public class Container implements AutoCloseable {
private static void addCallersAsEjbModule(final ClassLoader loader, final AppModule app, final String... additionalCallers) {
final Set<String> callers = new HashSet<>(NewLoaderLogic.callers(Filters.classes(Container.class.getName(), "org.apache.openejb.maven.plugins.TomEEEmbeddedMojo")));
+ // we don't care of these
+ callers.remove("org.apache.tomee.embedded.Container");
+ callers.remove("org.apache.tomee.gradle.embedded.TomEEEmbeddedTask");
+ final Iterator<String> callerIt = callers.iterator();
+ while (callerIt.hasNext()) { // TomEEEmbeddedMojo is also used with some anonymous classes (TomEEEmbeddedMojo$x)
+ if (callerIt.next().startsWith("org.apache.openejb.maven.plugins.TomEEEmbeddedMojo")) {
+ callerIt.remove();
+ // no break since we remove anonymous class+the mojo itself
+ }
+ }
if (additionalCallers != null && additionalCallers.length > 0) {
callers.addAll(asList(additionalCallers));
}
[20/50] tomee git commit: fixing application runner injections when
there is a parent
Posted by rm...@apache.org.
fixing application runner injections when there is a parent
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/5c33866d
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/5c33866d
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/5c33866d
Branch: refs/heads/tomee-1.7.x
Commit: 5c33866d94742043a6ed301286adc22eb8502e3b
Parents: 3bb08cb
Author: rmannibucau <rm...@apache.org>
Authored: Tue Oct 4 12:22:41 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Tue Oct 4 12:22:41 2016 +0200
----------------------------------------------------------------------
.../TomEEEmbeddedApplicationRunner.java | 65 ++++++++++----------
1 file changed, 32 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/5c33866d/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index 34826c3..7721aa7 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -387,43 +387,42 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
OWBInjector.inject(webBeansContext.getBeanManagerImpl(), target, null);
}
- final Class<?> aClass = target.getClass();
- for (final Field f : aClass.getDeclaredFields()) {
- final RandomPort randomPort = f.getAnnotation(RandomPort.class);
- if (randomPort != null) {
- for (final Field field : app.getClass().getDeclaredFields()) {
- final RandomPort appPort = field.getAnnotation(RandomPort.class);
- if (field.getType() == f.getType() && appPort != null && appPort.value().equals(randomPort.value())) {
- if (!field.isAccessible()) {
- field.setAccessible(true);
+ Class<?> aClass = target.getClass();
+ while (aClass != null && aClass != Object.class) {
+ for (final Field f : aClass.getDeclaredFields()) {
+ final RandomPort randomPort = f.getAnnotation(RandomPort.class);
+ if (randomPort != null) {
+ for (final Field field : app.getClass().getDeclaredFields()) {
+ final RandomPort appPort = field.getAnnotation(RandomPort.class);
+ if (field.getType() == f.getType() && appPort != null && appPort.value().equals(randomPort.value())) {
+ if (!field.isAccessible()) {
+ field.setAccessible(true);
+ }
+ if (!f.isAccessible()) {
+ f.setAccessible(true);
+ }
+
+ final Object value = field.get(app);
+ f.set(target, value);
+ break;
}
- if (!f.isAccessible()) {
- f.setAccessible(true);
- }
-
- final Object value = field.get(app);
- f.set(target, value);
- break;
}
+ } else if (f.isAnnotationPresent(Application.class)) {
+ if (!f.isAccessible()) {
+ f.setAccessible(true);
+ }
+ f.set(target, app);
+ } else if (f.isAnnotationPresent(LifecycleTask.class)) {
+ if (!f.isAccessible()) {
+ f.setAccessible(true);
+ }
+ final LifecycleTaskAccessor accessor = SystemInstance.get().getComponent(LifecycleTaskAccessor.class);
+ final Class type = f.getType();
+ final Object taskByType = accessor.getTaskByType(type);
+ f.set(target, taskByType);
}
- } else if (f.isAnnotationPresent(Application.class)) {
- if (!f.isAccessible()) {
- f.setAccessible(true);
- }
- f.set(target, app);
- } else if (f.isAnnotationPresent(LifecycleTask.class)) {
- if (!f.isAccessible()) {
- f.setAccessible(true);
- }
- final LifecycleTaskAccessor accessor = SystemInstance.get().getComponent(LifecycleTaskAccessor.class);
- final Class type = f.getType();
- final Object taskByType = accessor.getTaskByType(type);
- f.set(target, taskByType);
}
- }
- final Class<?> superclass = aClass.getSuperclass();
- if (superclass != Object.class) {
- composerInject(superclass);
+ aClass = aClass.getSuperclass();
}
SystemInstance.get().fireEvent(new TomEEEmbeddedApplicationRunnerInjection(target));
[11/50] tomee git commit: way to configure the Configuration of tomee
embedded in TomEEEmbeddedApplicationRunner + using system properties too
Posted by rm...@apache.org.
way to configure the Configuration of tomee embedded in TomEEEmbeddedApplicationRunner + using system properties too
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/dafe6d28
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/dafe6d28
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/dafe6d28
Branch: refs/heads/tomee-1.7.x
Commit: dafe6d287875f63ea16cd466110a83e1023f1fb2
Parents: d552210
Author: rmannibucau <rm...@apache.org>
Authored: Fri Sep 30 15:13:48 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Sep 30 15:13:48 2016 +0200
----------------------------------------------------------------------
.../tomee/embedded/TomEEEmbeddedApplicationRunner.java | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/dafe6d28/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index 91755af..c16b970 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -117,10 +117,20 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
final Configuration configuration = new Configuration();
final ContainerProperties props = appClass.getAnnotation(ContainerProperties.class);
if (props != null) {
+ final Properties runnerProperties = new Properties();
for (final ContainerProperties.Property p : props.value()) {
- configuration.property(p.name(), p.value());
+ final String name = p.name();
+ if (name.startsWith("tomee.embedded.application.runner.")) { // allow to tune the Configuration
+ runnerProperties.setProperty(name.substring("tomee.embedded.application.runner.".length()), p.value());
+ } else {
+ configuration.property(name, p.value());
+ }
+ }
+ if (!runnerProperties.isEmpty()) {
+ configuration.loadFromProperties(runnerProperties);
}
}
+ configuration.loadFromProperties(System.getProperties()); // overrides, note that some config are additive by design
final List<Method> annotatedMethods = finder.findAnnotatedMethods(org.apache.openejb.testing.Configuration.class);
if (annotatedMethods.size() > 1) {
[13/50] tomee git commit: TOMEE-1951 making JPA CDI aware
Posted by rm...@apache.org.
TOMEE-1951 making JPA CDI aware
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/0737513a
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/0737513a
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/0737513a
Branch: refs/heads/tomee-1.7.x
Commit: 0737513ae6e4755ac94699b3b8b09ee2371ece09
Parents: 6379200
Author: rmannibucau <rm...@apache.org>
Authored: Mon Oct 3 11:02:59 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Mon Oct 3 11:02:59 2016 +0200
----------------------------------------------------------------------
.../openejb/assembler/classic/Assembler.java | 6 +-
.../classic/EntityManagerFactoryCallable.java | 53 +++++++-
.../assembler/classic/PersistenceBuilder.java | 9 +-
.../classic/ReloadableEntityManagerFactory.java | 47 ++++---
.../openejb/persistence/JtaEntityManager.java | 9 +-
.../openejb/jpa/JPAHasBeanManagerTest.java | 121 +++++++++++++++++++
6 files changed, 216 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/0737513a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
index ae52f14..08eb1a3 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
@@ -765,6 +765,8 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
final Map<String, Object> appBindings = appBuilder.buildBindings(JndiEncBuilder.JndiScope.app);
final Context appJndiContext = appBuilder.build(appBindings);
+ final boolean cdiActive = shouldStartCdi(appInfo);
+
try {
// Generate the cmp2/cmp1 concrete subclasses
final CmpJarBuilder cmpJarBuilder = new CmpJarBuilder(appInfo, classLoader);
@@ -861,7 +863,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
for (final PersistenceUnitInfo info : appInfo.persistenceUnits) {
final ReloadableEntityManagerFactory factory;
try {
- factory = persistenceBuilder.createEntityManagerFactory(info, classLoader, validatorFactoriesByConfig);
+ factory = persistenceBuilder.createEntityManagerFactory(info, classLoader, validatorFactoriesByConfig, cdiActive);
containerSystem.getJNDIContext().bind(PERSISTENCE_UNIT_NAMING_CONTEXT + info.id, factory);
units.put(info.name, PERSISTENCE_UNIT_NAMING_CONTEXT + info.id);
} catch (final NameAlreadyBoundException e) {
@@ -907,7 +909,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
propagateApplicationExceptions(appInfo, classLoader, allDeployments);
}
- if (shouldStartCdi(appInfo)) {
+ if (cdiActive) {
new CdiBuilder().build(appInfo, appContext, allDeployments);
ensureWebBeansContext(appContext);
appJndiContext.bind("app/BeanManager", appContext.getBeanManager());
http://git-wip-us.apache.org/repos/asf/tomee/blob/0737513a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
index cb5706b..854c9c4 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EntityManagerFactoryCallable.java
@@ -19,11 +19,20 @@ package org.apache.openejb.assembler.classic;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.persistence.PersistenceUnitInfoImpl;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.container.InjectableBeanManager;
+import javax.enterprise.inject.spi.BeanManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.ValidationMode;
import javax.persistence.spi.PersistenceProvider;
import javax.validation.ValidatorFactory;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Callable;
@@ -35,14 +44,29 @@ public class EntityManagerFactoryCallable implements Callable<EntityManagerFacto
private final String persistenceProviderClassName;
private final PersistenceUnitInfoImpl unitInfo;
private final Map<ComparableValidationConfig, ValidatorFactory> potentialValidators;
+ private final boolean cdi;
private ClassLoader appClassLoader;
public EntityManagerFactoryCallable(final String persistenceProviderClassName, final PersistenceUnitInfoImpl unitInfo,
- final ClassLoader cl, final Map<ComparableValidationConfig, ValidatorFactory> validators) {
+ final ClassLoader cl, final Map<ComparableValidationConfig, ValidatorFactory> validators,
+ final boolean hasCdi) {
this.persistenceProviderClassName = persistenceProviderClassName;
this.unitInfo = unitInfo;
this.appClassLoader = cl;
this.potentialValidators = validators;
+ this.cdi = hasCdi;
+ }
+
+ public Class<?> getProvider() {
+ final ClassLoader old = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(appClassLoader);
+ try {
+ return appClassLoader.loadClass(persistenceProviderClassName);
+ } catch (final ClassNotFoundException e) {
+ throw new IllegalArgumentException(e);
+ } finally {
+ Thread.currentThread().setContextClassLoader(old);
+ }
}
@Override
@@ -58,14 +82,37 @@ public class EntityManagerFactoryCallable implements Callable<EntityManagerFacto
if (!ValidationMode.NONE.equals(unitInfo.getValidationMode())) {
properties.put("javax.persistence.validation.factory", new ValidatorFactoryWrapper(potentialValidators));
}
+ if (cdi && "true".equalsIgnoreCase(unitInfo.getProperties().getProperty("tomee.jpa.cdi", "true"))
+ && "true".equalsIgnoreCase(SystemInstance.get().getProperty("tomee.jpa.cdi", "true"))) {
+ properties.put("javax.persistence.bean.manager", // TODO: impl a passthrough BM?
+ Proxy.newProxyInstance(appClassLoader, new Class<?>[]{BeanManager.class}, new InvocationHandler() {
+ private volatile BeanManager bm;
+
+ @Override
+ public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
+ try {
+ return method.invoke(findBm(), args);
+ } catch (final InvocationTargetException ite) {
+ Logger.getInstance(LogCategory.OPENEJB_JPA, EntityManagerFactoryCallable.class)
+ .warning("Exception calling CDI, if a lifecycle issue you should maybe set tomee.jpa.factory.lazy=true", ite.getCause());
+ throw ite.getCause();
+ }
+ }
+
+ private Object findBm() {
+ return bm != null ? bm : (bm = new InjectableBeanManager(WebBeansContext.currentInstance().getBeanManagerImpl()));
+ }
+ })
+ );
+ }
customizeProperties(properties);
final EntityManagerFactory emf = persistenceProvider.createContainerEntityManagerFactory(unitInfo, properties);
if (unitInfo.getProperties() != null
- && "true".equalsIgnoreCase(unitInfo.getProperties().getProperty(OPENEJB_JPA_INIT_ENTITYMANAGER))
- || SystemInstance.get().getOptions().get(OPENEJB_JPA_INIT_ENTITYMANAGER, false)) {
+ && "true".equalsIgnoreCase(unitInfo.getProperties().getProperty(OPENEJB_JPA_INIT_ENTITYMANAGER))
+ || SystemInstance.get().getOptions().get(OPENEJB_JPA_INIT_ENTITYMANAGER, false)) {
emf.createEntityManager().close();
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/0737513a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
index 992404e..5a54b21 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
@@ -25,7 +25,6 @@ import org.apache.openejb.spi.ContainerSystem;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
-import java.util.Map;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
@@ -35,6 +34,7 @@ import javax.persistence.spi.PersistenceUnitTransactionType;
import javax.sql.CommonDataSource;
import javax.sql.DataSource;
import javax.validation.ValidatorFactory;
+import java.util.Map;
public class PersistenceBuilder {
@@ -50,7 +50,8 @@ public class PersistenceBuilder {
}
public ReloadableEntityManagerFactory createEntityManagerFactory(final PersistenceUnitInfo info, final ClassLoader classLoader,
- final Map<ComparableValidationConfig, ValidatorFactory> validators) throws Exception {
+ final Map<ComparableValidationConfig, ValidatorFactory> validators,
+ final boolean hasCdi) throws Exception {
final PersistenceUnitInfoImpl unitInfo = new PersistenceUnitInfoImpl(persistenceClassLoaderHandler);
// Persistence Unit Id
@@ -68,7 +69,7 @@ public class PersistenceBuilder {
// Exclude Unlisted Classes
unitInfo.setExcludeUnlistedClasses(info.excludeUnlistedClasses);
- unitInfo.setLazilyInitialized(info.webappName != null);
+ unitInfo.setLazilyInitialized(info.webappName != null || "true".equalsIgnoreCase(info.properties.getProperty("tomee.jpa.factory.lazy", "false")));
final Context context = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
@@ -151,7 +152,7 @@ public class PersistenceBuilder {
final String persistenceProviderClassName = unitInfo.getPersistenceProviderClassName();
unitInfo.setPersistenceProviderClassName(persistenceProviderClassName);
- final EntityManagerFactoryCallable callable = new EntityManagerFactoryCallable(persistenceProviderClassName, unitInfo, classLoader, validators);
+ final EntityManagerFactoryCallable callable = new EntityManagerFactoryCallable(persistenceProviderClassName, unitInfo, classLoader, validators, hasCdi);
return new ReloadableEntityManagerFactory(classLoader, callable, unitInfo);
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/0737513a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java
index c61b207..a9ba815 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.java
@@ -86,7 +86,7 @@ public class ReloadableEntityManagerFactory implements EntityManagerFactory, Ser
private final PersistenceUnitInfoImpl unitInfoImpl;
private ClassLoader classLoader;
- private EntityManagerFactory delegate;
+ private volatile EntityManagerFactory delegate;
private final EntityManagerFactoryCallable entityManagerFactoryCallable;
private ObjectName objectName;
@@ -112,6 +112,21 @@ public class ReloadableEntityManagerFactory implements EntityManagerFactory, Ser
unitInfoImpl.setClassLoader(loader);
}
+ public EntityManagerFactoryCallable getEntityManagerFactoryCallable() {
+ return entityManagerFactoryCallable;
+ }
+
+ private EntityManagerFactory delegate() {
+ if (delegate == null) {
+ synchronized (this) {
+ if (delegate == null) {
+ createDelegate();
+ }
+ }
+ }
+ return delegate;
+ }
+
public void createDelegate() {
JPAThreadContext.infos.put("properties", entityManagerFactoryCallable.getUnitInfo().getProperties());
final long start = System.nanoTime();
@@ -145,7 +160,7 @@ public class ReloadableEntityManagerFactory implements EntityManagerFactory, Ser
public EntityManager createEntityManager() {
EntityManager em;
try {
- em = delegate.createEntityManager();
+ em = delegate().createEntityManager();
} catch (final LinkageError le) {
em = delegate.createEntityManager();
}
@@ -160,7 +175,7 @@ public class ReloadableEntityManagerFactory implements EntityManagerFactory, Ser
public EntityManager createEntityManager(final Map map) {
EntityManager em;
try {
- em = delegate.createEntityManager(map);
+ em = delegate().createEntityManager(map);
} catch (final LinkageError le) {
em = delegate.createEntityManager(map);
}
@@ -175,7 +190,7 @@ public class ReloadableEntityManagerFactory implements EntityManagerFactory, Ser
public EntityManager createEntityManager(final SynchronizationType synchronizationType) {
EntityManager em;
try {
- em = delegate.createEntityManager(synchronizationType);
+ em = delegate().createEntityManager(synchronizationType);
} catch (final LinkageError le) {
em = delegate.createEntityManager(synchronizationType);
}
@@ -190,7 +205,7 @@ public class ReloadableEntityManagerFactory implements EntityManagerFactory, Ser
public EntityManager createEntityManager(final SynchronizationType synchronizationType, final Map map) {
EntityManager em;
try {
- em = delegate.createEntityManager(synchronizationType, map);
+ em = delegate().createEntityManager(synchronizationType, map);
} catch (final LinkageError le) {
em = delegate.createEntityManager(synchronizationType, map);
}
@@ -206,56 +221,56 @@ public class ReloadableEntityManagerFactory implements EntityManagerFactory, Ser
if (cls.isAssignableFrom(getClass())) {
return cls.cast(this);
}
- return delegate.unwrap(cls);
+ return delegate().unwrap(cls);
}
@Override
public void addNamedQuery(final String name, final Query query) {
- delegate.addNamedQuery(name, query);
+ delegate().addNamedQuery(name, query);
}
@Override
public <T> void addNamedEntityGraph(final String graphName, final EntityGraph<T> entityGraph) {
- delegate.addNamedEntityGraph(graphName, entityGraph);
+ delegate().addNamedEntityGraph(graphName, entityGraph);
}
@Override
public CriteriaBuilder getCriteriaBuilder() {
- return delegate.getCriteriaBuilder();
+ return delegate().getCriteriaBuilder();
}
@Override
public Metamodel getMetamodel() {
- return delegate.getMetamodel();
+ return delegate().getMetamodel();
}
@Override
public boolean isOpen() {
- return delegate.isOpen();
+ return delegate().isOpen();
}
@Override
public void close() {
- delegate.close();
+ delegate().close();
}
@Override
public Map<String, Object> getProperties() {
- return delegate.getProperties();
+ return delegate().getProperties();
}
@Override
public Cache getCache() {
- return delegate.getCache();
+ return delegate().getCache();
}
@Override
public PersistenceUnitUtil getPersistenceUnitUtil() {
- return delegate.getPersistenceUnitUtil();
+ return delegate().getPersistenceUnitUtil();
}
public EntityManagerFactory getDelegate() {
- return delegate;
+ return delegate();
}
public void register() throws OpenEJBException {
http://git-wip-us.apache.org/repos/asf/tomee/blob/0737513a/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java b/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
index 208f6d5..79d3154 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
@@ -120,13 +120,14 @@ public class JtaEntityManager implements EntityManager, Serializable {
public static boolean isJPA21(final EntityManagerFactory entityManagerFactory) {
return ReloadableEntityManagerFactory.class.isInstance(entityManagerFactory) ?
- isJPA21(ReloadableEntityManagerFactory.class.cast(entityManagerFactory).getDelegate())
- : hasMethod(entityManagerFactory, "createEntityManager", SynchronizationType.class);
+ hasMethod(
+ ReloadableEntityManagerFactory.class.cast(entityManagerFactory).getEntityManagerFactoryCallable().getProvider(),
+ "createEntityManager", SynchronizationType.class)
+ : hasMethod(entityManagerFactory.getClass(), "createEntityManager", SynchronizationType.class);
}
- private static boolean hasMethod(final Object object, final String name, final Class<?>... params) {
+ private static boolean hasMethod(final Class<?> objectClass, final String name, final Class<?>... params) {
try {
- final Class<?> objectClass = object.getClass();
Boolean result = IS_JPA21.get(objectClass);
if (result == null) {
result = !Modifier.isAbstract(objectClass.getMethod(name, params).getModifiers());
http://git-wip-us.apache.org/repos/asf/tomee/blob/0737513a/container/openejb-core/src/test/java/org/apache/openejb/jpa/JPAHasBeanManagerTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/jpa/JPAHasBeanManagerTest.java b/container/openejb-core/src/test/java/org/apache/openejb/jpa/JPAHasBeanManagerTest.java
new file mode 100644
index 0000000..9e42db3
--- /dev/null
+++ b/container/openejb-core/src/test/java/org/apache/openejb/jpa/JPAHasBeanManagerTest.java
@@ -0,0 +1,121 @@
+/*
+ * 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.openejb.jpa;
+
+import org.apache.openejb.api.configuration.PersistenceUnitDefinition;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.Classes;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerFactory;
+import org.apache.openjpa.persistence.PersistenceProviderImpl;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.annotation.PostConstruct;
+import javax.ejb.Singleton;
+import javax.ejb.Startup;
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.context.Initialized;
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.inject.Inject;
+import javax.persistence.Entity;
+import javax.persistence.EntityManager;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.PersistenceContext;
+import javax.persistence.spi.PersistenceUnitInfo;
+import javax.transaction.Transactional;
+import java.util.Map;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+@Classes(cdi = true, innerClassesAsBean = true)
+@RunWith(ApplicationComposer.class)
+public class JPAHasBeanManagerTest {
+ @Inject
+ private Dao dao;
+
+ @Test
+ public void run() {
+ dao.doAsserts();
+ }
+
+ @Transactional
+ @ApplicationScoped
+ @PersistenceUnitDefinition(
+ entitiesPackage = "org.apache.openejb.jpa",
+ properties = {"openjpa.RuntimeUnenhancedClasses=supported", "tomee.jpa.factory.lazy=true"},
+ provider = "org.apache.openejb.jpa.JPAHasBeanManagerTest$TheTestProvider")
+ public static class Dao {
+ @PersistenceContext
+ private EntityManager em;
+ private TheTestEntity persisted;
+
+ public void start(@Observes @Initialized(ApplicationScoped.class) final Object boot) {
+ TheTestEntity entity = new TheTestEntity();
+ em.persist(entity); // ensure it works
+ persisted = entity;
+ }
+
+ public void doAsserts() {
+ assertNotNull(TheTestProvider.MAP);
+ final Object bm = TheTestProvider.MAP.get("javax.persistence.bean.manager");
+ assertNotNull(bm);
+ assertTrue(BeanManager.class.isInstance(bm));
+ assertNotNull(em.find(TheTestEntity.class, persisted.getId()));
+ }
+ }
+
+ @Startup
+ @Singleton
+ public static class EJBDao {
+ @PersistenceContext
+ private EntityManager em;
+
+ @PostConstruct
+ public void start() {
+ TheTestEntity entity = new TheTestEntity();
+ em.persist(entity); // ensure it works
+ }
+ }
+
+ public static class TheTestProvider extends PersistenceProviderImpl {
+ private static Map MAP;
+
+ @Override
+ public OpenJPAEntityManagerFactory createContainerEntityManagerFactory(final PersistenceUnitInfo pui, final Map m) {
+ MAP = m;
+ // only works cause of lazy property
+ final BeanManager beanManager = BeanManager.class.cast(m.get("javax.persistence.bean.manager"));
+ assertNotNull(beanManager.getReference(beanManager.resolve(beanManager.getBeans(Dao.class)), Dao.class, null));
+ // just delegate to openjpa since we don't aim at reimplementing JPA in a test ;)
+ return super.createContainerEntityManagerFactory(pui, m);
+ }
+ }
+
+ @Entity
+ public static class TheTestEntity {
+ @Id
+ @GeneratedValue
+ private long id;
+
+ public long getId() {
+ return id;
+ }
+ }
+}