* Fix FELIX-1427
Service dependencies are not able to be injected as smart proxies (generated in bytecode). However the proxies ensure the service object set synchronization.
By default fields now receive proxies (default behavior can be set with the ipojo.depednency.proxy-enabled|disabled system property).

* Fix an interception bug on constructors

* Fix import / package packages of composites and temporal handler as now the core embeds ASM

* Add a classloading issue in the temporal dependencies (Bad classloader)



git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@893960 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/api/pom.xml b/ipojo/api/pom.xml
index 2b43bab..af4f11a 100644
--- a/ipojo/api/pom.xml
+++ b/ipojo/api/pom.xml
@@ -58,7 +58,8 @@
               org.apache.felix.ipojo.api.composite,
               org.apache.felix.ipojo.manipulation,
               org.apache.felix.ipojo.manipulation.annotations,
-              org.objectweb.asm.commons, org.objectweb.asm
+              org.objectweb.asm.commons;version=3.0, 
+              org.objectweb.asm;version=3.0
             </Export-Package>
             <Include-Resource> META-INF/LICENSE=LICENSE,
               META-INF/NOTICE=NOTICE, META-INF/LICENSE.asm=LICENSE.asm
diff --git a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Dependency.java b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Dependency.java
index cac71d4..724b466 100644
--- a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Dependency.java
+++ b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Dependency.java
@@ -116,6 +116,11 @@
      * Does the dependency supports nullable? 
      */
     private boolean m_nullable = true;
+    
+    /**
+     * Does the dependency enables proxy. 
+     */
+    private boolean m_proxy = true;
 
     /**
      * Gets the dependency metadata.
@@ -174,6 +179,9 @@
         if (m_aggregate) {
             dep.addAttribute(new Attribute("aggregate", "true"));
         }
+        if (! m_proxy) {
+            dep.addAttribute(new Attribute("proxy", "false"));
+        }
         if (m_policy != -1) {
             if (m_policy == DYNAMIC) {
                 dep.addAttribute(new Attribute("policy", "dynamic"));
@@ -251,6 +259,17 @@
     }
     
     /**
+     * Sets if the dependency injects proxies.
+     * @param proxy <code>false</code> if the dependency does not
+     * inject proxies but uses direct references.
+     * @return the current dependency object.
+     */
+    public Dependency setProxy(boolean proxy) {
+        m_proxy = proxy;
+        return this;
+    }
+    
+    /**
      * Sets the dependency bind method.
      * @param bind the bind method name
      * @return the current dependency object.