[gatein-commits] gatein SVN: r134 - in components/pc/trunk: portlet/src/main/java/org/gatein/pc/portlet/impl/jsr168 and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Sun Aug 30 17:20:59 EDT 2009


Author: julien_viet
Date: 2009-08-30 17:20:59 -0400 (Sun, 30 Aug 2009)
New Revision: 134

Modified:
   components/pc/trunk/mc/src/main/java/org/gatein/pc/mc/PortletApplicationDeployer.java
   components/pc/trunk/portlet/src/main/java/org/gatein/pc/portlet/impl/jsr168/ContainerInfoBuilderContextImpl.java
   components/pc/trunk/portlet/src/main/java/org/gatein/pc/portlet/impl/metadata/PortletApplication10MetaData.java
Log:
GTNPC-6 : Add resource bundle factory plugin via portlet application metadata mechanism

Modified: components/pc/trunk/mc/src/main/java/org/gatein/pc/mc/PortletApplicationDeployer.java
===================================================================
--- components/pc/trunk/mc/src/main/java/org/gatein/pc/mc/PortletApplicationDeployer.java	2009-08-30 12:32:29 UTC (rev 133)
+++ components/pc/trunk/mc/src/main/java/org/gatein/pc/mc/PortletApplicationDeployer.java	2009-08-30 21:20:59 UTC (rev 134)
@@ -268,7 +268,7 @@
       broadcaster = null;
    }
 
-   private PortletApplication10MetaData buildPortletApplicationMetaData(WebApp webApp)
+   protected PortletApplication10MetaData buildPortletApplicationMetaData(WebApp webApp)
    {
       try
       {

Modified: components/pc/trunk/portlet/src/main/java/org/gatein/pc/portlet/impl/jsr168/ContainerInfoBuilderContextImpl.java
===================================================================
--- components/pc/trunk/portlet/src/main/java/org/gatein/pc/portlet/impl/jsr168/ContainerInfoBuilderContextImpl.java	2009-08-30 12:32:29 UTC (rev 133)
+++ components/pc/trunk/portlet/src/main/java/org/gatein/pc/portlet/impl/jsr168/ContainerInfoBuilderContextImpl.java	2009-08-30 21:20:59 UTC (rev 134)
@@ -33,6 +33,7 @@
 
 import java.util.Map;
 import java.util.HashMap;
+import java.lang.reflect.Constructor;
 
 /**
  * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
@@ -85,8 +86,33 @@
       ResourceBundleManager bundleMgr = portletBundleMgrs.get(portletMD.getPortletName());
       if (bundleMgr == null)
       {
-         String baseName = portletMD.getResourceBundle();
-         ResourceBundleFactory rbf = new SimpleResourceBundleFactory(webApp.getClassLoader(), baseName);
+         ResourceBundleFactory rbf = null;
+         String rbfName = metaData.getResourceBundleFactoryName();
+         if (rbfName != null)
+         {
+            try
+            {
+               Class<?> tmpClass = webApp.getClassLoader().loadClass(rbfName);
+               if (ResourceBundleFactory.class.isAssignableFrom(tmpClass))
+               {
+                  Class<? extends ResourceBundleFactory> rbfClass = tmpClass.asSubclass(ResourceBundleFactory.class);
+                  Constructor<? extends ResourceBundleFactory> rbfCtor = rbfClass.getConstructor(ClassLoader.class, String.class);
+                  rbf = rbfCtor.newInstance(webApp.getClassLoader(), portletMD.getResourceBundle());
+               }
+            }
+            catch (Exception e)
+            {
+               // Need to log
+            }
+         }
+
+         //
+         if (rbf == null)
+         {
+            rbf = new SimpleResourceBundleFactory(webApp.getClassLoader(), portletMD.getResourceBundle());
+         }
+
+         //
          bundleMgr = new ResourceBundleManager(null, rbf);
          portletBundleMgrs.put(portletMD.getPortletName(), bundleMgr);
       }

Modified: components/pc/trunk/portlet/src/main/java/org/gatein/pc/portlet/impl/metadata/PortletApplication10MetaData.java
===================================================================
--- components/pc/trunk/portlet/src/main/java/org/gatein/pc/portlet/impl/metadata/PortletApplication10MetaData.java	2009-08-30 12:32:29 UTC (rev 133)
+++ components/pc/trunk/portlet/src/main/java/org/gatein/pc/portlet/impl/metadata/PortletApplication10MetaData.java	2009-08-30 21:20:59 UTC (rev 134)
@@ -75,6 +75,9 @@
    /** The security constraints */
    private List<SecurityConstraintMetaData> securityConstraints;
 
+   /** The resource bundle factory class name. */
+   private String resourceBundleFactoryName;
+
    @XmlAttribute(name = "id")
    public String getId()
    {
@@ -217,4 +220,14 @@
       }
       this.securityConstraints.add(securityConstraint);
    }
+
+   public String getResourceBundleFactoryName()
+   {
+      return resourceBundleFactoryName;
+   }
+
+   public void setResourceBundleFactoryName(String resourceBundleFactoryName)
+   {
+      this.resourceBundleFactoryName = resourceBundleFactoryName;
+   }
 }



More information about the gatein-commits mailing list