From 8784966ce6946d2e820f6acaf22f035a4384fa44 Mon Sep 17 00:00:00 2001 From: Julien Viet Date: Tue, 2 Apr 2013 21:20:03 +0200 Subject: [PATCH] Expose the portlet instance from the managed life cycle of the portlet container --- .../container/managed/ManagedPortletContainer.java | 3 +++ .../portlet/container/object/PortletContainerObject.java | 9 +++++++++ .../impl/container/PortletContainerLifeCycle.java | 8 ++++++++ .../pc/portlet/impl/jsr168/PortletContainerImpl.java | 5 +++++ .../portlet/container/PortletContainerObjectSupport.java | 7 +++++++ 5 files changed, 32 insertions(+) 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(); + } }