From: Chris L. <chr...@jb...> - 2006-03-03 06:55:07
|
User: claprun Date: 06/03/03 01:55:03 Added: wsrp/src/main/org/jboss/portal/wsrp/producer PortalContainerBridge.java Log: Added PortalContainerBridge to retrieve information about deployed portlets from Portal instance. Work in progress. Revision Changes Path 1.1 date: 2006/03/03 06:55:03; author: claprun; state: Exp;jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java Index: PortalContainerBridge.java =================================================================== /* * JBoss, Home of Professional Open Source * Copyright 2005, JBoss Inc., and individual contributors as indicated * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.portal.wsrp.producer; import org.jboss.portal.common.util.LocalizedString; import org.jboss.portal.server.app.Component; import org.jboss.portal.server.app.WebApp; import org.jboss.portal.server.app.WebAppRegistry; import org.jboss.portal.wsrp.core.PortletDescription; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.Locale; import java.util.Map; import java.util.Set; /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> * @version $Revision: 1.1 $ */ public class PortalContainerBridge { private WebAppRegistry portalRegistry; /** * Returns PortletDescriptions corresponding to each Portlet contained in the associated portal with the default * locale. * * @return */ public Set getPortletDescriptions() { return getPortletDescriptions(null); } public Set getPortletDescriptions(String[] desiredLocales) { Collection allWebApps = portalRegistry.getAllWebApps(); Set offeredPortletDescriptions = new HashSet(allWebApps.size()); for (Iterator webApps = allWebApps.iterator(); webApps.hasNext();) { WebApp webApp = (WebApp)webApps.next(); Iterator components = webApp.getComponents().iterator(); while (components.hasNext()) { Component component = (Component)components.next(); PortletDescription desc = createPortletDescriptionFrom(component, desiredLocales); offeredPortletDescriptions.add(desc); } } return offeredPortletDescriptions; } private PortletDescription createPortletDescriptionFrom(Component component, String[] desiredLocales) { PortletDescription desc = new PortletDescription(); // portlet handle desc.setPortletHandle(component.getId()); // title is generated from display name LocalizedString displayName = component.getDisplayName(); Map.Entry bestMapping = displayName.getMostAppropriateLocalizedMappingFor(desiredLocales); Locale locale = (Locale)bestMapping.getKey(); String language = LocalizedString.getRFC3066LanguageTagFromLocale(locale); desc.setTitle(new org.jboss.portal.wsrp.core.LocalizedString(language, null, (String)bestMapping.getValue())); // description LocalizedString description = component.getDescription(); bestMapping = description.getMostAppropriateLocalizedMappingFor(desiredLocales); locale = (Locale)bestMapping.getKey(); language = LocalizedString.getRFC3066LanguageTagFromLocale(locale); desc.setDescription(new org.jboss.portal.wsrp.core.LocalizedString(language, null, (String)bestMapping.getValue())); // MarkupTypes /*ContentTypes contentTypes = component.getContentTypes(); Iterator mimeTypes = contentTypes.getContentTypes().iterator(); MarkupType markupType; while (mimeTypes.hasNext()) { String mimeType = (String)mimeTypes.next(); markupType = new MarkupType(mimeType, (String[]) contentTypes.getSupportedModes(mimeType).toArray(), null, null, null); }*/ return desc; } } |
From: Anil S. <ani...@jb...> - 2006-03-03 16:52:29
|
User: asaldhana Date: 06/03/03 11:52:13 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer PortalContainerBridge.java Log: Adapt based on the LocalizedString changes Revision Changes Path 1.2 +10 -6 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java (In the diff below, changes in quantity of whitespace are not shown.) Index: PortalContainerBridge.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- PortalContainerBridge.java 3 Mar 2006 06:55:03 -0000 1.1 +++ PortalContainerBridge.java 3 Mar 2006 16:52:13 -0000 1.2 @@ -23,6 +23,7 @@ package org.jboss.portal.wsrp.producer; import org.jboss.portal.common.util.LocalizedString; +import org.jboss.portal.common.util.LocalizedString.Value; import org.jboss.portal.server.app.Component; import org.jboss.portal.server.app.WebApp; import org.jboss.portal.server.app.WebAppRegistry; @@ -37,7 +38,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ public class PortalContainerBridge { @@ -83,17 +84,20 @@ // title is generated from display name LocalizedString displayName = component.getDisplayName(); - Map.Entry bestMapping = displayName.getMostAppropriateLocalizedMappingFor(desiredLocales); - Locale locale = (Locale)bestMapping.getKey(); + Value bestMapping = displayName.getMostAppropriateLocalizedMappingFor(desiredLocales); + Locale locale = bestMapping.getLocale(); + /*Map.Entry bestMapping = displayName.getMostAppropriateLocalizedMappingFor(desiredLocales); + Locale locale = (Locale)bestMapping.getKey();*/ String language = LocalizedString.getRFC3066LanguageTagFromLocale(locale); - desc.setTitle(new org.jboss.portal.wsrp.core.LocalizedString(language, null, (String)bestMapping.getValue())); + desc.setTitle(new org.jboss.portal.wsrp.core.LocalizedString(language, null, (String)bestMapping.getString())); // description LocalizedString description = component.getDescription(); bestMapping = description.getMostAppropriateLocalizedMappingFor(desiredLocales); - locale = (Locale)bestMapping.getKey(); + locale = bestMapping.getLocale(); + //locale = (Locale)bestMapping.getKey(); language = LocalizedString.getRFC3066LanguageTagFromLocale(locale); - desc.setDescription(new org.jboss.portal.wsrp.core.LocalizedString(language, null, (String)bestMapping.getValue())); + desc.setDescription(new org.jboss.portal.wsrp.core.LocalizedString(language, null, (String)bestMapping.getString())); // MarkupTypes /*ContentTypes contentTypes = component.getContentTypes(); |
From: Chris L. <chr...@jb...> - 2006-03-03 20:43:08
|
User: claprun Date: 06/03/03 15:42:53 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer PortalContainerBridge.java Log: - Updated javadoc: we don't do full RFC 3066 support. - Modified method name. - Adapted PortalContainerBridge to code changes. Revision Changes Path 1.3 +8 -11 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java (In the diff below, changes in quantity of whitespace are not shown.) Index: PortalContainerBridge.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- PortalContainerBridge.java 3 Mar 2006 16:52:13 -0000 1.2 +++ PortalContainerBridge.java 3 Mar 2006 20:42:53 -0000 1.3 @@ -22,6 +22,7 @@ package org.jboss.portal.wsrp.producer; +import org.jboss.portal.common.util.LocaleInfo; import org.jboss.portal.common.util.LocalizedString; import org.jboss.portal.common.util.LocalizedString.Value; import org.jboss.portal.server.app.Component; @@ -33,12 +34,11 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Locale; -import java.util.Map; import java.util.Set; /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ public class PortalContainerBridge { @@ -84,20 +84,17 @@ // title is generated from display name LocalizedString displayName = component.getDisplayName(); - Value bestMapping = displayName.getMostAppropriateLocalizedMappingFor(desiredLocales); + Value bestMapping = displayName.getPreferredOrBestLocalizedMappingFor(desiredLocales); Locale locale = bestMapping.getLocale(); - /*Map.Entry bestMapping = displayName.getMostAppropriateLocalizedMappingFor(desiredLocales); - Locale locale = (Locale)bestMapping.getKey();*/ - String language = LocalizedString.getRFC3066LanguageTagFromLocale(locale); - desc.setTitle(new org.jboss.portal.wsrp.core.LocalizedString(language, null, (String)bestMapping.getString())); + String language = LocaleInfo.decodeLocaleInfo(locale).getRFC3066LanguageTag(); + desc.setTitle(new org.jboss.portal.wsrp.core.LocalizedString(language, null, bestMapping.getString())); // description LocalizedString description = component.getDescription(); - bestMapping = description.getMostAppropriateLocalizedMappingFor(desiredLocales); + bestMapping = description.getPreferredOrBestLocalizedMappingFor(desiredLocales); locale = bestMapping.getLocale(); - //locale = (Locale)bestMapping.getKey(); - language = LocalizedString.getRFC3066LanguageTagFromLocale(locale); - desc.setDescription(new org.jboss.portal.wsrp.core.LocalizedString(language, null, (String)bestMapping.getString())); + language = LocaleInfo.decodeLocaleInfo(locale).getRFC3066LanguageTag(); + desc.setDescription(new org.jboss.portal.wsrp.core.LocalizedString(language, null, bestMapping.getString())); // MarkupTypes /*ContentTypes contentTypes = component.getContentTypes(); |
From: Chris L. <chr...@jb...> - 2006-03-14 03:45:26
|
User: claprun Date: 06/03/13 22:45:25 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer PortalContainerBridge.java Log: - Removed old unused classes. - Added MarkupTestCase and tried to refactor test hierarchy (broke DI for some reason, need to investigate). - Minor improvements. Revision Changes Path 1.7 +11 -2 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java (In the diff below, changes in quantity of whitespace are not shown.) Index: PortalContainerBridge.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- PortalContainerBridge.java 10 Mar 2006 22:56:50 -0000 1.6 +++ PortalContainerBridge.java 14 Mar 2006 03:45:25 -0000 1.7 @@ -33,6 +33,7 @@ import org.jboss.portal.wsrp.core.PortletDescription; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.Locale; @@ -40,7 +41,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ * @since 2.4 */ public class PortalContainerBridge @@ -79,7 +80,15 @@ public Set getPortletDescriptions(String[] desiredLocales) { Collection allWebApps = getRegistry().getAllWebApps(); - Set offeredPortletDescriptions = new HashSet(allWebApps.size()); + int webAppsNumber = allWebApps.size(); + + // No currently deployed web apps, return empty set + if (webAppsNumber == 0) + { + return Collections.EMPTY_SET; + } + + Set offeredPortletDescriptions = new HashSet(webAppsNumber); for (Iterator webApps = allWebApps.iterator(); webApps.hasNext();) { |
From: Chris L. <chr...@jb...> - 2006-03-16 23:59:08
|
User: claprun Date: 06/03/16 18:59:06 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer PortalContainerBridge.java Log: - Added more tests. - Improved PortalContainerBridge.getPortletDescriptionFrom. - LocalizedString now fails fast when there is no value. Revision Changes Path 1.8 +41 -10 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java (In the diff below, changes in quantity of whitespace are not shown.) Index: PortalContainerBridge.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -b -r1.7 -r1.8 --- PortalContainerBridge.java 14 Mar 2006 03:45:25 -0000 1.7 +++ PortalContainerBridge.java 16 Mar 2006 23:59:06 -0000 1.8 @@ -29,6 +29,7 @@ import org.jboss.portal.server.app.Component; import org.jboss.portal.server.app.WebApp; import org.jboss.portal.server.app.WebAppRegistry; +import org.jboss.portal.server.metadata.ComponentMetaData; import org.jboss.portal.wsrp.WSRPConstants; import org.jboss.portal.wsrp.core.PortletDescription; @@ -41,7 +42,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.7 $ + * @version $Revision: 1.8 $ * @since 2.4 */ public class PortalContainerBridge @@ -104,31 +105,40 @@ return offeredPortletDescriptions; } + /** + * Creates a PortletDescription based on the user desired locales (ordered according to user preferences) for the + * specified component. + * + * @param component the portlet to be described + * @param desiredLocales the user desired locales (ordered according to user preferences) to use for the description + * @return a PortletDescription describing the specified portlet + */ private PortletDescription createPortletDescriptionFrom(Component component, String[] desiredLocales) { + if (component == null) + { + throw new IllegalArgumentException("Component cannot be null!"); + } + if (desiredLocales == null) { desiredLocales = new String[]{}; } PortletDescription desc = new PortletDescription(); + ComponentMetaData metadata = component.getComponentMetaData(); // portlet handle - desc.setPortletHandle(component.getId()); + String portletHandle = component.getId(); + desc.setPortletHandle(portletHandle); // title is generated from display name LocalizedString displayName = component.getDisplayName(); - Value bestMapping = displayName.getPreferredOrBestLocalizedMappingFor(desiredLocales); - Locale locale = bestMapping.getLocale(); - String language = LocaleInfo.decodeLocaleInfo(locale).getRFC3066LanguageTag(); - desc.setTitle(new org.jboss.portal.wsrp.core.LocalizedString(language, null, bestMapping.getString())); + desc.setTitle(getBestLocalizedValueFrom(displayName, desiredLocales)); // description LocalizedString description = component.getDescription(); - bestMapping = description.getPreferredOrBestLocalizedMappingFor(desiredLocales); - locale = bestMapping.getLocale(); - language = LocaleInfo.decodeLocaleInfo(locale).getRFC3066LanguageTag(); - desc.setDescription(new org.jboss.portal.wsrp.core.LocalizedString(language, null, bestMapping.getString())); + desc.setDescription(getBestLocalizedValueFrom(description, desiredLocales)); // MarkupTypes /*ContentTypes contentTypes = component.getContentTypes(); @@ -143,6 +153,27 @@ return desc; } + /** + * Retrieves the best (according to the specified desired locales) value for the given localized portlet metadata. + * + * @param portletMetadata the localized metadata from which a localized value is to be extracted + * @param desiredLocales the supported locales orderd by user preference + * @return the best (according to the specified desired locales) value for the given localized portlet metadata or + * <code>null</code> if no such value can be found. + */ + private org.jboss.portal.wsrp.core.LocalizedString getBestLocalizedValueFrom(LocalizedString portletMetadata, String[] desiredLocales) + { + Value bestMapping = portletMetadata.getPreferredOrBestLocalizedMappingFor(desiredLocales); + if (bestMapping != null) + { + Locale locale = bestMapping.getLocale(); + String value = bestMapping.getString(); + String language = LocaleInfo.decodeLocaleInfo(locale).getRFC3066LanguageTag(); + return new org.jboss.portal.wsrp.core.LocalizedString(language, null, value); + } + return null; + } + public WebAppRegistry getRegistry() { if (portalRegistry == null) |
From: Chris L. <chr...@jb...> - 2006-03-17 05:50:37
|
User: claprun Date: 06/03/17 00:50:35 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer PortalContainerBridge.java Log: Added more code to getPortletDescriptionFrom. Doesn't pass the tests because of a JBoss WS problem with xml:lang handling... Revision Changes Path 1.9 +81 -19 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java (In the diff below, changes in quantity of whitespace are not shown.) Index: PortalContainerBridge.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -b -r1.8 -r1.9 --- PortalContainerBridge.java 16 Mar 2006 23:59:06 -0000 1.8 +++ PortalContainerBridge.java 17 Mar 2006 05:50:35 -0000 1.9 @@ -26,11 +26,16 @@ import org.jboss.portal.common.util.LocaleInfo; import org.jboss.portal.common.util.LocalizedString; import org.jboss.portal.common.util.LocalizedString.Value; +import org.jboss.portal.portlet.PortletWebApp; +import org.jboss.portal.portlet.metadata.LanguagesMetaData; +import org.jboss.portal.portlet.metadata.PortletMetaData; import org.jboss.portal.server.app.Component; import org.jboss.portal.server.app.WebApp; import org.jboss.portal.server.app.WebAppRegistry; import org.jboss.portal.server.metadata.ComponentMetaData; +import org.jboss.portal.server.plugins.mode.ContentTypes; import org.jboss.portal.wsrp.WSRPConstants; +import org.jboss.portal.wsrp.core.MarkupType; import org.jboss.portal.wsrp.core.PortletDescription; import java.util.Collection; @@ -38,11 +43,12 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Locale; +import java.util.Map; import java.util.Set; /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.8 $ + * @version $Revision: 1.9 $ * @since 2.4 */ public class PortalContainerBridge @@ -94,14 +100,19 @@ for (Iterator webApps = allWebApps.iterator(); webApps.hasNext();) { WebApp webApp = (WebApp)webApps.next(); - Iterator components = webApp.getComponents().iterator(); + if (webApp instanceof PortletWebApp) + { + PortletWebApp portletWebApp = (PortletWebApp)webApp; + Iterator components = portletWebApp.getComponents().iterator(); while (components.hasNext()) { Component component = (Component)components.next(); - PortletDescription desc = createPortletDescriptionFrom(component, desiredLocales); + PortletDescription desc = createPortletDescriptionFrom(component, desiredLocales, portletWebApp); offeredPortletDescriptions.add(desc); } } + + } return offeredPortletDescriptions; } @@ -111,9 +122,10 @@ * * @param component the portlet to be described * @param desiredLocales the user desired locales (ordered according to user preferences) to use for the description + * @param portletWebApp * @return a PortletDescription describing the specified portlet */ - private PortletDescription createPortletDescriptionFrom(Component component, String[] desiredLocales) + private PortletDescription createPortletDescriptionFrom(Component component, String[] desiredLocales, PortletWebApp portletWebApp) { if (component == null) { @@ -127,32 +139,82 @@ PortletDescription desc = new PortletDescription(); ComponentMetaData metadata = component.getComponentMetaData(); + if (! (metadata instanceof PortletMetaData)) + { + throw new IllegalArgumentException("Cannot extract portlet definition from a non-portlet component." + + "Component was " + component); + } + PortletMetaData portletMetaData = (PortletMetaData)metadata; // portlet handle + //todo generate a valid and better portlet handle String portletHandle = component.getId(); desc.setPortletHandle(portletHandle); - // title is generated from display name - LocalizedString displayName = component.getDisplayName(); - desc.setTitle(getBestLocalizedValueFrom(displayName, desiredLocales)); - - // description - LocalizedString description = component.getDescription(); - desc.setDescription(getBestLocalizedValueFrom(description, desiredLocales)); - // MarkupTypes - /*ContentTypes contentTypes = component.getContentTypes(); + ContentTypes contentTypes = component.getContentTypes(); + // todo: find out how to get locale information from LanguagesMetaData + LanguagesMetaData languages = portletMetaData.getLanguages(); Iterator mimeTypes = contentTypes.getContentTypes().iterator(); MarkupType markupType; + Set markupTypes = new HashSet(); while (mimeTypes.hasNext()) { String mimeType = (String)mimeTypes.next(); - markupType = new MarkupType(mimeType, (String[]) contentTypes.getSupportedModes(mimeType).toArray(), null, null, null); - }*/ + Map windowStates = portletWebApp.getMetadata().getWindowStates(); + //fix-me: figure out how to link mime type to window state and which portlet supports which window state + markupType = new MarkupType(mimeType, (String[])contentTypes.getSupportedModes(mimeType).toArray(), + (String[])windowStates.values().toArray(new String[]{}), + (String[])languages.getSupportedLocales().toArray(new String[]{}), null); + markupTypes.add(markupType); + } + desc.setMarkupTypes((MarkupType[])markupTypes.toArray(new MarkupType[]{})); + // todo: group ID + + // description + LocalizedString description = component.getDescription(); + desc.setDescription(getBestLocalizedValueFrom(description, desiredLocales)); + + + LanguagesMetaData.InfoMetaData info = languages.getInfo(); + // short title + String shortTitle = info.getShortTitle(); + if (shortTitle != null) + { + desc.setShortTitle(createWSRPLocalizedString("en", languages.getResourceBundle(), shortTitle)); //fix-me: get proper locale + } + + // title + desc.setTitle(createWSRPLocalizedString("en", languages.getResourceBundle(), info.getTitle())); //fix-me: get proper locale + + // display name + LocalizedString displayName = component.getDisplayName(); + desc.setDisplayName(getBestLocalizedValueFrom(displayName, desiredLocales)); + + // todo: keywords + String keywords = info.getKeywords(); + + /* todo: + * [O] string userCategories[] + * [O] string userProfileItems[] + * [O] boolean usesMethodGet + * [O] boolean defaultMarkupSecure + * [O] boolean onlySecure + * [O] boolean userContextStoredInSession + * [O] boolean templatesStoredInSession + * [O] boolean hasUserSpecificState + * [O] boolean doesUrlTemplateProcessing + * [O] Extension extensions + */ return desc; } + private org.jboss.portal.wsrp.core.LocalizedString createWSRPLocalizedString(String language, String resourceName, String value) + { + return new org.jboss.portal.wsrp.core.LocalizedString(language, resourceName, value); + } + /** * Retrieves the best (according to the specified desired locales) value for the given localized portlet metadata. * @@ -169,7 +231,7 @@ Locale locale = bestMapping.getLocale(); String value = bestMapping.getString(); String language = LocaleInfo.decodeLocaleInfo(locale).getRFC3066LanguageTag(); - return new org.jboss.portal.wsrp.core.LocalizedString(language, null, value); + return createWSRPLocalizedString(language, null, value); } return null; } |
From: Julien V. <ju...@jb...> - 2006-03-22 18:51:53
|
User: julien Date: 06/03/22 13:51:47 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer WSRPProducerImpl.java Log: use http invoker to make WSRP invocations Revision Changes Path 1.4 +13 -1 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPProducerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- WSRPProducerImpl.java 10 Mar 2006 22:56:50 -0000 1.3 +++ WSRPProducerImpl.java 22 Mar 2006 18:51:47 -0000 1.4 @@ -32,12 +32,14 @@ import org.jboss.portal.wsrp.core.PortletDescription; import org.jboss.portal.wsrp.core.RegistrationContext; import org.jboss.portal.wsrp.core.ServiceDescription; +import org.jboss.invocation.Invocation; import java.rmi.RemoteException; +import java.lang.reflect.Method; /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ * @since 2.4 */ public class WSRPProducerImpl extends AbstractJBossService implements WSRPProducer @@ -123,6 +125,16 @@ this.container = container; } + /** + * Dispatch the invocation to the target by reflection + */ + public Object invoke(Invocation invocation) throws Exception + { + Method method = invocation.getMethod(); + Object[] args = invocation.getArguments(); + return method.invoke(this, args); + } + // Private methods ************************************************************************************************** /** |
From: Julien V. <ju...@jb...> - 2006-03-22 19:21:26
|
User: julien Date: 06/03/22 14:21:11 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer WSRPProducerImpl.java Log: added noop support for markup service Revision Changes Path 1.5 +48 -3 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPProducerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- WSRPProducerImpl.java 22 Mar 2006 18:51:47 -0000 1.4 +++ WSRPProducerImpl.java 22 Mar 2006 19:21:11 -0000 1.5 @@ -32,6 +32,25 @@ import org.jboss.portal.wsrp.core.PortletDescription; import org.jboss.portal.wsrp.core.RegistrationContext; import org.jboss.portal.wsrp.core.ServiceDescription; +import org.jboss.portal.wsrp.core.MarkupResponse; +import org.jboss.portal.wsrp.core.GetMarkup; +import org.jboss.portal.wsrp.core.UnsupportedWindowStateFault; +import org.jboss.portal.wsrp.core.InvalidCookieFault; +import org.jboss.portal.wsrp.core.InvalidSessionFault; +import org.jboss.portal.wsrp.core.AccessDeniedFault; +import org.jboss.portal.wsrp.core.InconsistentParametersFault; +import org.jboss.portal.wsrp.core.InvalidHandleFault; +import org.jboss.portal.wsrp.core.UnsupportedLocaleFault; +import org.jboss.portal.wsrp.core.UnsupportedModeFault; +import org.jboss.portal.wsrp.core.MissingParametersFault; +import org.jboss.portal.wsrp.core.InvalidUserCategoryFault; +import org.jboss.portal.wsrp.core.UnsupportedMimeTypeFault; +import org.jboss.portal.wsrp.core.BlockingInteractionResponse; +import org.jboss.portal.wsrp.core.PerformBlockingInteraction; +import org.jboss.portal.wsrp.core.PortletStateChangeRequiredFault; +import org.jboss.portal.wsrp.core.ReturnAny; +import org.jboss.portal.wsrp.core.ReleaseSessions; +import org.jboss.portal.wsrp.core.InitCookie; import org.jboss.invocation.Invocation; import java.rmi.RemoteException; @@ -39,7 +58,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ * @since 2.4 */ public class WSRPProducerImpl extends AbstractJBossService implements WSRPProducer @@ -88,6 +107,8 @@ requiredRegistrationInfo, supportedLocales, null, null); } + // GetDescriptionServiceImplementation ****************************************************************************** + public ServiceDescription getServiceDescription(RegistrationContext registrationContext, String[] desiredLocales) throws InvalidRegistrationFault, OperationFailedFault, RemoteException { @@ -105,6 +126,30 @@ return this.getServiceDescription(gs.getRegistrationContext(), gs.getDesiredLocales()); } + // MarkupService implementation ************************************************************************************* + + public MarkupResponse getMarkup(GetMarkup getMarkup) throws UnsupportedWindowStateFault, InvalidCookieFault, InvalidSessionFault, AccessDeniedFault, InconsistentParametersFault, InvalidHandleFault, UnsupportedLocaleFault, UnsupportedModeFault, OperationFailedFault, MissingParametersFault, InvalidUserCategoryFault, InvalidRegistrationFault, UnsupportedMimeTypeFault, RemoteException + { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + public BlockingInteractionResponse performBlockingInteraction(PerformBlockingInteraction performBlockingInteraction) throws InvalidSessionFault, UnsupportedModeFault, UnsupportedMimeTypeFault, OperationFailedFault, UnsupportedWindowStateFault, UnsupportedLocaleFault, AccessDeniedFault, PortletStateChangeRequiredFault, InvalidRegistrationFault, MissingParametersFault, InvalidUserCategoryFault, InconsistentParametersFault, InvalidHandleFault, InvalidCookieFault, RemoteException + { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + public ReturnAny releaseSessions(ReleaseSessions releaseSessions) throws InvalidRegistrationFault, OperationFailedFault, MissingParametersFault, AccessDeniedFault, RemoteException + { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + public ReturnAny initCookie(InitCookie initCookie) throws AccessDeniedFault, OperationFailedFault, InvalidRegistrationFault, RemoteException + { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + // Producer implementation /***************************************************************************************** + public void setRequiresRegistration(boolean requiresRegistration) { this.requiresRegistration = requiresRegistration; @@ -125,6 +170,8 @@ this.container = container; } + // Contract with Invoker implementation ***************************************************************************** + /** * Dispatch the invocation to the target by reflection */ @@ -139,8 +186,6 @@ /** * Initializes the information required to be able to sucessfully register with this Producer - * - * @return */ private ModelDescription initRequiredRegistrationInfo() { |
From: Julien V. <ju...@jb...> - 2006-03-23 01:51:01
|
User: julien Date: 06/03/22 20:50:51 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer WSRPProducerImpl.java Log: preliminary work for MarkupService.getMarkup(), the request goes in the portlet container and we can force the session id. only the dispatcher interceptor has been added for now in the pipeline Revision Changes Path 1.7 +46 -1 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPProducerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- WSRPProducerImpl.java 23 Mar 2006 00:44:36 -0000 1.6 +++ WSRPProducerImpl.java 23 Mar 2006 01:50:51 -0000 1.7 @@ -24,8 +24,11 @@ import org.jboss.invocation.Invocation; import org.jboss.portal.common.system.AbstractJBossService; +import org.jboss.portal.common.invocation.InterceptorStack; +import org.jboss.portal.common.invocation.InvocationException; import org.jboss.portal.wsrp.WSRPContainer; import org.jboss.portal.wsrp.WSRPProducer; +import org.jboss.portal.wsrp.invocation.WSRPRequestContext; import org.jboss.portal.wsrp.core.AccessDeniedFault; import org.jboss.portal.wsrp.core.BlockingInteractionResponse; import org.jboss.portal.wsrp.core.GetMarkup; @@ -51,6 +54,13 @@ import org.jboss.portal.wsrp.core.UnsupportedLocaleFault; import org.jboss.portal.wsrp.core.UnsupportedMimeTypeFault; import org.jboss.portal.wsrp.core.UnsupportedModeFault; +import org.jboss.portal.wsrp.core.PortletContext; +import org.jboss.portal.wsrp.core.RuntimeContext; +import org.jboss.portal.server.app.WebAppRegistry; +import org.jboss.portal.server.app.Component; +import org.jboss.portal.server.app.ComponentRequest; +import org.jboss.portal.server.app.ComponentResponse; +import org.jboss.portal.server.app.RenderInvocation; import org.jboss.portal.wsrp.core.UnsupportedWindowStateFault; import java.lang.reflect.Method; @@ -58,7 +68,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ * @since 2.4 */ public class WSRPProducerImpl extends AbstractJBossService implements WSRPProducer @@ -128,12 +138,47 @@ // MarkupService implementation ************************************************************************************* + private WebAppRegistry registry; + public WebAppRegistry getRegistry() { return registry; } + public void setRegistry(WebAppRegistry registry) { this.registry = registry; } + + private InterceptorStack stack; + public InterceptorStack getStack() { return stack; } + public void setStack(InterceptorStack stack) { this.stack = stack; } + public MarkupResponse getMarkup(GetMarkup getMarkup) throws UnsupportedWindowStateFault, InvalidCookieFault, InvalidSessionFault, AccessDeniedFault, InconsistentParametersFault, InvalidHandleFault, UnsupportedLocaleFault, UnsupportedModeFault, OperationFailedFault, MissingParametersFault, InvalidUserCategoryFault, InvalidRegistrationFault, UnsupportedMimeTypeFault, RemoteException { + PortletContext portletContext = getMarkup.getPortletContext(); + String portletHandle = portletContext.getPortletHandle(); + RuntimeContext runtimeContext = getMarkup.getRuntimeContext(); + String sessionId = runtimeContext.getSessionID(); + + Component component = registry.getComponent(portletHandle); + + System.out.println("component = " + component); + + ComponentRequest req = new ComponentRequest(); + req.setComponent(component); + req.setRequestContext(new WSRPRequestContext(sessionId)); + + ComponentResponse resp = new ComponentResponse(); + RenderInvocation render = new RenderInvocation(); + render.setRequest(req); + render.setResponse(resp); + + try + { + render.invoke(stack.getInterceptors()); + } + catch (InvocationException e) + { + e.printStackTrace(); + } + return new MarkupResponse(); // todo: implement } |
From: Chris L. <chr...@jb...> - 2006-03-24 00:02:27
|
User: claprun Date: 06/03/23 19:02:24 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer PortalContainerBridge.java Log: - On-going work on getServiceDescription. - Improvements to WSRPWindowState. - Added convenience constructor to LocalizedString to make the build build again... :) Revision Changes Path 1.12 +16 -5 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java (In the diff below, changes in quantity of whitespace are not shown.) Index: PortalContainerBridge.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -b -r1.11 -r1.12 --- PortalContainerBridge.java 23 Mar 2006 02:29:48 -0000 1.11 +++ PortalContainerBridge.java 24 Mar 2006 00:02:24 -0000 1.12 @@ -22,6 +22,7 @@ package org.jboss.portal.wsrp.producer; +import org.jboss.portal.Mode; import org.jboss.portal.common.util.LocaleInfo; import org.jboss.portal.common.util.LocalizedString; import org.jboss.portal.common.util.LocalizedString.Value; @@ -35,19 +36,19 @@ import org.jboss.portal.server.plugins.mode.ContentTypes; import org.jboss.portal.wsrp.core.MarkupType; import org.jboss.portal.wsrp.core.PortletDescription; -import org.jboss.portal.Mode; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.11 $ + * @version $Revision: 1.12 $ * @since 2.4 */ public class PortalContainerBridge @@ -138,8 +139,10 @@ // MarkupTypes ContentTypes contentTypes = component.getContentTypes(); - // todo: find out how to get locale information from LanguagesMetaData + LanguagesMetaData languages = portletMetaData.getLanguages(); + List supportedLocales = languages.getSupportedLocales(); + Iterator mimeTypes = contentTypes.getAllContentTypes().iterator(); MarkupType markupType; Set markupTypes = new HashSet(); @@ -156,9 +159,11 @@ Mode mode = (Mode)i.next(); modesAsString[count++] = mode.toString(); } + markupType = new MarkupType(mimeType, modesAsString, - (String[])windowStates.values().toArray(new String[0]), - (String[])languages.getSupportedLocales().toArray(new String[0]), null); + getWindowStates(windowStates), + (supportedLocales.isEmpty()) ? null : (String[])supportedLocales.toArray(new String[0]), + null); markupTypes.add(markupType); } desc.setMarkupTypes((MarkupType[])markupTypes.toArray(new MarkupType[]{})); @@ -203,6 +208,12 @@ return desc; } + private String[] getWindowStates(Map windowStates) + { + + return (String[])windowStates.values().toArray(new String[0]); + } + private org.jboss.portal.wsrp.core.LocalizedString createWSRPLocalizedString(String language, String resourceName, String value) { return new org.jboss.portal.wsrp.core.LocalizedString(language, resourceName, value); |
From: Chris L. <chr...@jb...> - 2006-03-24 09:28:11
|
User: claprun Date: 06/03/24 04:28:09 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer PortalContainerBridge.java Log: - Re-wrote getPortleDescription to work with the info hierarchy. Currently experiencing a weird NPE problem. Revision Changes Path 1.13 +83 -63 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java (In the diff below, changes in quantity of whitespace are not shown.) Index: PortalContainerBridge.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -b -r1.12 -r1.13 --- PortalContainerBridge.java 24 Mar 2006 00:02:24 -0000 1.12 +++ PortalContainerBridge.java 24 Mar 2006 09:28:09 -0000 1.13 @@ -22,18 +22,20 @@ package org.jboss.portal.wsrp.producer; -import org.jboss.portal.Mode; import org.jboss.portal.common.util.LocaleInfo; import org.jboss.portal.common.util.LocalizedString; import org.jboss.portal.common.util.LocalizedString.Value; +import org.jboss.portal.portlet.PortletContainer; import org.jboss.portal.portlet.PortletWebApp; -import org.jboss.portal.portlet.metadata.LanguagesMetaData; -import org.jboss.portal.portlet.metadata.PortletMetaData; +import org.jboss.portal.portlet.info.CapabilitiesInfo; +import org.jboss.portal.portlet.info.MetaInfo; +import org.jboss.portal.portlet.info.ModeInfo; +import org.jboss.portal.portlet.info.PortletInfo; +import org.jboss.portal.portlet.info.WindowStateInfo; import org.jboss.portal.server.app.Component; import org.jboss.portal.server.app.WebApp; import org.jboss.portal.server.app.WebAppRegistry; -import org.jboss.portal.server.metadata.ComponentMetaData; -import org.jboss.portal.server.plugins.mode.ContentTypes; +import org.jboss.portal.wsrp.WSRPUtils; import org.jboss.portal.wsrp.core.MarkupType; import org.jboss.portal.wsrp.core.PortletDescription; @@ -41,14 +43,12 @@ import java.util.Collections; import java.util.HashSet; import java.util.Iterator; -import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Set; /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.12 $ + * @version $Revision: 1.13 $ * @since 2.4 */ public class PortalContainerBridge @@ -93,7 +93,7 @@ while (components.hasNext()) { Component component = (Component)components.next(); - PortletDescription desc = createPortletDescriptionFrom(component, desiredLocales, portletWebApp); + PortletDescription desc = createPortletDescriptionFrom(component, desiredLocales); offeredPortletDescriptions.add(desc); } } @@ -108,10 +108,9 @@ * * @param component the portlet to be described * @param desiredLocales the user desired locales (ordered according to user preferences) to use for the description - * @param portletWebApp * @return a PortletDescription describing the specified portlet */ - private PortletDescription createPortletDescriptionFrom(Component component, String[] desiredLocales, PortletWebApp portletWebApp) + private PortletDescription createPortletDescriptionFrom(Component component, String[] desiredLocales) { if (component == null) { @@ -120,78 +119,73 @@ if (desiredLocales == null) { - desiredLocales = new String[]{}; + desiredLocales = new String[]{LocaleInfo.getRFC3066LanguageTagFor(Locale.getDefault())}; } - PortletDescription desc = new PortletDescription(); - ComponentMetaData metadata = component.getComponentMetaData(); - if (! (metadata instanceof PortletMetaData)) + if (! (component instanceof PortletContainer)) { throw new IllegalArgumentException("Cannot extract portlet definition from a non-portlet component." + "Component was " + component); } - PortletMetaData portletMetaData = (PortletMetaData)metadata; - - // portlet handle - //todo generate a valid and better portlet handle - String portletHandle = component.getId(); - desc.setPortletHandle(portletHandle); - - // MarkupTypes - ContentTypes contentTypes = component.getContentTypes(); - - LanguagesMetaData languages = portletMetaData.getLanguages(); - List supportedLocales = languages.getSupportedLocales(); + PortletContainer portletContainer = (PortletContainer)component; + PortletDescription desc = new PortletDescription(); - Iterator mimeTypes = contentTypes.getAllContentTypes().iterator(); - MarkupType markupType; - Set markupTypes = new HashSet(); - while (mimeTypes.hasNext()) + PortletInfo portletInfo = portletContainer.getInfo(); + CapabilitiesInfo capInfo = portletInfo.getCapabilities(); + Collection allMimeTypes = capInfo.getMimeTypes(); + MarkupType[] markupTypes = new MarkupType[allMimeTypes.size()]; + Iterator mimeTypes = allMimeTypes.iterator(); + for (int i = 0; mimeTypes.hasNext(); i++) { String mimeType = (String)mimeTypes.next(); - Map windowStates = portletWebApp.getMetadata().getWindowStates(); - //fix-me: figure out how to link mime type to window state and which portlet supports which window state - Set modes = contentTypes.getSupportedModes(mimeType); - String[] modesAsString = new String[modes.size()]; - int count = 0; - for (Iterator i = modes.iterator(); i.hasNext();) - { - Mode mode = (Mode)i.next(); - modesAsString[count++] = mode.toString(); - } - - markupType = new MarkupType(mimeType, modesAsString, - getWindowStates(windowStates), - (supportedLocales.isEmpty()) ? null : (String[])supportedLocales.toArray(new String[0]), + markupTypes[i] = new MarkupType( + mimeType, + getModeNamesFrom(capInfo.getModes(mimeType)), + getWindowStateNamesFrom(capInfo.getWindowStates(mimeType)), + getLocaleNamesFrom(capInfo.getLocales(mimeType)), null); - markupTypes.add(markupType); } - desc.setMarkupTypes((MarkupType[])markupTypes.toArray(new MarkupType[]{})); + desc.setMarkupTypes(markupTypes); + + // portlet handle + //todo generate a valid and better portlet handle + String portletHandle = component.getId(); + desc.setPortletHandle(portletHandle); // todo: group ID // description - LocalizedString description = component.getDescription(); - desc.setDescription(getBestLocalizedValueFrom(description, desiredLocales)); - + desc.setDescription(getBestLocalizedValueFrom(component.getDescription(), desiredLocales)); - LanguagesMetaData.InfoMetaData info = languages.getInfo(); + MetaInfo metaInfo = portletInfo.getMeta(); // short title - String shortTitle = info.getShortTitle(); - if (shortTitle != null) - { - desc.setShortTitle(createWSRPLocalizedString("en", languages.getResourceBundle(), shortTitle)); //fix-me: get proper locale - } + desc.setShortTitle(getBestLocalizedValueFrom(metaInfo.getMetaValue(MetaInfo.SHORT_TITLE), desiredLocales)); // title - desc.setTitle(createWSRPLocalizedString("en", languages.getResourceBundle(), info.getTitle())); //fix-me: get proper locale + LocalizedString title = metaInfo.getMetaValue(MetaInfo.TITLE); + System.out.println("title = " + title); + desc.setTitle(getBestLocalizedValueFrom(title, desiredLocales)); // display name - LocalizedString displayName = component.getDisplayName(); - desc.setDisplayName(getBestLocalizedValueFrom(displayName, desiredLocales)); + desc.setDisplayName(getBestLocalizedValueFrom(component.getDisplayName(), desiredLocales)); - // todo: keywords - String keywords = info.getKeywords(); + // keywords + // metaInfo contains comma-separated keywords: we need to extract them into an array + org.jboss.portal.wsrp.core.LocalizedString concatenatedKeywords = + getBestLocalizedValueFrom(metaInfo.getMetaValue(MetaInfo.KEYWORDS), desiredLocales); + if (concatenatedKeywords != null) + { + String lang = concatenatedKeywords.getLang(); + String commaSeparatedKeywords = concatenatedKeywords.getValue(); + String[] keywordArray = commaSeparatedKeywords.split(","); + org.jboss.portal.wsrp.core.LocalizedString[] keywords = + new org.jboss.portal.wsrp.core.LocalizedString[keywordArray.length]; + for (int i = 0; i < keywordArray.length; i++) + { + keywords[i] = new org.jboss.portal.wsrp.core.LocalizedString(lang, null, keywordArray[i].trim()); // fix-me: resource name + } + desc.setKeywords(keywords); + } /* todo: * [O] string userCategories[] @@ -208,10 +202,35 @@ return desc; } - private String[] getWindowStates(Map windowStates) + private String[] getLocaleNamesFrom(Collection locales) + { + return (String[])locales.toArray(new String[0]); + } + + private String[] getWindowStateNamesFrom(Collection windowStates) { + String[] result = new String[windowStates.size()]; + int i = 0; + for (Iterator windowsStatesIt = windowStates.iterator(); windowsStatesIt.hasNext(); i++) + { + WindowStateInfo windowStateInfo = (WindowStateInfo)windowsStatesIt.next(); + result[i] = WSRPUtils.convertJSR168WindowStateNameToWSRPName(windowStateInfo.getWindowStateName()); + } + + return result; + } + + private String[] getModeNamesFrom(Collection modes) + { + String[] result = new String[modes.size()]; + int i = 0; + for (Iterator modesIt = modes.iterator(); modesIt.hasNext(); i++) + { + ModeInfo modeInfo = (ModeInfo)modesIt.next(); + result[i] = WSRPUtils.convertJSR168PortletModeNameToWSRPName(modeInfo.getModeName()); + } - return (String[])windowStates.values().toArray(new String[0]); + return result; } private org.jboss.portal.wsrp.core.LocalizedString createWSRPLocalizedString(String language, String resourceName, String value) @@ -229,6 +248,7 @@ */ private org.jboss.portal.wsrp.core.LocalizedString getBestLocalizedValueFrom(LocalizedString portletMetadata, String[] desiredLocales) { + System.out.println("portletMetadata = " + portletMetadata); Value bestMapping = portletMetadata.getPreferredOrBestLocalizedMappingFor(desiredLocales); if (bestMapping != null) { |
From: Chris L. <chr...@jb...> - 2006-03-25 01:21:16
|
User: claprun Date: 06/03/24 20:21:11 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer PortalContainerBridge.java Log: Passes tests but there's an intermittent NPE pb that I have not tracked down yet. Weird thing is that it does not happen all the time. Suspect it comes from info initialization in PortletContainer but not sure. Revision Changes Path 1.14 +22 -12 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java (In the diff below, changes in quantity of whitespace are not shown.) Index: PortalContainerBridge.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/PortalContainerBridge.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -b -r1.13 -r1.14 --- PortalContainerBridge.java 24 Mar 2006 09:28:09 -0000 1.13 +++ PortalContainerBridge.java 25 Mar 2006 01:21:11 -0000 1.14 @@ -48,7 +48,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.13 $ + * @version $Revision: 1.14 $ * @since 2.4 */ public class PortalContainerBridge @@ -162,9 +162,7 @@ desc.setShortTitle(getBestLocalizedValueFrom(metaInfo.getMetaValue(MetaInfo.SHORT_TITLE), desiredLocales)); // title - LocalizedString title = metaInfo.getMetaValue(MetaInfo.TITLE); - System.out.println("title = " + title); - desc.setTitle(getBestLocalizedValueFrom(title, desiredLocales)); + desc.setTitle(getBestLocalizedValueFrom(metaInfo.getMetaValue(MetaInfo.TITLE), desiredLocales)); // display name desc.setDisplayName(getBestLocalizedValueFrom(component.getDisplayName(), desiredLocales)); @@ -175,8 +173,10 @@ getBestLocalizedValueFrom(metaInfo.getMetaValue(MetaInfo.KEYWORDS), desiredLocales); if (concatenatedKeywords != null) { - String lang = concatenatedKeywords.getLang(); String commaSeparatedKeywords = concatenatedKeywords.getValue(); + if (commaSeparatedKeywords != null && commaSeparatedKeywords.length() > 0) + { + String lang = concatenatedKeywords.getLang(); String[] keywordArray = commaSeparatedKeywords.split(","); org.jboss.portal.wsrp.core.LocalizedString[] keywords = new org.jboss.portal.wsrp.core.LocalizedString[keywordArray.length]; @@ -186,6 +186,7 @@ } desc.setKeywords(keywords); } + } /* todo: * [O] string userCategories[] @@ -204,6 +205,11 @@ private String[] getLocaleNamesFrom(Collection locales) { + if (locales == null || locales.isEmpty()) + { + return null; + } + return (String[])locales.toArray(new String[0]); } @@ -248,7 +254,11 @@ */ private org.jboss.portal.wsrp.core.LocalizedString getBestLocalizedValueFrom(LocalizedString portletMetadata, String[] desiredLocales) { - System.out.println("portletMetadata = " + portletMetadata); + if (portletMetadata == null) + { + return null; + } + Value bestMapping = portletMetadata.getPreferredOrBestLocalizedMappingFor(desiredLocales); if (bestMapping != null) { |
From: Chris L. <chr...@jb...> - 2006-03-27 21:14:20
|
User: claprun Date: 06/03/27 16:14:13 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer WSRPContainerImpl.java Log: Removed unused code. Revision Changes Path 1.4 +2 -18 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPContainerImpl.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPContainerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPContainerImpl.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- WSRPContainerImpl.java 23 Mar 2006 02:29:48 -0000 1.3 +++ WSRPContainerImpl.java 27 Mar 2006 21:14:13 -0000 1.4 @@ -23,15 +23,14 @@ package org.jboss.portal.wsrp.producer; import org.jboss.portal.common.system.AbstractJBossService; -import org.jboss.portal.wsrp.WSRPContainer; -import org.jboss.portal.wsrp.WSRPObject; import org.jboss.portal.server.app.WebAppRegistry; +import org.jboss.portal.wsrp.WSRPContainer; import java.util.Set; /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ * @since 2.4 */ public class WSRPContainerImpl extends AbstractJBossService implements WSRPContainer @@ -71,21 +70,6 @@ } - public WSRPObject getContainerEntry(String id) - { - throw new UnsupportedOperationException("getContainerEntry not yet implemented"); //TODO - } - - public WSRPObject createContainerEntry(String id) //throws WSRPDuplicateObjectException; - { - throw new UnsupportedOperationException("createContainerEntry not yet implemented"); //TODO - } - - public void removeContainerEntry(String id) - { - throw new UnsupportedOperationException("removeContainerEntry not yet implemented"); //TODO - } - public Set getOfferedPortletDescriptions(String[] desiredLocales) { //TODO deal with WSRP-only portlets |
From: Chris L. <chr...@jb...> - 2006-03-28 21:41:55
|
User: claprun Date: 06/03/28 16:41:50 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer WSRPProducerImpl.java Log: - Added PortletManagementTestCase and RegistrationTestCase. - Renamed MarkupServiceEndpoint to MarkupEndpoint and WSRPBaseEndPoint to WSRPBaseEndpoint for consistency. - Added PortletManagementEndpoint and RegistrationEndpoint. - WSRPProducer now implements PortletManagement and Registration service interfaces. - Added PortletManagement and Registration interfaces related definitions in descriptors. - Fixed erroneous mapping in jboss-wsrp-war. Revision Changes Path 1.9 +99 -23 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPProducerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -b -r1.8 -r1.9 --- WSRPProducerImpl.java 23 Mar 2006 02:29:48 -0000 1.8 +++ WSRPProducerImpl.java 28 Mar 2006 21:41:50 -0000 1.9 @@ -23,15 +23,25 @@ package org.jboss.portal.wsrp.producer; import org.jboss.invocation.Invocation; -import org.jboss.portal.common.system.AbstractJBossService; import org.jboss.portal.common.invocation.InterceptorStack; import org.jboss.portal.common.invocation.InvocationException; +import org.jboss.portal.common.system.AbstractJBossService; +import org.jboss.portal.server.app.Component; +import org.jboss.portal.server.app.ComponentRequest; +import org.jboss.portal.server.app.ComponentResponse; +import org.jboss.portal.server.app.RenderInvocation; +import org.jboss.portal.server.app.WebAppRegistry; import org.jboss.portal.wsrp.WSRPContainer; import org.jboss.portal.wsrp.WSRPProducer; -import org.jboss.portal.wsrp.invocation.WSRPRequestContext; import org.jboss.portal.wsrp.core.AccessDeniedFault; import org.jboss.portal.wsrp.core.BlockingInteractionResponse; +import org.jboss.portal.wsrp.core.ClonePortlet; +import org.jboss.portal.wsrp.core.DestroyPortlets; +import org.jboss.portal.wsrp.core.DestroyPortletsResponse; import org.jboss.portal.wsrp.core.GetMarkup; +import org.jboss.portal.wsrp.core.GetPortletDescription; +import org.jboss.portal.wsrp.core.GetPortletProperties; +import org.jboss.portal.wsrp.core.GetPortletPropertyDescription; import org.jboss.portal.wsrp.core.GetServiceDescription; import org.jboss.portal.wsrp.core.InconsistentParametersFault; import org.jboss.portal.wsrp.core.InitCookie; @@ -43,32 +53,35 @@ import org.jboss.portal.wsrp.core.MarkupResponse; import org.jboss.portal.wsrp.core.MissingParametersFault; import org.jboss.portal.wsrp.core.ModelDescription; +import org.jboss.portal.wsrp.core.ModifyRegistration; import org.jboss.portal.wsrp.core.OperationFailedFault; import org.jboss.portal.wsrp.core.PerformBlockingInteraction; +import org.jboss.portal.wsrp.core.PortletContext; import org.jboss.portal.wsrp.core.PortletDescription; +import org.jboss.portal.wsrp.core.PortletDescriptionResponse; +import org.jboss.portal.wsrp.core.PortletPropertyDescriptionResponse; import org.jboss.portal.wsrp.core.PortletStateChangeRequiredFault; +import org.jboss.portal.wsrp.core.PropertyList; import org.jboss.portal.wsrp.core.RegistrationContext; +import org.jboss.portal.wsrp.core.RegistrationData; +import org.jboss.portal.wsrp.core.RegistrationState; import org.jboss.portal.wsrp.core.ReleaseSessions; import org.jboss.portal.wsrp.core.ReturnAny; +import org.jboss.portal.wsrp.core.RuntimeContext; import org.jboss.portal.wsrp.core.ServiceDescription; +import org.jboss.portal.wsrp.core.SetPortletProperties; import org.jboss.portal.wsrp.core.UnsupportedLocaleFault; import org.jboss.portal.wsrp.core.UnsupportedMimeTypeFault; import org.jboss.portal.wsrp.core.UnsupportedModeFault; -import org.jboss.portal.wsrp.core.PortletContext; -import org.jboss.portal.wsrp.core.RuntimeContext; -import org.jboss.portal.server.app.WebAppRegistry; -import org.jboss.portal.server.app.Component; -import org.jboss.portal.server.app.ComponentRequest; -import org.jboss.portal.server.app.ComponentResponse; -import org.jboss.portal.server.app.RenderInvocation; import org.jboss.portal.wsrp.core.UnsupportedWindowStateFault; +import org.jboss.portal.wsrp.invocation.WSRPRequestContext; import java.lang.reflect.Method; import java.rmi.RemoteException; /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.8 $ + * @version $Revision: 1.9 $ * @since 2.4 */ public class WSRPProducerImpl extends AbstractJBossService implements WSRPProducer @@ -117,34 +130,48 @@ requiredRegistrationInfo, supportedLocales, null, null); } - // GetDescriptionServiceImplementation ****************************************************************************** + // ServiceDescription implementation ******************************************************************************** - public ServiceDescription getServiceDescription(RegistrationContext registrationContext, String[] desiredLocales) + public ServiceDescription getServiceDescription(GetServiceDescription gs) throws InvalidRegistrationFault, OperationFailedFault, RemoteException { + RegistrationContext registrationContext = gs.getRegistrationContext(); + String[] desiredLocales = gs.getDesiredLocales(); + if (requiresRegistration && registrationContext == null) { return requiredRegistrationNotProvidedSD; } + refreshServiceDescription(desiredLocales); return serviceDescription; } - public ServiceDescription getServiceDescription(GetServiceDescription gs) - throws InvalidRegistrationFault, OperationFailedFault, RemoteException - { - return this.getServiceDescription(gs.getRegistrationContext(), gs.getDesiredLocales()); - } - // MarkupService implementation ************************************************************************************* private WebAppRegistry registry; - public WebAppRegistry getRegistry() { return registry; } - public void setRegistry(WebAppRegistry registry) { this.registry = registry; } + + public WebAppRegistry getRegistry() + { + return registry; + } + + public void setRegistry(WebAppRegistry registry) + { + this.registry = registry; + } private InterceptorStack stack; - public InterceptorStack getStack() { return stack; } - public void setStack(InterceptorStack stack) { this.stack = stack; } + + public InterceptorStack getStack() + { + return stack; + } + + public void setStack(InterceptorStack stack) + { + this.stack = stack; + } public MarkupResponse getMarkup(GetMarkup getMarkup) throws UnsupportedWindowStateFault, InvalidCookieFault, InvalidSessionFault, AccessDeniedFault, @@ -203,6 +230,55 @@ return new ReturnAny(); // todo: implement } + // Registration implementation ************************************************************************************** + + public RegistrationContext register(RegistrationData register) throws MissingParametersFault, OperationFailedFault, RemoteException + { + return null; // todo: implement + } + + public ReturnAny deregister(RegistrationContext deregister) throws OperationFailedFault, InvalidRegistrationFault, RemoteException + { + return null; // todo: implement + } + + public RegistrationState modifyRegistration(ModifyRegistration modifyRegistration) throws MissingParametersFault, OperationFailedFault, InvalidRegistrationFault, RemoteException + { + return null; // todo: implement + } + + // PortletManagement implementation ********************************************************************************* + + public PortletDescriptionResponse getPortletDescription(GetPortletDescription getPortletDescription) throws AccessDeniedFault, InvalidHandleFault, InvalidUserCategoryFault, InconsistentParametersFault, MissingParametersFault, InvalidRegistrationFault, OperationFailedFault, RemoteException + { + return null; // todo: implement + } + + public PortletContext clonePortlet(ClonePortlet clonePortlet) throws InvalidUserCategoryFault, AccessDeniedFault, OperationFailedFault, InvalidHandleFault, InvalidRegistrationFault, InconsistentParametersFault, MissingParametersFault, RemoteException + { + return null; // todo: implement + } + + public DestroyPortletsResponse destroyPortlets(DestroyPortlets destroyPortlets) throws InconsistentParametersFault, MissingParametersFault, InvalidRegistrationFault, OperationFailedFault, RemoteException + { + return null; // todo: implement + } + + public PortletContext setPortletProperties(SetPortletProperties setPortletProperties) throws OperationFailedFault, InvalidHandleFault, MissingParametersFault, InconsistentParametersFault, InvalidUserCategoryFault, AccessDeniedFault, InvalidRegistrationFault, RemoteException + { + return null; // todo: implement + } + + public PropertyList getPortletProperties(GetPortletProperties getPortletProperties) throws InvalidHandleFault, MissingParametersFault, InvalidRegistrationFault, AccessDeniedFault, OperationFailedFault, InconsistentParametersFault, InvalidUserCategoryFault, RemoteException + { + return null; // todo: implement + } + + public PortletPropertyDescriptionResponse getPortletPropertyDescription(GetPortletPropertyDescription getPortletPropertyDescription) throws MissingParametersFault, InconsistentParametersFault, InvalidUserCategoryFault, InvalidRegistrationFault, AccessDeniedFault, InvalidHandleFault, OperationFailedFault, RemoteException + { + return null; // todo: implement + } + // Producer implementation ****************************************************************************************** public void setRequiresRegistration(boolean requiresRegistration) |
From: Chris L. <chr...@jb...> - 2006-03-29 20:53:56
|
User: claprun Date: 06/03/29 15:53:46 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer WSRPProducerImpl.java Log: Started adding registration handling code. Revision Changes Path 1.11 +38 -10 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPProducerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -b -r1.10 -r1.11 --- WSRPProducerImpl.java 29 Mar 2006 03:36:31 -0000 1.10 +++ WSRPProducerImpl.java 29 Mar 2006 20:53:46 -0000 1.11 @@ -82,7 +82,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.10 $ + * @version $Revision: 1.11 $ * @since 2.4 */ public class WSRPProducerImpl extends AbstractJBossService implements WSRPProducer @@ -139,16 +139,21 @@ public ServiceDescription getServiceDescription(GetServiceDescription gs) throws InvalidRegistrationFault, OperationFailedFault, RemoteException { - RegistrationContext registrationContext = gs.getRegistrationContext(); - String[] desiredLocales = gs.getDesiredLocales(); - - if (requiresRegistration && registrationContext == null) + if (gs != null) + { + if (isRegistrationValid(gs.getRegistrationContext())) + { + refreshServiceDescription(gs.getDesiredLocales()); + return serviceDescription; + } + else { return requiredRegistrationNotProvidedSD; } - - refreshServiceDescription(desiredLocales); - return serviceDescription; + } + OperationFailedFault fault = new OperationFailedFault(); + fault.initCause(new IllegalArgumentException("Invalid GetServiceDescription request: " + gs)); + throw fault; } // MarkupService implementation ************************************************************************************* @@ -253,10 +258,14 @@ // PortletManagement implementation ********************************************************************************* - public PortletDescriptionResponse getPortletDescription(GetPortletDescription getPortletDescription) throws AccessDeniedFault, InvalidHandleFault, InvalidUserCategoryFault, InconsistentParametersFault, MissingParametersFault, InvalidRegistrationFault, OperationFailedFault, RemoteException + public PortletDescriptionResponse getPortletDescription(GetPortletDescription getPortletDescription) + throws AccessDeniedFault, InvalidHandleFault, InvalidUserCategoryFault, InconsistentParametersFault, + MissingParametersFault, InvalidRegistrationFault, OperationFailedFault, RemoteException { if (getPortletDescription != null) { + isRegistrationValid(getPortletDescription.getRegistrationContext()); + String handle = getPortletDescription.getPortletContext().getPortletHandle(); return new PortletDescriptionResponse( container.getPortletDescription(handle, getPortletDescription.getDesiredLocales()), @@ -356,4 +365,23 @@ .toArray(new PortletDescription[]{}); serviceDescription.setOfferedPortlets(descriptions); } + + /** + * Checks that the specified registration information is valid if this Producer requires registration. + * + * @param registrationContext + * @return + */ + private boolean isRegistrationValid(RegistrationContext registrationContext) + { + if (isRequiresRegistration()) + { + // todo: implement more completely + if (registrationContext == null) + { + return false; + } + } + return true; + } } |
From: Chris L. <chr...@jb...> - 2006-03-31 06:48:17
|
User: claprun Date: 06/03/31 01:48:14 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer WSRPProducerImpl.java Log: - Re-structured tests and added testRegister in RegistrationTestCase. - Added basic registration in WSRPProducer and support method. Revision Changes Path 1.15 +21 -2 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPProducerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -b -r1.14 -r1.15 --- WSRPProducerImpl.java 30 Mar 2006 23:44:41 -0000 1.14 +++ WSRPProducerImpl.java 31 Mar 2006 06:48:14 -0000 1.15 @@ -55,6 +55,7 @@ import org.jboss.portal.wsrp.core.PortletDescriptionResponse; import org.jboss.portal.wsrp.core.PortletPropertyDescriptionResponse; import org.jboss.portal.wsrp.core.PortletStateChangeRequiredFault; +import org.jboss.portal.wsrp.core.PropertyDescription; import org.jboss.portal.wsrp.core.PropertyList; import org.jboss.portal.wsrp.core.RegistrationContext; import org.jboss.portal.wsrp.core.RegistrationData; @@ -73,7 +74,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.14 $ + * @version $Revision: 1.15 $ * @since 2.4 */ public class WSRPProducerImpl extends AbstractJBossService implements WSRPProducer @@ -188,7 +189,8 @@ public RegistrationContext register(RegistrationData register) throws MissingParametersFault, OperationFailedFault, RemoteException { - return null; // todo: implement + // todo: compute registration handle, record registration handle in registry + return new RegistrationContext(register.getConsumerName(), null, null); } public ReturnAny deregister(RegistrationContext deregister) throws OperationFailedFault, InvalidRegistrationFault, RemoteException @@ -287,6 +289,23 @@ this.container = container; } + public void addRegistrationProperty(PropertyDescription propertyDescription) + { + PropertyDescription[] descriptions = requiredRegistrationInfo.getPropertyDescriptions(); + if (descriptions == null) + { + descriptions = new PropertyDescription[]{propertyDescription}; + requiredRegistrationInfo.setPropertyDescriptions(descriptions); + } + else + { + PropertyDescription[] newDescs = new PropertyDescription[descriptions.length + 1]; + System.arraycopy(descriptions, 0, newDescs, 0, descriptions.length); + newDescs[descriptions.length] = propertyDescription; + requiredRegistrationInfo.setPropertyDescriptions(newDescs); + } + } + // Contract with Invoker implementation ***************************************************************************** /** |
From: Chris L. <chr...@jb...> - 2006-03-31 20:17:12
|
User: claprun Date: 06/03/31 15:17:08 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer WSRPProducerImpl.java Log: - Finished first pass at RegistrationTestCase. Basic cases are covered. - Added clearRegistrationProperties on WSRPProducer. Revision Changes Path 1.17 +6 -1 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPProducerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPProducerImpl.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -b -r1.16 -r1.17 --- WSRPProducerImpl.java 31 Mar 2006 17:52:57 -0000 1.16 +++ WSRPProducerImpl.java 31 Mar 2006 20:17:08 -0000 1.17 @@ -74,7 +74,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.16 $ + * @version $Revision: 1.17 $ * @since 2.4 */ public class WSRPProducerImpl extends AbstractJBossService implements WSRPProducer @@ -307,6 +307,11 @@ } } + public void clearRegistrationProperties() + { + requiredRegistrationInfo.setPropertyDescriptions(null); + } + // Contract with Invoker implementation ***************************************************************************** /** |
From: Julien V. <ju...@jb...> - 2006-04-03 11:17:58
|
User: julien Date: 06/04/03 07:17:43 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer MarkupHandler.java Log: - removed unnecessary SessionContext spi - moved *Context spi to the main InvocationContext Revision Changes Path 1.3 +14 -12 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java (In the diff below, changes in quantity of whitespace are not shown.) Index: MarkupHandler.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- MarkupHandler.java 31 Mar 2006 17:52:57 -0000 1.2 +++ MarkupHandler.java 3 Apr 2006 11:17:43 -0000 1.3 @@ -26,10 +26,12 @@ import org.jboss.portal.WindowState; import org.jboss.portal.common.invocation.InvocationException; import org.jboss.portal.portlet.PortletContainer; -import org.jboss.portal.server.app.ComponentRequest; import org.jboss.portal.server.app.ComponentResponse; import org.jboss.portal.server.app.RenderInvocation; +import org.jboss.portal.server.app.spi.InvocationContext; +import org.jboss.portal.server.app.spi.RenderContext; import org.jboss.portal.server.output.RenderResult; +import org.jboss.portal.server.util.Properties; import org.jboss.portal.wsrp.WSRPConstants; import org.jboss.portal.wsrp.WSRPContainer; import org.jboss.portal.wsrp.WSRPUtils; @@ -62,7 +64,8 @@ import org.jboss.portal.wsrp.core.UnsupportedModeFault; import org.jboss.portal.wsrp.core.UnsupportedWindowStateFault; import org.jboss.portal.wsrp.core.WSRP_v1_Markup_PortType; -import org.jboss.portal.wsrp.invocation.WSRPRequestContext; +import org.jboss.portal.wsrp.invocation.WSRPInvocationContext; +import org.jboss.portal.wsrp.invocation.WSRPRenderContext; import java.rmi.RemoteException; import java.util.Arrays; @@ -70,7 +73,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @since 2.4 */ class MarkupHandler extends ServiceHandler implements WSRP_v1_Markup_PortType @@ -117,16 +120,15 @@ MarkupHandler.MarkupRequest markupRequest = createMarkupRequestFrom(markupTypes, params); - ComponentRequest req = new ComponentRequest(); - req.setComponent(portletContainer); - req.setRequestContext(new WSRPRequestContext(sessionId)); - req.setMode(new Mode(WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.mode).toString())); // fix-me:hack... - req.setWindowState(new WindowState(WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.windowState).toString())); // fix-me:hack... - ComponentResponse resp = new ComponentResponse(); - RenderInvocation render = new RenderInvocation(); - render.setRequest(req); - render.setResponse(resp); + + RenderContext invCtx = new WSRPRenderContext(sessionId); + RenderInvocation render = new RenderInvocation(invCtx); + render.getRequest().setComponent(portletContainer); + render.getRequest().setProperties(new Properties()); + render.getRequest().setMode(new Mode(WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.mode).toString())); // fix-me:hack... + render.getRequest().setWindowState(new WindowState(WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.windowState).toString())); // fix-me:hack... + render.getResponse().setProperties(new Properties()); try { |
From: Julien V. <ju...@jb...> - 2006-04-03 15:58:16
|
User: julien Date: 06/04/03 11:58:09 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer MarkupHandler.java Log: moving portlet container spi to proper package name Revision Changes Path 1.4 +2 -4 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java (In the diff below, changes in quantity of whitespace are not shown.) Index: MarkupHandler.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- MarkupHandler.java 3 Apr 2006 11:17:43 -0000 1.3 +++ MarkupHandler.java 3 Apr 2006 15:58:09 -0000 1.4 @@ -28,8 +28,7 @@ import org.jboss.portal.portlet.PortletContainer; import org.jboss.portal.server.app.ComponentResponse; import org.jboss.portal.server.app.RenderInvocation; -import org.jboss.portal.server.app.spi.InvocationContext; -import org.jboss.portal.server.app.spi.RenderContext; +import org.jboss.portal.portlet.spi.RenderContext; import org.jboss.portal.server.output.RenderResult; import org.jboss.portal.server.util.Properties; import org.jboss.portal.wsrp.WSRPConstants; @@ -64,7 +63,6 @@ import org.jboss.portal.wsrp.core.UnsupportedModeFault; import org.jboss.portal.wsrp.core.UnsupportedWindowStateFault; import org.jboss.portal.wsrp.core.WSRP_v1_Markup_PortType; -import org.jboss.portal.wsrp.invocation.WSRPInvocationContext; import org.jboss.portal.wsrp.invocation.WSRPRenderContext; import java.rmi.RemoteException; @@ -73,7 +71,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ * @since 2.4 */ class MarkupHandler extends ServiceHandler implements WSRP_v1_Markup_PortType |
From: Chris L. <chr...@jb...> - 2006-04-03 17:44:53
|
User: claprun Date: 06/04/03 13:44:39 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer WSRPContainerImpl.java Log: CapabilitiesInfoImpl.getAllLocales now uses ResourceBundles.getLocales so that we get at least the default one. Revision Changes Path 1.7 +8 -2 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPContainerImpl.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPContainerImpl.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/WSRPContainerImpl.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- WSRPContainerImpl.java 30 Mar 2006 19:14:07 -0000 1.6 +++ WSRPContainerImpl.java 3 Apr 2006 17:44:39 -0000 1.7 @@ -51,7 +51,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ * @since 2.4 */ public class WSRPContainerImpl extends AbstractJBossService implements WSRPContainer @@ -240,7 +240,13 @@ return null; } - return (String[])locales.toArray(new String[0]); + String[] localeNames = new String[locales.size()]; + int i = 0; + for (Iterator iterator = locales.iterator(); iterator.hasNext();) + { + localeNames[i++] = LocaleInfo.getRFC3066LanguageTagFor((Locale)iterator.next()); + } + return localeNames; } private String[] getWindowStateNamesFrom(Collection windowStates) |
From: Julien V. <ju...@jb...> - 2006-04-03 19:24:22
|
User: julien Date: 06/04/03 15:24:18 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer MarkupHandler.java Log: move the different portlet invocation result to org.jboss.portal.portlet.result Revision Changes Path 1.5 +2 -2 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java (In the diff below, changes in quantity of whitespace are not shown.) Index: MarkupHandler.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- MarkupHandler.java 3 Apr 2006 15:58:09 -0000 1.4 +++ MarkupHandler.java 3 Apr 2006 19:24:18 -0000 1.5 @@ -26,10 +26,10 @@ import org.jboss.portal.WindowState; import org.jboss.portal.common.invocation.InvocationException; import org.jboss.portal.portlet.PortletContainer; +import org.jboss.portal.portlet.result.RenderResult; import org.jboss.portal.server.app.ComponentResponse; import org.jboss.portal.server.app.RenderInvocation; import org.jboss.portal.portlet.spi.RenderContext; -import org.jboss.portal.server.output.RenderResult; import org.jboss.portal.server.util.Properties; import org.jboss.portal.wsrp.WSRPConstants; import org.jboss.portal.wsrp.WSRPContainer; @@ -71,7 +71,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ * @since 2.4 */ class MarkupHandler extends ServiceHandler implements WSRP_v1_Markup_PortType |
From: Julien V. <ju...@jb...> - 2006-04-03 21:01:20
|
User: julien Date: 06/04/03 17:01:09 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer MarkupHandler.java Log: merged ComponentRequest and ComponentResponse into ComponentInvocation Revision Changes Path 1.6 +7 -10 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java (In the diff below, changes in quantity of whitespace are not shown.) Index: MarkupHandler.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -b -r1.5 -r1.6 --- MarkupHandler.java 3 Apr 2006 19:24:18 -0000 1.5 +++ MarkupHandler.java 3 Apr 2006 21:01:09 -0000 1.6 @@ -27,7 +27,6 @@ import org.jboss.portal.common.invocation.InvocationException; import org.jboss.portal.portlet.PortletContainer; import org.jboss.portal.portlet.result.RenderResult; -import org.jboss.portal.server.app.ComponentResponse; import org.jboss.portal.server.app.RenderInvocation; import org.jboss.portal.portlet.spi.RenderContext; import org.jboss.portal.server.util.Properties; @@ -71,7 +70,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.5 $ + * @version $Revision: 1.6 $ * @since 2.4 */ class MarkupHandler extends ServiceHandler implements WSRP_v1_Markup_PortType @@ -118,21 +117,19 @@ MarkupHandler.MarkupRequest markupRequest = createMarkupRequestFrom(markupTypes, params); - ComponentResponse resp = new ComponentResponse(); - RenderContext invCtx = new WSRPRenderContext(sessionId); RenderInvocation render = new RenderInvocation(invCtx); - render.getRequest().setComponent(portletContainer); - render.getRequest().setProperties(new Properties()); - render.getRequest().setMode(new Mode(WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.mode).toString())); // fix-me:hack... - render.getRequest().setWindowState(new WindowState(WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.windowState).toString())); // fix-me:hack... - render.getResponse().setProperties(new Properties()); + render.setComponent(portletContainer); + render.setRequestProperties(new Properties()); + render.setMode(new Mode(WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.mode).toString())); // fix-me:hack... + render.setWindowState(new WindowState(WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.windowState).toString())); // fix-me:hack... + render.setResponseProperties(new Properties()); try { render.invoke(producer.getStack().getInterceptors()); - RenderResult renderResult = (RenderResult)resp.getResult(); + RenderResult renderResult = (RenderResult)render.getResult(); // fix-me MarkupContext markupContext = new MarkupContext(Boolean.FALSE, markupRequest.mimeType, "blah", null, |
From: Chris L. <chr...@jb...> - 2006-04-03 22:26:44
|
User: claprun Date: 06/04/03 18:26:41 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer MarkupHandler.java Log: - Modified WSRPUtils to be independent from JSR 168 API classes. - Added dummy releaseSessions in MarkupHandler. - Added invokeNext() in DumpInterceptor so that handling of invocation can reach PortletContainer. - Removed unused userInfo in PortletRequestImpl. Revision Changes Path 1.7 +38 -10 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java (In the diff below, changes in quantity of whitespace are not shown.) Index: MarkupHandler.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- MarkupHandler.java 3 Apr 2006 21:01:09 -0000 1.6 +++ MarkupHandler.java 3 Apr 2006 22:26:41 -0000 1.7 @@ -22,13 +22,11 @@ package org.jboss.portal.wsrp.producer; -import org.jboss.portal.Mode; -import org.jboss.portal.WindowState; import org.jboss.portal.common.invocation.InvocationException; import org.jboss.portal.portlet.PortletContainer; import org.jboss.portal.portlet.result.RenderResult; -import org.jboss.portal.server.app.RenderInvocation; import org.jboss.portal.portlet.spi.RenderContext; +import org.jboss.portal.server.app.RenderInvocation; import org.jboss.portal.server.util.Properties; import org.jboss.portal.wsrp.WSRPConstants; import org.jboss.portal.wsrp.WSRPContainer; @@ -53,6 +51,7 @@ import org.jboss.portal.wsrp.core.PortletContext; import org.jboss.portal.wsrp.core.PortletDescription; import org.jboss.portal.wsrp.core.PortletStateChangeRequiredFault; +import org.jboss.portal.wsrp.core.RegistrationContext; import org.jboss.portal.wsrp.core.ReleaseSessions; import org.jboss.portal.wsrp.core.ReturnAny; import org.jboss.portal.wsrp.core.RuntimeContext; @@ -70,7 +69,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ * @since 2.4 */ class MarkupHandler extends ServiceHandler implements WSRP_v1_Markup_PortType @@ -121,8 +120,8 @@ RenderInvocation render = new RenderInvocation(invCtx); render.setComponent(portletContainer); render.setRequestProperties(new Properties()); - render.setMode(new Mode(WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.mode).toString())); // fix-me:hack... - render.setWindowState(new WindowState(WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.windowState).toString())); // fix-me:hack... + render.setMode(WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.mode)); + render.setWindowState(WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.windowState)); render.setResponseProperties(new Properties()); try @@ -132,7 +131,7 @@ RenderResult renderResult = (RenderResult)render.getResult(); // fix-me - MarkupContext markupContext = new MarkupContext(Boolean.FALSE, markupRequest.mimeType, "blah", null, + MarkupContext markupContext = new MarkupContext(Boolean.FALSE, markupRequest.mimeType, null, null, markupRequest.locale, Boolean.TRUE, null, portletDescription.getTitle().getValue(), null); SessionContext sessionContext = new SessionContext(sessionId, producer.getSessionExpirationTime(), null); @@ -156,7 +155,23 @@ public ReturnAny releaseSessions(ReleaseSessions releaseSessions) throws InvalidRegistrationFault, OperationFailedFault, MissingParametersFault, AccessDeniedFault, RemoteException { - return new ReturnAny(); // todo: implement + try + { + RegistrationContext rc = releaseSessions.getRegistrationContext(); + String regHandle = rc.getRegistrationHandle(); + String[] sessionIDs = releaseSessions.getSessionIDs(); + for (int i = 0; i < sessionIDs.length; i++) + { + String sessionID = sessionIDs[i]; + releaseSession(regHandle, sessionID); + } + } + catch (NullPointerException e) + { + throw new MissingParametersFault(); + } + + return new ReturnAny(); } public ReturnAny initCookie(InitCookie initCookie) @@ -166,6 +181,19 @@ } /** + * Releases the resources associated to the specified session for the specified consumer. + * + * @param registrationHandle the registration handle identifying the consumer + * @param sessionID the id of the session which resources are to be released + */ + private void releaseSession(String registrationHandle, String sessionID) + { + //todo: implement + System.out.println("registrationHandle = " + registrationHandle); + System.out.println("sessionID = " + sessionID); + } + + /** * Returns the most appropriate information to base markup generation on based on a Portlet's specified markup types * and a markup request parameters. * @@ -179,7 +207,7 @@ MarkupType markupType = null; // Get the MIME type to use - for (int i = 0; i < desiredMIMETypes.length; i++) + for (int i = 0; markupType == null && i < desiredMIMETypes.length; i++) { String desiredMIMEType = desiredMIMETypes[i]; for (int j = 0; j < markupTypes.length; j++) |
From: Julien V. <ju...@jb...> - 2006-04-03 22:54:16
|
User: julien Date: 06/04/03 18:54:14 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer MarkupHandler.java Log: move classes related to portlet invocation to the proper org.jboss.portal.portlet.invocation package Revision Changes Path 1.8 +2 -2 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java (In the diff below, changes in quantity of whitespace are not shown.) Index: MarkupHandler.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -b -r1.7 -r1.8 --- MarkupHandler.java 3 Apr 2006 22:26:41 -0000 1.7 +++ MarkupHandler.java 3 Apr 2006 22:54:14 -0000 1.8 @@ -24,9 +24,9 @@ import org.jboss.portal.common.invocation.InvocationException; import org.jboss.portal.portlet.PortletContainer; +import org.jboss.portal.portlet.invocation.RenderInvocation; import org.jboss.portal.portlet.result.RenderResult; import org.jboss.portal.portlet.spi.RenderContext; -import org.jboss.portal.server.app.RenderInvocation; import org.jboss.portal.server.util.Properties; import org.jboss.portal.wsrp.WSRPConstants; import org.jboss.portal.wsrp.WSRPContainer; @@ -69,7 +69,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.7 $ + * @version $Revision: 1.8 $ * @since 2.4 */ class MarkupHandler extends ServiceHandler implements WSRP_v1_Markup_PortType |
From: Julien V. <ju...@jb...> - 2006-04-03 23:24:10
|
User: julien Date: 06/04/03 19:24:05 Modified: wsrp/src/main/org/jboss/portal/wsrp/producer MarkupHandler.java Log: moved invocation response properties to RenderResult and FragmentResult, renamed request properties to properties on the invocation Revision Changes Path 1.9 +3 -3 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java (In the diff below, changes in quantity of whitespace are not shown.) Index: MarkupHandler.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -b -r1.8 -r1.9 --- MarkupHandler.java 3 Apr 2006 22:54:14 -0000 1.8 +++ MarkupHandler.java 3 Apr 2006 23:24:05 -0000 1.9 @@ -69,7 +69,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.8 $ + * @version $Revision: 1.9 $ * @since 2.4 */ class MarkupHandler extends ServiceHandler implements WSRP_v1_Markup_PortType @@ -119,10 +119,10 @@ RenderContext invCtx = new WSRPRenderContext(sessionId); RenderInvocation render = new RenderInvocation(invCtx); render.setComponent(portletContainer); - render.setRequestProperties(new Properties()); + render.setProperties(new Properties()); render.setMode(WSRPUtils.getJSR168PortletModeFromWSRPName(markupRequest.mode)); render.setWindowState(WSRPUtils.getJSR168WindowStateFromWSRPName(markupRequest.windowState)); - render.setResponseProperties(new Properties()); + render.setProperties(new Properties()); try { |