[portal-commits] JBoss Portal SVN: r9077 - in branches/JBoss_Portal_Branch_2_6: core/src/main/org/jboss/portal/core/model/portal/metadata and 3 other directories.

portal-commits at lists.jboss.org portal-commits at lists.jboss.org
Thu Nov 22 17:21:49 EST 2007


Author: thomas.heute at jboss.com
Date: 2007-11-22 17:21:48 -0500 (Thu, 22 Nov 2007)
New Revision: 9077

Modified:
   branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/classes/WeatherResource.properties
   branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/classes/WeatherResource_fr.properties
   branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/default-object.xml
   branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java
   branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/BuildContext.java
   branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java
   branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/dtd/portal-object_2_6.dtd
Log:
Alternatively use resource bundles instead of display-name in -object.xml

Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java	2007-11-22 14:10:45 UTC (rev 9076)
+++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java	2007-11-22 22:21:48 UTC (rev 9077)
@@ -110,6 +110,7 @@
          // Load xml document
          log.debug("Loading portal metadata from " + url);
          in = IOTools.safeBufferedWrapper(url.openStream());
+
          DocumentBuilder builder = XMLTools.getDocumentBuilderFactory().newDocumentBuilder();
          EntityResolver entityResolver = factory.getPortalObjectEntityResolver();
          if (entityResolver == null)
@@ -132,7 +133,7 @@
          {
             Element deploymentElt = (Element)deploymentElts.get(i);
             Unit unit = new Unit();
-
+            
             //
             Element parentRefElt = XMLTools.getUniqueChild(deploymentElt, "parent-ref", false);
             unit.parentRef = parentRefElt == null ? null : PortalObjectId.parse(XMLTools.asString(parentRefElt), PortalObjectPath.LEGACY_FORMAT);
@@ -154,7 +155,7 @@
             }
 
             // The object to create
-            Object metaData = null;
+            PortalObjectMetaData metaData = null;
 
             //
             Element metaDataElt = XMLTools.getUniqueChild(deploymentElt, "portal", false);
@@ -200,6 +201,11 @@
                ContentProvider contentProvider = factory.contentProviderRegistry.getContentProvider(contentType);
                return contentProvider != null ? contentProvider.getHandler() : null;
             }
+            
+            public PortalWebApp getPortalWebApp()
+            {
+               return pwa;
+            }
          };
 
          // Create all objects

Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/BuildContext.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/BuildContext.java	2007-11-22 14:10:45 UTC (rev 9076)
+++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/BuildContext.java	2007-11-22 22:21:48 UTC (rev 9077)
@@ -25,6 +25,7 @@
 import org.jboss.portal.core.model.content.ContentType;
 import org.jboss.portal.core.model.content.spi.handler.ContentHandler;
 import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.portal.server.deployment.PortalWebApp;
 
 /**
  * Defines the callbacks for creating a portal object.
@@ -37,4 +38,6 @@
    PortalObjectContainer getContainer();
 
    ContentHandler getContentHandler(ContentType contentType);
+   
+   PortalWebApp getPortalWebApp();
 }

Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java	2007-11-22 14:10:45 UTC (rev 9076)
+++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java	2007-11-22 22:21:48 UTC (rev 9077)
@@ -22,6 +22,7 @@
  ******************************************************************************/
 package org.jboss.portal.core.model.portal.metadata;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -31,6 +32,7 @@
 import org.jboss.logging.Logger;
 import org.jboss.portal.common.i18n.LocaleFormat;
 import org.jboss.portal.common.i18n.LocalizedString;
+import org.jboss.portal.common.i18n.ResourceBundleManager;
 import org.jboss.portal.common.util.ConversionException;
 import org.jboss.portal.common.util.Tools;
 import org.jboss.portal.common.xml.XMLTools;
@@ -39,6 +41,8 @@
 import org.jboss.portal.core.model.portal.PortalObjectContainer;
 import org.jboss.portal.core.model.portal.PortalObjectPath;
 import org.jboss.portal.core.model.portal.PortalObjectPermission;
+import org.jboss.portal.portlet.impl.jsr168.PortletResourceBundleFactory;
+import org.jboss.portal.portlet.impl.jsr168.metadata.LanguagesMetaData;
 import org.jboss.portal.security.RoleSecurityBinding;
 import org.jboss.portal.security.SecurityConstants;
 import org.jboss.portal.security.metadata.SecurityConstraintsMetaData;
@@ -61,6 +65,8 @@
    private Map children;
    private SecurityConstraintsMetaData securityConstraints;
    private LocalizedString displayName;
+   private String resourceBundle;
+   private List supportedLocales;
 
    public PortalObjectMetaData()
    {
@@ -140,7 +146,7 @@
    {
       // Build instance
       PortalObject object = newInstance(buildContext, parent);
-
+      
       // Configure common properties
       configure(buildContext, object);
 
@@ -177,6 +183,21 @@
 
       // Configure listener
       object.setListener(listener);
+  
+      if (resourceBundle != null)
+      {
+         LanguagesMetaData md = new LanguagesMetaData();
+         md.setResourceBundle(resourceBundle);
+         Iterator it = supportedLocales.iterator();
+         while (it.hasNext())
+         {
+            Locale locale = (Locale)it.next();
+            md.getSupportedLocales().add(locale);
+         }
+         
+         ResourceBundleManager bundleMgr = PortletResourceBundleFactory.createResourceBundleManager(buildContext.getPortalWebApp().getClassLoader(), md);
+         object.setDisplayName(bundleMgr.getLocalizedValue("org.jboss.portal.object.name." + object.getId().getPath().toString(PortalObjectPath.LEGACY_FORMAT), object.getName()));
+      }
       
       // Configure display name
       if (displayName != null)
@@ -269,8 +290,18 @@
          {
             buildListenerMetaData(portalObjectMD, listenerElt);
          }
-         
-         buildDisplayNameMetaData(portalObjectMD, portalObjectElt);
+
+         // Configure resource-bundle
+         Element resourceBundleElt = XMLTools.getUniqueChild(portalObjectElt, "resource-bundle", false);
+         if (resourceBundleElt != null)
+         {
+            buildResourceBundleMetaData(portalObjectMD, resourceBundleElt);
+            buildSupportedLocalesMetaData(portalObjectMD, portalObjectElt);
+         }
+         else
+         {
+            buildDisplayNameMetaData(portalObjectMD, portalObjectElt);
+         }
       }
       return portalObjectMD;
    }
@@ -317,17 +348,56 @@
          portalObjectMD.setDisplayName(new LocalizedString(localizedStringValues, Locale.ENGLISH));
       }
    }
-   
 
+   public static void buildSupportedLocalesMetaData(PortalObjectMetaData portalObjectMD, Element portalObjectElt)
+   {
+      Iterator supportedLocalesIt = XMLTools.getChildrenIterator(portalObjectElt, "supported-locale");
+      
+      List supportedLocales = new ArrayList();
+      while (supportedLocalesIt.hasNext())
+      {
+         Element element = (Element)supportedLocalesIt.next();
+         supportedLocales.add(new Locale(element.getTextContent()));
+      }
+      portalObjectMD.setSupportedLocales(supportedLocales);
+   }
+
+
    public static void buildListenerMetaData(PortalObjectMetaData portalObjectMD, Element listenerElt)
    {
       String listener = XMLTools.asString(listenerElt);
       portalObjectMD.setListener(listener);
    }
 
+   public static void buildResourceBundleMetaData(PortalObjectMetaData portalObjectMD, Element resourceBundleElt)
+   {
+      String resourceBundle = XMLTools.asString(resourceBundleElt);
+      portalObjectMD.setResourceBundle(resourceBundle);
+   }
+
    public String toString()
    {
       String name = getClass().getName();
       return Tools.getShortNameOf(getClass()) + "[" + name + "]";
    }
+
+   public String getResourceBundle()
+   {
+      return resourceBundle;
+   }
+
+   public void setResourceBundle(String resourceBundle)
+   {
+      this.resourceBundle = resourceBundle;
+   }
+
+   public List getSupportedLocales()
+   {
+      return supportedLocales;
+   }
+
+   public void setSupportedLocales(List supportedLocales)
+   {
+      this.supportedLocales = supportedLocales;
+   }
 }

Modified: branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/dtd/portal-object_2_6.dtd
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/dtd/portal-object_2_6.dtd	2007-11-22 14:10:45 UTC (rev 9076)
+++ branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/dtd/portal-object_2_6.dtd	2007-11-22 22:21:48 UTC (rev 9077)
@@ -158,8 +158,17 @@
 type page and window. The children windows are the windows of the page and the children
 pages are the subpages of this page.
 -->
-<!ELEMENT page (page-name,properties?,listener?,security-constraint?,(page|window)*)>
+<!ELEMENT page (page-name,properties?,listener?,security-constraint?,(page|window)*,(display-name|resource-bundle,supported-locale+)>
 
+<!ELEMENT display-name (#PCDATA)>
+<!ATTLIST display-name
+  xml:lang        NMTOKEN       #IMPLIED
+>
+
+<!ELEMENT resource-bundle (#PCDATA)>
+
+<!ELEMENT supported-locale (#PCDATA)>
+
 <!--
 The page name value.
 -->

Modified: branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/classes/WeatherResource.properties
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/classes/WeatherResource.properties	2007-11-22 14:10:45 UTC (rev 9076)
+++ branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/classes/WeatherResource.properties	2007-11-22 22:21:48 UTC (rev 9077)
@@ -23,3 +23,4 @@
 
 javax.portlet.preference.name.RssXml=RSS feed URL
 javax.portlet.preference.name.expires=Expiration time
+org.jboss.portal.object.name.Weather=Weather
\ No newline at end of file

Modified: branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/classes/WeatherResource_fr.properties
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/classes/WeatherResource_fr.properties	2007-11-22 14:10:45 UTC (rev 9076)
+++ branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/classes/WeatherResource_fr.properties	2007-11-22 22:21:48 UTC (rev 9077)
@@ -23,3 +23,4 @@
 
 javax.portlet.preference.name.RssXml=URL du flux RSS
 javax.portlet.preference.name.expires=Temps d'expiration
+org.jboss.portal.object.name.default.Weather=M\u00E9t\u00E9o
\ No newline at end of file

Modified: branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/default-object.xml
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/default-object.xml	2007-11-22 14:10:45 UTC (rev 9076)
+++ branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-weather-samples-war/WEB-INF/default-object.xml	2007-11-22 22:21:48 UTC (rev 9077)
@@ -29,9 +29,12 @@
 <deployments>
    <deployment>
       <parent-ref>default</parent-ref>
-      <if-exists>keep</if-exists>
+      <if-exists>overwrite</if-exists>
       <page>
          <page-name>Weather</page-name>
+         <supported-locale>fr</supported-locale>
+         <supported-locale>en</supported-locale>
+         <resource-bundle>WeatherResource</resource-bundle>
          <properties>
             <property>
                <name>order</name>




More information about the portal-commits mailing list