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 2013/12/27 07:57:50 UTC
svn commit: r1553635 - in /tomee/tomee/trunk/container/openejb-core/src:
main/java/org/apache/openejb/config/PersistenceUnitLinkResolver.java
test/java/org/apache/openejb/PersistenceUnitLinkResolverTest.java
Author: rmannibucau
Date: Fri Dec 27 06:57:50 2013
New Revision: 1553635
URL: http://svn.apache.org/r1553635
Log:
TOMEE-1100 logging the uri when it is not an absolute url in persistence unit resolver
Added:
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/PersistenceUnitLinkResolverTest.java
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceUnitLinkResolver.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceUnitLinkResolver.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceUnitLinkResolver.java?rev=1553635&r1=1553634&r2=1553635&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceUnitLinkResolver.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceUnitLinkResolver.java Fri Dec 27 06:57:50 2013
@@ -18,6 +18,8 @@ package org.apache.openejb.config;
import org.apache.openejb.jee.jpa.unit.Persistence;
import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
import org.apache.openejb.util.URLs;
import org.apache.openejb.util.UniqueDefaultLinkResolver;
@@ -31,6 +33,8 @@ import java.util.Iterator;
// TODO: review if some more info shouldn't be propagated to module tree to make it faster
public class PersistenceUnitLinkResolver extends UniqueDefaultLinkResolver<PersistenceUnit> {
+ private static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB, PersistenceUnitLinkResolver.class);
+
private final AppModule module;
public PersistenceUnitLinkResolver(final AppModule appModule) {
@@ -107,14 +111,22 @@ public class PersistenceUnitLinkResolver
final File appModuleFile = new File(module.getJarLocation());
- final File moduleFile;
+ File moduleFile;
try {
moduleFile = URLs.toFile(moduleUri.toURL());
- } catch (MalformedURLException e) {
+ } catch (final MalformedURLException e) {
return null;
+ } catch (final IllegalArgumentException iae) {
+ final File f = new File(appModuleFile, moduleUri.getPath());
+ if (f.exists()) {
+ moduleFile = f;
+ } else {
+ LOGGER.warning("Illegal uri: " + moduleUri, iae);
+ return null;
+ }
}
- for (WebModule webModule : module.getWebModules()) {
+ for (final WebModule webModule : module.getWebModules()) {
if (webModule.getJarLocation() != null && isParent(new File(webModule.getJarLocation()), moduleFile, appModuleFile)) {
return webModule;
}
Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/PersistenceUnitLinkResolverTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/PersistenceUnitLinkResolverTest.java?rev=1553635&view=auto
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/PersistenceUnitLinkResolverTest.java (added)
+++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/PersistenceUnitLinkResolverTest.java Fri Dec 27 06:57:50 2013
@@ -0,0 +1,44 @@
+/*
+ * 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;
+
+import org.apache.openejb.config.AppModule;
+import org.apache.openejb.config.PersistenceUnitLinkResolver;
+import org.apache.openejb.jee.Application;
+import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
+import org.apache.openejb.loader.Files;
+import org.junit.Test;
+
+import java.io.File;
+import java.net.URI;
+
+import static org.junit.Assert.assertNull;
+
+public class PersistenceUnitLinkResolverTest {
+ @Test
+ public void resolve() {
+ final AppModule appModule = new AppModule(Thread.currentThread().getContextClassLoader(), "target/classes/foo", new Application(), false);
+
+ Files.mkdir(new File("target/classes/foo/bar"));
+
+ final PersistenceUnitLinkResolver resolver = new PersistenceUnitLinkResolver(appModule);
+ resolver.add(URI.create("file:/fake/1"), "foo", new PersistenceUnit());
+ resolver.add(URI.create("file:/fake/2"), "foo", new PersistenceUnit());
+
+ assertNull(resolver.resolveLink("foo", URI.create("bar"))); // can't resolve but doesn't fail
+ }
+}