Return-Path: Delivered-To: apmail-incubator-cayenne-commits-archive@locus.apache.org Received: (qmail 34330 invoked from network); 10 Aug 2006 02:57:00 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 10 Aug 2006 02:57:00 -0000 Received: (qmail 6317 invoked by uid 500); 10 Aug 2006 02:57:00 -0000 Delivered-To: apmail-incubator-cayenne-commits-archive@incubator.apache.org Received: (qmail 6303 invoked by uid 500); 10 Aug 2006 02:57:00 -0000 Mailing-List: contact cayenne-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cayenne-dev@incubator.apache.org Delivered-To: mailing list cayenne-commits@incubator.apache.org Received: (qmail 6292 invoked by uid 99); 10 Aug 2006 02:57:00 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Aug 2006 19:57:00 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Aug 2006 19:56:59 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 3B9AC1A981D; Wed, 9 Aug 2006 19:56:39 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r430223 - in /incubator/cayenne/main/trunk/core/cayenne-jpa/src: main/java/org/apache/cayenne/jpa/map/ test/java/org/apache/cayenne/jpa/conf/ Date: Thu, 10 Aug 2006 02:56:38 -0000 To: cayenne-commits@incubator.apache.org From: aadamchik@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060810025639.3B9AC1A981D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: aadamchik Date: Wed Aug 9 19:56:37 2006 New Revision: 430223 URL: http://svn.apache.org/viewvc?rev=430223&view=rev Log: fixing inclusion of static fields in default persistent properties Added: incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MockAnnotatedBean4.java Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor1Test.java Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java?rev=430223&r1=430222&r2=430223&view=diff ============================================================================== --- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java (original) +++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java Wed Aug 9 19:56:37 2006 @@ -158,8 +158,14 @@ for (int i = 0; i < fields.length; i++) { + int modifiers = fields[i].getModifiers(); // skip transient fields (in a Java sense) - if (Modifier.isTransient(fields[i].getModifiers())) { + if (Modifier.isTransient(modifiers)) { + continue; + } + + // skip static fields + if (Modifier.isStatic(modifiers)) { continue; } Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java?rev=430223&r1=430222&r2=430223&view=diff ============================================================================== --- incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java (original) +++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java Wed Aug 9 19:56:37 2006 @@ -82,7 +82,7 @@ JpaBasic a2 = entity.getAttributes().getBasicAttribute("attribute2"); assertTrue(a2.isLob()); - + JpaBasic a3 = entity.getAttributes().getBasicAttribute("attribute3"); assertTrue(a3.isLob()); } Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor1Test.java URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor1Test.java?rev=430223&r1=430222&r2=430223&view=diff ============================================================================== --- incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor1Test.java (original) +++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor1Test.java Wed Aug 9 19:56:37 2006 @@ -36,13 +36,32 @@ // apply defaults new EntityMapDefaultsProcessor().applyDefaults(context); - + JpaEntityMap map = context.getEntityMap(); JpaEntity entity = map.entityForClass(MockAnnotatedBeanVersion.class); assertNotNull(entity); - + JpaVersion v = entity.getAttributes().getVersionAttribute("attribute1"); assertNotNull(v); assertNotNull(v.getColumn()); + } + + public void testStaticFields() throws Exception { + + EntityMapLoaderContext context = new EntityMapLoaderContext( + new MockPersistenceUnitInfo()); + EntityMapAnnotationLoader loader = new EntityMapAnnotationLoader(context); + loader.loadClassMapping(MockAnnotatedBean4.class); + + // apply defaults + new EntityMapDefaultsProcessor().applyDefaults(context); + + JpaEntityMap map = context.getEntityMap(); + assertEquals(1, map.getEntities().size()); + JpaEntity entity = map.getEntities().iterator().next(); + + // testing that static fields are not loaded as persistent + assertEquals(1, entity.getAttributes().size()); + assertEquals(1, entity.getAttributes().getIds().size()); } } Added: incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MockAnnotatedBean4.java URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MockAnnotatedBean4.java?rev=430223&view=auto ============================================================================== --- incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MockAnnotatedBean4.java (added) +++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MockAnnotatedBean4.java Wed Aug 9 19:56:37 2006 @@ -0,0 +1,33 @@ +/***************************************************************** + * 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.cayenne.jpa.conf; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class MockAnnotatedBean4 { + + public static final String CONSTANT1 = "a"; + + public static String CONSTANT2 = "b"; + + @Id + protected int id; +}