Author: antelder
Date: Fri Mar 19 06:27:48 2010
New Revision: 925102

URL: http://svn.apache.org/viewvc?rev=925102&view=rev
Log:
TUSCANY-3505: Apply patch from Ivan Krizsan to fix @Destroy annotation not 
allowed on non-public methods

Modified:
    
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessor.java
    
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessorTestCase.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessor.java?rev=925102&r1=925101&r2=925102&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessor.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessor.java
 Fri Mar 19 06:27:48 2010
@@ -59,9 +59,6 @@ public class DestroyProcessor extends Ba
         if (type.getDestroyMethod() != null) {
             throw new DuplicateDestructorException("More than one destructor 
found on implementation");
         }
-        if (!Modifier.isPublic(method.getModifiers())) {
-            throw new IllegalDestructorException("Destructor must be a public 
method. Invalid annotation @Destroy found on "+method);
-        }
         type.setDestroyMethod(method);
     }
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessorTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessorTestCase.java?rev=925102&r1=925101&r2=925102&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessorTestCase.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/DestroyProcessorTestCase.java
 Fri Mar 19 06:27:48 2010
@@ -83,9 +83,8 @@ public class DestroyProcessorTestCase {
         Method method = Bar.class.getDeclaredMethod("protectedDestroy");
         try {
             processor.visitMethod(method, type);
-            fail();
         } catch (IllegalDestructorException e) {
-            // expected
+            fail();
         }
     }
 
@@ -96,9 +95,20 @@ public class DestroyProcessorTestCase {
         Method method = Bar.class.getDeclaredMethod("privateDestroy");
         try {
             processor.visitMethod(method, type);
+        } catch (IllegalDestructorException e) {
             fail();
+        }
+    }
+
+    @Test
+    public void testDefaultVisibilityDestroy() throws Exception {
+        DestroyProcessor processor = new DestroyProcessor(assemblyFactory);
+        JavaImplementation type = 
javaImplementationFactory.createJavaImplementation();
+        Method method = 
Bar.class.getDeclaredMethod("defaultVisibilityDestroy");
+        try {
+            processor.visitMethod(method, type);
         } catch (IllegalDestructorException e) {
-            // expected
+            fail();
         }
     }
 
@@ -132,5 +142,9 @@ public class DestroyProcessorTestCase {
         private void privateDestroy(){
         }
 
+        @Destroy
+        void defaultVisibilityDestroy(){
+        }
+
     }
 }


Reply via email to