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 2015/05/06 12:51:50 UTC
tomee git commit: TOMEE-1579 one more step to do friendly jars
(executable) + slight rework of our tomee-embedded uber jar to avoid to bring
descriptors we don't want
Repository: tomee
Updated Branches:
refs/heads/master 554ccb1ce -> 151887528
TOMEE-1579 one more step to do friendly jars (executable) + slight rework of our tomee-embedded uber jar to avoid to bring descriptors we don't want
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/15188752
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/15188752
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/15188752
Branch: refs/heads/master
Commit: 151887528f8d15ad5c01a36185b0375c7d463640
Parents: 554ccb1
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Wed May 6 12:51:40 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Wed May 6 12:51:40 2015 +0200
----------------------------------------------------------------------
.../apache/openejb/config/DeploymentLoader.java | 28 ++++++++++++++++++--
tomee/tomee-embedded/pom.xml | 28 ++++++++++++++++++++
.../java/org/apache/tomee/embedded/Main.java | 11 ++++++++
3 files changed, 65 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/15188752/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
index 1242ae2..58ba02e 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
@@ -958,8 +958,10 @@ public class DeploymentLoader implements DeploymentFilterable {
ensureContainerUrls();
webUrls.addAll(containerUrls);
+ final SystemInstance systemInstance = SystemInstance.get();
+
// add these urls first to ensure we load classes from here first
- final String externalRepos = SystemInstance.get().getProperty("tomee." + warFile.getName().replace(".war", "") + ".externalRepositories");
+ final String externalRepos = systemInstance.getProperty("tomee." + warFile.getName().replace(".war", "") + ".externalRepositories");
List<URL> externalUrls = null;
if (externalRepos != null) {
externalUrls = new ArrayList<URL>();
@@ -1023,12 +1025,34 @@ public class DeploymentLoader implements DeploymentFilterable {
// if we want to manage it in a generic way
// simply add a boolean shared between tomcat and openejb world
// to know if we should fire it or not
- SystemInstance.get().fireEvent(new BeforeDeploymentEvent(webUrlsArray, parentClassLoader));
+ systemInstance.fireEvent(new BeforeDeploymentEvent(webUrlsArray, parentClassLoader));
final ClassLoader warClassLoader = ClassLoaderUtil.createTempClassLoader(appId, webUrlsArray, parentClassLoader);
// create web module
final List<URL> scannableUrls = filterWebappUrls(webUrlsArray, descriptors.get(NewLoaderLogic.EXCLUSION_FILE));
+ // executable war will add war in scannable urls, we don't want it since it will surely contain tomee, cxf, ...
+ if (Boolean.parseBoolean(systemInstance.getProperty("openejb.core.skip-war-in-loader", "true"))) {
+ File archive = warFile;
+ if (!archive.getName().endsWith(".war")) {
+ archive = new File(warFile.getParentFile(), warFile.getName() + ".war");
+ final String unpackDir = systemInstance.getProperty("tomee.unpack.dir");
+ if (unpackDir != null && !archive.isFile()) {
+ try {
+ archive = new File(systemInstance.getBase().getDirectory(unpackDir, false), warFile.getName());
+ } catch (final IOException e) {
+ // no-op
+ }
+ }
+ }
+ if (archive.isFile()) {
+ try {
+ scannableUrls.remove(archive.toURI().toURL());
+ } catch (final MalformedURLException e) {
+ // no-op
+ }
+ }
+ }
if (externalUrls != null) {
for (final URL url : externalUrls) {
if (scannableUrls.contains(url)) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/15188752/tomee/tomee-embedded/pom.xml
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/pom.xml b/tomee/tomee-embedded/pom.xml
index f8c0f0a..e000f66 100644
--- a/tomee/tomee-embedded/pom.xml
+++ b/tomee/tomee-embedded/pom.xml
@@ -66,6 +66,34 @@
<createDependencyReducedPom>false</createDependencyReducedPom>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>uber</shadedClassifierName>
+ <transformers>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+ <mainClass>org.apache.tomee.embedded.Main</mainClass>
+ </transformer>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+ <resource>META-INF/cxf/bus-extensions.txt</resource>
+ </transformer>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+ <resource>META-INF/openwebbeans/openwebbeans.properties</resource>
+ </transformer>
+ </transformers>
+ <filters>
+ <filter>
+ <artifact>*:*</artifact>
+ <excludes>
+ <exclude>META-INF/ejb-jar.xml</exclude>
+ <exclude>META-INF/openejb-jar.xml</exclude>
+ <exclude>META-INF/web-fragment.xml</exclude>
+ <!--
+ NOTE:
+ we shouldn't exclude faces-config.xml while we didn't impl the feature in another manner
+ but it breaks all apps not using JSF.
+ Solution would be to handle it more deeply in our myfaces integration
+ -->
+ <exclude>META-INF/faces-config.xml</exclude>
+ </excludes>
+ </filter>
+ </filters>
</configuration>
</execution>
</executions>
http://git-wip-us.apache.org/repos/asf/tomee/blob/15188752/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Main.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Main.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Main.java
index e8edf6c..1720f9f 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Main.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Main.java
@@ -27,6 +27,8 @@ import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.openejb.loader.ProvisioningUtil;
+import static org.apache.openejb.loader.JarLocation.jarLocation;
+
public class Main {
public static final String PORT = "port";
public static final String SHUTDOWN = "shutdown";
@@ -59,6 +61,7 @@ public class Main {
contexts = null;
}
+ boolean autoWar = true;
int i = 0;
if (line.hasOption(PATH)) {
for (final String path : line.getOptionValues(PATH)) {
@@ -77,10 +80,18 @@ public class Main {
container.deploy(name, file, true);
}
}
+ autoWar = false;
}
if (line.hasOption(AS_WAR)) {
container.deployClasspathAsWebApp(contexts == null || i == contexts.length ? "" : contexts[i],
line.hasOption(DOC_BASE) ? new File(line.getOptionValue(DOC_BASE)) : null);
+ autoWar = false;
+ }
+ if (autoWar) { // nothing deployed check if we are a war and deploy ourself then
+ final File me = jarLocation(Main.class);
+ if (me.getName().endsWith(".war")) {
+ container.deploy(contexts == null || i == contexts.length ? "" : contexts[i], me);
+ }
}
Runtime.getRuntime().addShutdownHook(new Thread() {