From: Julien V. <ju...@jb...> - 2006-05-09 02:19:22
|
User: julien Date: 06/05/08 22:19:20 Added: wsrp/src/main/org/jboss/portal/wsrp PerEndpointSOAPInvokerServiceFactory.java Log: forgot to add the little budha brother Revision Changes Path 1.1 date: 2006/05/09 02:19:20; author: julien; state: Exp;jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/PerEndpointSOAPInvokerServiceFactory.java Index: PerEndpointSOAPInvokerServiceFactory.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; import org.jboss.portal.wsrp.core.WSRP_v1_ServiceDescription_PortType; import org.jboss.portal.wsrp.core.WSRP_v1_Markup_PortType; import org.jboss.portal.wsrp.core.WSRP_v1_Registration_PortType; import org.jboss.portal.wsrp.core.WSRP_v1_PortletManagement_PortType; import javax.xml.rpc.Service; import javax.xml.rpc.Stub; import java.util.Map; import java.util.Properties; import java.util.Iterator; /** * todo : cache created configured proxies * * @author <a href="mailto:chr...@jb...">Chris Laprun</a> * @author <a href="mailto:ju...@jb...">Julien Viet</a> * @version $Revision: 1.1 $ * @since 2.4 */ public class PerEndpointSOAPInvokerServiceFactory extends ServiceFactoryImpl { /** . */ private static final String ENDPOINT_ADDRESS_PROP = "javax.xml.rpc.service.endpoint.address"; /** . */ private Properties portJNDIMapping; /** . */ private String serviceDescriptionURL; /** . */ private String markupURL; /** . */ private String registrationURL; /** . */ private String portletManagementURL; public String getServiceDescriptionURL() { return serviceDescriptionURL; } public void setServiceDescriptionURL(String serviceDescriptionURL) { this.serviceDescriptionURL = serviceDescriptionURL; } public String getMarkupURL() { return markupURL; } public void setMarkupURL(String markupURL) { this.markupURL = markupURL; } public String getRegistrationURL() { return registrationURL; } public void setRegistrationURL(String registrationURL) { this.registrationURL = registrationURL; } public String getPortletManagementURL() { return portletManagementURL; } public void setPortletManagementURL(String portletManagementURL) { this.portletManagementURL = portletManagementURL; } public Properties getPortJNDIMapping() { return portJNDIMapping; } public void setPortJNDIMapping(Properties portJNDIMapping) { this.portJNDIMapping = portJNDIMapping; } protected void initPortTypeClassToJDNINameMap() { for (Iterator i = portJNDIMapping.entrySet().iterator(); i.hasNext();) { Map.Entry entry = (Map.Entry)i.next(); String portTypeClassName = (String)entry.getKey(); String portTypeJNDIName = (String)entry.getValue(); portTypeClassToJNDIName.put(portTypeClassName, portTypeJNDIName); log.debug("Use jndi name " + portTypeJNDIName + " for port of type " + portTypeClassName); } } public Object getService(Class clazz) throws Exception { // If retrieve object is of javax.xml.rpc.Service class, we're using the WS stack and we need to get the port Service service = (Service)super.getService(clazz); log.debug("Unwrapping service " + service + " for class " + clazz); Object port = service.getPort(clazz); String portAddress = null; if (WSRP_v1_ServiceDescription_PortType.class.equals(clazz)) { portAddress = serviceDescriptionURL; } else if (WSRP_v1_Markup_PortType.class.equals(clazz)) { portAddress = markupURL; } else if (WSRP_v1_Registration_PortType.class.equals(clazz)) { portAddress = registrationURL; } else if (WSRP_v1_PortletManagement_PortType.class.equals(clazz)) { portAddress = portletManagementURL; } // if (portAddress != null) { log.debug("Setting the end point to: " + portAddress); ((Stub)port)._setProperty(PerEndpointSOAPInvokerServiceFactory.ENDPOINT_ADDRESS_PROP, portAddress); } return port; } } |
From: Chris L. <chr...@jb...> - 2006-05-12 21:57:19
|
User: claprun Date: 06/05/12 17:57:18 Modified: wsrp/src/main/org/jboss/portal/wsrp WSRPConsumer.java Log: - Improved error handling and reporting. - Made more methods public on WSRPConsumer. - Gave access to configured producer id from consumer. Revision Changes Path 1.4 +35 -3 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPConsumer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPConsumer.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPConsumer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- WSRPConsumer.java 1 May 2006 22:38:15 -0000 1.3 +++ WSRPConsumer.java 12 May 2006 21:57:18 -0000 1.4 @@ -22,12 +22,44 @@ package org.jboss.portal.wsrp; import org.jboss.portal.portlet.PortletInvoker; +import org.jboss.portal.wsrp.services.ServiceFactory; +import org.jboss.system.Service; /** * @author <a href="mailto:bol...@jb...">Boleslaw Dawidowicz</a> - * @version $Revision: 1.3 $ + * @author <a href= + * @version $Revision: 1.4 $ + * @since 2.4 */ -public interface WSRPConsumer extends PortletInvoker +public interface WSRPConsumer extends PortletInvoker, Service { + /** + * Sets the identifier for the producer this consumer is associated with. + * + * @param id the identifier of the associated producer + */ + void setProducerId(String id); + + /** + * Retrieves the identifier for the producer this consumer is associated with. + * + * @return the identifier of the associated producer + */ + String getProducerId(); + + /** + * Sets the ServiceFactory this Consumer will use to access the associated Producer's services. + * + * @param serviceFactory the ServiceFactory this Consumer will use to access the associated Producer's services. + */ + void setServiceFactory(ServiceFactory serviceFactory); + + /** + * Retrieves the ServiceFactory this Consumer will use to access the associated Producer's services. + * + * @return Sets the ServiceFactory this Consumer will use to access the associated Producer's services. + */ + ServiceFactory getServiceFactory(); + void setExpirationCacheMillis(Integer expirationCacheMillis); } |
From: Chris L. <chr...@jb...> - 2006-05-12 22:11:12
|
User: claprun Date: 06/05/12 18:11:10 Modified: wsrp/src/main/org/jboss/portal/wsrp WSRPConsumer.java Log: - Added missing method to WSRPConsumer. - Updated DeploymentTestCase. Revision Changes Path 1.5 +13 -1 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPConsumer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPConsumer.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPConsumer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- WSRPConsumer.java 12 May 2006 21:57:18 -0000 1.4 +++ WSRPConsumer.java 12 May 2006 22:11:10 -0000 1.5 @@ -28,7 +28,7 @@ /** * @author <a href="mailto:bol...@jb...">Boleslaw Dawidowicz</a> * @author <a href= - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ * @since 2.4 */ public interface WSRPConsumer extends PortletInvoker, Service @@ -61,5 +61,17 @@ */ ServiceFactory getServiceFactory(); + /** + * Sets the cache expiration duration (in milliseconds) for cached values. + * + * @param expirationCacheMillis the cache expiration duration (in milliseconds) + */ void setExpirationCacheMillis(Integer expirationCacheMillis); + + /** + * Retrieves the cache expiration duration (in milliseconds) for cached values. + * + * @return Sets the cache expiration duration (in milliseconds) for cached values. + */ + Integer getExpirationCacheMillis(); } |
From: Chris L. <chr...@jb...> - 2006-05-13 01:32:32
|
User: claprun Date: 06/05/12 21:32:31 Modified: wsrp/src/main/org/jboss/portal/wsrp WSRPConsumer.java Log: - Implemented simple registration so that we can access service description from BEA public producer. - Changed cache expiration time to use seconds instead of milliseconds and related changes. Revision Changes Path 1.7 +7 -7 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPConsumer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPConsumer.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPConsumer.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- WSRPConsumer.java 13 May 2006 00:15:24 -0000 1.6 +++ WSRPConsumer.java 13 May 2006 01:32:31 -0000 1.7 @@ -29,7 +29,7 @@ /** * @author <a href="mailto:bol...@jb...">Boleslaw Dawidowicz</a> * @author <a href= - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ * @since 2.4 */ public interface WSRPConsumer extends PortletInvoker, Service @@ -63,18 +63,18 @@ ServiceFactory getServiceFactory(); /** - * Sets the cache expiration duration (in milliseconds) for cached values. + * Sets the cache expiration duration (in seconds) for cached values. * - * @param expirationCacheMillis the cache expiration duration (in milliseconds) + * @param expirationCacheSeconds the cache expiration duration (in seconds) */ - void setExpirationCacheMillis(Integer expirationCacheMillis); + void setExpirationCacheSeconds(Integer expirationCacheSeconds); /** - * Retrieves the cache expiration duration (in milliseconds) for cached values. + * Retrieves the cache expiration duration (in seconds) for cached values. * - * @return Sets the cache expiration duration (in milliseconds) for cached values. + * @return Sets the cache expiration duration (in seconds) for cached values. */ - Integer getExpirationCacheMillis(); + Integer getExpirationCacheSeconds(); /** * Sets the registration data used to register this consumer with the associated producer |
From: Chris L. <chr...@jb...> - 2006-05-27 06:44:52
|
User: claprun Date: 06/05/27 02:44:51 Modified: wsrp/src/main/org/jboss/portal/wsrp WSRPTypeFactory.java Log: - Added support for URL templates. - Improved recovery after error (at least that's what I hope)... :) Revision Changes Path 1.12 +75 -1 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPTypeFactory.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -b -r1.11 -r1.12 --- WSRPTypeFactory.java 13 May 2006 00:15:24 -0000 1.11 +++ WSRPTypeFactory.java 27 May 2006 06:44:50 -0000 1.12 @@ -22,6 +22,13 @@ package org.jboss.portal.wsrp; +import org.jboss.portal.Mode; +import org.jboss.portal.WindowState; +import org.jboss.portal.common.util.Tools; +import org.jboss.portal.portlet.ActionURL; +import org.jboss.portal.portlet.RenderURL; +import org.jboss.portal.portlet.StateString; +import org.jboss.portal.portlet.spi.InvocationContext; import org.jboss.portal.wsrp.core.BlockingInteractionResponse; import org.jboss.portal.wsrp.core.GetMarkup; import org.jboss.portal.wsrp.core.GetServiceDescription; @@ -40,6 +47,7 @@ import org.jboss.portal.wsrp.core.ServiceDescription; import org.jboss.portal.wsrp.core.SessionContext; import org.jboss.portal.wsrp.core.StateChange; +import org.jboss.portal.wsrp.core.Templates; import org.jboss.portal.wsrp.core.UpdateResponse; import org.jboss.portal.wsrp.core.UserContext; @@ -49,7 +57,7 @@ * information. * * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.11 $ + * @version $Revision: 1.12 $ * @since 2.4 */ public class WSRPTypeFactory @@ -448,4 +456,70 @@ { return new Property(name, lang, stringValue, null); } + + private static final String OPEN = "{"; + private static final String CLOSE = "}"; + private static final ActionURL ACTION_URL = new ActionURL() + { + public StateString getInteractionState() + { + return StateString.createFrom(OPEN + WSRPRewritingConstants.INTERACTION_STATE + CLOSE); + } + + public StateString getNavigationalState() + { +// return null; // fix-me + return StateString.createFrom(OPEN + WSRPRewritingConstants.NAVIGATIONAL_STATE + CLOSE); + } + + public Mode getMode() + { + return Mode.create(OPEN + WSRPRewritingConstants.MODE + CLOSE); + } + + public WindowState getWindowState() + { + return WindowState.create(OPEN + WSRPRewritingConstants.WINDOW_STATE + CLOSE); + } + }; + + private static final RenderURL RENDER_URL = new RenderURL() + { + public StateString getNavigationalState() + { + return StateString.createFrom(OPEN + WSRPRewritingConstants.NAVIGATIONAL_STATE + CLOSE); + } + + public Mode getMode() + { + return Mode.create(OPEN + WSRPRewritingConstants.MODE + CLOSE); + } + + public WindowState getWindowState() + { + return WindowState.create(OPEN + WSRPRewritingConstants.WINDOW_STATE + CLOSE); + } + }; + + /** + * defaultTemplate(xsd:string)?, blockingActionTemplate(xsd:string)?, renderTemplate(xsd:string)?, + * resourceTemplate(xsd:string)?, secureDefaultTemplate(xsd:string)?, secureBlockingActionTemplate(xsd:string)?, + * secureRenderTemplate(xsd:string)?, secureResourceTemplate(xsd:string)?, extensions(Extension)* + * + * @param context + * @return + */ + public static Templates createTemplates(InvocationContext context) + { + Templates templates = new Templates(); + + // fix-me: de-escape { and } + templates.setBlockingActionTemplate(Tools.decodeXWWWFormURL(context.encodeURL(ACTION_URL, Boolean.FALSE, null, true))); + templates.setRenderTemplate(Tools.decodeXWWWFormURL(context.encodeURL(RENDER_URL, Boolean.FALSE, null, true))); + templates.setSecureBlockingActionTemplate(Tools.decodeXWWWFormURL(context.encodeURL(ACTION_URL, Boolean.TRUE, null, true))); + templates.setSecureRenderTemplate(Tools.decodeXWWWFormURL(context.encodeURL(RENDER_URL, Boolean.TRUE, null, true))); + + //todo: deal with resources + return templates; + } } |
From: Chris L. <chr...@jb...> - 2006-05-29 16:50:01
|
User: claprun Date: 06/05/29 12:49:59 Modified: wsrp/src/main/org/jboss/portal/wsrp WSRPTypeFactory.java Log: Added support for ClientData (required due to a bug in BEA's portal, plus it doesn't hurt... ^_^). Can now access BEA's public producer portlets. Revision Changes Path 1.14 +13 -1 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPTypeFactory.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -b -r1.13 -r1.14 --- WSRPTypeFactory.java 29 May 2006 16:34:47 -0000 1.13 +++ WSRPTypeFactory.java 29 May 2006 16:49:59 -0000 1.14 @@ -30,6 +30,7 @@ import org.jboss.portal.portlet.StateString; import org.jboss.portal.portlet.spi.InvocationContext; import org.jboss.portal.wsrp.core.BlockingInteractionResponse; +import org.jboss.portal.wsrp.core.ClientData; import org.jboss.portal.wsrp.core.GetMarkup; import org.jboss.portal.wsrp.core.GetServiceDescription; import org.jboss.portal.wsrp.core.InitCookie; @@ -57,7 +58,7 @@ * information. * * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.13 $ + * @version $Revision: 1.14 $ * @since 2.4 */ public class WSRPTypeFactory @@ -522,4 +523,15 @@ //todo: deal with resources return templates; } + + /** + * userAgent(xsd:string)?, extensions(Extension)* + * + * @param userAgent + * @return + */ + public static ClientData createClientData(String userAgent) + { + return new ClientData(userAgent, null); + } } |
From: Chris L. <chr...@jb...> - 2006-05-30 04:56:05
|
User: claprun Date: 06/05/30 00:55:59 Modified: wsrp/src/main/org/jboss/portal/wsrp WSRPTypeFactory.java Log: - Finished first pass at better initCookie implementation. Not tested much and very buggy. - Moved (and added) extensions handling to portal-wsrp-client. Revision Changes Path 1.15 +5 -3 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPTypeFactory.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -b -r1.14 -r1.15 --- WSRPTypeFactory.java 29 May 2006 16:49:59 -0000 1.14 +++ WSRPTypeFactory.java 30 May 2006 04:55:59 -0000 1.15 @@ -43,6 +43,7 @@ import org.jboss.portal.wsrp.core.PortletContext; import org.jboss.portal.wsrp.core.PortletDescription; import org.jboss.portal.wsrp.core.Property; +import org.jboss.portal.wsrp.core.RegistrationContext; import org.jboss.portal.wsrp.core.RegistrationData; import org.jboss.portal.wsrp.core.RuntimeContext; import org.jboss.portal.wsrp.core.ServiceDescription; @@ -58,7 +59,7 @@ * information. * * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.14 $ + * @version $Revision: 1.15 $ * @since 2.4 */ public class WSRPTypeFactory @@ -305,11 +306,12 @@ /** * registrationContext(RegistrationContext)? * + * @param registrationContext * @return */ - public static InitCookie createInitCookie() + public static InitCookie createInitCookie(RegistrationContext registrationContext) { - return new InitCookie(); + return new InitCookie(registrationContext); } /** |
From: Chris L. <chr...@jb...> - 2006-05-31 01:05:50
|
User: claprun Date: 06/05/30 21:05:45 Modified: wsrp/src/main/org/jboss/portal/wsrp WSRPUtils.java Log: - initCookie should now behave correctly. - Improved session handling. - Fixed a problem where we were passing empty window states and modes. Revision Changes Path 1.15 +14 -3 jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPUtils.java (In the diff below, changes in quantity of whitespace are not shown.) Index: WSRPUtils.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/wsrp/src/main/org/jboss/portal/wsrp/WSRPUtils.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -b -r1.14 -r1.15 --- WSRPUtils.java 8 May 2006 16:31:51 -0000 1.14 +++ WSRPUtils.java 31 May 2006 01:05:45 -0000 1.15 @@ -40,7 +40,7 @@ /** * @author <a href="mailto:chr...@jb...">Chris Laprun</a> - * @version $Revision: 1.14 $ + * @version $Revision: 1.15 $ * @since 2.4 */ public class WSRPUtils @@ -76,7 +76,7 @@ public static WindowState getJSR168WindowStateFromWSRPName(String wsrpWindowStateName) { - throwIllegalArgExceptionIfNull(wsrpWindowStateName, WSRP_WINDOW_STATE_NAME); + throwIllegalArgExceptionIfNullOrEmpty(wsrpWindowStateName, WSRP_WINDOW_STATE_NAME); WindowState windowState = (WindowState)WSRP_JSR168_WINDOW_STATES.get(wsrpWindowStateName); return (windowState == null) ? new WindowState(wsrpWindowStateName) : windowState; } @@ -84,6 +84,7 @@ public static String convertJSR168WindowStateNameToWSRPName(String jsr168WindowStateName) { // todo: how should we deal with solo? + throwIllegalArgExceptionIfNullOrEmpty(jsr168WindowStateName, WSRP_WINDOW_STATE_NAME); String wsrpName = (String)JSR168_WSRP_WINDOW_STATES.get(jsr168WindowStateName); return (wsrpName == null) ? jsr168WindowStateName : wsrpName; } @@ -96,7 +97,7 @@ public static Mode getJSR168PortletModeFromWSRPName(String wsrpPortletModeName) { - throwIllegalArgExceptionIfNull(wsrpPortletModeName, WSRP_MODE_NAME); + throwIllegalArgExceptionIfNullOrEmpty(wsrpPortletModeName, WSRP_MODE_NAME); Mode mode = (Mode)WSRP_JSR168_MODES.get(wsrpPortletModeName); return (mode == null) ? new Mode(wsrpPortletModeName) : mode; } @@ -104,6 +105,7 @@ public static String convertJSR168PortletModeNameToWSRPName(String jsr168PortletModeName) { // todo: how should we deal with preview? + throwIllegalArgExceptionIfNullOrEmpty(jsr168PortletModeName, WSRP_MODE_NAME); String wsrpName = (String)JSR168_WSRP_MODES.get(jsr168PortletModeName); return (wsrpName == null) ? jsr168PortletModeName : wsrpName; } @@ -207,4 +209,13 @@ throw new IllegalArgumentException("Must pass a valid " + name); } } + + private static void throwIllegalArgExceptionIfNullOrEmpty(String valueToTest, String name) + { + throwIllegalArgExceptionIfNull(valueToTest, name); + if (valueToTest.length() == 0) + { + throw new IllegalArgumentException("Must pass a non-empty " + name); + } + } } |