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