Add the ability to carry a security context to the modulelayer.
This will be the hook for the framework to pass around bundle 
protection domains (FELIX-21).


git-svn-id: https://svn.apache.org/repos/asf/incubator/felix/trunk@434383 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/moduleloader/IModule.java b/framework/src/main/java/org/apache/felix/moduleloader/IModule.java
index bb14f76..3718324 100644
--- a/framework/src/main/java/org/apache/felix/moduleloader/IModule.java
+++ b/framework/src/main/java/org/apache/felix/moduleloader/IModule.java
@@ -29,4 +29,6 @@
 
     public Class getClass(String name);
     public URL getResource(String name);
+
+    public Object getSecurityContext();
 }
\ No newline at end of file
diff --git a/framework/src/main/java/org/apache/felix/moduleloader/IModuleFactory.java b/framework/src/main/java/org/apache/felix/moduleloader/IModuleFactory.java
index d59cd1b..10029f4 100644
--- a/framework/src/main/java/org/apache/felix/moduleloader/IModuleFactory.java
+++ b/framework/src/main/java/org/apache/felix/moduleloader/IModuleFactory.java
@@ -21,11 +21,13 @@
     public IModule[] getModules();
     public IModule getModule(String id);
 
-    public IModule createModule(String id, IModuleDefinition md);    
+    public IModule createModule(String id, IModuleDefinition md);
     public void removeModule(IModule module);
 
     public void setContentLoader(IModule module, IContentLoader contentLoader);
 
     public void addModuleListener(ModuleListener l);
     public void removeModuleListener(ModuleListener l);
+
+    public void setSecurityContext(IModule module, Object securityContext);
 }
\ No newline at end of file
diff --git a/framework/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java b/framework/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java
index fbf8e9e..d6a2b38 100644
--- a/framework/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java
+++ b/framework/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java
@@ -110,6 +110,14 @@
         }
     }
 
+    public void setSecurityContext(IModule module, Object securityContext)
+    {
+        synchronized (this)
+        {
+            ((ModuleImpl) module).setSecurityContext(securityContext);
+        }
+    }
+
     /**
      * <p>
      * Adds a listener to the <tt>IModuleFactory</tt> to listen for
diff --git a/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java b/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java
index 4786c52..4b47de3 100644
--- a/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java
+++ b/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java
@@ -28,6 +28,7 @@
     private IModuleDefinition m_md = null;
     private IContentLoader m_contentLoader = null;
     private IWire[] m_wires = null;
+    private Object m_securityContext = null;
 
     ModuleImpl(Logger logger, String id, IModuleDefinition md)
     {
@@ -56,6 +57,11 @@
         m_contentLoader = contentLoader;
     }
 
+    protected void setSecurityContext(Object securityContext)
+    {
+        m_securityContext = securityContext;
+    }
+
     public IWire[] getWires()
     {
         return m_wires;
@@ -112,4 +118,9 @@
     {
         return m_id;
     }
+
+    public Object getSecurityContext()
+    {
+        return m_securityContext;
+    }
 }
\ No newline at end of file