Pull versions up to parent
activemq 5.15.0
commons-logging 1.2
Remove BeanValidationAppendixInterceptor ref
Prefer maven settings.xml values
#TOMEE-2121


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/050f0873
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/050f0873
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/050f0873

Branch: refs/heads/fb_tomee8
Commit: 050f0873dd61fc3a6c9c4aa22674d86976e90c9b
Parents: 6998e21
Author: andygumbrecht <andy...@gmx.de>
Authored: Wed Sep 13 20:20:39 2017 +0200
Committer: andygumbrecht <andy...@gmx.de>
Committed: Wed Sep 13 20:20:39 2017 +0200

----------------------------------------------------------------------
 .../loader/provisining/MavenResolver.java       | 56 +++++++++++++-------
 .../loader/provisining/MavenResolverTest.java   |  6 ++-
 2 files changed, 43 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/050f0873/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java
 
b/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java
index 8f0a22a..d5d1a9f 100644
--- 
a/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java
+++ 
b/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java
@@ -35,14 +35,18 @@ import java.io.File;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Objects;
 import java.util.Properties;
+import java.util.concurrent.atomic.AtomicReference;
 
 public class MavenResolver implements ArchiveResolver, 
ProvisioningResolverAware {
-    private static final String REPO1 = "http://repo1.maven.org/maven2/";;
-    private static final String APACHE_SNAPSHOT = 
"https://repository.apache.org/snapshots/";;
+    private static final String REPO1 = 
System.getProperty("openejb.deployer.repository", 
"http://repo1.maven.org/maven2/";);
+    private static final String APACHE_SNAPSHOT = 
System.getProperty("openejb.deployer.repository.snapshots", 
"https://repository.apache.org/snapshots/";);
     private static final String SNAPSHOT_SUFFIX = "-SNAPSHOT";
+    private static final AtomicReference<DocumentBuilder> BUILDER = new 
AtomicReference<>(null);
 
     private static final SAXParserFactory FACTORY = 
SAXParserFactory.newInstance();
+
     static {
         FACTORY.setNamespaceAware(false);
         FACTORY.setValidating(false);
@@ -86,7 +90,7 @@ public class MavenResolver implements ArchiveResolver, 
ProvisioningResolverAware
         if (resolver != null) {
             return resolver.resolveStream(repo1Url);
         }
-        return 
SystemInstance.get().getComponent(ProvisioningResolver.class).resolveStream(repo1Url);
+        return 
Objects.requireNonNull(SystemInstance.get().getComponent(ProvisioningResolver.class)).resolveStream(repo1Url);
     }
 
     public String quickMvnUrl(final String raw) throws MalformedURLException {
@@ -120,6 +124,12 @@ public class MavenResolver implements ArchiveResolver, 
ProvisioningResolverAware
         return builder.toString();
     }
 
+    /**
+     * Locate the .m2 repository
+     * First look for the settings.xml value, else assume it is in the .m2 
directory
+     *
+     * @return String path to repository
+     */
     private static String m2Home() {
 
         final Properties properties;
@@ -130,23 +140,32 @@ public class MavenResolver implements ArchiveResolver, 
ProvisioningResolverAware
         }
 
         String home = "";
-        File f = new File(properties.getProperty("openejb.m2.home", 
System.getProperty("user.home") + "/.m2/repository/"));
 
+        File f = new File(properties.getProperty("openejb.m2.settings", 
System.getProperty("user.home") + "/.m2/settings.xml"));
         if (f.exists()) {
-            home = f.getAbsolutePath();
-        } else {
-            f = new File(properties.getProperty("openejb.m2.settings", 
System.getProperty("user.home") + "/.m2/settings.xml"));
-            if (f.exists()) {
-                try {
+            try {
+
+                DocumentBuilder builder = BUILDER.get();
+                if (null == builder) {
                     final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
-                    final DocumentBuilder builder = 
factory.newDocumentBuilder();
-                    final Document document = builder.parse(f);
-                    final XPathFactory xpf = XPathFactory.newInstance();
-                    final XPath xp = xpf.newXPath();
-                    home = xp.evaluate("//settings/localRepository/text()", 
document.getDocumentElement());
-                } catch (final Exception ignore) {
-                    //no-op
+                    builder = factory.newDocumentBuilder();
+                    BUILDER.set(builder);
                 }
+
+                final Document document = builder.parse(f);
+                final XPathFactory xpf = XPathFactory.newInstance();
+                final XPath xp = xpf.newXPath();
+                home = xp.evaluate("//settings/localRepository/text()", 
document.getDocumentElement());
+            } catch (final Exception ignore) {
+                //no-op
+            }
+        }
+
+        if (home.isEmpty()) {
+            f = new File(properties.getProperty("openejb.m2.home", 
System.getProperty("user.home") + "/.m2/repository/"));
+
+            if (f.exists()) {
+                home = f.getAbsolutePath();
             }
         }
 
@@ -301,13 +320,14 @@ public class MavenResolver implements ArchiveResolver, 
ProvisioningResolverAware
         }
 
         @Override
-        public void characters(final char[] ch, final int start, final int 
length) throws SAXException {
+        public void characters(final char[] ch, final int start, final int 
length) {
             if (text != null) {
                 text.append(new String(ch, start, length));
             }
         }
 
-        public void endElement(final String uri, final String localName, final 
String qName) throws SAXException {
+        @Override
+        public void endElement(final String uri, final String localName, final 
String qName) {
             text = null;
         }
     }

http://git-wip-us.apache.org/repos/asf/tomee/blob/050f0873/container/openejb-loader/src/test/java/org/apache/openejb/loader/provisining/MavenResolverTest.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-loader/src/test/java/org/apache/openejb/loader/provisining/MavenResolverTest.java
 
b/container/openejb-loader/src/test/java/org/apache/openejb/loader/provisining/MavenResolverTest.java
index 7b7a5b8..4d96b72 100644
--- 
a/container/openejb-loader/src/test/java/org/apache/openejb/loader/provisining/MavenResolverTest.java
+++ 
b/container/openejb-loader/src/test/java/org/apache/openejb/loader/provisining/MavenResolverTest.java
@@ -18,11 +18,13 @@ package org.apache.openejb.loader.provisining;
 
 import org.apache.openejb.loader.Files;
 import org.apache.openejb.loader.IO;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.InputStream;
 import java.util.Collections;
 import java.util.jar.JarFile;
 
@@ -40,7 +42,9 @@ public class MavenResolverTest {
 
     @Test
     public void local() throws Exception {
-        assertEquals(ProvisioningResolver.LocalInputStream.class.getName(), 
resolver.resolve("mvn:junit:junit:4.12:jar").getClass().getName()); // use 
version of the pom to ensure it is local
+        try(InputStream is = resolver.resolve("mvn:junit:junit:4.12:jar")) {
+            Assert.assertNotNull(is); // use version of the pom to ensure it 
is local
+        }
     }
 
     private File getAvailableFile() {

Reply via email to