Author: thomas.heute(a)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>