Return-Path: X-Original-To: apmail-openejb-commits-archive@www.apache.org Delivered-To: apmail-openejb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9577DE2F6 for ; Tue, 20 Nov 2012 17:48:13 +0000 (UTC) Received: (qmail 87693 invoked by uid 500); 20 Nov 2012 17:48:13 -0000 Delivered-To: apmail-openejb-commits-archive@openejb.apache.org Received: (qmail 87655 invoked by uid 500); 20 Nov 2012 17:48:13 -0000 Mailing-List: contact commits-help@openejb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openejb.apache.org Delivered-To: mailing list commits@openejb.apache.org Received: (qmail 87646 invoked by uid 99); 20 Nov 2012 17:48:13 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 20 Nov 2012 17:48:13 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 20 Nov 2012 17:48:12 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id E6EED2388A4A for ; Tue, 20 Nov 2012 17:47:51 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1411765 - in /openejb/trunk/openejb/container/openejb-core/src: main/java/org/apache/openejb/config/AnnotationDeployer.java test/java/org/apache/openejb/config/EntitiesScanningPackageLimitedTest.java Date: Tue, 20 Nov 2012 17:47:51 -0000 To: commits@openejb.apache.org From: rmannibucau@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121120174751.E6EED2388A4A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: rmannibucau Date: Tue Nov 20 17:47:50 2012 New Revision: 1411765 URL: http://svn.apache.org/viewvc?rev=1411765&view=rev Log: TOMEE-596 limit package scanning for jpa entities Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/EntitiesScanningPackageLimitedTest.java - copied, changed from r1411568, openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/EntitiesScanningTest.java Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1411765&r1=1411764&r2=1411765&view=diff ============================================================================== --- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original) +++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Tue Nov 20 17:47:50 2012 @@ -244,6 +244,7 @@ public class AnnotationDeployer implemen public static final Logger startupLogger = Logger.getInstance(LogCategory.OPENEJB_STARTUP_CONFIG, "org.apache.openejb.util.resources"); public static final String OPENEJB_JPA_AUTO_SCAN = "openejb.jpa.auto-scan"; + public static final String OPENEJB_JPA_AUTO_SCAN_PACKAGE = "openejb.jpa.auto-scan.package"; private static final ThreadLocal currentModule = new ThreadLocal(); private static final Set lookupMissing = new HashSet(2); @@ -1497,12 +1498,14 @@ public class AnnotationDeployer implemen for (org.apache.openejb.jee.jpa.unit.PersistenceUnit pu : pm.getPersistence().getPersistenceUnit()) { if ((pu.isExcludeUnlistedClasses() == null || !pu.isExcludeUnlistedClasses()) && "true".equalsIgnoreCase(pu.getProperties().getProperty(OPENEJB_JPA_AUTO_SCAN))) { + final String packageName = pu.getProperties().getProperty(OPENEJB_JPA_AUTO_SCAN_PACKAGE); + // no need of meta currently since JPA providers doesn't support it final List> classes = finder.findAnnotatedClasses(Entity.class); final List existingClasses = pu.getClazz(); for (Class clazz : classes) { final String name = clazz.getName(); - if (!existingClasses.contains(name)) { + if ((packageName == null || name.startsWith(packageName)) && !existingClasses.contains(name)) { pu.getClazz().add(name); } } Copied: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/EntitiesScanningPackageLimitedTest.java (from r1411568, openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/EntitiesScanningTest.java) URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/EntitiesScanningPackageLimitedTest.java?p2=openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/EntitiesScanningPackageLimitedTest.java&p1=openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/EntitiesScanningTest.java&r1=1411568&r2=1411765&rev=1411765&view=diff ============================================================================== --- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/EntitiesScanningTest.java (original) +++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/EntitiesScanningPackageLimitedTest.java Tue Nov 20 17:47:50 2012 @@ -35,7 +35,7 @@ import java.util.Properties; import static junit.framework.Assert.assertEquals; @RunWith(ApplicationComposer.class) -public class EntitiesScanningTest { +public class EntitiesScanningPackageLimitedTest { @Module public Class[] app() throws Exception { @@ -45,9 +45,9 @@ public class EntitiesScanningTest { @Configuration public Properties config() { final Properties p = new Properties(); - p.put("cczczczedc", "new://Resource?type=DataSource"); - p.put("cczczczedc.JdbcDriver", "org.hsqldb.jdbcDriver"); - p.put("cczczczedc.JdbcUrl", "jdbc:hsqldb:mem:cczccdzcz"); + p.put("cczczczedc2", "new://Resource?type=DataSource"); + p.put("cczczczedc2.JdbcDriver", "org.hsqldb.jdbcDriver"); + p.put("cczczczedc2.JdbcUrl", "jdbc:hsqldb:mem:cczccdzcz2"); return p; } @@ -57,6 +57,7 @@ public class EntitiesScanningTest { unit.setProperty("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)"); unit.getProperties().setProperty("openjpa.RuntimeUnenhancedClasses", "supported"); unit.getProperties().setProperty("openejb.jpa.auto-scan", "true"); + unit.getProperties().setProperty("openejb.jpa.auto-scan.package", "com.doesnt.exist"); final Persistence persistence = new Persistence(unit); persistence.setVersion("2.0"); @@ -88,8 +89,6 @@ public class EntitiesScanningTest { @Test public void check() throws Exception { final ReloadableEntityManagerFactory remf = ((ReloadableEntityManagerFactory) emf); - assertEquals(1, remf.getManagedClasses().size()); - assertEquals(SomeSimpleEntity.class.getName(), remf.getManagedClasses().iterator().next()); - assertEquals(true, remf.getExcludeUnlistedClasses()); + assertEquals(0, remf.getManagedClasses().size()); } }