diff --git a/portlet/src/main/java/org/gatein/pc/portlet/container/managed/ManagedPortletContainer.java b/portlet/src/main/java/org/gatein/pc/portlet/container/managed/ManagedPortletContainer.java
index b74dede2..36354262 100644
--- a/portlet/src/main/java/org/gatein/pc/portlet/container/managed/ManagedPortletContainer.java
+++ b/portlet/src/main/java/org/gatein/pc/portlet/container/managed/ManagedPortletContainer.java
@@ -24,6 +24,8 @@
import org.gatein.pc.api.info.PortletInfo;
+import javax.portlet.Portlet;
+
/**
* @author Julien Viet
* @version $Revision: 630 $
@@ -37,4 +39,5 @@ public interface ManagedPortletContainer extends ManagedObject
ManagedPortletApplication getManagedPortletApplication();
+ Portlet getPortletInstance();
}
diff --git a/portlet/src/main/java/org/gatein/pc/portlet/container/object/PortletContainerObject.java b/portlet/src/main/java/org/gatein/pc/portlet/container/object/PortletContainerObject.java
index 4256d145..58ce8bfc 100644
--- a/portlet/src/main/java/org/gatein/pc/portlet/container/object/PortletContainerObject.java
+++ b/portlet/src/main/java/org/gatein/pc/portlet/container/object/PortletContainerObject.java
@@ -27,6 +27,8 @@
import org.gatein.pc.portlet.container.PortletContainer;
import org.gatein.pc.portlet.container.PortletFilter;
+import javax.portlet.Portlet;
+
/**
* Contains life cycle and wiring details for the kernel environment.
*
@@ -87,4 +89,11 @@ public interface PortletContainerObject extends PortletContainer
* Destroys the portlet container.
*/
void destroy();
+
+ /**
+ * Returns the current instance held by the container.
+ *
+ * @return the instance
+ */
+ Portlet getPortletInstance();
}
diff --git a/portlet/src/main/java/org/gatein/pc/portlet/impl/container/PortletContainerLifeCycle.java b/portlet/src/main/java/org/gatein/pc/portlet/impl/container/PortletContainerLifeCycle.java
index d3a49b30..0d922acd 100644
--- a/portlet/src/main/java/org/gatein/pc/portlet/impl/container/PortletContainerLifeCycle.java
+++ b/portlet/src/main/java/org/gatein/pc/portlet/impl/container/PortletContainerLifeCycle.java
@@ -30,6 +30,8 @@
import org.gatein.pc.portlet.container.PortletContainer;
import org.gatein.pc.api.info.PortletInfo;
+import javax.portlet.Portlet;
+
/**
* @author Julien Viet
* @version $Revision: 630 $
@@ -102,6 +104,12 @@ protected void invokeStop()
portletContainer.stop();
}
+ @Override
+ public Portlet getPortletInstance()
+ {
+ return portletContainer.getPortletInstance();
+ }
+
@Override
protected void invokeDestroy() throws Exception
{
diff --git a/portlet/src/main/java/org/gatein/pc/portlet/impl/jsr168/PortletContainerImpl.java b/portlet/src/main/java/org/gatein/pc/portlet/impl/jsr168/PortletContainerImpl.java
index 33b74f3f..8f94ccdf 100644
--- a/portlet/src/main/java/org/gatein/pc/portlet/impl/jsr168/PortletContainerImpl.java
+++ b/portlet/src/main/java/org/gatein/pc/portlet/impl/jsr168/PortletContainerImpl.java
@@ -187,6 +187,11 @@ public ContainerPortletInfo getInfo()
throw new IllegalStateException("Portlet " + info.getName() + " is not started");
}
+ public Portlet getPortletInstance()
+ {
+ return portlet;
+ }
+
public String getId()
{
return info.getName();
diff --git a/portlet/src/test/java/org/gatein/pc/portlet/container/PortletContainerObjectSupport.java b/portlet/src/test/java/org/gatein/pc/portlet/container/PortletContainerObjectSupport.java
index 5b3514af..ae179451 100644
--- a/portlet/src/test/java/org/gatein/pc/portlet/container/PortletContainerObjectSupport.java
+++ b/portlet/src/test/java/org/gatein/pc/portlet/container/PortletContainerObjectSupport.java
@@ -29,6 +29,7 @@
import org.gatein.pc.api.invocation.response.PortletInvocationResponse;
import org.gatein.pc.portlet.container.object.PortletContainerObject;
+import javax.portlet.Portlet;
import java.util.HashMap;
import java.util.Map;
@@ -108,4 +109,10 @@ public PortletContainerContext getContext()
{
throw new UnsupportedOperationException();
}
+
+ @Override
+ public Portlet getPortletInstance()
+ {
+ throw new UnsupportedOperationException();
+ }
}