tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dblev...@apache.org
Subject svn commit: r673563 - in /openejb/trunk/openejb3/container/openejb-core/src/main: java/org/apache/openejb/config/AnnotationDeployer.java resources/org/apache/openejb/config/rules/Messages.properties
Date Thu, 03 Jul 2008 01:52:40 GMT
Author: dblevins
Date: Wed Jul  2 18:52:40 2008
New Revision: 673563

URL: http://svn.apache.org/viewvc?rev=673563&view=rev
Log:
OPENEJB-844: Validation: Singleton @Lock annotation not used with Bean-Managed Concurrency
OPENEJB-848: Validation: @TransactionAttribute mistakenly used on beans with Bean-Managed
Transactions

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=673563&r1=673562&r2=673563&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
(original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
Wed Jul  2 18:52:40 2008
@@ -711,6 +711,8 @@
 
                 if (bean.getTransactionType() == TransactionType.CONTAINER) {
                     processAttributes(new TransactionAttributeHandler(assemblyDescriptor,
ejbName), clazz, inheritedClassFinder);
+                } else {
+                    checkAttributes(new TransactionAttributeHandler(assemblyDescriptor, ejbName),
ejbName, ejbModule, classFinder, "invalidTransactionAttribute");
                 }
 
                 processSecurityAnnotations(clazz, ejbName, ejbModule, inheritedClassFinder,
bean);
@@ -852,6 +854,8 @@
 
                             if (sessionBean.getConcurrencyType() == ConcurrencyType.CONTAINER)
{
                                 processAttributes(new ConcurrencyAttributeHandler(assemblyDescriptor,
ejbName), clazz, inheritedClassFinder);
+                            } else {
+                                checkAttributes(new ConcurrencyAttributeHandler(assemblyDescriptor,
ejbName), ejbName, ejbModule, classFinder, "invalidConcurrencyAttribute");
                             }
                         }
                     }
@@ -1308,6 +1312,28 @@
             }
         }
 
+        private <A extends Annotation> void checkAttributes(AnnotationHandler<A>
handler, String ejbName, EjbModule ejbModule, ClassFinder classFinder, String messageKey)
{
+            Map<String, List<MethodAttribute>> existingDeclarations = handler.getExistingDeclarations();
+
+            int xml = 0;
+            for (List<MethodAttribute> methodAttributes : existingDeclarations.values())
{
+                xml += methodAttributes.size();
+            }
+
+            if (xml > 0){
+                ejbModule.getValidation().warn(ejbName, "xml."+messageKey, xml);
+            }
+
+            int ann = classFinder.findAnnotatedClasses(handler.getAnnotationClass()).size();
+            ann += classFinder.findAnnotatedMethods(handler.getAnnotationClass()).size();
+
+            if (ann > 0){
+                ejbModule.getValidation().warn(ejbName, "ann."+messageKey, ann);
+            }
+
+
+        }
+
         private <A extends Annotation> void processAttributes(AnnotationHandler<A>
handler, Class<?> clazz, ClassFinder classFinder) {
             Map<String, List<MethodAttribute>> existingDeclarations = handler.getExistingDeclarations();
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties?rev=673563&r1=673562&r2=673563&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties
(original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties
Wed Jul  2 18:52:40 2008
@@ -547,4 +547,25 @@
 # fail(ejbName, "conflictingSecurityAnnotations", method.getName(), join(" and ", annotations),
method.getDeclaringClass());
 1.conflictingSecurityAnnotations = Method has conflicting security annotations.
 2.conflictingSecurityAnnotations = Method has conflicting security annotations: "{0}" uses
{1}
-3.conflictingSecurityAnnotations = The {1} annotations are mutually exclussive and cannot
be used together on the same method.  Choose the security annotation you want and delete the
others from method {0} in class {2}.  @RolesAllowed will restrict access to the listed authenticated
roles.  @PermitAll will allow access to anyone authenticated or not.  @DenyAll will deny access
to anyone authenticated or not.
\ No newline at end of file
+3.conflictingSecurityAnnotations = The {1} annotations are mutually exclussive and cannot
be used together on the same method.  Choose the security annotation you want and delete the
others from method {0} in class {2}.  @RolesAllowed will restrict access to the listed authenticated
roles.  @PermitAll will allow access to anyone authenticated or not.  @DenyAll will deny access
to anyone authenticated or not.
+
+# warn(ejbName, "xml.invalidTransactionAttribute", count);
+1.xml.invalidTransactionAttribute = Ignoring invalid <container-transaction> declarations.
 Bean not using Container-Managed Transactions.
+2.xml.invalidTransactionAttribute = Ignoring {0} invalid <container-transaction> declarations.
 Bean not using Container-Managed Transactions.
+3.xml.invalidTransactionAttribute = The <container-transaction> element applies only
to beans using Container-Managed Transactions.  Beans marked as <transaction-type>Bean</transaction-type>
are responsible for thier own transactions and may not use the <container-transaction>
element.  There are {0} such invalid declarations in the deployment descriptor that will be
ignored and should be removed.
+
+# warn(ejbName, "ann.invalidTransactionAttribute", count);
+1.ann.invalidTransactionAttribute = Ignoring invalid @TransactionAttribute annotations. 
Bean not using Container-Managed Transactions.
+2.ann.invalidTransactionAttribute = Ignoring {0} invalid @TransactionAttribute annotations.
 Bean not using Container-Managed Transactions.
+3.ann.invalidTransactionAttribute = The @TransactionAttribute annotation applies only to
beans using Container-Managed Transactions.  Beans marked as @TransactionManagement(BEAN)
are responsible for thier own transactions and may not use the @TransactionAttribute annotation.
 There are {0} such invalid annotations in the bean class that will be ignored and should
be removed.
+
+# warn(ejbName, "xml.invalidConcurrencyAttribute", count);
+1.xml.invalidConcurrencyAttribute = Ignoring invalid <container-concurrency> declarations.
 Bean not using Container-Managed Concurrency.
+2.xml.invalidConcurrencyAttribute = Ignoring {0} invalid <container-concurrency> declarations.
 Bean not using Container-Managed Concurrency.
+3.xml.invalidConcurrencyAttribute = The <container-concurrency> element applies only
to beans using Container-Managed Concurrency.  Beans marked as <concurrency-type>Bean</concurrency-type>
are responsible for thier own concurrency and may not use the <container-concurrency>
element.  There are {0} such invalid declarations in the deployment descriptor that will be
ignored and should be removed.
+
+# warn(ejbName, "ann.invalidConcurrencyAttribute", count);
+1.ann.invalidConcurrencyAttribute = Ignoring invalid @Lock annotations.  Bean not using Container-Managed
Concurrencys.
+2.ann.invalidConcurrencyAttribute = Ignoring {0} invalid @Lock annotations.  Bean not using
Container-Managed Concurrencys.
+3.ann.invalidConcurrencyAttribute = The @Lock annotation applies only to beans using Container-Managed
Concurrencys.  Beans marked as @ConcurrencyManagement(BEAN) are responsible for thier own
concurrency and may not use the @Lock annotation.  There are {0} such invalid annotations
in the bean class that will be ignored and should be removed.
+



Mime
View raw message