Patch to make injected methods private instead of public (FELIX-96).


git-svn-id: https://svn.apache.org/repos/asf/incubator/felix/trunk@425313 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/org.apache.felix.ipojo.plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessClassAdapter.java b/org.apache.felix.ipojo.plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessClassAdapter.java
index 94b4c22..42955e2 100644
--- a/org.apache.felix.ipojo.plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessClassAdapter.java
+++ b/org.apache.felix.ipojo.plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessClassAdapter.java
@@ -89,7 +89,7 @@
             m_owner = name;
 
             // Insert _cm field
-            super.visitField(ACC_PUBLIC + ACC_STATIC, "_cm", ManipulationProperty.IPOJO_INTERNAL_DESCRIPTOR + "ComponentManager;", null, null);
+            super.visitField(ACC_PRIVATE + ACC_STATIC, "_cm", ManipulationProperty.IPOJO_INTERNAL_DESCRIPTOR + "ComponentManager;", null, null);
 
             // Create the _cmSetter(ComponentManager cm) method
             createComponentManagerSetter();
@@ -131,7 +131,7 @@
          * The generated method must be called only one time.
          */
         private void createComponentManagerSetter() {
-            MethodVisitor mv = super.visitMethod(ACC_PUBLIC + ACC_STATIC, "setComponentManager", "(" + ManipulationProperty.IPOJO_INTERNAL_DESCRIPTOR + "ComponentManager;)V", null, null);
+            MethodVisitor mv = super.visitMethod(ACC_PRIVATE + ACC_STATIC, "setComponentManager", "(" + ManipulationProperty.IPOJO_INTERNAL_DESCRIPTOR + "ComponentManager;)V", null, null);
 
             mv.visitVarInsn(ALOAD, 0);
             mv.visitFieldInsn(PUTSTATIC, m_owner, "_cm", ManipulationProperty.IPOJO_INTERNAL_DESCRIPTOR + "ComponentManager;");
@@ -203,7 +203,7 @@
         }
 
         private void createArraySetter(String name, String desc, Type type) {
-        	MethodVisitor mv = cv.visitMethod(ACC_PUBLIC, "_set" + name, desc, null, null);
+        	MethodVisitor mv = cv.visitMethod(ACC_PRIVATE, "_set" + name, desc, null, null);
 
         	String internalType = desc.substring(1);
         	internalType = internalType.substring(0, internalType.length() - 2);
@@ -236,7 +236,7 @@
 //
 
 			String methodName = "_get" + name;
-            MethodVisitor mv = cv.visitMethod(ACC_PUBLIC, methodName, desc, null, null);
+            MethodVisitor mv = cv.visitMethod(ACC_PRIVATE, methodName, desc, null, null);
 
             String internalType = desc.substring(2);
 
@@ -292,7 +292,7 @@
         private void createSimpleGetter(String name, String desc, Type type) {
 
             String methodName = "_get" + name;
-            MethodVisitor mv = cv.visitMethod(ACC_PUBLIC, methodName, desc, null, null);
+            MethodVisitor mv = cv.visitMethod(ACC_PRIVATE, methodName, desc, null, null);
 
             switch (type.getSort()) {
             	case Type.BOOLEAN :
@@ -408,7 +408,7 @@
          * @param type : type of the property
          */
         private void createSimpleSetter(String name, String desc, Type type) {
-            MethodVisitor mv = cv.visitMethod(ACC_PUBLIC, "_set" + name, desc, null, null);
+            MethodVisitor mv = cv.visitMethod(ACC_PRIVATE, "_set" + name, desc, null, null);
 
             switch(type.getSort()) {
         		case Type.BOOLEAN :
diff --git a/org.apache.felix.ipojo/src/main/java/org/apache/felix/ipojo/ComponentManager.java b/org.apache.felix.ipojo/src/main/java/org/apache/felix/ipojo/ComponentManager.java
index 3a3feae..f513b47 100644
--- a/org.apache.felix.ipojo/src/main/java/org/apache/felix/ipojo/ComponentManager.java
+++ b/org.apache.felix.ipojo/src/main/java/org/apache/felix/ipojo/ComponentManager.java
@@ -311,7 +311,8 @@
 
 			Activator.getLogger().log(Level.INFO, "[" + m_metadata.getClassName() + "] createInstance -> call setComponentManager");
 			// Invoke the static method setComponentManager on the manipulated class
-			Method method = m_clazz.getMethod("setComponentManager", new Class[] {this.getClass()});
+			Method method = m_clazz.getDeclaredMethod("setComponentManager", new Class[] {this.getClass()});
+			method.setAccessible(true);
 			method.invoke(null, new Object[] {this});
 
 			Activator.getLogger().log(Level.INFO, "[" + m_metadata.getClassName() + "] createInstance -> Try to find the constructor");