gatein SVN: r8039 - in epp/docs/branches/5.2: Reference_Guide-eXoJCR-1.14/en-US/modules and 1 other directory.
by do-not-reply@jboss.org
Author: smumford
Date: 2011-11-10 21:09:34 -0500 (Thu, 10 Nov 2011)
New Revision: 8039
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml
Log:
Porting GateIn r8038
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml 2011-11-10 22:34:44 UTC (rev 8038)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml 2011-11-11 02:09:34 UTC (rev 8039)
@@ -3,1319 +3,1523 @@
<!ENTITY % BOOK_ENTITIES SYSTEM "../Reference_Guide.ent">
%BOOK_ENTITIES;
]>
-<chapter id="chap-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP">
- <title>Web Services for Remote Portlets (WSRP)</title>
- <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Introduction">
- <title>Introduction</title>
- <para>
+ <chapter id="chap-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP">
+ <title>Web Services for Remote Portlets (WSRP)</title>
+
+ <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Introduction">
+ <title>Introduction</title>
+
+ <para>
The Web Services for Remote Portlets (WSRP) specification defines a web service interface for accessing and interacting with interactive presentation-oriented web services.
- </para>
- <para>
+ </para>
+
+ <para>
It has been produced through the efforts of the Web Services for Remote Portlets (WSRP) OASIS Technical Committee. It is based on the requirements gathered and the proposals made to the committee.
- </para>
- <para>
+ </para>
+
+ <para>
Scenarios that motivate WSRP functionality include:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Content hosts, such as portal servers, providing Portlets as presentation-oriented web services that can be used by aggregation engines.
- </para>
- </listitem>
- <listitem>
- <para>
- Aggregating frameworks, including portal servers, consuming presentation-oriented web services offered by content providers and integrating them into the framework.
- </para>
- </listitem>
- </itemizedlist>
-
- <para>
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Content hosts, such as portal servers, providing Portlets as presentation-oriented web services that can be used by aggregation engines.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Aggregating frameworks, including portal servers, consuming presentation-oriented web services offered by content providers and integrating them into the framework.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
More information on WSRP can be found on the official <ulink url="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp">website</ulink>. We suggest reading the <ulink url="http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html">primer</ulink> for a good, albeit technical, overview of WSRP.
- </para>
- </section>
-
-
- <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Level_of_Support">
- <title>Level of Support</title>
- <para>
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Level_of_Support">
+ <title>Level of Support</title>
+
+ <para>
The WSRP Technical Committee defined <ulink url="http://www.oasis-open.org/committees/download.php/3073">WSRP Use Profiles</ulink> to help with WSRP interoperability. Terms defined in that document will be used in this section.
- </para>
- <para>
+ </para>
+
+ <para>
JBoss Enterprise Portal Platform provides a <emphasis>Simple</emphasis> level of support for the WSRP Producer, with the exception of out-of-band registration. In-band registration and persistent local state (which are defined at the <emphasis>Complex</emphasis> level) are supported.
- </para>
- <para>
+ </para>
+
+ <para>
JBoss Enterprise Portal Platform provides a <emphasis>Medium</emphasis> level of support for the Consumer, excepting HTML markup (as JBoss Enterprise Portal Platform itself does not handle other markup types). Explicit portlet cloning and the <literal>PortletManagement</literal> interface are supported.
- </para>
- <para>
+ </para>
+
+ <para>
The WSRP component has Level 1 Producer and Consumer caching. Cookie handling is supported properly on the Consumer. The Producer requires cookie initialization (as this improves interoperability with some consumers).
- </para>
- <para>
+ </para>
+
+ <para>
JBoss Enterprise Portal Platform does not support custom window states or modes, therefore neither does the WSRP component. It does, however, support CSS on both the Producer (although this is more a function of the portlets than an inherent Producer capability) and Consumer.
- </para>
- <para>
+ </para>
+
+ <para>
JBoss Enterprise Portal Platform &VY; includes implementations of WSRP 1.0 and 2.0.
- </para>
- <para>
- All optional features in WSRP 2 are implemented in JBoss Enterprise Portal Platform &VY; except support for lifetimes and leasing support.
- </para>
- </section>
-
-
- <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Deploying_WSRP">
- <title>Deploying WSRP</title>
- <note>
+ </para>
+
+ <para>
+ All optional features in WSRP 2 are implemented in JBoss Enterprise Portal Platform &VY; except support for lifetimes and leasing support.
+ </para>
+
+ <note>
+ <para>
+ As of version &VZ; of Enterprise Portal Platform, WSRP is only activated and supported when deployed on JBoss Enterprise Application Server.
+ </para>
+ </note>
+ </section>
+
+ <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Deploying_WSRP">
+ <title>Deploying WSRP</title>
+
+ <note>
<title>Notational Devices</title>
+
<para>
- The following list of support files uses the following notational devices:
+ The following list of support files uses the following notational devices:
</para>
- <variablelist>
- <title>Notations:</title>
- <varlistentry>
- <term><replaceable>JBOSS_HOME</replaceable></term>
+
+ <variablelist id="vari-Reference_Guide-Deploying_WSRP-Notations">
+ <title>Notations:</title>
+
+ <varlistentry>
+ <term><replaceable>JBOSS_HOME</replaceable></term>
+
<listitem>
<para>
<replaceable>JBOSS_HOME</replaceable> refers to the directory that your instance of JBoss Enterprise Portal Platform has been extracted/installed to. For example: <filename>/home/<replaceable>USERNAME</replaceable>/jboss-epp-<replaceable><VERSION></replaceable>/</filename>
</para>
</listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable></term>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable></term>
+
<listitem>
<para>
The WSRP files referred to in this section are found in the <filename><replaceable>JBOSS_HOME</replaceable>/jboss-as/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear</filename> directory.
</para>
+
<para>
For ease of reference this path will be represented by: <replaceable>WSRP_PATH</replaceable>.
</para>
</listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_VERSION</replaceable></term>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>WSRP_VERSION</replaceable></term>
+
<listitem>
<para>
<replaceable>WSRP_VERSION</replaceable> represents the version of the WSRP component in use.
</para>
</listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>PORTAL_VERSION</replaceable></term>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>PORTAL_VERSION</replaceable></term>
+
<listitem>
<para>
<replaceable>PORTAL_VERSION</replaceable> represents the version of JBoss Enterprise Portal Platform in use.
</para>
</listitem>
- </varlistentry>
- </variablelist>
- </note>
-
- <variablelist id="vari-Reference_Guide-Deploying_WSRP-WSRP_support_files">
+ </varlistentry>
+ </variablelist>
+ </note>
+
+ <para>
+ Starting with version 2.1.0-GA of the component, WSRP is packaged as a JBoss Enterprise Portal Platform extension and is now self-contained in an easy to install package named <filename>gatein-wsrp-integration.ear</filename>, deployed directly in the <filename>deploy</filename> directory of your JBoss Application Server configuration directory.
+ </para>
+
+ <para>
+ The extension itself is composed of the following components:
+ </para>
+
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-WSRP_support_files">
<title>WSRP support files</title>
+
<varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/wsrp-admin-gui.war</term>
- <listitem>
- <para>
- This file contains the WSRP Configuration portlet with which you can configure consumers to access remote servers and how the WSRP producer is configured.
- </para>
- </listitem>
+ <term><filename>META-INF/</filename></term>
+
+ <listitem>
+ <para>
+ This directory contains files necessary for EAR packaging. The only file that is of interest from a user perspective is <filename>gatein-wsse-consumer.xml</filename> which allows you to configure WS-Security support for the consumer. !!!TODO mwringe please detail !!!!
+ </para>
+ </listitem>
</varlistentry>
+
<varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/wsrp-producer.war</term>
- <listitem>
- <para>
- This file contains the WSRP producer web application.
- </para>
- </listitem>
+ <term><filename>extension-component-$PORTAL_VERSION.jar</filename></term>
+
+ <listitem>
+ <para>
+ This archive which contains the components needed to integrate the WSRP component into JBoss Enterprise Portal Platform. It also includes the default configuration files for the WSRP producer and the default WSRP consumers.
+ </para>
+ </listitem>
</varlistentry>
+
<varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-common-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains common classes needed by the different WSRP libraries.
- </para>
- </listitem>
+ <term><filename>extension-config-$PORTAL_VERSION.jar</filename></term>
+
+ <listitem>
+ <para>
+ This file contains the configuration file needed by the GateIn extension mechanism to properly register this EAR as an extension.
+ </para>
+ </listitem>
</varlistentry>
+
<varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the WSRP consumer.
- </para>
- </listitem>
+ <term><filename>extension-war-$PORTAL_VERSION.war</filename></term>
+
+ <listitem>
+ <para>
+ This file contains the configuration files needed by the GateIn extension mechanism to properly setup the WSRP service. It includes <filename>wsrp-configuration.xml</filename> which, in particular, configures several options for the <code> WSRPServiceIntegration </code> component at the heart of the WSRP integration in JBoss Enterprise Portal Platform.
+ </para>
+ </listitem>
</varlistentry>
+
<varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the API classes needed to integrate the WSRP component into portals.
- </para>
- </listitem>
+ <term><filename>lib/</filename></term>
+
+ <listitem>
+ <para>
+ This directory contains the different libraries needed by the WSRP service.
+ </para>
+ </listitem>
</varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-producer-lib-$WSRP_VERSION.jar</term>
+
+ <varlistentry>
+ <term><filename>wsrp-admin-gui-$WSRP_VERSION.war</filename></term>
+
<listitem>
- <para>
- This file contains the classes needed by the WSRP producer.
- </para>
- </listitem>
- </varlistentry>
+ <para>
+ This file contains the WSRP Configuration portlet with which you can configure consumers to access remote servers and how the WSRP producer is configured.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-wsrp1-ws-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the generated JAX-WS classes for WSRP version 1.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-wsrp2-ws-<replaceable>WSRP_VERSION</replaceable>.jar</term>
+ <term><filename>wsrp-producer-jb5wsss-$WSRP_VERSION.war</filename></term>
+
<listitem>
<para>
- This file contains the JAX-WS classes for WSRP version 2.
+ This file contains the producer-side support for WS-Security. !!!!TODO mwringe: please detail if there are any user-modifiable configuration file there and how this files is different in AS 6 !!!!
</para>
</listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable>PORTAL_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the code to integrate the WSRP service into JBoss Enterprise Portal Platform.
- </para>
- </listitem>
</varlistentry>
- </variablelist>
-
- <section id="sect-Reference_Guide-Deploying_WSRP-Non_default_Ports_or_Hostnames">
+ </variablelist>
+
+ <section id="sect-Reference_Guide-Deploying_WSRP-Non_default_Ports_or_Hostnames">
<title>Non-default Ports or Hostnames</title>
+
<para>
- JBoss WS (the web service stack that JBoss Enterprise Portal Platform uses) should update the port and host name used in WSDL. Refer to the JBoss WS <ulink url="http://community.jboss.org/wiki/JBossWS-UserGuide#Configuration">user guide</ulink> for more information.
+ JBoss WS (the web service stack that JBoss Enterprise Portal Platform uses) should update the port and host name used in WSDL. Refer to the JBoss WS <ulink url="http://community.jboss.org/wiki/JBossWS-UserGuide#Configuration">user guide</ulink> for more information.
</para>
+
<para>
- If the host name and port on which the server runs have been modified, the configuration for the Consumer used to consume JBoss Enterprise Portal Platform's "self" Producer will need to be updated. Refer to <xref linkend="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" /> for directions on how to do this.
+ If the host name and port on which the server runs have been modified, the configuration for the Consumer used to consume JBoss Enterprise Portal Platform's "self" Producer will need to be updated. Refer to <xref linkend="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" /> for directions on how to do this.
</para>
- </section>
-
-
- <section id="sect-Reference_Guide-Deploying_WSRP-Using_WSRP_with_SSL">
+ </section>
+
+ <section id="sect-Reference_Guide-Deploying_WSRP-Using_WSRP_with_SSL">
<title>Using WSRP with SSL</title>
+
<para>
- It is possible to use WSRP over SSL for secure exchange of data. Refer to these <ulink url="http://community.jboss.org/wiki/ConfiguringWSRPforuseoverSSL">instructions</ulink> for how to do this.
+ It is possible to use WSRP over SSL for secure exchange of data. Refer to these <ulink url="http://community.jboss.org/wiki/ConfiguringWSRPforuseoverSSL">instructions</ulink> for how to do this.
</para>
- </section>
- </section>
-
-
- <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Making_a_Portlet_Remotable">
- <title>Making a Portlet Remotable</title>
- <note>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Making_a_Portlet_Remotable">
+ <title>Making a Portlet Remotable</title>
+
+ <note>
<para>
- Only JSR-286 (Portlet 2.0) portlets can be made remotable as the mechanism to expose a portlet to WSRP relies on a JSR-286-only functionality.
+ Only JSR-286 (Portlet 2.0) portlets can be made remotable as the mechanism to expose a portlet to WSRP relies on a JSR-286-only functionality.
</para>
- </note>
- <para>
+ </note>
+
+ <para>
JBoss Enterprise Portal Platform does <emphasis role="bold">not</emphasis>, by default, expose local portlets for consumption by remote WSRP consumers.
- </para>
- <para>
+ </para>
+
+ <para>
In order to make a portlet remotely available, it must be made "remotable" by marking it as such in the associated <filename>portlet.xml</filename>.
- </para>
- <para>
+ </para>
+
+ <para>
A specific <code>org.gatein.pc.remotable container-runtime-option</code> is used to accomplish this. Setting its value to <code>true</code> makes the portlet available for remote consumption, while setting its value to <code>false</code> will not publish it remotely.
- </para>
- <para>
+ </para>
+
+ <para>
As specifying the remotable status for a portlet is optional, nothing need be done if portlets do not need to be remotely available.
- </para>
- <para>
+ </para>
+
+ <para>
In the following example, the "BasicPortlet" portlet is specified as being remotable.
- </para>
-
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default255.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
+ <para>
It is also possible to specify that all the portlets declared within a given portlet application be remotable by default.
- </para>
- <para>
+ </para>
+
+ <para>
This is done by specifying the <code>container-runtime-option</code> at the <code>portlet-app</code> element level. Individual portlets can override that value to not be remotely exposed.
- </para>
- <para>
+ </para>
+
+ <para>
For example:
- </para>
-
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default256.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
+ <para>
This example defines two portlets. As the <code>org.gatein.pc.remotable container-runtime-option</code> is set to <code>true</code> at the <code>portlet-app</code> level, all portlets defined in this particular portlet application are exposed remotely by JBoss Enterprise Portal Platform's WSRP Producer.
- </para>
- <para>
+ </para>
+
+ <para>
It is possible to override this default behavior. Specifying a value for the <code>org.gatein.pc.remotable container-runtime-option</code> at the <code>portlet</code> level will take precedence over the default.
- </para>
- <para>
- In the example above, the <varname>RemotelyExposedPortlet</varname> inherits the remotable status defined at the <code>portlet-app</code> level since it does not specify a value for the <code>org.gatein.pc.remotable container-runtime-option</code>.
- </para>
- <para>
- The <varname>NotRemotelyExposedPortlet</varname>, however, overrides the default behavior and is not remotely exposed.
- </para>
- <note>
+ </para>
+
+ <para>
+ In the example above, the
+ <varname>
+ RemotelyExposedPortlet
+ </varname>
+ inherits the remotable status defined at the <code>portlet-app</code> level since it does not specify a value for the <code>org.gatein.pc.remotable container-runtime-option</code>.
+ </para>
+
+ <para>
+ The
+ <varname>
+ NotRemotelyExposedPortlet
+ </varname>
+ , however, overrides the default behavior and is not remotely exposed.
+ </para>
+
+ <note>
<para>
- Portlets are not remotely exposed if no top-level <code>org.gatein.pc.remotable container-runtime-option</code> value is set to <code>true</code>.
+ Portlets are not remotely exposed if no top-level <code>org.gatein.pc.remotable container-runtime-option</code> value is set to <code>true</code>.
</para>
- </note>
- </section>
-
-
- <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consuming_WSRP_portlets_from_a_remote_Consumer">
- <title>Consuming WSRP portlets from a remote Consumer</title>
- <para>
+ </note>
+ </section>
+
+ <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consuming_WSRP_portlets_from_a_remote_Consumer">
+ <title>Consuming WSRP portlets from a remote Consumer</title>
+
+ <para>
Configuration is extremely variable between different WSRP Consumers. Most, however, require a specification of the URL for the Producer's WSDL definition. If the JBoss Enterprise Portal Platform Consumer is not being used, refer to the documentation for the Consumer that is in use for specific instructions.
- </para>
- <para>
+ </para>
+
+ <para>
For instructions on how to specify this URL in JBoss Enterprise Portal Platform, refer to <xref linkend="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" />.
- </para>
- <para>
+ </para>
+
+ <para>
JBoss Enterprise Portal Platform's Producer is automatically set up when a portal instance is deployed with the WSRP service.
- </para>
- <para>
- The WSDL file can be accessed at:
- </para>
- <variablelist>
- <title>File paths:</title>
- <varlistentry>
- <term>WSRP 1.0:</term>
+ </para>
+
+ <para>
+ The WSDL file can be accessed at:
+ </para>
+
+ <variablelist>
+ <title>File paths:</title>
+
+ <varlistentry>
+ <term>WSRP 1.0:</term>
+
<listitem>
<para>
<filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v1/MarkupService?wsdl</filename>.
</para>
</listitem>
- </varlistentry>
- <varlistentry>
- <term>WSRP 2.0:</term>
+ </varlistentry>
+
+ <varlistentry>
+ <term>WSRP 2.0:</term>
+
<listitem>
<para>
<filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v2/MarkupService?wsdl</filename>.
</para>
</listitem>
- </varlistentry>
- </variablelist>
- <para>
- The default hostname is <literal>localhost</literal> and the default port is <literal>8080</literal>.
- </para>
- </section>
-
-
- <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets">
- <title>Consuming Remote WSRP Portlets</title>
- <section id="sect-Reference_Guide-Consuming_Remote_WSRP_Portlets-Overview">
+ </varlistentry>
+ </variablelist>
+
+ <para>
+ The default hostname is <literal>localhost</literal> and the default port is <literal>8080</literal>.
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets">
+ <title>Consuming Remote WSRP Portlets</title>
+
+ <section id="sect-Reference_Guide-Consuming_Remote_WSRP_Portlets-Overview">
<title>Overview</title>
+
<para>
- To be able to consume WSRP portlets exposed by a remote producer, JBoss Enterprise Portal Platform's WSRP consumer must be configured to access that remote producer.
+ To be able to consume WSRP portlets exposed by a remote producer, JBoss Enterprise Portal Platform's WSRP consumer must be configured to access that remote producer.
</para>
+
<para>
- Access to a remote producer can be configured using WSRP Producer descriptors. Alternatively, a portlet is provided to configure remote producers.
+ Access to a remote producer can be configured using WSRP Producer descriptors. Alternatively, a portlet is provided to configure remote producers.
</para>
+
<para>
- Once a remote producer has been configured, the portlets that it exposes are then available in the Application Registry to be added to categories and then to pages.
+ Once a remote producer has been configured, the portlets that it exposes are then available in the Application Registry to be added to categories and then to pages.
</para>
<!-- Removed as out of date and not in Community version of doc.
<para>
A default consumer named <literal>self</literal>, that consumes the portlets exposed by JBoss Enterprise Portal Platform's producer, has been configured as a way to test the WSRP producer service and to check that portlets are correctly published via WSRP.
</para>
-->
- </section>
-
-
- <section id="sect-Reference_Guide-Consuming_Remote_WSRP_Portlets-Configuring_a_Remote_Producer">
+ </section>
+
+ <section id="sect-Reference_Guide-Consuming_Remote_WSRP_Portlets-Configuring_a_Remote_Producer">
<title>Configuring a Remote Producer</title>
+
<para>
- Access to a remote producer needs to be defined so that portlets can be consumed within JBoss Enterprise Portal Platform. This section will show how to configure access to <emphasis role="bold">Oracle</emphasis>'s public WSRP producer. Firstly using the configuration portlet. Then how the same result can be accomplished with a producer descriptor, though it is far easier to do so via the configuration portlet.
+ Access to a remote producer needs to be defined so that portlets can be consumed within JBoss Enterprise Portal Platform. This section will show how to configure access to <emphasis role="bold">Oracle</emphasis>'s public WSRP producer. Firstly using the configuration portlet. Then how the same result can be accomplished with a producer descriptor, though it is far easier to do so via the configuration portlet.
</para>
+
<important>
- <title>Chunked Encoding</title>
- <para>
- Some WSRP producers, such as Oracle, do not support chunked encoding. If your producer does not support chunked encoding, it will not be able to properly connect to the producer.
- </para>
- <para>
- This will manifest itself with the following error:
- </para>
+ <title>Chunked Encoding</title>
+
+ <para>
+ Some WSRP producers, such as Oracle, do not support chunked encoding. If your producer does not support chunked encoding, it will not be able to properly connect to the producer.
+ </para>
+
+ <para>
+ This will manifest itself with the following error:
+ </para>
<screen>Caused by: org.jboss.ws.WSException: Invalid HTTP server response [503] - Service Unavailable.
</screen>
- <para>
- A workaround for this issue involves editing the <parameter>chunksize</parameter> setting in the <filename>standard-jaxws-client-config.xml</filename> file.
- </para>
- <para>
- Refer to <ulink type="http" url="http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported">http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported</ulink> for more information.
- </para>
+ <para>
+ A workaround for this issue involves editing the <parameter>chunksize</parameter> setting in the <filename>standard-jaxws-client-config.xml</filename> file.
+ </para>
+
+ <para>
+ Refer to <ulink type="http" url="http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported">http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported</ulink> for more information.
+ </para>
</important>
+
<section id="sect-Reference_Guide-Configuring_a_Remote_Producer-The_Configuration_Portlet">
- <title>The Configuration Portlet</title>
- <para>
- JBoss Enterprise Portal Platform provides a graphical portlet to assist with configuring access to, and other facets of, remote WSRP Producers.
- </para>
- <para>
- It is available at: <ulink type="http" url="http://localhost:8080/portal/login?initialURI=%2Fportal%2Fprivate%2Fclass..."></ulink>.
- </para>
- <para>
- The portlet also is a group page for /platform/administrators
- </para>
- <para>
- Although the Configuration Portlet is installed by default in JBoss Enterprise Portal Platform &VY;., installation instructions are included below should the portlet ever need to be re-installed:
- </para>
- <procedure>
- <title><emphasis role="bold">Installing the configuration portlet:</emphasis></title>
- <step>
- <para>
- Log into the portal as an administrator and go to the Application Registry (Click <ulink url="http://localhost:8080/portal/private/classic/administration/registry">http://localhost:8080/portal/private/classic/administration/registry</ulink> if using the default installation).
- </para>
- </step>
- <step>
- <para>
- Add the WSRP Configuration portlet to the Administration category. If the Import Applications functionality is used, the WSRP Configuration portlet will be automatically added to the Administration category.
- </para>
- </step>
- <step>
- <para>
- Once the portlet is added to a category, it can be added to a page and used. It is recommended that it be added to the same page as the Application Registry (as other operations relating to WSRP and adding portlets to categories are somewhat related). Add the WSRP Configuration portlet to the page using the standard procedure.
+ <title>The Configuration Portlet</title>
+
+ <para>
+ JBoss Enterprise Portal Platform provides a graphical portlet to assist with configuring access to, and other facets of, remote WSRP Producers.
</para>
- </step>
- </procedure>
-
- <section id="sect-Reference_Guide-Configuring_a_Remote_Producer-The_Configuration_Portlet-Using_the_Configuration_Portlet">
- <title><emphasis role="bold">Using the Configuration portlet</emphasis></title>
+
+ <para>
+ It is available at: <ulink type="http" url="http://localhost:8080/portal/login?initialURI=%2Fportal%2Fprivate%2Fclass..."></ulink>.
+ </para>
+
+ <para>
+ The portlet also is a group page for /platform/administrators
+ </para>
+
+ <para>
+ Although the Configuration Portlet is installed by default in JBoss Enterprise Portal Platform &VY;., installation instructions are included below should the portlet ever need to be re-installed:
+ </para>
+
+ <procedure>
+ <title><emphasis role="bold">Installing the configuration portlet:</emphasis></title>
+
+ <step><para>
+ Log into the portal as an administrator and go to the Application Registry (Click <ulink url="http://localhost:8080/portal/private/classic/administration/registry">http://localhost:8080/portal/private/classic/administration/registry</ulink> if using the default installation).
+ </para></step>
+
+ <step><para>
+ Add the WSRP Configuration portlet to the Administration category. If the Import Applications functionality is used, the WSRP Configuration portlet will be automatically added to the Administration category.
+ </para></step>
+
+ <step><para>
+ Once the portlet is added to a category, it can be added to a page and used. It is recommended that it be added to the same page as the Application Registry (as other operations relating to WSRP and adding portlets to categories are somewhat related). Add the WSRP Configuration portlet to the page using the standard procedure.
+ </para></step>
+ </procedure>
+
+ <section id="sect-Reference_Guide-Configuring_a_Remote_Producer-The_Configuration_Portlet-Using_the_Configuration_Portlet">
+ <title><emphasis role="bold">Using the Configuration portlet</emphasis></title>
+
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="images/WSRP/config_init.png" format="PNG" scale="120" />
</imageobject>
+
<imageobject role="fo">
<imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_init.png" format="PNG" />
</imageobject>
</mediaobject>
+
<para>
This screen presents all the configured consumers associated with their status and possible actions on them.
</para>
+
<para>
A Consumer can be active or inactive. Activating a Consumer means that it is ready to act as a portlet provider.
</para>
+
<para>
Note also that a Consumer can be marked as requiring <emphasis>refresh</emphasis>, which means that the information held about it might not be up to date. Refreshing it from the remote Producer will update this information.
</para>
+
<para>
This can happen for several reasons: the service description for that remote Producer has not been fetched yet, the cached version has expired or modifications have been made to the configuration that could potentially invalidate it, thus requiring re-validation of the information.
</para>
+
<para>
To create a new Consumer:
</para>
+
<procedure>
<title><emphasis role="bold">Creating a Consumer</emphasis></title>
- <step>
- <para>
+
+ <step><para>
Type "<literal> oracle</literal>" into the "<emphasis role="bold">Create a consumer named:</emphasis>" field.
- </para>
- </step>
- <step>
- <para>
+ </para></step>
+
+ <step><para>
Click on "<emphasis role="bold">Create consumer</emphasis>" to create a new Consumer called <literal>oracle</literal>.
- </para>
- <mediaobject>
+ </para> <mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="images/WSRP/config_create.png" format="PNG" scale="100" />
</imageobject>
+
<imageobject role="fo">
<imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_create.png" format="PNG" />
</imageobject>
- </mediaobject>
- </step>
- <step>
- <para>
+ </mediaobject></step>
+
+ <step><para>
In the next form, set the cache expiration value to <parameter>300</parameter> seconds.
- </para>
- </step>
- <step>
- <para>
+ </para></step>
+
+ <step><para>
Leave the default timeout value for web services (WS) operations.
- </para>
- </step>
- <step>
- <para>
+ </para></step>
+
+ <step><para>
Enter the WSDL URL for the producer in the text field.
- </para>
- </step>
- <step>
- <para>
+ </para></step>
+
+ <step><para>
Press the "Refresh & Save" button:
- </para>
- <mediaobject>
+ </para> <mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="images/WSRP/config_wsdl.png" format="PNG" scale="120" />
</imageobject>
+
<imageobject role="fo">
<imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_wsdl.png" format="PNG" />
</imageobject>
- </mediaobject>
- </step>
+ </mediaobject></step>
</procedure>
-
+
<para>
This will retrieve the service description associated with the Producer which WSRP interface is described by the WSDL file found at the URL entered.
</para>
+
<para>
In this case, querying the service description will show that the Producer requires registration but did not request any registration property:
</para>
+
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="images/WSRP/config_refresh.png" format="PNG" scale="120" />
</imageobject>
+
<imageobject role="fo">
<imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_refresh.png" format="PNG" />
</imageobject>
</mediaobject>
+
<para>
The Consumer for the <literal>oracle</literal> Producer should now be available as a portlet provider and be ready to be used.
</para>
+
<para>
Assuming that the producer required a value for an <literal>email</literal> registration property, JBoss Enterprise Portal Platform's WSRP consumer will report that some information was missing:
</para>
+
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="images/WSRP/config_missing.png" format="PNG" scale="120" />
</imageobject>
+
<imageobject role="fo">
<imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_missing.png" format="PNG" />
</imageobject>
</mediaobject>
+
<note>
<title>Values</title>
+
<para>
As at this release there is no automated way to learn about which possible values (if any) are expected by the remote Producer. Possible values may be indicated in the registration property description but this is not always the case. Refer to the specific Producer's documentation.
</para>
</note>
+
<para>
Enter an address for the registration property ("<literal>example(a)example.com</literal>") and press "<emphasis role="bold">Save & Refresh</emphasis>" once more:
</para>
+
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="images/WSRP/config_end.png" format="PNG" scale="120" />
</imageobject>
+
<imageobject role="fo">
<imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_end.png" format="PNG" />
</imageobject>
</mediaobject>
+ </section>
</section>
- </section>
-
-
+
<section id="sect-Reference_Guide-Configuring_a_Remote_Producer-Using_XML">
- <title>Using XML</title>
- <para>
- Although using the WSRP Configuration portlet to configure Consumers is recommended, the WSRP component provides an alternative way to configure consumers.
- </para>
- <para>
- This is done by editing the XML file located at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
- </para>
+ <title>Using XML</title>
+ <para>
+ Although using the WSRP Configuration portlet to configure Consumers is recommended, the WSRP component provides an alternative way to configure consumers.
+ </para>
+
+ <para>
+ This is done by editing the XML file located at <filename>extension-component-<replaceable><PORTAL_VERSION></replaceable>.jar/conf/wsrp-consumers-config.xml</filename> in your JBoss AS deploy directory.
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default257.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The file as shown above specifies access to two producers: <literal>self</literal>, which consumes JBoss Enterprise Portal Platform's own WSRP producer (albeit in a version that assumes that the producer requires a value for an <literal>email</literal> registration property), and <literal>oracle</literal>, which consumes Oracle's public producer, both in configurations as shown in the procedure above.
- </para>
- <note>
- <para>
- An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
- </para>
- </note>
+ <para>
+ The file as shown above specifies access to two producers: <literal>self</literal>, which consumes JBoss Enterprise Portal Platform's own WSRP producer (albeit in a version that assumes that the producer requires a value for an <literal>email</literal> registration property), and <literal>oracle</literal>, which consumes Oracle's public producer, both in configurations as shown in the procedure above.
+ </para>
+
+ <note>
+ <para>
+ An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
+ </para>
+ </note>
</section>
-
+
<section id="sect-Reference_Guide-Configuring_a_Remote_Producer-Adding_remote_portlets_to_categories">
- <title>Adding remote portlets to categories</title>
- <para>
- Clicking on the Portlet link in the Application Registry will now show the remote portlets in the <emphasis role="bold">REMOTE</emphasis> tab in the left column:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/remote_portlets.png" format="PNG" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/remote_portlets.png" format="PNG" />
- </imageobject>
- </mediaobject>
- <para>
- These portlets are available to be used as regular portlets: they can be used in categories and added to pages. Using the Import Applications functionality will also automatically import them into categories based on the keywords they define.
- </para>
- <para>
- More specifically, to add a <emphasis>WSRP</emphasis> portlet to a category, select <literal>wsrp</literal> in the Application Type drop-down menu:
- </para>
- <mediaobject>
- <imageobject>
- <imagedata align="center" fileref="images/WSRP/remote_portlets_category.png" format="PNG" scalefit="1" valign="middle" />
- </imageobject>
- </mediaobject>
+ <title>Adding remote portlets to categories</title>
+
+ <para>
+ Clicking on the Portlet link in the Application Registry will now show the remote portlets in the <emphasis role="bold">REMOTE</emphasis> tab in the left column:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/remote_portlets.png" format="PNG" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/remote_portlets.png" format="PNG" />
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ These portlets are available to be used as regular portlets: they can be used in categories and added to pages. Using the Import Applications functionality will also automatically import them into categories based on the keywords they define.
+ </para>
+
+ <para>
+ More specifically, to add a <emphasis>WSRP</emphasis> portlet to a category, select <literal>wsrp</literal> in the Application Type drop-down menu:
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="images/WSRP/remote_portlets_category.png" format="PNG" scalefit="1" valign="middle" />
+ </imageobject>
+ </mediaobject>
</section>
-
- </section>
-
- <section id="sect-Reference_Guide-Consuming_Remote_WSRP_Portlets-Configuring_Access_to_Remote_Producers_via_XML">
+ </section>
+
+ <section id="sect-Reference_Guide-Consuming_Remote_WSRP_Portlets-Configuring_Access_to_Remote_Producers_via_XML">
<title>Configuring Access to Remote Producers via XML</title>
+
<para>
- Again, configuring consumers via XML is done by editing <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
+ Again, configuring consumers via XML is done by editing <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
</para>
+
<note>
- <title>XML Elements</title>
- <para>
- An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
- </para>
+ <title>XML Elements</title>
+
+ <para>
+ An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
+ </para>
</note>
+
<note>
- <title>The Consumer Configuration file</title>
- <para>
- It is important to understand how the XML Consumers configuration file is processed. It is read the first time the WSRP service starts and the associated information is then put under control of the JCR (Java Content Repository).
- </para>
- <para>
- Subsequent launches of the WSRP service will use the JCR-stored information for all producers that are already known to JBoss Enterprise Portal Platform. More specifically, the <filename>wsrp-consumers-config.xml</filename> file is scanned for producer identifiers. Any identifier that is already known will be bypassed and the JCR information associated with this remote producer will be used.
- </para>
- <para>
- The information defined at the XML level is only processed for producer definition for which no information is already present in the JCR.
- </para>
- <para>
- Therefore, to delete a Producer configuration, the associated information in the database must be deleted (this can be accomplished using the configuration portlet as shown in <xref linkend="sect-Reference_Guide-Configuring_a_Remote_Producer-The_Configuration_Portlet" />).
- </para>
- <para>
- The associated information in <filename>wsrp-consumers-config.xml</filename> (if such information exists) must also be removed, otherwise the producer will be re-created the next time the WSRP is launched.
- </para>
+ <title>The Consumer Configuration file</title>
+
+ <para>
+ It is important to understand how the XML Consumers configuration file is processed. It is read the first time the WSRP service starts and the associated information is then put under control of the JCR (Java Content Repository).
+ </para>
+
+ <para>
+ Subsequent launches of the WSRP service will use the JCR-stored information for all producers that are already known to JBoss Enterprise Portal Platform. More specifically, the <filename>wsrp-consumers-config.xml</filename> file is scanned for producer identifiers. Any identifier that is already known will be bypassed and the JCR information associated with this remote producer will be used.
+ </para>
+
+ <para>
+ The information defined at the XML level is only processed for producer definition for which no information is already present in the JCR.
+ </para>
+
+ <para>
+ Therefore, to delete a Producer configuration, the associated information in the database must be deleted (this can be accomplished using the configuration portlet as shown in <xref linkend="sect-Reference_Guide-Configuring_a_Remote_Producer-The_Configuration_Portlet" />).
+ </para>
+
+ <para>
+ The associated information in <filename>wsrp-consumers-config.xml</filename> (if such information exists) must also be removed, otherwise the producer will be re-created the next time the WSRP is launched.
+ </para>
</note>
+
<section id="sect-Reference_Guide-Configuring_Access_to_Remote_Producers_via_XML-Required_Configuration_Information">
- <title>Required Configuration Information</title>
- <para>
- The following information needs to be provided to configure access to a remote Producer:
- </para>
- <orderedlist>
- <listitem>
+ <title>Required Configuration Information</title>
+
+ <para>
+ The following information needs to be provided to configure access to a remote Producer:
+ </para>
+
+ <orderedlist>
+ <listitem>
+ <para>
+ An identifier must be provided for the producer being configured so that it can be referred to later. This is done in the mandatory <literal>id</literal> attribute of the <literal><wsrp-producer></literal> element.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ JBoss Enterprise Portal Platform also needs to know about the remote Producer's endpoints to be able to connect to the remote web services and perform WSRP invocations. Use the <literal><endpoint-wsdl-url></literal> element to specify the URL for the WSDL description of the remote WSRP service.
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <para>
+ Both the <literal>id</literal> attribute and <literal><endpoint-wsdl-url></literal> elements are required for a functional remote producer configuration.
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide-Configuring_Access_to_Remote_Producers_via_XML-Optional_Configuration">
+ <title>Optional Configuration</title>
+
+ <para>
+ It is also possible to provide additional configuration, which, in some cases, might be important to establish a proper connection to the remote producer.
+ </para>
+
+ <variablelist id="vari-Reference_Guide-Optional_Configuration-Optional_Configurations">
+ <title>Optional Configurations</title>
+
+ <varlistentry>
+ <term>Caching</term>
+
+ <listitem>
<para>
- An identifier must be provided for the producer being configured so that it can be referred to later. This is done in the mandatory <literal>id</literal> attribute of the <literal><wsrp-producer></literal> element.
+ To prevent unnecessary traffic between the local consumer and the remote producer, it is possible to cache some of the information sent by the producer (such as the list of offered portlets) for a given duration.
</para>
- </listitem>
- <listitem>
+
<para>
- JBoss Enterprise Portal Platform also needs to know about the remote Producer's endpoints to be able to connect to the remote web services and perform WSRP invocations. Use the <literal><endpoint-wsdl-url></literal> element to specify the URL for the WSDL description of the remote WSRP service.
+ The rate at which the information is refreshed is defined by the <literal>expiration-cache</literal> attribute of the <literal><wsrp-producer></literal> element (in seconds).
</para>
- </listitem>
- </orderedlist>
- <para>
- Both the <literal>id</literal> attribute and <literal><endpoint-wsdl-url></literal> elements are required for a functional remote producer configuration.
- </para>
- </section>
-
-
- <section id="sect-Reference_Guide-Configuring_Access_to_Remote_Producers_via_XML-Optional_Configuration">
- <title>Optional Configuration</title>
- <para>
- It is also possible to provide additional configuration, which, in some cases, might be important to establish a proper connection to the remote producer.
- </para>
- <variablelist id="vari-Reference_Guide-Optional_Configuration-Optional_Configurations">
- <title>Optional Configurations</title>
- <varlistentry>
- <term>Caching</term>
- <listitem>
- <para>
- To prevent unnecessary traffic between the local consumer and the remote producer, it is possible to cache some of the information sent by the producer (such as the list of offered portlets) for a given duration.
- </para>
- <para>
- The rate at which the information is refreshed is defined by the <literal>expiration-cache</literal> attribute of the <literal><wsrp-producer></literal> element (in seconds).
- </para>
- <para>
- For example; providing a value of <literal>120</literal> for expiration-cache means that the producer information will not be refreshed for 2 minutes after it has been accessed. If no value is provided, JBoss Enterprise Portal Platform will always access the remote producer regardless of whether the remote information has changed or not.
- </para>
- <para>
- Since, in most instances, the information provided by the producer does not change often, use of this caching facility to minimize bandwidth usage is recommended.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>WS Timeout</term>
+
+ <para>
+ For example; providing a value of <literal>120</literal> for expiration-cache means that the producer information will not be refreshed for 2 minutes after it has been accessed. If no value is provided, JBoss Enterprise Portal Platform will always access the remote producer regardless of whether the remote information has changed or not.
+ </para>
+
+ <para>
+ Since, in most instances, the information provided by the producer does not change often, use of this caching facility to minimize bandwidth usage is recommended.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>WS Timeout</term>
+
<listitem>
<para>
It is also possible to define a timeout after which WS operations are considered as failed. This is helpful to avoid blocking the WSRP service, as it waits on a service that does not answer.
</para>
+
<para>
Use the <literal>ws-timeout</literal> attribute of the <literal><wsrp-producer></literal> element to specify how many milliseconds the WSRP service will wait for a response from the remote producer before timing out.
</para>
</listitem>
- </varlistentry>
- <varlistentry>
- <term>Pre-registration information</term>
- <listitem>
- <para>
- Some producers require consumers to register with them before authorizing them to access their offered portlets. If known, some registration information can be provided in the producer configuration beforehand, so that the consumer can register with the remote producer when required.
- </para>
- <note>
- <para>
- Only simple String properties are supported. It is not possible to configure complex registration data. However, this should be sufficient for most cases.
- </para>
- </note>
- <para>
- This pre-registration configuration is done via the <literal><registration-data></literal> element.
- </para>
- <para>
- If the remote producer does not require any registration properties, only an empty <literal><registration-data></literal> element need be provided, as JBoss Enterprise Portal Platform can generate the mandatory information.
- </para>
- <para>
- Values for the registration properties required by the remote producer can be provided via <literal><property></literal> elements. Refer to the example below for more details.
- </para>
- <para>
- Additionally, the default consumer name automatically provided by JBoss Enterprise Portal Platform can be overridden via the <literal><consumer-name></literal> element. When providing a consumer name, please remember that it should uniquely identify your consumer.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Pre-registration information</term>
+
+ <listitem>
+ <para>
+ Some producers require consumers to register with them before authorizing them to access their offered portlets. If known, some registration information can be provided in the producer configuration beforehand, so that the consumer can register with the remote producer when required.
+ </para>
+
+ <note>
+ <para>
+ Only simple String properties are supported. It is not possible to configure complex registration data. However, this should be sufficient for most cases.
+ </para>
+ </note>
+
+ <para>
+ This pre-registration configuration is done via the <literal><registration-data></literal> element.
+ </para>
+
+ <para>
+ If the remote producer does not require any registration properties, only an empty <literal><registration-data></literal> element need be provided, as JBoss Enterprise Portal Platform can generate the mandatory information.
+ </para>
+
+ <para>
+ Values for the registration properties required by the remote producer can be provided via <literal><property></literal> elements. Refer to the example below for more details.
+ </para>
+
+ <para>
+ Additionally, the default consumer name automatically provided by JBoss Enterprise Portal Platform can be overridden via the <literal><consumer-name></literal> element. When providing a consumer name, please remember that it should uniquely identify your consumer.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</section>
-
- </section>
-
-
- <section id="sect-Reference_Guide-Consuming_Remote_WSRP_Portlets-Examples">
+ </section>
+
+ <section id="sect-Reference_Guide-Consuming_Remote_WSRP_Portlets-Examples">
<title>Examples</title>
+
<para>
- This is the configuration of the <literal>selfv1</literal> and <literal>selfv2</literal> consumers as found in <filename>default-wsrp.xml</filename> with a cache expiring every five minutes and with a 30 second timeout for web service operations:
+ This is the configuration of the <literal>selfv1</literal> and <literal>selfv2</literal> consumers as found in <filename>default-wsrp.xml</filename> with a cache expiring every five minutes and with a 30 second timeout for web service operations:
</para>
-
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default258.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
<para>
- This is an example of a WSRP descriptor with registration data and cache expiring every minute:
+ This is an example of a WSRP descriptor with registration data and cache expiring every minute:
</para>
-
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default259.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- </section>
-
- </section>
-
-
- <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consumers_Maintenance">
- <title>Consumers Maintenance</title>
- <section id="sect-Reference_Guide-Consumers_Maintenance-Modifying_a_Currently_Held_Registration">
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consumers_Maintenance">
+ <title>Consumers Maintenance</title>
+
+ <section id="sect-Reference_Guide-Consumers_Maintenance-Modifying_a_Currently_Held_Registration">
<title>Modifying a Currently Held Registration</title>
+
<section id="sect-Reference_Guide-Modifying_a_Currently_Held_Registration-Registration_Modification_for_Service_Upgrade">
- <title>Registration Modification for Service Upgrade</title>
- <para>
- Producers often offer several levels of service depending on consumers' subscription levels (for example). This is implemented at the WSRP level with the registration concept: producers can assert which level of service to provide to consumers based on the values of given registration properties.
- </para>
- <para>
- There may also be cases where the registration information has changed and must be updated. For example, the producer required you to provide a valid email and the previous email address is not valid anymore and needs to be updated.
- </para>
- <para>
- Therefore at times it may be necessary to modify the registration that sets the service agreement between a consumer and a producer.
- </para>
- <para>
- For example; the producer requiring an email that was configured in <xref linkend="sect-Reference_Guide-Configuring_a_Remote_Producer-The_Configuration_Portlet" />. In that case the producer was requiring registration and required a value to be provided for the <literal>email</literal> property.
- </para>
- <para>
- To update the email address that was provided, the remote producer must be informed that some registration data has been modified.
- </para>
- <para>
- The following procedure assumes access to the producer has been configured as previously described.
- </para>
- <procedure>
- <step>
- <para>
- Go to the configuration screen for the <literal>self</literal> producer and change the value of <literal>email</literal> to <literal>foo(a)example.com</literal> instead of <literal>example(a)example.com</literal>:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_start.png" format="PNG" scale="100" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_start.png" format="PNG" />
- </imageobject>
- </mediaobject>
- </step>
- <step>
- <para>
- Click on "<emphasis role="bold">Update properties</emphasis>" to save the change. A "<emphasis role="bold">Modify registration</emphasis>" button should now appear to let you send this new data to the remote producer:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_modify.png" format="PNG" scale="100" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_modify.png" format="PNG" />
- </imageobject>
- </mediaobject>
- </step>
- <step>
- <para>
- Click on <emphasis role="bold">Modify registration</emphasis> and, if the updated registration details have been accepted by the remote producer the following should appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_end.png" format="PNG" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_end.png" format="PNG" />
- </imageobject>
- </mediaobject>
- </step>
- </procedure>
+ <title>Registration Modification for Service Upgrade</title>
+
+ <para>
+ Producers often offer several levels of service depending on consumers' subscription levels (for example). This is implemented at the WSRP level with the registration concept: producers can assert which level of service to provide to consumers based on the values of given registration properties.
+ </para>
+
+ <para>
+ There may also be cases where the registration information has changed and must be updated. For example, the producer required you to provide a valid email and the previous email address is not valid anymore and needs to be updated.
+ </para>
+
+ <para>
+ Therefore at times it may be necessary to modify the registration that sets the service agreement between a consumer and a producer.
+ </para>
+
+ <para>
+ For example; the producer requiring an email that was configured in <xref linkend="sect-Reference_Guide-Configuring_a_Remote_Producer-The_Configuration_Portlet" />. In that case the producer was requiring registration and required a value to be provided for the <literal>email</literal> property.
+ </para>
+
+ <para>
+ To update the email address that was provided, the remote producer must be informed that some registration data has been modified.
+ </para>
+
+ <para>
+ The following procedure assumes access to the producer has been configured as previously described.
+ </para>
+
+ <procedure>
+ <step><para>
+ Go to the configuration screen for the <literal>self</literal> producer and change the value of <literal>email</literal> to <literal>foo(a)example.com</literal> instead of <literal>example(a)example.com</literal>:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_start.png" format="PNG" scale="100" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_start.png" format="PNG" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ Click on "<emphasis role="bold">Update properties</emphasis>" to save the change. A "<emphasis role="bold">Modify registration</emphasis>" button should now appear to let you send this new data to the remote producer:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_modify.png" format="PNG" scale="100" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_modify.png" format="PNG" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ Click on <emphasis role="bold">Modify registration</emphasis> and, if the updated registration details have been accepted by the remote producer the following should appear:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_end.png" format="PNG" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_end.png" format="PNG" />
+ </imageobject>
+ </mediaobject></step>
+ </procedure>
</section>
-
-
+
<section id="sect-Reference_Guide-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error">
- <title>Registration Modification on Producer Error</title>
- <para>
- If a Producer administrator changes the requirements for registered consumers, invoking operations on the producer may fail with an <exceptionname>OperationFailedFault</exceptionname>. JBoss Enterprise Portal Platform will attempt to assist in these cases.
- </para>
- <para>
- This section will discuss an example using the <literal>self</literal> producer.
- </para>
- <para>
- Assuming that the registration requires a valid value for an <literal>email</literal> registration property (as has been shown) the configuration screen for this producer should show:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_self.png" format="PNG" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_self.png" format="PNG" />
- </imageobject>
- </mediaobject>
- <para>
- If the administrator of the producer now requires an additional value to be provided for a <literal>name</literal> registration property operations with this producer will fail.
- </para>
- <para>
- If a registration modification is required, go to the configuration screen for this remote producer and refresh the information held by the consumer by pressing "<emphasis role="bold">Refresh & Save</emphasis>":
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_self.png" format="PNG" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self.png" format="PNG" />
- </imageobject>
- </mediaobject>
- <para>
- The configuration screen now shows the currently held registration information and the expected information from the producer.
- </para>
- <para>
- Enter a value for the <literal>name</literal> property and then click on "<emphasis role="bold">Modify registration</emphasis>". If the producer accepts the new registration data, the following screen will appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" />
- </imageobject>
- </mediaobject>
- <note>
- <title><emphasis role="bold">JBoss Enterprise Portal Platform &VY; and WSRP 1 Exceptions</emphasis></title>
- <para>
- In WSRP 1, it can be difficult to ascertain what caused an <exceptionname>OperationFailedFault</exceptionname> as it is a generic exception returned by producers during a failed method invocation.
- </para>
- <para>
- An <exceptionname>OperationFailedFault</exceptionname> failure can be caused by several different reasons, one of them being a request to modify the registration data.
- </para>
- <para>
- In these instances examining the log files may assist in gathering more information about the problem.
- </para>
- <para>
- WSRP 2 introduces an exception that is specific to a request to modify registrations which reduces the ambiguity that currently exists.
- </para>
- </note>
+ <title>Registration Modification on Producer Error</title>
+
+ <para>
+ If a Producer administrator changes the requirements for registered consumers, invoking operations on the producer may fail with an
+ <exceptionname>
+ OperationFailedFault
+ </exceptionname>
+ . JBoss Enterprise Portal Platform will attempt to assist in these cases.
+ </para>
+
+ <para>
+ This section will discuss an example using the <literal>self</literal> producer.
+ </para>
+
+ <para>
+ Assuming that the registration requires a valid value for an <literal>email</literal> registration property (as has been shown) the configuration screen for this producer should show:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_self.png" format="PNG" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_self.png" format="PNG" />
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ If the administrator of the producer now requires an additional value to be provided for a <literal>name</literal> registration property operations with this producer will fail.
+ </para>
+
+ <para>
+ If a registration modification is required, go to the configuration screen for this remote producer and refresh the information held by the consumer by pressing "<emphasis role="bold">Refresh & Save</emphasis>":
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_self.png" format="PNG" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self.png" format="PNG" />
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ The configuration screen now shows the currently held registration information and the expected information from the producer.
+ </para>
+
+ <para>
+ Enter a value for the <literal>name</literal> property and then click on "<emphasis role="bold">Modify registration</emphasis>". If the producer accepts the new registration data, the following screen will appear:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" />
+ </imageobject>
+ </mediaobject>
+
+ <note>
+ <title><emphasis role="bold">JBoss Enterprise Portal Platform &VY; and WSRP 1 Exceptions</emphasis></title>
+
+ <para>
+ In WSRP 1, it can be difficult to ascertain what caused an
+ <exceptionname>
+ OperationFailedFault
+ </exceptionname>
+ as it is a generic exception returned by producers during a failed method invocation.
+ </para>
+
+ <para>
+ An
+ <exceptionname>
+ OperationFailedFault
+ </exceptionname>
+ failure can be caused by several different reasons, one of them being a request to modify the registration data.
+ </para>
+
+ <para>
+ In these instances examining the log files may assist in gathering more information about the problem.
+ </para>
+
+ <para>
+ WSRP 2 introduces an exception that is specific to a request to modify registrations which reduces the ambiguity that currently exists.
+ </para>
+ </note>
</section>
-
- </section>
-
-
- <section id="sect-Reference_Guide-Consumers_Maintenance-Consumer_Operations">
+ </section>
+
+ <section id="sect-Reference_Guide-Consumers_Maintenance-Consumer_Operations">
<title>Consumer Operations</title>
+
<para>
- Several operations are available from the consumer list view of the WSRP configuration portlet:
+ Several operations are available from the consumer list view of the WSRP configuration portlet:
</para>
+
<mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/consumer_operations.png" format="PNG" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/consumer_operations.png" format="PNG" />
- </imageobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/consumer_operations.png" format="PNG" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/consumer_operations.png" format="PNG" />
+ </imageobject>
</mediaobject>
+
<para>
- The available operations are:
+ The available operations are:
</para>
+
<variablelist>
- <varlistentry>
- <term>Configure</term>
- <listitem>
- <para>
- Displays the consumer details and allows user to edit them.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Refresh</term>
- <listitem>
- <para>
- Forces the consumer to retrieve the service description from the remote producer to refresh the local information (such as offered portlets, registration information).
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Activate/Deactivate</term>
- <listitem>
- <para>
- Activates or deactivates a consumer, governing whether it will be available to provide portlets and receive portlet invocations.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Register/De-register</term>
- <listitem>
- <para>
- Registers or de-registers a consumer based on whether registration is required and/or acquired.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Delete</term>
- <listitem>
- <para>
- Destroys the consumer, after de-registering it if it was registered.
- </para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>Configure</term>
+
+ <listitem>
+ <para>
+ Displays the consumer details and allows user to edit them.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Refresh</term>
+
+ <listitem>
+ <para>
+ Forces the consumer to retrieve the service description from the remote producer to refresh the local information (such as offered portlets, registration information).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Activate/Deactivate</term>
+
+ <listitem>
+ <para>
+ Activates or deactivates a consumer, governing whether it will be available to provide portlets and receive portlet invocations.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Register/De-register</term>
+
+ <listitem>
+ <para>
+ Registers or de-registers a consumer based on whether registration is required and/or acquired.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Delete</term>
+
+ <listitem>
+ <para>
+ Destroys the consumer, after de-registering it if it was registered.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
- <formalpara>
- <title><emphasis role="bold">Additional Functionalities in WSRP 2.0</emphasis></title>
- <para>
- In addition to those listed above, the WSRP 2.0 implementation in JBoss Enterprise Portal Platform &VY; also includes the following functions:
- </para>
- </formalpara>
- <variablelist>
- <title>Additional Functions:</title>
- <varlistentry>
- <term>Export</term>
+
+ <formalpara>
+ <title><emphasis role="bold">Additional Functionalities in WSRP 2.0</emphasis></title> <para>
+ In addition to those listed above, the WSRP 2.0 implementation in JBoss Enterprise Portal Platform &VY; also includes the following functions:
+ </para>
+ </formalpara>
+
+ <variablelist>
+ <title>Additional Functions:</title>
+
+ <varlistentry>
+ <term>Export</term>
+
<listitem>
<para>
Exports some or all of the consumer's portlets to be able to later import them in a different context
</para>
</listitem>
- </varlistentry>
- <varlistentry>
- <term>Import</term>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Import</term>
+
<listitem>
<para>
Imports some or all of previously exported portlets.
</para>
</listitem>
- </varlistentry>
- </variablelist>
- <section>
- <title><emphasis role="bold">Importing and Exporting Portlets</emphasis></title>
+ </varlistentry>
+ </variablelist>
+
+ <section>
+ <title><emphasis role="bold">Importing and Exporting Portlets</emphasis></title>
+
<para>
Import and export are new functionalities added in WSRP 2.
</para>
+
<para>
Exporting a portlet allows a consumer to get an opaque representation of the portlet which can then be use by the corresponding import operation to reconstitute it.
</para>
+
<para>
This is mostly used in migration scenarios during batch operations. Since JBoss Enterprise Portal Platform does not currently support automated migration of portal data, the functionality provided as part of WSRP 2 is necessarily less complete than it could be with full portal support.
</para>
+
<para>
The import/export implementation in JBoss Enterprise Portal Platform allows users to export portlets from a given consumer and then import them back to replace existing portlets assigned to windows on pages by the previously exported portlets.
</para>
+
<procedure>
<title></title>
- <step>
- <para>
- Click on the "<guilabel>Export</guilabel>" action for a given consumer to display the list of portlets currently made available by this specific consumer. An example list is shown below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata fileref="images/WSRP/export_portlet_list.png" format="PNG" align="center" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata fileref="images/WSRP/export_portlet_list.png" format="PNG" align="center" contentwidth="150mm" />
- </imageobject>
- </mediaobject>
- </step>
- <step>
- <para>
- Once portlets have been selected, they can be exported by clicking on the "<guilabel>Export</guilabel>" button. This makes them available for later import:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata fileref="images/WSRP/export_done.png" format="PNG" align="center" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata fileref="images/WSRP/export_done.png" format="PNG" align="center" contentwidth="150mm" />
- </imageobject>
- </mediaobject>
- </step>
- <step>
- <para>
- The portlets can be re-imported directly by pressing the "<guilabel>Use for import</guilabel>" button or, on the Consumers list page, using the "<guilabel>Import</guilabel>" action for a given consumer.
- </para>
- <para>
- The example below assumes that the second option has been used and that several sets of previously exported portlets are available to import from. After clicking the action link, a screen similar to the one below should appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata fileref="images/WSRP/export_list.png" format="PNG" align="center" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata fileref="images/WSRP/export_list.png" format="PNG" align="center" contentwidth="150mm" />
- </imageobject>
- </mediaobject>
- <para>
- This screen presents the list of available exports with available operations for each.
- </para>
- <variablelist>
- <title>Operations:</title>
- <varlistentry>
- <term>View</term>
- <listitem>
- <para>
- Displays the export details as previously seen when the export was first performed.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Delete</term>
- <listitem>
- <para>
- Deletes the selected export, asking you for confirmation first.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Use for import</term>
- <listitem>
- <para>
- Selects the export to import portlets from.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </step>
- <step>
- <para>
- Once you have selected an export to import from, you will see a screen similar to the one below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata fileref="images/WSRP/import_start.png" format="PNG" align="center" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata fileref="images/WSRP/import_start.png" format="PNG" align="center" contentwidth="150mm" />
- </imageobject>
- </mediaobject>
- <para>
- The screen displays the list of available exported portlets for the previously selected export. You can select which portlet you want to import by checking the checkbox next to its name.
- </para>
- </step>
- <step>
- <para>
- Select the content of which window the imported portlet will replace. This process is done in three steps:
- </para>
- <para>
- This example assumes that you have the following page called <literal>page1</literal> which contains two windows called <literal>NetUnity WSRP 2 Interop - Cache Markup (remote)</literal> and <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal>, as shown below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata fileref="images/WSRP/import_original_page.png" format="PNG" align="center" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata fileref="images/WSRP/import_original_page.png" format="PNG" align="center" contentwidth="150mm" />
- </imageobject>
- </mediaobject>
- <para>
- In this example, we want to replace the content of the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> with the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet that was previously exported.
- </para>
- <procedure>
- <title></title>
- <step>
- <para>
- Check the box next to the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet name to indicate that you want to import its data.
- </para>
- </step>
- <step>
- <para>
- Select <literal>page1</literal> in the list of available pages. The screen will then refresh to display the list of available windows on that page, similar to the image below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata fileref="images/WSRP/import_selected_page.png" format="PNG" align="center" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata fileref="images/WSRP/import_selected_page.png" format="PNG" align="center" contentwidth="150mm" />
- </imageobject>
- </mediaobject>
- <note>
- <title>Note</title>
- <para>
- At this point, you still need to select which window content you want to replace before being able to complete the import operation
- </para>
- </note>
- </step>
- <step>
- <para>
- Select the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window, which enables the "<guilabel>Import</guilabel>" button. This indicates that all the necessary data to perform the import is available.
- </para>
- </step>
- <step>
- <para>
- Click the "<guilabel>Import</guilabel>" button. A screen similar to the one below will appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata fileref="images/WSRP/import_success.png" format="PNG" align="center" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata fileref="images/WSRP/import_success.png" format="PNG" align="center" contentwidth="150mm" />
- </imageobject>
- </mediaobject>
- </step>
- </procedure>
- </step>
- <step>
- <para>
- The <literal>page1</literal> page should now show that the content of <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window has been replaced by the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> imported portlet and that the window has been renamed appropriately.
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata fileref="images/WSRP/import_modified_page.png" format="PNG" align="center" scale="120" />
- </imageobject>
- <imageobject role="fo">
- <imagedata fileref="images/WSRP/import_modified_page.png" format="PNG" align="center" contentwidth="150mm" />
- </imageobject>
- </mediaobject>
- </step>
+
+ <step><para>
+ Click on the "<guilabel>Export</guilabel>" action for a given consumer to display the list of portlets currently made available by this specific consumer. An example list is shown below:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata fileref="images/WSRP/export_portlet_list.png" format="PNG" align="center" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata fileref="images/WSRP/export_portlet_list.png" format="PNG" align="center" contentwidth="150mm" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ Once portlets have been selected, they can be exported by clicking on the "<guilabel>Export</guilabel>" button. This makes them available for later import:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata fileref="images/WSRP/export_done.png" format="PNG" align="center" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata fileref="images/WSRP/export_done.png" format="PNG" align="center" contentwidth="150mm" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ The portlets can be re-imported directly by pressing the "<guilabel>Use for import</guilabel>" button or, on the Consumers list page, using the "<guilabel>Import</guilabel>" action for a given consumer.
+ </para> <para>
+ The example below assumes that the second option has been used and that several sets of previously exported portlets are available to import from. After clicking the action link, a screen similar to the one below should appear:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata fileref="images/WSRP/export_list.png" format="PNG" align="center" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata fileref="images/WSRP/export_list.png" format="PNG" align="center" contentwidth="150mm" />
+ </imageobject>
+ </mediaobject> <para>
+ This screen presents the list of available exports with available operations for each.
+ </para> <variablelist>
+ <title>Operations:</title>
+
+ <varlistentry>
+ <term>View</term>
+
+ <listitem>
+ <para>
+ Displays the export details as previously seen when the export was first performed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Delete</term>
+
+ <listitem>
+ <para>
+ Deletes the selected export, asking you for confirmation first.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Use for import</term>
+
+ <listitem>
+ <para>
+ Selects the export to import portlets from.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist></step>
+
+ <step><para>
+ Once you have selected an export to import from, you will see a screen similar to the one below:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata fileref="images/WSRP/import_start.png" format="PNG" align="center" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata fileref="images/WSRP/import_start.png" format="PNG" align="center" contentwidth="150mm" />
+ </imageobject>
+ </mediaobject> <para>
+ The screen displays the list of available exported portlets for the previously selected export. You can select which portlet you want to import by checking the checkbox next to its name.
+ </para></step>
+
+ <step><para>
+ Select the content of which window the imported portlet will replace. This process is done in three steps:
+ </para> <para>
+ This example assumes that you have the following page called <literal>page1</literal> which contains two windows called <literal>NetUnity WSRP 2 Interop - Cache Markup (remote)</literal> and <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal>, as shown below:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata fileref="images/WSRP/import_original_page.png" format="PNG" align="center" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata fileref="images/WSRP/import_original_page.png" format="PNG" align="center" contentwidth="150mm" />
+ </imageobject>
+ </mediaobject> <para>
+ In this example, we want to replace the content of the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> with the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet that was previously exported.
+ </para> <procedure>
+ <title></title>
+
+ <step><para>
+ Check the box next to the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet name to indicate that you want to import its data.
+ </para></step>
+
+ <step><para>
+ Select <literal>page1</literal> in the list of available pages. The screen will then refresh to display the list of available windows on that page, similar to the image below:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata fileref="images/WSRP/import_selected_page.png" format="PNG" align="center" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata fileref="images/WSRP/import_selected_page.png" format="PNG" align="center" contentwidth="150mm" />
+ </imageobject>
+ </mediaobject> <note>
+ <title>Note</title>
+
+ <para>
+ At this point, you still need to select which window content you want to replace before being able to complete the import operation
+ </para>
+ </note></step>
+
+ <step><para>
+ Select the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window, which enables the "<guilabel>Import</guilabel>" button. This indicates that all the necessary data to perform the import is available.
+ </para></step>
+
+ <step><para>
+ Click the "<guilabel>Import</guilabel>" button. A screen similar to the one below will appear:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata fileref="images/WSRP/import_success.png" format="PNG" align="center" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata fileref="images/WSRP/import_success.png" format="PNG" align="center" contentwidth="150mm" />
+ </imageobject>
+ </mediaobject></step>
+ </procedure></step>
+
+ <step><para>
+ The <literal>page1</literal> page should now show that the content of <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window has been replaced by the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> imported portlet and that the window has been renamed appropriately.
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata fileref="images/WSRP/import_modified_page.png" format="PNG" align="center" scale="120" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata fileref="images/WSRP/import_modified_page.png" format="PNG" align="center" contentwidth="150mm" />
+ </imageobject>
+ </mediaobject></step>
</procedure>
- </section>
- </section>
-
- <section id="sect-Reference_Guide-Consumers_Maintenance-Erasing_Local_Registration_Data">
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide-Consumers_Maintenance-Erasing_Local_Registration_Data">
<title>Erasing Local Registration Data</title>
+
<para>
- In rare cases, it may be necessary to erase the local data without being able to de-register first.
+ In rare cases, it may be necessary to erase the local data without being able to de-register first.
</para>
+
<para>
- This can occur when a consumer is registered with a producer that has been modified by its administrator to not require registration any longer.
+ This can occur when a consumer is registered with a producer that has been modified by its administrator to not require registration any longer.
</para>
+
<para>
- In this scenario, local registration information can be erased from the consumer to allow it to resume interacting with the remote producer.
+ In this scenario, local registration information can be erased from the consumer to allow it to resume interacting with the remote producer.
</para>
+
<para>
- To do this click on the "<emphasis role="bold">Erase local registration</emphasis>" button next to the registration context information on the consumer configuration screen:
+ To do this click on the "<emphasis role="bold">Erase local registration</emphasis>" button next to the registration context information on the consumer configuration screen:
</para>
+
<mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/erase_registration.png" format="PNG" scale="80" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration.png" format="PNG" />
- </imageobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/erase_registration.png" format="PNG" scale="80" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration.png" format="PNG" />
+ </imageobject>
</mediaobject>
+
<warning>
- <para>
- This operation is dangerous as it can result in inability to interact with the remote producer if invoked when not required. The warning message below will be displayed before any data is erased.
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/erase_registration_warning.png" format="PNG" scale="100" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration_warning.png" format="PNG" />
- </imageobject>
- </mediaobject>
+ <para>
+ This operation is dangerous as it can result in inability to interact with the remote producer if invoked when not required. The warning message below will be displayed before any data is erased.
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/erase_registration_warning.png" format="PNG" scale="100" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration_warning.png" format="PNG" />
+ </imageobject>
+ </mediaobject>
</warning>
- </section>
-
- </section>
-
-
- <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Configuring_the_WSRP_Producer">
- <title>Configuring the WSRP Producer</title>
- <section id="sect-Reference_Guide-Configuring_the_WSRP_Producer-Overview">
- <title>Overview</title>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Configuring_the_WSRP_Producer">
+ <title>Configuring the WSRP Producer</title>
+
+ <section id="sect-Reference_Guide-Configuring_the_WSRP_Producer-Overview">
+ <title>Overview</title>
+
<para>
- The behavior of the Portal's WSRP Producer can be configured using the WSRP administration interface, (this is the recommended method), or by editing the <filename><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable><VERSION></replaceable>-epp-GA.jar/conf/wsrp-producer-config.xml</filename> file.
+ The behavior of the Portal's WSRP Producer can be configured using the WSRP administration interface, (this is the recommended method), or by editing the <filename><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable><VERSION></replaceable>-epp-GA.jar/conf/wsrp-producer-config.xml</filename> file.
</para>
+
<para>
- Several aspects can be modified with respect to whether registration is required for consumers to access the Producer's services. An XML Schema for the configuration format is available at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_producer_1_0.xsd </filename>.
+ Several aspects can be modified with respect to whether registration is required for consumers to access the Producer's services. An XML Schema for the configuration format is available at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_producer_1_0.xsd </filename>.
</para>
- <para>
- An alternative to editing the default <filename>wsrp-producer-config.xml</filename> file is to make a custom copy containing the required configuration options.
- </para>
- <para>
- If a copy is used in place of the original, however, the <filename><replaceable>WSRP_PATH</replaceable>/02portal.war/WEB-INF/conf/wsrp/wsrp-configuration.xml</filename> <emphasis role="bold">must</emphasis> be updated to reference the custom file (this file defines the component <literal>WSRPServiceIntegration</literal> and contains a producer and consumer configuration location).
- </para>
- </section>
-
- <section id="sect-Reference_Guide-Configuring_the_WSRP_Producer-Default_Configuration">
+
+ <para>
+ An alternative to editing the default <filename>wsrp-producer-config.xml</filename> file is to make a custom copy containing the required configuration options.
+ </para>
+
+ <para>
+ If a copy is used in place of the original, however, the <filename><replaceable>WSRP_PATH</replaceable>/02portal.war/WEB-INF/conf/wsrp/wsrp-configuration.xml</filename> <emphasis role="bold">must</emphasis> be updated to reference the custom file (this file defines the component <literal>WSRPServiceIntegration</literal> and contains a producer and consumer configuration location).
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide-Configuring_the_WSRP_Producer-Default_Configuration">
<title>Default Configuration</title>
+
<para>
- The default producer configuration requires that consumers register with it before providing access to its services. However it does not require any specific registration properties (excepting those mandated by the WSRP standard).
+ The default producer configuration requires that consumers register with it before providing access to its services. However it does not require any specific registration properties (excepting those mandated by the WSRP standard).
</para>
+
<para>
- It does, however, require consumers to be registered before sending them a full service description. This means that the WSRP producer will not provide the list of offered portlets and other capabilities to unregistered consumers.
+ It does, however, require consumers to be registered before sending them a full service description. This means that the WSRP producer will not provide the list of offered portlets and other capabilities to unregistered consumers.
</para>
+
<para>
- The producer also uses the default <classname>RegistrationPolicy</classname> paired with the default <classname>RegistrationPropertyValidator</classname>.
+ The producer also uses the default <classname>RegistrationPolicy</classname> paired with the default <classname>RegistrationPropertyValidator</classname>.
</para>
+
<para>
- This allows users to customize how Portal's WSRP Producer decides whether a given registration property is valid or not (however property validators are discussed in greater detail in <xref linkend="sect-Reference_Guide-Configuring_the_WSRP_Producer-Registration_Configuration" />).
+ This allows users to customize how Portal's WSRP Producer decides whether a given registration property is valid or not (however property validators are discussed in greater detail in <xref linkend="sect-Reference_Guide-Configuring_the_WSRP_Producer-Registration_Configuration" />).
</para>
+
<para>
- JBoss Enterprise Portal Platform provides a web interface to configure the producer's behavior. It can be accessed by clicking on the "<emphasis role="bold">Producer Configuration</emphasis>" tab of the "<emphasis role="bold">WSRP</emphasis>" page of the "<emphasis role="bold">admin</emphasis>" portal.
+ JBoss Enterprise Portal Platform provides a web interface to configure the producer's behavior. It can be accessed by clicking on the "<emphasis role="bold">Producer Configuration</emphasis>" tab of the "<emphasis role="bold">WSRP</emphasis>" page of the "<emphasis role="bold">admin</emphasis>" portal.
</para>
+
<para>
- The default configuration should show:
+ The default configuration should show:
</para>
+
<mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_default.png" format="PNG" scale="110" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_default.png" format="PNG" />
- </imageobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_default.png" format="PNG" scale="110" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_default.png" format="PNG" />
+ </imageobject>
</mediaobject>
+
<para>
- You can specify whether or not the producer will send the full service description to unregistered consumers, and, if it requires registration, which <literal>RegistrationPolicy</literal> to use (and, if needed, which <literal>RegistrationPropertyValidator</literal>), along with required registration property description for which consumers must provide acceptable values to successfully register.
+ You can specify whether or not the producer will send the full service description to unregistered consumers, and, if it requires registration, which <literal>RegistrationPolicy</literal> to use (and, if needed, which <literal>RegistrationPropertyValidator</literal>), along with required registration property description for which consumers must provide acceptable values to successfully register.
</para>
- <para>
- WSDL URLs to access JBoss Enterprise Portal Platform's WSRP producer are now displayed in either in WSRP 1 or WSRP 2 mode.</para>
- </section>
-
-
- <section id="sect-Reference_Guide-Configuring_the_WSRP_Producer-Registration_Configuration">
+
+ <para>
+ WSDL URLs to access JBoss Enterprise Portal Platform's WSRP producer are now displayed in either in WSRP 1 or WSRP 2 mode.
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide-Configuring_the_WSRP_Producer-Registration_Configuration">
<title>Registration Configuration</title>
+
<para>
- In order to have consumers register with Portal's producer the Portal's behavior with respect to registration must be configured.
+ In order to have consumers register with Portal's producer the Portal's behavior with respect to registration must be configured.
</para>
+
<para>
- Registration is optional, as are registration properties. The producer can require registration without requiring consumers to pass any registration properties as is the case in the default configuration.
+ Registration is optional, as are registration properties. The producer can require registration without requiring consumers to pass any registration properties as is the case in the default configuration.
</para>
+
<para>
- The following section discusses configuring a producer's registration behavior from a blank state:
+ The following section discusses configuring a producer's registration behavior from a blank state:
</para>
+
<mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_blank.png" format="PNG" width="700" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_blank.png" format="PNG" />
- </imageobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_blank.png" format="PNG" width="700" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_blank.png" format="PNG" />
+ </imageobject>
</mediaobject>
+
<procedure>
- <step>
- <para>
- To allow unregistered consumers to see the list of offered portlets, leave the first checkbox ("<emphasis role="bold">Access to full service description requires consumers to be registered.</emphasis>") unchecked.
- </para>
- </step>
- <step>
- <para>
- To specify, however, that consumers will need to be registered to be able to interact with the producer, check the second box ("<emphasis role="bold">Requires registration. Modifying this information will trigger invalidation of consumer registrations."</emphasis>).
- </para>
- <para>
- The screen will refresh and display:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_registration.png" format="PNG" width="700" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_registration.png" format="PNG" />
- </imageobject>
- </mediaobject>
- </step>
- <step>
- <para>
- The fully-qualified name for the <classname>RegistrationPolicy</classname> and <classname>RegistrationPropertyValidator</classname> can be specified here. The default values are acceptable. Refer to <xref linkend="sect-Reference_Guide-Registration_Configuration-Customization_of_Registration_Handling_Behavior" /> for more information.
- </para>
- </step>
- <step>
- <para>
- To add a registration property called <literal>email</literal> click "<emphasis role="bold">Add property</emphasis>" and enter the appropriate information in the fields, providing a description for the registration property that can be used by consumers to determine its purpose:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_email.png" format="PNG" width="700" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_email.png" format="PNG" />
- </imageobject>
- </mediaobject>
- </step>
- <step>
- <para>
- Press "Save" to record the modifications.
- </para>
- </step>
+ <step><para>
+ To allow unregistered consumers to see the list of offered portlets, leave the first checkbox ("<emphasis role="bold">Access to full service description requires consumers to be registered.</emphasis>") unchecked.
+ </para></step>
+
+ <step><para>
+ To specify, however, that consumers will need to be registered to be able to interact with the producer, check the second box ("<emphasis role="bold">Requires registration. Modifying this information will trigger invalidation of consumer registrations."</emphasis>).
+ </para> <para>
+ The screen will refresh and display:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_registration.png" format="PNG" width="700" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_registration.png" format="PNG" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ The fully-qualified name for the <classname>RegistrationPolicy</classname> and <classname>RegistrationPropertyValidator</classname> can be specified here. The default values are acceptable. Refer to <xref linkend="sect-Reference_Guide-Registration_Configuration-Customization_of_Registration_Handling_Behavior" /> for more information.
+ </para></step>
+
+ <step><para>
+ To add a registration property called <literal>email</literal> click "<emphasis role="bold">Add property</emphasis>" and enter the appropriate information in the fields, providing a description for the registration property that can be used by consumers to determine its purpose:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_email.png" format="PNG" width="700" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_email.png" format="PNG" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ Press "Save" to record the modifications.
+ </para></step>
</procedure>
-
+
<note>
- <para>
- At this time, only String (<literal>xsd:string</literal>) properties are supported.
- </para>
+ <para>
+ At this time, only String (<literal>xsd:string</literal>) properties are supported.
+ </para>
</note>
+
<note>
- <para>
- If consumers are already registered with the producer, modifying the configuration of required registration information will trigger the invalidation of held registrations, requiring consumers to modify their registration before being able to access the producer again. The consumer side of that process is documented in <xref linkend="sect-Reference_Guide-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error" />.
- </para>
+ <para>
+ If consumers are already registered with the producer, modifying the configuration of required registration information will trigger the invalidation of held registrations, requiring consumers to modify their registration before being able to access the producer again. The consumer side of that process is documented in <xref linkend="sect-Reference_Guide-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error" />.
+ </para>
</note>
+
<section id="sect-Reference_Guide-Registration_Configuration-Customization_of_Registration_Handling_Behavior">
- <title>Customization of Registration Handling Behavior</title>
- <para>
- Registration handling behavior can be customized by users to suit their Producer needs. This is done with an implementation of the <classname>RegistrationPolicy</classname> interface.
- </para>
- <para>
- This interface defines methods that are called by Portal's Registration service so that decisions can be made appropriately. A default registration policy that provides basic behavior is provided and should be enough for most user needs.
- </para>
- <para>
- While the default registration policy provides default behavior for most registration-related aspects, one aspect requires specific configuration: whether a given value for a registration property is acceptable by the WSRP Producer.
- </para>
- <para>
- This is done by plugging a <classname>RegistrationPropertyValidator</classname> into the default registration policy. This allows users to define their own validation mechanism.
- </para>
- <para>
- Refer to the <trademark class="trade">Javadoc</trademark> for <classname>org.gatein.registration.RegistrationPolicy</classname> and <classname>org.gatein.registration.policies.RegistrationPropertyValidator</classname> for more details on what is expected of each method.
- </para>
- <para>
- A defined registration policy is required for the producer to be correctly configured. Do this by specifying the qualified class name of the registration policy.
- </para>
- <para>
- As it is anticipated that most users will use the default registration policy, it is possible to provide the class name of a custom property validator instead to customize the default registration policy behavior. Note that property validators are only used by the default policy.
- </para>
- <note>
- <para>
- Since the policy or the validator are defined via their class name and dynamically loaded, it is important to ensure that the identified class is available to the application server.
+ <title>Customization of Registration Handling Behavior</title>
+
+ <para>
+ Registration handling behavior can be customized by users to suit their Producer needs. This is done with an implementation of the <classname>RegistrationPolicy</classname> interface.
</para>
+
<para>
- One way to accomplish that is to deploy the policy implementation as a JAR file in the AS instance deploy directory.
+ This interface defines methods that are called by Portal's Registration service so that decisions can be made appropriately. A default registration policy that provides basic behavior is provided and should be enough for most user needs.
</para>
+
<para>
- Note also that, since both policies and validators are dynamically instantiated, they must provide a default, no-argument constructor.
- </para>
- </note>
+ While the default registration policy provides default behavior for most registration-related aspects, one aspect requires specific configuration: whether a given value for a registration property is acceptable by the WSRP Producer.
+ </para>
+
+ <para>
+ This is done by plugging a <classname>RegistrationPropertyValidator</classname> into the default registration policy. This allows users to define their own validation mechanism.
+ </para>
+
+ <para>
+ Refer to the <trademark class="trade">Javadoc</trademark> for <classname>org.gatein.registration.RegistrationPolicy</classname> and <classname>org.gatein.registration.policies.RegistrationPropertyValidator</classname> for more details on what is expected of each method.
+ </para>
+
+ <para>
+ A defined registration policy is required for the producer to be correctly configured. Do this by specifying the qualified class name of the registration policy.
+ </para>
+
+ <para>
+ As it is anticipated that most users will use the default registration policy, it is possible to provide the class name of a custom property validator instead to customize the default registration policy behavior. Note that property validators are only used by the default policy.
+ </para>
+
+ <note>
+ <para>
+ Since the policy or the validator are defined via their class name and dynamically loaded, it is important to ensure that the identified class is available to the application server.
+ </para>
+
+ <para>
+ One way to accomplish that is to deploy the policy implementation as a JAR file in the AS instance deploy directory.
+ </para>
+
+ <para>
+ Note also that, since both policies and validators are dynamically instantiated, they must provide a default, no-argument constructor.
+ </para>
+ </note>
</section>
-
- </section>
-
-
- <section id="sect-Reference_Guide-Configuring_the_WSRP_Producer-WSRP_Validation_Mode">
+ </section>
+
+ <section id="sect-Reference_Guide-Configuring_the_WSRP_Producer-WSRP_Validation_Mode">
<title>WSRP Validation Mode</title>
+
<para>
- The lack of conformance kit and the wording of the WSRP specification leaves room for differing interpretations, resulting in interoperability issues. It is therefore possible to encounter issues when using consumers from different vendors.
- </para>
- <para>
- Experience of these issues has produced a way to relax the validation that the WSRP producer performs on the data provided by consumers to help with interoperability by accepting data that would normally be invalid.
- </para>
- <para>
- Note that the our validation algorithm is only relaxed on aspects of the specification that are deemed harmless such as invalid language codes.
+ The lack of conformance kit and the wording of the WSRP specification leaves room for differing interpretations, resulting in interoperability issues. It is therefore possible to encounter issues when using consumers from different vendors.
</para>
+
<para>
- By default, the WSRP producer is configured in strict mode. If you experience issues with a given consumer, you may attempt to relax the validation mode. Un-checking the "Use strict WSRP compliance" checkbox on the Producer configuration screen to do this.
+ Experience of these issues has produced a way to relax the validation that the WSRP producer performs on the data provided by consumers to help with interoperability by accepting data that would normally be invalid.
</para>
- </section>
- </section>
-
- <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Removing_WSRP">
- <title>Removing WSRP</title>
+
<para>
- If you are not going to use WSRP in your JBoss Enterprise Portal Platform instance, the WSRP configuration files may be left in place. They will not adversely affect your installation.
+ Note that the our validation algorithm is only relaxed on aspects of the specification that are deemed harmless such as invalid language codes.
</para>
+
<para>
+ By default, the WSRP producer is configured in strict mode. If you experience issues with a given consumer, you may attempt to relax the validation mode. Un-checking the "Use strict WSRP compliance" checkbox on the Producer configuration screen to do this.
+ </para>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Removing_WSRP">
+ <title>Removing WSRP</title>
+
+ <para>
+ If you are not going to use WSRP in your JBoss Enterprise Portal Platform instance, the WSRP configuration files may be left in place. They will not adversely affect your installation.
+ </para>
+
+ <para>
+ However, if you wish to completely remove WSRP from your portal installation, remove the <filename>gatein-wsrp-integration.ear</filename> file from your application server deploy directory.
+ </para>
+<!--<para>
However, if you wish to completely remove WSRP from your portal installation, follow this procedure:
</para>
<procedure>
@@ -1507,7 +1711,7 @@
<para>
Open the <filename>repository-configuration.xml</filename> and remove the <emphasis role="bold">WSRP</emphasis> workspace:
</para>
-<programlisting language="XML" role="XML"><![CDATA[<!-- WSRP -->
+<programlisting language="XML" role="XML"><![CDATA[<!DOUBELDASH WSRP DOUBELDASH>
<workspace name="wsrp-system">
<container>
<properties>
@@ -1600,6 +1804,6 @@
</listitem>
</itemizedlist>
</step>
- </procedure>
+ </procedure> -->
</section>
-</chapter>
+ </chapter>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml 2011-11-10 22:34:44 UTC (rev 8038)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml 2011-11-11 02:09:34 UTC (rev 8039)
@@ -3,1486 +3,1505 @@
<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
-<chapter id="chap-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP">
- <title>Web Services for Remote Portlets (WSRP)</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Introduction">
- <title>Introduction</title>
+ <chapter id="chap-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP">
+ <title>Web Services for Remote Portlets (WSRP)</title>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Introduction">
+ <title>Introduction</title>
+
<para>
The Web Services for Remote Portlets (WSRP) specification defines a web service interface for accessing and interacting with interactive presentation-oriented web services.
- </para>
+ </para>
+
<para>
It has been produced through the efforts of the Web Services for Remote Portlets (WSRP) OASIS Technical Committee. It is based on the requirements gathered and the proposals made to the committee.
- </para>
+ </para>
+
<para>
Scenarios that motivate WSRP functionality include:
- </para>
+ </para>
+
<itemizedlist>
<listitem>
- <para>
- Content hosts, such as portal servers, providing Portlets as presentation-oriented web services that can be used by aggregation engines.
- </para>
-
+ <para>
+ Content hosts, such as portal servers, providing Portlets as presentation-oriented web services that can be used by aggregation engines.
+ </para>
</listitem>
- <listitem>
- <para>
- Aggregating frameworks, including portal servers, consuming presentation-oriented web services offered by content providers and integrating them into the framework.
- </para>
-
+
+ <listitem>
+ <para>
+ Aggregating frameworks, including portal servers, consuming presentation-oriented web services offered by content providers and integrating them into the framework.
+ </para>
</listitem>
-
- </itemizedlist>
+ </itemizedlist>
+
<para>
More information on WSRP can be found on the official <ulink url="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp">website</ulink>. We suggest reading the <ulink url="http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html">primer</ulink> for a good, albeit technical, overview of WSRP.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Level_of_Support">
- <title>Level of Support</title>
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Level_of_Support">
+ <title>Level of Support</title>
+
<para>
The WSRP Technical Committee defined <ulink url="http://www.oasis-open.org/committees/download.php/3073">WSRP Use Profiles</ulink> to help with WSRP interoperability. Terms defined in that document will be used in this section.
- </para>
+ </para>
+
<para>
JBoss Enterprise Portal Platform provides a <emphasis>Simple</emphasis> level of support for the WSRP Producer, with the exception of out-of-band registration. In-band registration and persistent local state (which are defined at the <emphasis>Complex</emphasis> level) are supported.
- </para>
+ </para>
+
<para>
JBoss Enterprise Portal Platform provides a <emphasis>Medium</emphasis> level of support for the Consumer, excepting HTML markup (as JBoss Enterprise Portal Platform itself does not handle other markup types). Explicit portlet cloning and the <literal>PortletManagement</literal> interface are supported.
- </para>
+ </para>
+
<para>
The WSRP component has Level 1 Producer and Consumer caching. Cookie handling is supported properly on the Consumer. The Producer requires cookie initialization (as this improves interoperability with some consumers).
- </para>
+ </para>
+
<para>
JBoss Enterprise Portal Platform does not support custom window states or modes, therefore neither does the WSRP component. It does, however, support CSS on both the Producer (although this is more a function of the portlets than an inherent Producer capability) and Consumer.
- </para>
+ </para>
+
<para>
JBoss Enterprise Portal Platform &VY; includes implementations of WSRP 1.0 and 2.0.
- </para>
+ </para>
+
<para>
All optional features in WSRP 2 are implemented in JBoss Enterprise Portal Platform &VY; except support for lifetimes and leasing support.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Deploying_WSRP">
- <title>Deploying WSRP</title>
+ </para>
+
<note>
+ <para>
+ As of version &VZ; of Enterprise Portal Platform, WSRP is only activated and supported when deployed on JBoss Enterprise Application Server.
+ </para>
+ </note>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Deploying_WSRP">
+ <title>Deploying WSRP</title>
+
+ <note>
<title>Notational Devices</title>
- <para>
- The following list of support files uses the following notational devices:
+
+ <para>
+ The following list of support files uses the following notational devices:
</para>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Notations">
- <title>Notations:</title>
- <varlistentry>
- <term><replaceable>JBOSS_HOME</replaceable></term>
- <listitem>
- <para>
- <replaceable>JBOSS_HOME</replaceable> refers to the directory that your instance of JBoss Enterprise Portal Platform has been extracted/installed to. For example: <filename>/home/<replaceable>USERNAME</replaceable>/jboss-epp-<replaceable><VERSION></replaceable>/</filename>
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable></term>
- <listitem>
- <para>
- The WSRP files referred to in this section are found in the <filename><replaceable>JBOSS_HOME</replaceable>/jboss-as/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear</filename> directory.
- </para>
- <para>
- For ease of reference this path will be represented by: <replaceable>WSRP_PATH</replaceable>.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_VERSION</replaceable></term>
- <listitem>
- <para>
- <replaceable>WSRP_VERSION</replaceable> represents the version of the WSRP component in use.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term><replaceable>PORTAL_VERSION</replaceable></term>
- <listitem>
- <para>
- <replaceable>PORTAL_VERSION</replaceable> represents the version of JBoss Enterprise Portal Platform in use.
- </para>
-
- </listitem>
-
- </varlistentry>
-
+
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Notations">
+ <title>Notations:</title>
+
+ <varlistentry>
+ <term><replaceable>JBOSS_HOME</replaceable></term>
+
+ <listitem>
+ <para>
+ <replaceable>JBOSS_HOME</replaceable> refers to the directory that your instance of JBoss Enterprise Portal Platform has been extracted/installed to. For example: <filename>/home/<replaceable>USERNAME</replaceable>/jboss-epp-<replaceable><VERSION></replaceable>/</filename>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable></term>
+
+ <listitem>
+ <para>
+ The WSRP files referred to in this section are found in the <filename><replaceable>JBOSS_HOME</replaceable>/jboss-as/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear</filename> directory.
+ </para>
+
+ <para>
+ For ease of reference this path will be represented by: <replaceable>WSRP_PATH</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>WSRP_VERSION</replaceable></term>
+
+ <listitem>
+ <para>
+ <replaceable>WSRP_VERSION</replaceable> represents the version of the WSRP component in use.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>PORTAL_VERSION</replaceable></term>
+
+ <listitem>
+ <para>
+ <replaceable>PORTAL_VERSION</replaceable> represents the version of JBoss Enterprise Portal Platform in use.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
-
- </note>
+ </note>
+
+ <para>
+ Starting with version 2.1.0-GA of the component, WSRP is packaged as a JBoss Enterprise Portal Platform extension and is now self-contained in an easy to install package named <filename>gatein-wsrp-integration.ear</filename>, deployed directly in the <filename>deploy</filename> directory of your JBoss Application Server configuration directory.
+ </para>
+
+ <para>
+ The extension itself is composed of the following components:
+ </para>
+
<variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-WSRP_support_files">
<title>WSRP support files</title>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/wsrp-admin-gui.war</term>
- <listitem>
- <para>
- This file contains the WSRP Configuration portlet with which you can configure consumers to access remote servers and how the WSRP producer is configured.
- </para>
-
- </listitem>
-
+
+ <varlistentry>
+ <term><filename>META-INF/</filename></term>
+
+ <listitem>
+ <para>
+ This directory contains files necessary for EAR packaging. The only file that is of interest from a user perspective is <filename>gatein-wsse-consumer.xml</filename> which allows you to configure WS-Security support for the consumer. !!!TODO mwringe please detail !!!!
+ </para>
+ </listitem>
</varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/wsrp-producer.war</term>
- <listitem>
- <para>
- This file contains the WSRP producer web application.
- </para>
-
- </listitem>
-
+
+ <varlistentry>
+ <term><filename>extension-component-$PORTAL_VERSION.jar</filename></term>
+
+ <listitem>
+ <para>
+ This archive which contains the components needed to integrate the WSRP component into JBoss Enterprise Portal Platform. It also includes the default configuration files for the WSRP producer and the default WSRP consumers.
+ </para>
+ </listitem>
</varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-common-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains common classes needed by the different WSRP libraries.
- </para>
-
- </listitem>
-
+
+ <varlistentry>
+ <term><filename>extension-config-$PORTAL_VERSION.jar</filename></term>
+
+ <listitem>
+ <para>
+ This file contains the configuration file needed by the GateIn extension mechanism to properly register this EAR as an extension.
+ </para>
+ </listitem>
</varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the WSRP consumer.
- </para>
-
- </listitem>
-
+
+ <varlistentry>
+ <term><filename>extension-war-$PORTAL_VERSION.war</filename></term>
+
+ <listitem>
+ <para>
+ This file contains the configuration files needed by the GateIn extension mechanism to properly setup the WSRP service. It includes <filename>wsrp-configuration.xml</filename> which, in particular, configures several options for the <code> WSRPServiceIntegration </code> component at the heart of the WSRP integration in JBoss Enterprise Portal Platform.
+ </para>
+ </listitem>
</varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the API classes needed to integrate the WSRP component into portals.
- </para>
-
- </listitem>
-
+
+ <varlistentry>
+ <term><filename>lib/</filename></term>
+
+ <listitem>
+ <para>
+ This directory contains the different libraries needed by the WSRP service.
+ </para>
+ </listitem>
</varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-producer-lib-$WSRP_VERSION.jar</term>
- <listitem>
- <para>
- This file contains the classes needed by the WSRP producer.
- </para>
-
- </listitem>
-
+
+ <varlistentry>
+ <term><filename>wsrp-admin-gui-$WSRP_VERSION.war</filename></term>
+
+ <listitem>
+ <para>
+ This file contains the WSRP Configuration portlet with which you can configure consumers to access remote servers and how the WSRP producer is configured.
+ </para>
+ </listitem>
</varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-wsrp1-ws-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the generated JAX-WS classes for WSRP version 1.
- </para>
-
- </listitem>
-
+
+ <varlistentry>
+ <term><filename>wsrp-producer-jb5wsss-$WSRP_VERSION.war</filename></term>
+
+ <listitem>
+ <para>
+ This file contains the producer-side support for WS-Security. !!!!TODO mwringe: please detail if there are any user-modifiable configuration file there and how this files is different in AS 6 !!!!
+ </para>
+ </listitem>
</varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-wsrp2-ws-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the JAX-WS classes for WSRP version 2.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable>PORTAL_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the code to integrate the WSRP service into JBoss Enterprise Portal Platform.
- </para>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
+ </variablelist>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Non_default_Ports_or_Hostnames">
<title>Non-default Ports or Hostnames</title>
- <para>
- JBoss WS (the web service stack that JBoss Enterprise Portal Platform uses) should update the port and host name used in WSDL. Refer to the JBoss WS <ulink url="http://community.jboss.org/wiki/JBossWS-UserGuide#Configuration">user guide</ulink> for more information.
+
+ <para>
+ JBoss WS (the web service stack that JBoss Enterprise Portal Platform uses) should update the port and host name used in WSDL. Refer to the JBoss WS <ulink url="http://community.jboss.org/wiki/JBossWS-UserGuide#Configuration">user guide</ulink> for more information.
</para>
- <para>
- If the host name and port on which the server runs have been modified, the configuration for the Consumer used to consume JBoss Enterprise Portal Platform's "self" Producer will need to be updated. Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" /> for directions on how to do this.
+
+ <para>
+ If the host name and port on which the server runs have been modified, the configuration for the Consumer used to consume JBoss Enterprise Portal Platform's "self" Producer will need to be updated. Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" /> for directions on how to do this.
</para>
-
- </section>
-
+ </section>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Using_WSRP_with_SSL">
<title>Using WSRP with SSL</title>
- <para>
- It is possible to use WSRP over SSL for secure exchange of data. Refer to these <ulink url="http://community.jboss.org/wiki/ConfiguringWSRPforuseoverSSL">instructions</ulink> for how to do this.
+
+ <para>
+ It is possible to use WSRP over SSL for secure exchange of data. Refer to these <ulink url="http://community.jboss.org/wiki/ConfiguringWSRPforuseoverSSL">instructions</ulink> for how to do this.
</para>
-
- </section>
-
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Making_a_Portlet_Remotable">
- <title>Making a Portlet Remotable</title>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Making_a_Portlet_Remotable">
+ <title>Making a Portlet Remotable</title>
+
<note>
<para>
- Only JSR-286 (Portlet 2.0) portlets can be made remotable as the mechanism to expose a portlet to WSRP relies on a JSR-286-only functionality.
+ Only JSR-286 (Portlet 2.0) portlets can be made remotable as the mechanism to expose a portlet to WSRP relies on a JSR-286-only functionality.
</para>
-
- </note>
+ </note>
+
<para>
JBoss Enterprise Portal Platform does <emphasis role="bold">not</emphasis>, by default, expose local portlets for consumption by remote WSRP consumers.
- </para>
+ </para>
+
<para>
In order to make a portlet remotely available, it must be made "remotable" by marking it as such in the associated <filename>portlet.xml</filename>.
- </para>
+ </para>
+
<para>
A specific <code>org.gatein.pc.remotable container-runtime-option</code> is used to accomplish this. Setting its value to <code>true</code> makes the portlet available for remote consumption, while setting its value to <code>false</code> will not publish it remotely.
- </para>
+ </para>
+
<para>
As specifying the remotable status for a portlet is optional, nothing need be done if portlets do not need to be remotely available.
- </para>
+ </para>
+
<para>
In the following example, the "BasicPortlet" portlet is specified as being remotable.
- </para>
-
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default255.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
<para>
It is also possible to specify that all the portlets declared within a given portlet application be remotable by default.
- </para>
+ </para>
+
<para>
This is done by specifying the <code>container-runtime-option</code> at the <code>portlet-app</code> element level. Individual portlets can override that value to not be remotely exposed.
- </para>
+ </para>
+
<para>
For example:
- </para>
-
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default256.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
<para>
This example defines two portlets. As the <code>org.gatein.pc.remotable container-runtime-option</code> is set to <code>true</code> at the <code>portlet-app</code> level, all portlets defined in this particular portlet application are exposed remotely by JBoss Enterprise Portal Platform's WSRP Producer.
- </para>
+ </para>
+
<para>
It is possible to override this default behavior. Specifying a value for the <code>org.gatein.pc.remotable container-runtime-option</code> at the <code>portlet</code> level will take precedence over the default.
- </para>
+ </para>
+
<para>
- In the example above, the <varname>RemotelyExposedPortlet</varname> inherits the remotable status defined at the <code>portlet-app</code> level since it does not specify a value for the <code>org.gatein.pc.remotable container-runtime-option</code>.
- </para>
+ In the example above, the <literal>RemotelyExposedPortlet</literal> inherits the remotable status defined at the <code>portlet-app</code> level since it does not specify a value for the <code>org.gatein.pc.remotable container-runtime-option</code>.
+ </para>
+
<para>
- The <varname>NotRemotelyExposedPortlet</varname>, however, overrides the default behavior and is not remotely exposed.
- </para>
+ The <literal>NotRemotelyExposedPortlet</literal>, however, overrides the default behavior and is not remotely exposed.
+ </para>
+
<note>
+ <title>Note</title>
+
<para>
- Portlets are not remotely exposed if no top-level <code>org.gatein.pc.remotable container-runtime-option</code> value is set to <code>true</code>.
+ Portlets are not remotely exposed if no top-level <code>org.gatein.pc.remotable container-runtime-option</code> value is set to <code>true</code>.
</para>
-
- </note>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_WSRP_portlets_from_a_remote_Consumer">
- <title>Consuming WSRP portlets from a remote Consumer</title>
+ </note>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_WSRP_portlets_from_a_remote_Consumer">
+ <title>Consuming WSRP portlets from a remote Consumer</title>
+
<para>
Configuration is extremely variable between different WSRP Consumers. Most, however, require a specification of the URL for the Producer's WSDL definition. If the JBoss Enterprise Portal Platform Consumer is not being used, refer to the documentation for the Consumer that is in use for specific instructions.
- </para>
+ </para>
+
<para>
- For instructions on how to specify this URL in JBoss Enterprise Portal Platform, refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" />.
- </para>
+ For instructions on how to specify this URL in JBoss Enterprise Portal Platform, refer to <xref linkend="sect-Reference_Guide-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" />.
+ </para>
+
<para>
JBoss Enterprise Portal Platform's Producer is automatically set up when a portal instance is deployed with the WSRP service.
- </para>
+ </para>
+
<para>
The WSDL file can be accessed at:
- </para>
+ </para>
+
<variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Consuming_WSRP_portlets_from_a_remote_Consumer-File_paths">
<title>File paths:</title>
- <varlistentry>
- <term>WSRP 1.0:</term>
- <listitem>
- <para>
- <filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v1/MarkupService?wsdl</filename>.
- </para>
-
- </listitem>
-
+
+ <varlistentry>
+ <term>WSRP 1.0:</term>
+
+ <listitem>
+ <para>
+ <filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v1/MarkupService?wsdl</filename>.
+ </para>
+ </listitem>
</varlistentry>
- <varlistentry>
- <term>WSRP 2.0:</term>
- <listitem>
- <para>
- <filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v2/MarkupService?wsdl</filename>.
- </para>
-
- </listitem>
-
+
+ <varlistentry>
+ <term>WSRP 2.0:</term>
+
+ <listitem>
+ <para>
+ <filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v2/MarkupService?wsdl</filename>.
+ </para>
+ </listitem>
</varlistentry>
-
- </variablelist>
+ </variablelist>
+
<para>
The default hostname is <literal>localhost</literal> and the default port is <literal>8080</literal>.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets">
- <title>Consuming Remote WSRP Portlets</title>
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets">
+ <title>Consuming Remote WSRP Portlets</title>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Overview">
<title>Overview</title>
- <para>
- To be able to consume WSRP portlets exposed by a remote producer, JBoss Enterprise Portal Platform's WSRP consumer must be configured to access that remote producer.
+
+ <para>
+ To be able to consume WSRP portlets exposed by a remote producer, JBoss Enterprise Portal Platform's WSRP consumer must be configured to access that remote producer.
</para>
- <para>
- Access to a remote producer can be configured using WSRP Producer descriptors. Alternatively, a portlet is provided to configure remote producers.
+
+ <para>
+ Access to a remote producer can be configured using WSRP Producer descriptors. Alternatively, a portlet is provided to configure remote producers.
</para>
- <para>
- Once a remote producer has been configured, the portlets that it exposes are then available in the Application Registry to be added to categories and then to pages.
+
+ <para>
+ Once a remote producer has been configured, the portlets that it exposes are then available in the Application Registry to be added to categories and then to pages.
</para>
- <!-- Removed as out of date and not in Community version of doc.
+<!-- Removed as out of date and not in Community version of doc.
<para>
A default consumer named <literal>self</literal>, that consumes the portlets exposed by JBoss Enterprise Portal Platform's producer, has been configured as a way to test the WSRP producer service and to check that portlets are correctly published via WSRP.
</para>
-->
- </section>
-
+ </section>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Configuring_a_Remote_Producer">
<title>Configuring a Remote Producer</title>
- <para>
- Access to a remote producer needs to be defined so that portlets can be consumed within JBoss Enterprise Portal Platform. This section will show how to configure access to <emphasis role="bold">Oracle</emphasis>'s public WSRP producer. Firstly using the configuration portlet. Then how the same result can be accomplished with a producer descriptor, though it is far easier to do so via the configuration portlet.
+
+ <para>
+ Access to a remote producer needs to be defined so that portlets can be consumed within JBoss Enterprise Portal Platform. This section will show how to configure access to <emphasis role="bold">Oracle</emphasis>'s public WSRP producer. Firstly using the configuration portlet. Then how the same result can be accomplished with a producer descriptor, though it is far easier to do so via the configuration portlet.
</para>
- <important>
- <title>Chunked Encoding</title>
- <para>
- Some WSRP producers, such as Oracle, do not support chunked encoding. If your producer does not support chunked encoding, it will not be able to properly connect to the producer.
- </para>
- <para>
- This will manifest itself with the following error:
- </para>
-
+
+ <important>
+ <title>Chunked Encoding</title>
+
+ <para>
+ Some WSRP producers, such as Oracle, do not support chunked encoding. If your producer does not support chunked encoding, it will not be able to properly connect to the producer.
+ </para>
+
+ <para>
+ This will manifest itself with the following error:
+ </para>
<screen>Caused by: org.jboss.ws.WSException: Invalid HTTP server response [503] - Service Unavailable.
</screen>
- <para>
- A workaround for this issue involves editing the <parameter>chunksize</parameter> setting in the <filename>standard-jaxws-client-config.xml</filename> file.
- </para>
- <para>
- Refer to <ulink type="http" url="http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported">http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported</ulink> for more information.
- </para>
-
+ <para>
+ A workaround for this issue involves editing the <parameter>chunksize</parameter> setting in the <filename>standard-jaxws-client-config.xml</filename> file.
+ </para>
+
+ <para>
+ Refer to <ulink type="http" url="http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported">http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported</ulink> for more information.
+ </para>
</important>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet">
- <title>The Configuration Portlet</title>
- <para>
- JBoss Enterprise Portal Platform provides a graphical portlet to assist with configuring access to, and other facets of, remote WSRP Producers.
- </para>
- <para>
- It is available at: <ulink type="http" url="http://localhost:8080/portal/login?initialURI=%2Fportal%2Fprivate%2Fclass..." />.
- </para>
- <para>
- The portlet also is a group page for /platform/administrators
- </para>
- <para>
- Although the Configuration Portlet is installed by default in JBoss Enterprise Portal Platform &VY;., installation instructions are included below should the portlet ever need to be re-installed:
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-The_Configuration_Portlet-Installing_the_configuration_portlet">
- <title><emphasis role="bold">Installing the configuration portlet:</emphasis></title>
- <step>
- <para>
- Log into the portal as an administrator and go to the Application Registry (Click <ulink url="http://localhost:8080/portal/private/classic/administration/registry">http://localhost:8080/portal/private/classic/administration/registry</ulink> if using the default installation).
- </para>
-
- </step>
- <step>
- <para>
- Add the WSRP Configuration portlet to the Administration category. If the Import Applications functionality is used, the WSRP Configuration portlet will be automatically added to the Administration category.
- </para>
-
- </step>
- <step>
- <para>
- Once the portlet is added to a category, it can be added to a page and used. It is recommended that it be added to the same page as the Application Registry (as other operations relating to WSRP and adding portlets to categories are somewhat related). Add the WSRP Configuration portlet to the page using the standard procedure.
- </para>
-
- </step>
-
- </procedure>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet">
+ <title>The Configuration Portlet</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_Configuration_Portlet-Using_the_Configuration_portlet">
- <title><emphasis role="bold">Using the Configuration portlet</emphasis></title>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_init.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_init.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
+ <para>
+ JBoss Enterprise Portal Platform provides a graphical portlet to assist with configuring access to, and other facets of, remote WSRP Producers.
+ </para>
+
+ <para>
+ It is available at: <ulink type="http" url="http://localhost:8080/portal/login?initialURI=%2Fportal%2Fprivate%2Fclass..." />.
+ </para>
+
+ <para>
+ The portlet also is a group page for /platform/administrators
+ </para>
+
+ <para>
+ Although the Configuration Portlet is installed by default in JBoss Enterprise Portal Platform &VY;., installation instructions are included below should the portlet ever need to be re-installed:
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-The_Configuration_Portlet-Installing_the_configuration_portlet">
+ <title><emphasis role="bold">Installing the configuration portlet:</emphasis></title>
+
+ <step><para>
+ Log into the portal as an administrator and go to the Application Registry (Click <ulink url="http://localhost:8080/portal/private/classic/administration/registry">http://localhost:8080/portal/private/classic/administration/registry</ulink> if using the default installation).
+ </para></step>
+
+ <step><para>
+ Add the WSRP Configuration portlet to the Administration category. If the Import Applications functionality is used, the WSRP Configuration portlet will be automatically added to the Administration category.
+ </para></step>
+
+ <step><para>
+ Once the portlet is added to a category, it can be added to a page and used. It is recommended that it be added to the same page as the Application Registry (as other operations relating to WSRP and adding portlets to categories are somewhat related). Add the WSRP Configuration portlet to the page using the standard procedure.
+ </para></step>
+ </procedure>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_Configuration_Portlet-Using_the_Configuration_portlet">
+ <title><emphasis role="bold">Using the Configuration portlet</emphasis></title>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_init.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_init.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ This screen presents all the configured consumers associated with their status and possible actions on them.
+ </para>
+
+ <para>
+ A Consumer can be active or inactive. Activating a Consumer means that it is ready to act as a portlet provider.
+ </para>
+
+ <para>
+ Note also that a Consumer can be marked as requiring <emphasis>refresh</emphasis>, which means that the information held about it might not be up to date. Refreshing it from the remote Producer will update this information.
+ </para>
+
+ <para>
+ This can happen for several reasons: the service description for that remote Producer has not been fetched yet, the cached version has expired or modifications have been made to the configuration that could potentially invalidate it, thus requiring re-validation of the information.
+ </para>
+
+ <para>
+ To create a new Consumer:
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Using_the_Configuration_portlet-Creating_a_Consumer">
+ <title><emphasis role="bold">Creating a Consumer</emphasis></title>
+
+ <step><para>
+ Type "<literal> oracle</literal>" into the "<emphasis role="bold">Create a consumer named:</emphasis>" field.
+ </para></step>
+
+ <step><para>
+ Click on "<emphasis role="bold">Create consumer</emphasis>" to create a new Consumer called <literal>oracle</literal>.
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_create.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_create.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ In the next form, set the cache expiration value to <parameter>300</parameter> seconds.
+ </para></step>
+
+ <step><para>
+ Leave the default timeout value for web services (WS) operations.
+ </para></step>
+
+ <step><para>
+ Enter the WSDL URL for the producer in the text field.
+ </para></step>
+
+ <step><para>
+ Press the "Refresh & Save" button:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_wsdl.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_wsdl.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+ </procedure>
+
+ <para>
+ This will retrieve the service description associated with the Producer which WSRP interface is described by the WSDL file found at the URL entered.
+ </para>
+
+ <para>
+ In this case, querying the service description will show that the Producer requires registration but did not request any registration property:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_refresh.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_refresh.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ The Consumer for the <literal>oracle</literal> Producer should now be available as a portlet provider and be ready to be used.
+ </para>
+
+ <para>
+ Assuming that the producer required a value for an <literal>email</literal> registration property, JBoss Enterprise Portal Platform's WSRP consumer will report that some information was missing:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_missing.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_missing.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+
+ <note>
+ <title>Values</title>
+
<para>
- This screen presents all the configured consumers associated with their status and possible actions on them.
- </para>
- <para>
- A Consumer can be active or inactive. Activating a Consumer means that it is ready to act as a portlet provider.
- </para>
- <para>
- Note also that a Consumer can be marked as requiring <emphasis>refresh</emphasis>, which means that the information held about it might not be up to date. Refreshing it from the remote Producer will update this information.
- </para>
- <para>
- This can happen for several reasons: the service description for that remote Producer has not been fetched yet, the cached version has expired or modifications have been made to the configuration that could potentially invalidate it, thus requiring re-validation of the information.
- </para>
- <para>
- To create a new Consumer:
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Using_the_Configuration_portlet-Creating_a_Consumer">
- <title><emphasis role="bold">Creating a Consumer</emphasis></title>
- <step>
- <para>
- Type "<literal> oracle</literal>" into the "<emphasis role="bold">Create a consumer named:</emphasis>" field.
- </para>
-
- </step>
- <step>
- <para>
- Click on "<emphasis role="bold">Create consumer</emphasis>" to create a new Consumer called <literal>oracle</literal>.
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_create.png" format="PNG" scale="100" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_create.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
- <step>
- <para>
- In the next form, set the cache expiration value to <parameter>300</parameter> seconds.
- </para>
-
- </step>
- <step>
- <para>
- Leave the default timeout value for web services (WS) operations.
- </para>
-
- </step>
- <step>
- <para>
- Enter the WSDL URL for the producer in the text field.
- </para>
-
- </step>
- <step>
- <para>
- Press the "Refresh & Save" button:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_wsdl.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_wsdl.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
-
- </procedure>
-
- <para>
- This will retrieve the service description associated with the Producer which WSRP interface is described by the WSDL file found at the URL entered.
- </para>
- <para>
- In this case, querying the service description will show that the Producer requires registration but did not request any registration property:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_refresh.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_refresh.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- The Consumer for the <literal>oracle</literal> Producer should now be available as a portlet provider and be ready to be used.
- </para>
- <para>
- Assuming that the producer required a value for an <literal>email</literal> registration property, JBoss Enterprise Portal Platform's WSRP consumer will report that some information was missing:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_missing.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_missing.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <note>
- <title>Values</title>
- <para>
- As at this release there is no automated way to learn about which possible values (if any) are expected by the remote Producer. Possible values may be indicated in the registration property description but this is not always the case. Refer to the specific Producer's documentation.
- </para>
-
- </note>
- <para>
- Enter an address for the registration property ("<literal>example(a)example.com</literal>") and press "<emphasis role="bold">Save & Refresh</emphasis>" once more:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_end.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_end.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </section>
+ As at this release there is no automated way to learn about which possible values (if any) are expected by the remote Producer. Possible values may be indicated in the registration property description but this is not always the case. Refer to the specific Producer's documentation.
+ </para>
+ </note>
+
+ <para>
+ Enter an address for the registration property ("<literal>example(a)example.com</literal>") and press "<emphasis role="bold">Save & Refresh</emphasis>" once more:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_end.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_end.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-Using_XML">
+ <title>Using XML</title>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-Using_XML">
- <title>Using XML</title>
- <para>
- Although using the WSRP Configuration portlet to configure Consumers is recommended, the WSRP component provides an alternative way to configure consumers.
- </para>
- <para>
- This is done by editing the XML file located at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
- </para>
-
+ <para>
+ Although using the WSRP Configuration portlet to configure Consumers is recommended, the WSRP component provides an alternative way to configure consumers.
+ </para>
+
+ <para>
+ This is done by editing the XML file located at <filename>extension-component-<replaceable><PORTAL_VERSION></replaceable>.jar/conf/wsrp-consumers-config.xml</filename> in your JBoss AS deploy directory.
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default257.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The file as shown above specifies access to two producers: <literal>self</literal>, which consumes JBoss Enterprise Portal Platform's own WSRP producer (albeit in a version that assumes that the producer requires a value for an <literal>email</literal> registration property), and <literal>oracle</literal>, which consumes Oracle's public producer, both in configurations as shown in the procedure above.
- </para>
- <note>
- <para>
- An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
- </para>
-
- </note>
-
+ <para>
+ The file as shown above specifies access to two producers: <literal>self</literal>, which consumes JBoss Enterprise Portal Platform's own WSRP producer (albeit in a version that assumes that the producer requires a value for an <literal>email</literal> registration property), and <literal>oracle</literal>, which consumes Oracle's public producer, both in configurations as shown in the procedure above.
+ </para>
+
+ <note>
+ <para>
+ An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
+ </para>
+ </note>
</section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-Adding_remote_portlets_to_categories">
- <title>Adding remote portlets to categories</title>
- <para>
- Clicking on the Portlet link in the Application Registry will now show the remote portlets in the <emphasis role="bold">REMOTE</emphasis> tab in the left column:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/remote_portlets.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/remote_portlets.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- These portlets are available to be used as regular portlets: they can be used in categories and added to pages. Using the Import Applications functionality will also automatically import them into categories based on the keywords they define.
- </para>
- <para>
- More specifically, to add a <emphasis>WSRP</emphasis> portlet to a category, select <literal>wsrp</literal> in the Application Type drop-down menu:
- </para>
- <mediaobject>
- <imageobject>
- <imagedata align="center" fileref="images/WSRP/remote_portlets_category.png" format="PNG" scalefit="1" valign="middle" />
- </imageobject>
-
- </mediaobject>
-
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-Adding_remote_portlets_to_categories">
+ <title>Adding remote portlets to categories</title>
+
+ <para>
+ Clicking on the Portlet link in the Application Registry will now show the remote portlets in the <emphasis role="bold">REMOTE</emphasis> tab in the left column:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/remote_portlets.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/remote_portlets.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ These portlets are available to be used as regular portlets: they can be used in categories and added to pages. Using the Import Applications functionality will also automatically import them into categories based on the keywords they define.
+ </para>
+
+ <para>
+ More specifically, to add a <emphasis>WSRP</emphasis> portlet to a category, select <literal>wsrp</literal> in the Application Type drop-down menu:
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="images/WSRP/remote_portlets_category.png" format="PNG" scalefit="1" valign="middle" />
+ </imageobject>
+ </mediaobject>
</section>
-
-
- </section>
-
+ </section>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Configuring_Access_to_Remote_Producers_via_XML">
<title>Configuring Access to Remote Producers via XML</title>
- <para>
- Again, configuring consumers via XML is done by editing <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
+
+ <para>
+ Again, configuring consumers via XML is done by editing <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
</para>
- <note>
- <title>XML Elements</title>
- <para>
- An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
- </para>
-
+
+ <note>
+ <title>XML Elements</title>
+
+ <para>
+ An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
+ </para>
</note>
- <note>
- <title>The Consumer Configuration file</title>
- <para>
- It is important to understand how the XML Consumers configuration file is processed. It is read the first time the WSRP service starts and the associated information is then put under control of the JCR (Java Content Repository).
- </para>
- <para>
- Subsequent launches of the WSRP service will use the JCR-stored information for all producers that are already known to JBoss Enterprise Portal Platform. More specifically, the <filename>wsrp-consumers-config.xml</filename> file is scanned for producer identifiers. Any identifier that is already known will be bypassed and the JCR information associated with this remote producer will be used.
- </para>
- <para>
- The information defined at the XML level is only processed for producer definition for which no information is already present in the JCR.
- </para>
- <para>
- Therefore, to delete a Producer configuration, the associated information in the database must be deleted (this can be accomplished using the configuration portlet as shown in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet" />).
- </para>
- <para>
- The associated information in <filename>wsrp-consumers-config.xml</filename> (if such information exists) must also be removed, otherwise the producer will be re-created the next time the WSRP is launched.
- </para>
-
+
+ <note>
+ <title>The Consumer Configuration file</title>
+
+ <para>
+ It is important to understand how the XML Consumers configuration file is processed. It is read the first time the WSRP service starts and the associated information is then put under control of the JCR (Java Content Repository).
+ </para>
+
+ <para>
+ Subsequent launches of the WSRP service will use the JCR-stored information for all producers that are already known to JBoss Enterprise Portal Platform. More specifically, the <filename>wsrp-consumers-config.xml</filename> file is scanned for producer identifiers. Any identifier that is already known will be bypassed and the JCR information associated with this remote producer will be used.
+ </para>
+
+ <para>
+ The information defined at the XML level is only processed for producer definition for which no information is already present in the JCR.
+ </para>
+
+ <para>
+ Therefore, to delete a Producer configuration, the associated information in the database must be deleted (this can be accomplished using the configuration portlet as shown in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet" /> ).
+ </para>
+
+ <para>
+ The associated information in <filename>wsrp-consumers-config.xml</filename> (if such information exists) must also be removed, otherwise the producer will be re-created the next time the WSRP is launched.
+ </para>
</note>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_Access_to_Remote_Producers_via_XML-Required_Configuration_Information">
- <title>Required Configuration Information</title>
- <para>
- The following information needs to be provided to configure access to a remote Producer:
- </para>
- <orderedlist>
- <listitem>
- <para>
- An identifier must be provided for the producer being configured so that it can be referred to later. This is done in the mandatory <literal>id</literal> attribute of the <literal><wsrp-producer></literal> element.
- </para>
-
- </listitem>
- <listitem>
- <para>
- JBoss Enterprise Portal Platform also needs to know about the remote Producer's endpoints to be able to connect to the remote web services and perform WSRP invocations. Use the <literal><endpoint-wsdl-url></literal> element to specify the URL for the WSDL description of the remote WSRP service.
- </para>
-
- </listitem>
-
- </orderedlist>
- <para>
- Both the <literal>id</literal> attribute and <literal><endpoint-wsdl-url></literal> elements are required for a functional remote producer configuration.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_Access_to_Remote_Producers_via_XML-Optional_Configuration">
- <title>Optional Configuration</title>
- <para>
- It is also possible to provide additional configuration, which, in some cases, might be important to establish a proper connection to the remote producer.
- </para>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Optional_Configuration-Optional_Configurations">
- <title>Optional Configurations</title>
- <varlistentry>
- <term>Caching</term>
- <listitem>
- <para>
- To prevent unnecessary traffic between the local consumer and the remote producer, it is possible to cache some of the information sent by the producer (such as the list of offered portlets) for a given duration.
- </para>
- <para>
- The rate at which the information is refreshed is defined by the <literal>expiration-cache</literal> attribute of the <literal><wsrp-producer></literal> element (in seconds).
- </para>
- <para>
- For example; providing a value of <literal>120</literal> for expiration-cache means that the producer information will not be refreshed for 2 minutes after it has been accessed. If no value is provided, JBoss Enterprise Portal Platform will always access the remote producer regardless of whether the remote information has changed or not.
- </para>
- <para>
- Since, in most instances, the information provided by the producer does not change often, use of this caching facility to minimize bandwidth usage is recommended.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>WS Timeout</term>
- <listitem>
- <para>
- It is also possible to define a timeout after which WS operations are considered as failed. This is helpful to avoid blocking the WSRP service, as it waits on a service that does not answer.
- </para>
- <para>
- Use the <literal>ws-timeout</literal> attribute of the <literal><wsrp-producer></literal> element to specify how many milliseconds the WSRP service will wait for a response from the remote producer before timing out.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Pre-registration information</term>
- <listitem>
- <para>
- Some producers require consumers to register with them before authorizing them to access their offered portlets. If known, some registration information can be provided in the producer configuration beforehand, so that the consumer can register with the remote producer when required.
- </para>
- <note>
- <para>
- Only simple String properties are supported. It is not possible to configure complex registration data. However, this should be sufficient for most cases.
- </para>
-
- </note>
- <para>
- This pre-registration configuration is done via the <literal><registration-data></literal> element.
- </para>
- <para>
- If the remote producer does not require any registration properties, only an empty <literal><registration-data></literal> element need be provided, as JBoss Enterprise Portal Platform can generate the mandatory information.
- </para>
- <para>
- Values for the registration properties required by the remote producer can be provided via <literal><property></literal> elements. Refer to the example below for more details.
- </para>
- <para>
- Additionally, the default consumer name automatically provided by JBoss Enterprise Portal Platform can be overridden via the <literal><consumer-name></literal> element. When providing a consumer name, please remember that it should uniquely identify your consumer.
- </para>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
-
- </section>
-
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Examples">
- <title>Examples</title>
- <para>
- This is the configuration of the <literal>selfv1</literal> and <literal>selfv2</literal> consumers as found in <filename>default-wsrp.xml</filename> with a cache expiring every five minutes and with a 30 second timeout for web service operations:
- </para>
-<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default258.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- This is an example of a WSRP descriptor with registration data and cache expiring every minute:
- </para>
-
-<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default259.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </section>
-
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consumers_Maintenance">
- <title>Consumers Maintenance</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Modifying_a_Currently_Held_Registration">
- <title>Modifying a Currently Held Registration</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_for_Service_Upgrade">
- <title>Registration Modification for Service Upgrade</title>
- <para>
- Producers often offer several levels of service depending on consumers' subscription levels (for example). This is implemented at the WSRP level with the registration concept: producers can assert which level of service to provide to consumers based on the values of given registration properties.
- </para>
- <para>
- There may also be cases where the registration information has changed and must be updated. For example, the producer required you to provide a valid email and the previous email address is not valid anymore and needs to be updated.
- </para>
- <para>
- Therefore at times it may be necessary to modify the registration that sets the service agreement between a consumer and a producer.
- </para>
- <para>
- For example; the producer requiring an email that was configured in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet" />. In that case the producer was requiring registration and required a value to be provided for the <literal>email</literal> property.
- </para>
- <para>
- To update the email address that was provided, the remote producer must be informed that some registration data has been modified.
- </para>
- <para>
- The following procedure assumes access to the producer has been configured as previously described.
- </para>
- <procedure>
- <step>
- <para>
- Go to the configuration screen for the <literal>self</literal> producer and change the value of <literal>email</literal> to <literal>foo(a)example.com</literal> instead of <literal>example(a)example.com</literal>:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_start.png" format="PNG" scale="100" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_start.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
- <step>
- <para>
- Click on "<emphasis role="bold">Update properties</emphasis>" to save the change. A "<emphasis role="bold">Modify registration</emphasis>" button should now appear to let you send this new data to the remote producer:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_modify.png" format="PNG" scale="100" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_modify.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
- <step>
- <para>
- Click on <emphasis role="bold">Modify registration</emphasis> and, if the updated registration details have been accepted by the remote producer the following should appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_end.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_end.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
-
- </procedure>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_Access_to_Remote_Producers_via_XML-Required_Configuration_Information">
+ <title>Required Configuration Information</title>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error">
- <title>Registration Modification on Producer Error</title>
- <para>
- If a Producer administrator changes the requirements for registered consumers, invoking operations on the producer may fail with an <exceptionname>OperationFailedFault</exceptionname>. JBoss Enterprise Portal Platform will attempt to assist in these cases.
- </para>
- <para>
- This section will discuss an example using the <literal>self</literal> producer.
- </para>
- <para>
- Assuming that the registration requires a valid value for an <literal>email</literal> registration property (as has been shown) the configuration screen for this producer should show:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_self.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_self.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- If the administrator of the producer now requires an additional value to be provided for a <literal>name</literal> registration property operations with this producer will fail.
- </para>
- <para>
- If a registration modification is required, go to the configuration screen for this remote producer and refresh the information held by the consumer by pressing "<emphasis role="bold">Refresh & Save</emphasis>":
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_self.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- The configuration screen now shows the currently held registration information and the expected information from the producer.
- </para>
- <para>
- Enter a value for the <literal>name</literal> property and then click on "<emphasis role="bold">Modify registration</emphasis>". If the producer accepts the new registration data, the following screen will appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <note>
- <title><emphasis role="bold">JBoss Enterprise Portal Platform &VY; and WSRP 1 Exceptions</emphasis></title>
+ <para>
+ The following information needs to be provided to configure access to a remote Producer:
+ </para>
+
+ <orderedlist>
+ <listitem>
<para>
- In WSRP 1, it can be difficult to ascertain what caused an <exceptionname>OperationFailedFault</exceptionname> as it is a generic exception returned by producers during a failed method invocation.
- </para>
+ An identifier must be provided for the producer being configured so that it can be referred to later. This is done in the mandatory <literal>id</literal> attribute of the <literal><wsrp-producer></literal> element.
+ </para>
+ </listitem>
+
+ <listitem>
<para>
- An <exceptionname>OperationFailedFault</exceptionname> failure can be caused by several different reasons, one of them being a request to modify the registration data.
- </para>
- <para>
- In these instances examining the log files may assist in gathering more information about the problem.
- </para>
- <para>
- WSRP 2 introduces an exception that is specific to a request to modify registrations which reduces the ambiguity that currently exists.
- </para>
-
- </note>
-
+ JBoss Enterprise Portal Platform also needs to know about the remote Producer's endpoints to be able to connect to the remote web services and perform WSRP invocations. Use the <literal><endpoint-wsdl-url></literal> element to specify the URL for the WSDL description of the remote WSRP service.
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <para>
+ Both the <literal>id</literal> attribute and <literal><endpoint-wsdl-url></literal> elements are required for a functional remote producer configuration.
+ </para>
</section>
-
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Consumer_Operations">
- <title>Consumer Operations</title>
- <para>
- Several operations are available from the consumer list view of the WSRP configuration portlet:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/consumer_operations.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/consumer_operations.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- The available operations are:
- </para>
- <variablelist>
- <varlistentry>
- <term>Configure</term>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_Access_to_Remote_Producers_via_XML-Optional_Configuration">
+ <title>Optional Configuration</title>
+
+ <para>
+ It is also possible to provide additional configuration, which, in some cases, might be important to establish a proper connection to the remote producer.
+ </para>
+
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Optional_Configuration-Optional_Configurations">
+ <title>Optional Configurations</title>
+
+ <varlistentry>
+ <term>Caching</term>
+
<listitem>
<para>
- Displays the consumer details and allows user to edit them.
+ To prevent unnecessary traffic between the local consumer and the remote producer, it is possible to cache some of the information sent by the producer (such as the list of offered portlets) for a given duration.
</para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Refresh</term>
- <listitem>
+
<para>
- Forces the consumer to retrieve the service description from the remote producer to refresh the local information (such as offered portlets, registration information).
+ The rate at which the information is refreshed is defined by the <literal>expiration-cache</literal> attribute of the <literal><wsrp-producer></literal> element (in seconds).
</para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Activate/Deactivate</term>
- <listitem>
+
<para>
- Activates or deactivates a consumer, governing whether it will be available to provide portlets and receive portlet invocations.
+ For example; providing a value of <literal>120</literal> for expiration-cache means that the producer information will not be refreshed for 2 minutes after it has been accessed. If no value is provided, JBoss Enterprise Portal Platform will always access the remote producer regardless of whether the remote information has changed or not.
</para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Register/De-register</term>
- <listitem>
+
<para>
- Registers or de-registers a consumer based on whether registration is required and/or acquired.
+ Since, in most instances, the information provided by the producer does not change often, use of this caching facility to minimize bandwidth usage is recommended.
</para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Delete</term>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>WS Timeout</term>
+
<listitem>
<para>
- Destroys the consumer, after de-registering it if it was registered.
+ It is also possible to define a timeout after which WS operations are considered as failed. This is helpful to avoid blocking the WSRP service, as it waits on a service that does not answer.
</para>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
- <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Additional_Functionalities_in_WSRP_2.0">
- <title><emphasis role="bold">Additional Functionalities in WSRP 2.0</emphasis></title>
- <para>
- In addition to those listed above, the WSRP 2.0 implementation in JBoss Enterprise Portal Platform &VY; also includes the following functions:
- </para>
-
- </formalpara>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Additional_Functions">
- <title>Additional Functions:</title>
- <varlistentry>
- <term>Export</term>
- <listitem>
+
<para>
- Exports some or all of the consumer's portlets to be able to later import them in a different context
+ Use the <literal>ws-timeout</literal> attribute of the <literal><wsrp-producer></literal> element to specify how many milliseconds the WSRP service will wait for a response from the remote producer before timing out.
</para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Import</term>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Pre-registration information</term>
+
<listitem>
<para>
- Imports some or all of previously exported portlets.
+ Some producers require consumers to register with them before authorizing them to access their offered portlets. If known, some registration information can be provided in the producer configuration beforehand, so that the consumer can register with the remote producer when required.
</para>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Importing_and_Exporting_Portlets">
- <title><emphasis role="bold">Importing and Exporting Portlets</emphasis></title>
- <para>
- Import and export are new functionalities added in WSRP 2.
- </para>
- <para>
- Exporting a portlet allows a consumer to get an opaque representation of the portlet which can then be use by the corresponding import operation to reconstitute it.
- </para>
- <para>
- This is mostly used in migration scenarios during batch operations. Since JBoss Enterprise Portal Platform does not currently support automated migration of portal data, the functionality provided as part of WSRP 2 is necessarily less complete than it could be with full portal support.
- </para>
- <para>
- The import/export implementation in JBoss Enterprise Portal Platform allows users to export portlets from a given consumer and then import them back to replace existing portlets assigned to windows on pages by the previously exported portlets.
- </para>
- <procedure>
- <title></title>
- <step>
+
+ <note>
+ <para>
+ Only simple String properties are supported. It is not possible to configure complex registration data. However, this should be sufficient for most cases.
+ </para>
+ </note>
+
<para>
- Click on the "<guilabel>Export</guilabel>" action for a given consumer to display the list of portlets currently made available by this specific consumer. An example list is shown below:
+ This pre-registration configuration is done via the <literal><registration-data></literal> element.
</para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/export_portlet_list.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_portlet_list.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
- <step>
+
<para>
- Once portlets have been selected, they can be exported by clicking on the "<guilabel>Export</guilabel>" button. This makes them available for later import:
+ If the remote producer does not require any registration properties, only an empty <literal><registration-data></literal> element need be provided, as JBoss Enterprise Portal Platform can generate the mandatory information.
</para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/export_done.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_done.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
- <step>
+
<para>
- The portlets can be re-imported directly by pressing the "<guilabel>Use for import</guilabel>" button or, on the Consumers list page, using the "<guilabel>Import</guilabel>" action for a given consumer.
+ Values for the registration properties required by the remote producer can be provided via <literal><property></literal> elements. Refer to the example below for more details.
</para>
- <para>
- The example below assumes that the second option has been used and that several sets of previously exported portlets are available to import from. After clicking the action link, a screen similar to the one below should appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/export_list.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_list.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- This screen presents the list of available exports with available operations for each.
- </para>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Importing_and_Exporting_Portlets-Operations">
- <title>Operations:</title>
- <varlistentry>
- <term>View</term>
- <listitem>
- <para>
- Displays the export details as previously seen when the export was first performed.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Delete</term>
- <listitem>
- <para>
- Deletes the selected export, asking you for confirmation first.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Use for import</term>
- <listitem>
- <para>
- Selects the export to import portlets from.
- </para>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
-
- </step>
- <step>
+
<para>
- Once you have selected an export to import from, you will see a screen similar to the one below:
+ Additionally, the default consumer name automatically provided by JBoss Enterprise Portal Platform can be overridden via the <literal><consumer-name></literal> element. When providing a consumer name, please remember that it should uniquely identify your consumer.
</para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_start.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_start.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- The screen displays the list of available exported portlets for the previously selected export. You can select which portlet you want to import by checking the checkbox next to its name.
- </para>
-
- </step>
- <step>
- <para>
- Select the content of which window the imported portlet will replace. This process is done in three steps:
- </para>
- <para>
- This example assumes that you have the following page called <literal>page1</literal> which contains two windows called <literal>NetUnity WSRP 2 Interop - Cache Markup (remote)</literal> and <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal>, as shown below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_original_page.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_original_page.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- In this example, we want to replace the content of the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> with the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet that was previously exported.
- </para>
- <procedure>
- <title></title>
- <step>
- <para>
- Check the box next to the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet name to indicate that you want to import its data.
- </para>
-
- </step>
- <step>
- <para>
- Select <literal>page1</literal> in the list of available pages. The screen will then refresh to display the list of available windows on that page, similar to the image below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_selected_page.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_selected_page.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <note>
- <title>Note</title>
- <para>
- At this point, you still need to select which window content you want to replace before being able to complete the import operation
- </para>
-
- </note>
-
- </step>
- <step>
- <para>
- Select the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window, which enables the "<guilabel>Import</guilabel>" button. This indicates that all the necessary data to perform the import is available.
- </para>
-
- </step>
- <step>
- <para>
- Click the "<guilabel>Import</guilabel>" button. A screen similar to the one below will appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_success.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_success.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
-
- </procedure>
-
-
- </step>
- <step>
- <para>
- The <literal>page1</literal> page should now show that the content of <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window has been replaced by the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> imported portlet and that the window has been renamed appropriately.
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_modified_page.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_modified_page.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
-
- </procedure>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Examples">
+ <title>Examples</title>
+
+ <para>
+ This is the configuration of the <literal>selfv1</literal> and <literal>selfv2</literal> consumers as found in <filename>default-wsrp.xml</filename> with a cache expiring every five minutes and with a 30 second timeout for web service operations:
+ </para>
+<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default258.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
+ <para>
+ This is an example of a WSRP descriptor with registration data and cache expiring every minute:
+ </para>
+<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default259.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consumers_Maintenance">
+ <title>Consumers Maintenance</title>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Modifying_a_Currently_Held_Registration">
+ <title>Modifying a Currently Held Registration</title>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_for_Service_Upgrade">
+ <title>Registration Modification for Service Upgrade</title>
-
+ <para>
+ Producers often offer several levels of service depending on consumers' subscription levels (for example). This is implemented at the WSRP level with the registration concept: producers can assert which level of service to provide to consumers based on the values of given registration properties.
+ </para>
+
+ <para>
+ There may also be cases where the registration information has changed and must be updated. For example, the producer required you to provide a valid email and the previous email address is not valid anymore and needs to be updated.
+ </para>
+
+ <para>
+ Therefore at times it may be necessary to modify the registration that sets the service agreement between a consumer and a producer.
+ </para>
+
+ <para>
+ For example; the producer requiring an email that was configured in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet" /> . In that case the producer was requiring registration and required a value to be provided for the <literal>email</literal> property.
+ </para>
+
+ <para>
+ To update the email address that was provided, the remote producer must be informed that some registration data has been modified.
+ </para>
+
+ <para>
+ The following procedure assumes access to the producer has been configured as previously described.
+ </para>
+
+ <procedure>
+ <step><para>
+ Go to the configuration screen for the <literal>self</literal> producer and change the value of <literal>email</literal> to <literal>foo(a)example.com</literal> instead of <literal>example(a)example.com</literal>:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_start.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_start.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ Click on "<emphasis role="bold">Update properties</emphasis>" to save the change. A "<emphasis role="bold">Modify registration</emphasis>" button should now appear to let you send this new data to the remote producer:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_modify.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_modify.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ Click on <emphasis role="bold">Modify registration</emphasis> and, if the updated registration details have been accepted by the remote producer the following should appear:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_end.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_end.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+ </procedure>
</section>
-
-
- </section>
-
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error">
+ <title>Registration Modification on Producer Error</title>
+
+ <para>
+ If a Producer administrator changes the requirements for registered consumers, invoking operations on the producer may fail with an <literal>OperationFailedFault</literal>. JBoss Enterprise Portal Platform will attempt to assist in these cases.
+ </para>
+
+ <para>
+ This section will discuss an example using the <literal>self</literal> producer.
+ </para>
+
+ <para>
+ Assuming that the registration requires a valid value for an <literal>email</literal> registration property (as has been shown) the configuration screen for this producer should show:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_self.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_self.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ If the administrator of the producer now requires an additional value to be provided for a <literal>name</literal> registration property operations with this producer will fail.
+ </para>
+
+ <para>
+ If a registration modification is required, go to the configuration screen for this remote producer and refresh the information held by the consumer by pressing "<emphasis role="bold">Refresh & Save</emphasis>":
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_self.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ The configuration screen now shows the currently held registration information and the expected information from the producer.
+ </para>
+
+ <para>
+ Enter a value for the <literal>name</literal> property and then click on "<emphasis role="bold">Modify registration</emphasis>". If the producer accepts the new registration data, the following screen will appear:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+
+ <note>
+ <title><emphasis role="bold">JBoss Enterprise Portal Platform &VY; and WSRP 1 Exceptions</emphasis></title>
+
+ <para>
+ In WSRP 1, it can be difficult to ascertain what caused an <literal> OperationFailedFault </literal> as it is a generic exception returned by producers during a failed method invocation.
+ </para>
+
+ <para>
+ An <literal>OperationFailedFault</literal> failure can be caused by several different reasons, one of them being a request to modify the registration data.
+ </para>
+
+ <para>
+ In these instances examining the log files may assist in gathering more information about the problem.
+ </para>
+
+ <para>
+ WSRP 2 introduces an exception that is specific to a request to modify registrations which reduces the ambiguity that currently exists.
+ </para>
+ </note>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Consumer_Operations">
+ <title>Consumer Operations</title>
+
+ <para>
+ Several operations are available from the consumer list view of the WSRP configuration portlet:
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/consumer_operations.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/consumer_operations.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ The available operations are:
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Configure</term>
+
+ <listitem>
+ <para>
+ Displays the consumer details and allows user to edit them.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Refresh</term>
+
+ <listitem>
+ <para>
+ Forces the consumer to retrieve the service description from the remote producer to refresh the local information (such as offered portlets, registration information).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Activate/Deactivate</term>
+
+ <listitem>
+ <para>
+ Activates or deactivates a consumer, governing whether it will be available to provide portlets and receive portlet invocations.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Register/De-register</term>
+
+ <listitem>
+ <para>
+ Registers or de-registers a consumer based on whether registration is required and/or acquired.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Delete</term>
+
+ <listitem>
+ <para>
+ Destroys the consumer, after de-registering it if it was registered.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Additional_Functionalities_in_WSRP_2.0">
+ <title><emphasis role="bold">Additional Functionalities in WSRP 2.0</emphasis></title> <para>
+ In addition to those listed above, the WSRP 2.0 implementation in JBoss Enterprise Portal Platform &VY; also includes the following functions:
+ </para>
+ </formalpara>
+
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Additional_Functions">
+ <title>Additional Functions:</title>
+
+ <varlistentry>
+ <term>Export</term>
+
+ <listitem>
+ <para>
+ Exports some or all of the consumer's portlets to be able to later import them in a different context
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Import</term>
+
+ <listitem>
+ <para>
+ Imports some or all of previously exported portlets.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Importing_and_Exporting_Portlets">
+ <title><emphasis role="bold">Importing and Exporting Portlets</emphasis></title>
+
+ <para>
+ Import and export are new functionalities added in WSRP 2.
+ </para>
+
+ <para>
+ Exporting a portlet allows a consumer to get an opaque representation of the portlet which can then be use by the corresponding import operation to reconstitute it.
+ </para>
+
+ <para>
+ This is mostly used in migration scenarios during batch operations. Since JBoss Enterprise Portal Platform does not currently support automated migration of portal data, the functionality provided as part of WSRP 2 is necessarily less complete than it could be with full portal support.
+ </para>
+
+ <para>
+ The import/export implementation in JBoss Enterprise Portal Platform allows users to export portlets from a given consumer and then import them back to replace existing portlets assigned to windows on pages by the previously exported portlets.
+ </para>
+
+ <procedure>
+ <title></title>
+
+ <step><para>
+ Click on the "<guilabel>Export</guilabel>" action for a given consumer to display the list of portlets currently made available by this specific consumer. An example list is shown below:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/export_portlet_list.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_portlet_list.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ Once portlets have been selected, they can be exported by clicking on the "<guilabel>Export</guilabel>" button. This makes them available for later import:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/export_done.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_done.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ The portlets can be re-imported directly by pressing the "<guilabel>Use for import</guilabel>" button or, on the Consumers list page, using the "<guilabel>Import</guilabel>" action for a given consumer.
+ </para> <para>
+ The example below assumes that the second option has been used and that several sets of previously exported portlets are available to import from. After clicking the action link, a screen similar to the one below should appear:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/export_list.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_list.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject> <para>
+ This screen presents the list of available exports with available operations for each.
+ </para> <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Importing_and_Exporting_Portlets-Operations">
+ <title>Operations:</title>
+
+ <varlistentry>
+ <term>View</term>
+
+ <listitem>
+ <para>
+ Displays the export details as previously seen when the export was first performed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Delete</term>
+
+ <listitem>
+ <para>
+ Deletes the selected export, asking you for confirmation first.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Use for import</term>
+
+ <listitem>
+ <para>
+ Selects the export to import portlets from.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist></step>
+
+ <step><para>
+ Once you have selected an export to import from, you will see a screen similar to the one below:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_start.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_start.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject> <para>
+ The screen displays the list of available exported portlets for the previously selected export. You can select which portlet you want to import by checking the checkbox next to its name.
+ </para></step>
+
+ <step><para>
+ Select the content of which window the imported portlet will replace. This process is done in three steps:
+ </para> <para>
+ This example assumes that you have the following page called <literal>page1</literal> which contains two windows called <literal>NetUnity WSRP 2 Interop - Cache Markup (remote)</literal> and <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal>, as shown below:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_original_page.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_original_page.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject> <para>
+ In this example, we want to replace the content of the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> with the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet that was previously exported.
+ </para> <procedure>
+ <title></title>
+
+ <step><para>
+ Check the box next to the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet name to indicate that you want to import its data.
+ </para></step>
+
+ <step><para>
+ Select <literal>page1</literal> in the list of available pages. The screen will then refresh to display the list of available windows on that page, similar to the image below:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_selected_page.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_selected_page.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject> <note>
+ <title>Note</title>
+
+ <para>
+ At this point, you still need to select which window content you want to replace before being able to complete the import operation
+ </para>
+ </note></step>
+
+ <step><para>
+ Select the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window, which enables the "<guilabel>Import</guilabel>" button. This indicates that all the necessary data to perform the import is available.
+ </para></step>
+
+ <step><para>
+ Click the "<guilabel>Import</guilabel>" button. A screen similar to the one below will appear:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_success.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_success.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+ </procedure></step>
+
+ <step><para>
+ The <literal>page1</literal> page should now show that the content of <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window has been replaced by the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> imported portlet and that the window has been renamed appropriately.
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_modified_page.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_modified_page.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+ </procedure>
+ </section>
+ </section>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Erasing_Local_Registration_Data">
<title>Erasing Local Registration Data</title>
- <para>
- In rare cases, it may be necessary to erase the local data without being able to de-register first.
+
+ <para>
+ In rare cases, it may be necessary to erase the local data without being able to de-register first.
</para>
- <para>
- This can occur when a consumer is registered with a producer that has been modified by its administrator to not require registration any longer.
+
+ <para>
+ This can occur when a consumer is registered with a producer that has been modified by its administrator to not require registration any longer.
</para>
- <para>
- In this scenario, local registration information can be erased from the consumer to allow it to resume interacting with the remote producer.
+
+ <para>
+ In this scenario, local registration information can be erased from the consumer to allow it to resume interacting with the remote producer.
</para>
- <para>
- To do this click on the "<emphasis role="bold">Erase local registration</emphasis>" button next to the registration context information on the consumer configuration screen:
+
+ <para>
+ To do this click on the "<emphasis role="bold">Erase local registration</emphasis>" button next to the registration context information on the consumer configuration screen:
</para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/erase_registration.png" format="PNG" scale="80" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration.png" format="PNG" width="444" />
- </imageobject>
-
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/erase_registration.png" format="PNG" scale="80" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration.png" format="PNG" width="444" />
+ </imageobject>
</mediaobject>
- <warning>
- <para>
- This operation is dangerous as it can result in inability to interact with the remote producer if invoked when not required. The warning message below will be displayed before any data is erased.
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/erase_registration_warning.png" format="PNG" scale="100" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration_warning.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
+
+ <warning>
+ <para>
+ This operation is dangerous as it can result in inability to interact with the remote producer if invoked when not required. The warning message below will be displayed before any data is erased.
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/erase_registration_warning.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration_warning.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
</warning>
-
- </section>
-
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Configuring_the_WSRP_Producer">
- <title>Configuring the WSRP Producer</title>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Configuring_the_WSRP_Producer">
+ <title>Configuring the WSRP Producer</title>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Overview">
<title>Overview</title>
- <para>
- The behavior of the Portal's WSRP Producer can be configured using the WSRP administration interface, (this is the recommended method), or by editing the <filename><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable><VERSION></replaceable>-epp-GA.jar/conf/wsrp-producer-config.xml</filename> file.
+
+ <para>
+ The behavior of the Portal's WSRP Producer can be configured using the WSRP administration interface, (this is the recommended method), or by editing the <filename><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable><VERSION></replaceable>-epp-GA.jar/conf/wsrp-producer-config.xml</filename> file.
</para>
- <para>
- Several aspects can be modified with respect to whether registration is required for consumers to access the Producer's services. An XML Schema for the configuration format is available at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_producer_1_0.xsd </filename>.
+
+ <para>
+ Several aspects can be modified with respect to whether registration is required for consumers to access the Producer's services. An XML Schema for the configuration format is available at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_producer_1_0.xsd </filename>.
</para>
- <para>
- An alternative to editing the default <filename>wsrp-producer-config.xml</filename> file is to make a custom copy containing the required configuration options.
+
+ <para>
+ An alternative to editing the default <filename>wsrp-producer-config.xml</filename> file is to make a custom copy containing the required configuration options.
</para>
- <para>
- If a copy is used in place of the original, however, the <filename><replaceable>WSRP_PATH</replaceable>/02portal.war/WEB-INF/conf/wsrp/wsrp-configuration.xml</filename> <emphasis role="bold">must</emphasis> be updated to reference the custom file (this file defines the component <literal>WSRPServiceIntegration</literal> and contains a producer and consumer configuration location).
+
+ <para>
+ If a copy is used in place of the original, however, the <filename><replaceable>WSRP_PATH</replaceable>/02portal.war/WEB-INF/conf/wsrp/wsrp-configuration.xml</filename> <emphasis role="bold">must</emphasis> be updated to reference the custom file (this file defines the component <literal>WSRPServiceIntegration</literal> and contains a producer and consumer configuration location).
</para>
-
- </section>
-
+ </section>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Default_Configuration">
<title>Default Configuration</title>
- <para>
- The default producer configuration requires that consumers register with it before providing access to its services. However it does not require any specific registration properties (excepting those mandated by the WSRP standard).
+
+ <para>
+ The default producer configuration requires that consumers register with it before providing access to its services. However it does not require any specific registration properties (excepting those mandated by the WSRP standard).
</para>
- <para>
- It does, however, require consumers to be registered before sending them a full service description. This means that the WSRP producer will not provide the list of offered portlets and other capabilities to unregistered consumers.
+
+ <para>
+ It does, however, require consumers to be registered before sending them a full service description. This means that the WSRP producer will not provide the list of offered portlets and other capabilities to unregistered consumers.
</para>
- <para>
- The producer also uses the default <classname>RegistrationPolicy</classname> paired with the default <classname>RegistrationPropertyValidator</classname>.
+
+ <para>
+ The producer also uses the default <classname>RegistrationPolicy</classname> paired with the default <classname>RegistrationPropertyValidator</classname>.
</para>
- <para>
- This allows users to customize how Portal's WSRP Producer decides whether a given registration property is valid or not (however property validators are discussed in greater detail in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Registration_Configuration" />).
+
+ <para>
+ This allows users to customize how Portal's WSRP Producer decides whether a given registration property is valid or not (however property validators are discussed in greater detail in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Registration_Configuration" /> ).
</para>
- <para>
- JBoss Enterprise Portal Platform provides a web interface to configure the producer's behavior. It can be accessed by clicking on the "<emphasis role="bold">Producer Configuration</emphasis>" tab of the "<emphasis role="bold">WSRP</emphasis>" page of the "<emphasis role="bold">admin</emphasis>" portal.
+
+ <para>
+ JBoss Enterprise Portal Platform provides a web interface to configure the producer's behavior. It can be accessed by clicking on the "<emphasis role="bold">Producer Configuration</emphasis>" tab of the "<emphasis role="bold">WSRP</emphasis>" page of the "<emphasis role="bold">admin</emphasis>" portal.
</para>
- <para>
- The default configuration should show:
+
+ <para>
+ The default configuration should show:
</para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_default.png" format="PNG" scale="110" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_default.png" format="PNG" width="444" />
- </imageobject>
-
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_default.png" format="PNG" scale="110" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_default.png" format="PNG" width="444" />
+ </imageobject>
</mediaobject>
- <para>
- You can specify whether or not the producer will send the full service description to unregistered consumers, and, if it requires registration, which <literal>RegistrationPolicy</literal> to use (and, if needed, which <literal>RegistrationPropertyValidator</literal>), along with required registration property description for which consumers must provide acceptable values to successfully register.
+
+ <para>
+ You can specify whether or not the producer will send the full service description to unregistered consumers, and, if it requires registration, which <literal>RegistrationPolicy</literal> to use (and, if needed, which <literal>RegistrationPropertyValidator</literal>), along with required registration property description for which consumers must provide acceptable values to successfully register.
</para>
- <para>
- WSDL URLs to access JBoss Enterprise Portal Platform's WSRP producer are now displayed in either in WSRP 1 or WSRP 2 mode.
+
+ <para>
+ WSDL URLs to access JBoss Enterprise Portal Platform's WSRP producer are now displayed in either in WSRP 1 or WSRP 2 mode.
</para>
-
- </section>
-
+ </section>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Registration_Configuration">
<title>Registration Configuration</title>
- <para>
- In order to have consumers register with Portal's producer the Portal's behavior with respect to registration must be configured.
+
+ <para>
+ In order to have consumers register with Portal's producer the Portal's behavior with respect to registration must be configured.
</para>
- <para>
- Registration is optional, as are registration properties. The producer can require registration without requiring consumers to pass any registration properties as is the case in the default configuration.
+
+ <para>
+ Registration is optional, as are registration properties. The producer can require registration without requiring consumers to pass any registration properties as is the case in the default configuration.
</para>
- <para>
- The following section discusses configuring a producer's registration behavior from a blank state:
+
+ <para>
+ The following section discusses configuring a producer's registration behavior from a blank state:
</para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_blank.png" format="PNG" width="700" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_blank.png" format="PNG" width="444" />
- </imageobject>
-
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_blank.png" format="PNG" width="700" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_blank.png" format="PNG" width="444" />
+ </imageobject>
</mediaobject>
- <procedure>
- <step>
- <para>
- To allow unregistered consumers to see the list of offered portlets, leave the first checkbox ("<emphasis role="bold">Access to full service description requires consumers to be registered.</emphasis>") unchecked.
- </para>
-
- </step>
- <step>
- <para>
- To specify, however, that consumers will need to be registered to be able to interact with the producer, check the second box ("<emphasis role="bold">Requires registration. Modifying this information will trigger invalidation of consumer registrations."</emphasis>).
- </para>
- <para>
- The screen will refresh and display:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_registration.png" format="PNG" width="700" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_registration.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
- <step>
- <para>
- The fully-qualified name for the <classname>RegistrationPolicy</classname> and <classname>RegistrationPropertyValidator</classname> can be specified here. The default values are acceptable. Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Registration_Configuration-Customization_of_Registration_Handling_Behavior" /> for more information.
- </para>
-
- </step>
- <step>
- <para>
- To add a registration property called <literal>email</literal> click "<emphasis role="bold">Add property</emphasis>" and enter the appropriate information in the fields, providing a description for the registration property that can be used by consumers to determine its purpose:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_email.png" format="PNG" width="700" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_email.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
- <step>
- <para>
- Press "Save" to record the modifications.
- </para>
-
- </step>
-
+
+ <procedure>
+ <step><para>
+ To allow unregistered consumers to see the list of offered portlets, leave the first checkbox ("<emphasis role="bold">Access to full service description requires consumers to be registered.</emphasis>") unchecked.
+ </para></step>
+
+ <step><para>
+ To specify, however, that consumers will need to be registered to be able to interact with the producer, check the second box ("<emphasis role="bold">Requires registration. Modifying this information will trigger invalidation of consumer registrations."</emphasis>).
+ </para> <para>
+ The screen will refresh and display:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_registration.png" format="PNG" width="700" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_registration.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ The fully-qualified name for the <classname>RegistrationPolicy</classname> and <classname>RegistrationPropertyValidator</classname> can be specified here. The default values are acceptable. Refer to <xref linkend="sect-Reference_Guide-Registration_Configuration-Customization_of_Registration_Handling_Behavior" /> for more information.
+ </para></step>
+
+ <step><para>
+ To add a registration property called <literal>email</literal> click "<emphasis role="bold">Add property</emphasis>" and enter the appropriate information in the fields, providing a description for the registration property that can be used by consumers to determine its purpose:
+ </para> <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_email.png" format="PNG" width="700" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_email.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject></step>
+
+ <step><para>
+ Press "Save" to record the modifications.
+ </para></step>
</procedure>
-
- <note>
- <para>
- At this time, only String (<literal>xsd:string</literal>) properties are supported.
- </para>
-
+
+ <note>
+ <para>
+ At this time, only String (<literal>xsd:string</literal>) properties are supported.
+ </para>
</note>
- <note>
- <para>
- If consumers are already registered with the producer, modifying the configuration of required registration information will trigger the invalidation of held registrations, requiring consumers to modify their registration before being able to access the producer again. The consumer side of that process is documented in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error" />.
- </para>
-
+
+ <note>
+ <para>
+ If consumers are already registered with the producer, modifying the configuration of required registration information will trigger the invalidation of held registrations, requiring consumers to modify their registration before being able to access the producer again. The consumer side of that process is documented in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error" /> .
+ </para>
</note>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Registration_Configuration-Customization_of_Registration_Handling_Behavior">
- <title>Customization of Registration Handling Behavior</title>
- <para>
- Registration handling behavior can be customized by users to suit their Producer needs. This is done with an implementation of the <classname>RegistrationPolicy</classname> interface.
- </para>
- <para>
- This interface defines methods that are called by Portal's Registration service so that decisions can be made appropriately. A default registration policy that provides basic behavior is provided and should be enough for most user needs.
- </para>
- <para>
- While the default registration policy provides default behavior for most registration-related aspects, one aspect requires specific configuration: whether a given value for a registration property is acceptable by the WSRP Producer.
- </para>
- <para>
- This is done by plugging a <classname>RegistrationPropertyValidator</classname> into the default registration policy. This allows users to define their own validation mechanism.
- </para>
- <para>
- Refer to the <trademark class="trade">Javadoc</trademark> for <classname>org.gatein.registration.RegistrationPolicy</classname> and <classname>org.gatein.registration.policies.RegistrationPropertyValidator</classname> for more details on what is expected of each method.
- </para>
- <para>
- A defined registration policy is required for the producer to be correctly configured. Do this by specifying the qualified class name of the registration policy.
- </para>
- <para>
- As it is anticipated that most users will use the default registration policy, it is possible to provide the class name of a custom property validator instead to customize the default registration policy behavior. Note that property validators are only used by the default policy.
- </para>
- <note>
- <para>
- Since the policy or the validator are defined via their class name and dynamically loaded, it is important to ensure that the identified class is available to the application server.
- </para>
- <para>
- One way to accomplish that is to deploy the policy implementation as a JAR file in the AS instance deploy directory.
- </para>
- <para>
- Note also that, since both policies and validators are dynamically instantiated, they must provide a default, no-argument constructor.
- </para>
-
- </note>
-
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Registration_Configuration-Customization_of_Registration_Handling_Behavior">
+ <title>Customization of Registration Handling Behavior</title>
+
+ <para>
+ Registration handling behavior can be customized by users to suit their Producer needs. This is done with an implementation of the <classname>RegistrationPolicy</classname> interface.
+ </para>
+
+ <para>
+ This interface defines methods that are called by Portal's Registration service so that decisions can be made appropriately. A default registration policy that provides basic behavior is provided and should be enough for most user needs.
+ </para>
+
+ <para>
+ While the default registration policy provides default behavior for most registration-related aspects, one aspect requires specific configuration: whether a given value for a registration property is acceptable by the WSRP Producer.
+ </para>
+
+ <para>
+ This is done by plugging a <classname>RegistrationPropertyValidator</classname> into the default registration policy. This allows users to define their own validation mechanism.
+ </para>
+
+ <para>
+ Refer to the <trademark class="trade">Javadoc</trademark> for <classname>org.gatein.registration.RegistrationPolicy</classname> and <classname>org.gatein.registration.policies.RegistrationPropertyValidator</classname> for more details on what is expected of each method.
+ </para>
+
+ <para>
+ A defined registration policy is required for the producer to be correctly configured. Do this by specifying the qualified class name of the registration policy.
+ </para>
+
+ <para>
+ As it is anticipated that most users will use the default registration policy, it is possible to provide the class name of a custom property validator instead to customize the default registration policy behavior. Note that property validators are only used by the default policy.
+ </para>
+
+ <note>
+ <para>
+ Since the policy or the validator are defined via their class name and dynamically loaded, it is important to ensure that the identified class is available to the application server.
+ </para>
+
+ <para>
+ One way to accomplish that is to deploy the policy implementation as a JAR file in the AS instance deploy directory.
+ </para>
+
+ <para>
+ Note also that, since both policies and validators are dynamically instantiated, they must provide a default, no-argument constructor.
+ </para>
+ </note>
</section>
-
-
- </section>
-
+ </section>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-WSRP_Validation_Mode">
<title>WSRP Validation Mode</title>
- <para>
- The lack of conformance kit and the wording of the WSRP specification leaves room for differing interpretations, resulting in interoperability issues. It is therefore possible to encounter issues when using consumers from different vendors.
+
+ <para>
+ The lack of conformance kit and the wording of the WSRP specification leaves room for differing interpretations, resulting in interoperability issues. It is therefore possible to encounter issues when using consumers from different vendors.
</para>
- <para>
- Experience of these issues has produced a way to relax the validation that the WSRP producer performs on the data provided by consumers to help with interoperability by accepting data that would normally be invalid.
+
+ <para>
+ Experience of these issues has produced a way to relax the validation that the WSRP producer performs on the data provided by consumers to help with interoperability by accepting data that would normally be invalid.
</para>
- <para>
- Note that the our validation algorithm is only relaxed on aspects of the specification that are deemed harmless such as invalid language codes.
+
+ <para>
+ Note that the our validation algorithm is only relaxed on aspects of the specification that are deemed harmless such as invalid language codes.
</para>
- <para>
- By default, the WSRP producer is configured in strict mode. If you experience issues with a given consumer, you may attempt to relax the validation mode. Un-checking the "Use strict WSRP compliance" checkbox on the Producer configuration screen to do this.
+
+ <para>
+ By default, the WSRP producer is configured in strict mode. If you experience issues with a given consumer, you may attempt to relax the validation mode. Un-checking the "Use strict WSRP compliance" checkbox on the Producer configuration screen to do this.
</para>
-
- </section>
-
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Removing_WSRP">
- <title>Removing WSRP</title>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Removing_WSRP">
+ <title>Removing WSRP</title>
+
<para>
If you are not going to use WSRP in your JBoss Enterprise Portal Platform instance, the WSRP configuration files may be left in place. They will not adversely affect your installation.
- </para>
+ </para>
+
<para>
+ However, if you wish to completely remove WSRP from your portal installation, remove the <filename>gatein-wsrp-integration.ear</filename> file from your application server deploy directory.
+ </para>
+<!--<para>
However, if you wish to completely remove WSRP from your portal installation, follow this procedure:
</para>
<procedure>
@@ -1714,7 +1733,7 @@
Open the <filename>repository-configuration.xml</filename> and remove the <emphasis role="bold">WSRP</emphasis> workspace:
</para>
-<programlisting language="XML" role="XML"><!-- WSRP -->
+<programlisting language="XML" role="XML">
<workspace name="wsrp-system">
<container>
<properties>
@@ -1816,11 +1835,6 @@
</step>
- </procedure>
-
-
- </section>
-
-
-</chapter>
-
+ </procedure> -->
+ </section>
+ </chapter>
13 years, 4 months
gatein SVN: r8038 - in portal/trunk/docs/reference-guide/en-US: modules and 1 other directory.
by do-not-reply@jboss.org
Author: chris.laprun(a)jboss.com
Date: 2011-11-10 17:34:44 -0500 (Thu, 10 Nov 2011)
New Revision: 8038
Modified:
portal/trunk/docs/reference-guide/en-US/Reference_Guide.ent
portal/trunk/docs/reference-guide/en-US/modules/WSRP.xml
Log:
- Started updating WSRP documentation.
- Updated WSRP version entity.
Modified: portal/trunk/docs/reference-guide/en-US/Reference_Guide.ent
===================================================================
--- portal/trunk/docs/reference-guide/en-US/Reference_Guide.ent 2011-11-10 22:31:04 UTC (rev 8037)
+++ portal/trunk/docs/reference-guide/en-US/Reference_Guide.ent 2011-11-10 22:34:44 UTC (rev 8038)
@@ -4,5 +4,5 @@
<!ENTITY BOOKID "Reference Guide">
<!ENTITY YEAR "2011">
<!ENTITY HOLDER "Red Hat, Inc">
-<!ENTITY WSRP_VERSION "2.0.0-GA">
+<!ENTITY WSRP_VERSION "2.1.0-GA">
<!ENTITY PORTAL_VERSION "3.2.0-GA">
Modified: portal/trunk/docs/reference-guide/en-US/modules/WSRP.xml
===================================================================
--- portal/trunk/docs/reference-guide/en-US/modules/WSRP.xml 2011-11-10 22:31:04 UTC (rev 8037)
+++ portal/trunk/docs/reference-guide/en-US/modules/WSRP.xml 2011-11-10 22:34:44 UTC (rev 8038)
@@ -68,8 +68,8 @@
Committee and Community at large).
</para>
- <para>New for &PRODUCT_VERSION; of &PRODUCT_NAME; is support of WSRP 2.0 with a complete implementation of
- the non-optional features. The only thing that we have not implemented is support for lifetimes and leasing
+ <para>&PRODUCT_NAME; supports WSRP 2.0 with a complete implementation of the non-optional features. The only
+ features that we have not implemented is support for lifetimes and leasing
support.
</para>
@@ -83,77 +83,79 @@
<sect1>
<title>Deploying &PRODUCT_NAME;'s WSRP services</title>
<para>
- &PRODUCT_NAME; provides a complete support of WSRP 1.0 standard interfaces and offers both consumer and
- producer services. WSRP support is provided by the following files, assuming
+ &PRODUCT_NAME; provides a complete support of WSRP 1.0 and 2.0 standard interfaces and offers both consumer and
+ producer services. Starting with version 2.1.0-GA of the component, WSRP is packaged as a &PRODUCT_NAME;
+ extension and is now self-contained in an easy to install package named
+ <filename>gatein-wsrp-integration.ear</filename>, deployed directly in the
+ <filename>deploy</filename>
+ directory of your JBoss Application Server configuration directory.
+ </para>
+ <para>
+ The extension itself is composed of the following components, , assuming
<code>$GATEIN_HOME</code>
- is
- where &PRODUCT_NAME; has been installed,
+ is where &PRODUCT_NAME; has been installed,
<code>$WSRP_VERSION</code>
- (at the time of the writing, it was &WSRP_VERSION;)
- is the version of the WSRP component and
+ (at the time of the writing, it was &WSRP_VERSION;) is the version of the WSRP component and
<code>$PORTAL_VERSION</code>
- (at the time of the writing, it was &PORTAL_VERSION;)
- is the current &PRODUCT_NAME; version:
+ (at the time of the writing, it was &PORTAL_VERSION;) is the current &PRODUCT_NAME; version:
<itemizedlist>
<listitem>
<para>
- <filename>$GATEIN_HOME/wsrp-admin-gui.war</filename>, which contains the WSRP Configuration portlet
- with which you can configure consumers to access remote servers and how the WSRP producer is
- configured.
+ <filename>META-INF</filename>
+ contains files necessary for EAR packaging. The only file that is of interest from a user perspective
+ is
+ <filename>gatein-wsse-consumer.xml</filename>
+ which allows you to configure WS-Security support for the consumer. !!!TODO mwringe please detail !!!!
</para>
</listitem>
<listitem>
- <para><filename>$GATEIN_HOME/wsrp-producer.war</filename>, which contains the WSRP producer web
- application.
- </para>
- </listitem>
- <listitem>
- <para><filename>$GATEIN_HOME/lib/wsrp-common-$WSRP_VERSION.jar</filename>, which contains common classes
- needed by the different WSRP libraries.
- </para>
- </listitem>
- <listitem>
<para>
- <filename>$GATEIN_HOME/lib/wsrp-consumer-$WSRP_VERSION.jar</filename>, which contains the WSRP
- consumer.
+ <filename>extension-component-$PORTAL_VERSION.jar</filename>, which contains the components needed to
+ integrate the WSRP component into &PRODUCT_NAME;. It also includes the default configuration files for
+ the WSRP producer and the default WSRP consumers.
</para>
</listitem>
<listitem>
<para>
- <filename>$GATEIN_HOME/lib/wsrp-integration-api-$WSRP_VERSION.jar</filename>, which contains the
- API classes needed to integrate the WSRP component into portals.
+ <filename>extension-config-$PORTAL_VERSION.jar</filename>, which contains the configuration file
+ needed by the GateIn extension mechanism to properly register this EAR as an extension.
</para>
-
</listitem>
<listitem>
<para>
- <filename>$GATEIN_HOME/lib/wsrp-producer-lib-$WSRP_VERSION.jar</filename>, which contains the classes
- needed by the WSRP producer.
+ <filename>extension-war-$PORTAL_VERSION.war</filename>, which contains the configuration files
+ needed by the GateIn extension mechanism to properly setup the WSRP service. It includes
+ <filename>wsrp-configuration.xml</filename>
+ which, in particular, configures several options for the
+ <code>WSRPServiceIntegration</code>
+ component at the heart of the WSRP integration in &PRODUCT_NAME;.
</para>
</listitem>
<listitem>
<para>
- <filename>$GATEIN_HOME/lib/wsrp-wsrp1-ws-$WSRP_VERSION.jar</filename>, which contains the generated
- JAX-WS classes for WSRP version 1.
+ <filename>lib</filename>, which contains the different libraries needed by the WSRP service.
</para>
</listitem>
<listitem>
<para>
- <filename>$GATEIN_HOME/lib/wsrp-wsrp2-ws-$WSRP_VERSION.jar</filename>, which contains the generated
- JAX-WS classes for WSRP version 2.
+ <filename>wsrp-admin-gui-$WSRP_VERSION.war</filename>, which contains the WSRP Configuration portlet
+ with which you can configure consumers to access remote servers and how the WSRP producer is
+ configured.
</para>
</listitem>
<listitem>
- <para>
- <filename>$GATEIN_HOME/lib/gatein.portal.component.wsrp-$PORTAL_VERSION.jar</filename>, which
- contains the code to integrate the WSRP service into &PRODUCT_NAME;.
+ <para><filename>wsrp-producer-jb5wsss-$WSRP_VERSION.war</filename>, which contains the producer-side
+ support for WS-Security. !!!!TODO mwringe: please detail if there are any user-modifiable
+ configuration file there and how this files is different in AS 6 !!!!
</para>
</listitem>
</itemizedlist>
+ </para>
+ <para>
If you're not going to use WSRP in &PRODUCT_NAME;, it won't adversely affect your installation to leave it
- as-is. Please see the
- <ulink url="http://community.jboss.org/wiki/WSRPserviceremovalprocedure">WSRP service removal procedure</ulink>
- for a complete guide on how to remove the WSRP service.
+ as-is. Otherwise, you can just remove the
+ <filename>gatein-wsrp-integration.ear</filename>
+ file from your AS deploy directory.
</para>
<sect2 id="wsrp-ports">
@@ -303,10 +305,9 @@
<sect1>
<title>Consuming &PRODUCT_NAME;'s WSRP portlets from a remote Consumer</title>
- <para>WSRP Consumers vary a lot as far as how they are configured. Most of them require that you specify
- the URL for the Producer's WSDL definition. Please refer to your Consumer's documentation for specific
- instructions. For instructions on how to do so in &PRODUCT_NAME;, please
- refer to
+ <para>WSRP Producers vary a lot as far as how they are configured. Most of them require that you specify
+ the URL for the Producer's WSDL definition. Please refer to the remote producer's documentation for specific
+ instructions. For instructions on how to do so in &PRODUCT_NAME;, please refer to
<xref linkend="consumer_configuration"/>.
</para>
<para>
@@ -353,7 +354,8 @@
<code>Caused by: org.jboss.ws.WSException: Invalid HTTP server response [503] - Service
Unavailable</code>.
Please see this GateIn's
- <ulink url="http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported">wiki page</ulink>
+ <ulink url="http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported">wiki page
+ </ulink>
for more details.
</para>
</note>
@@ -413,7 +415,7 @@
</note>
<para>
- Next, we create a new Consumer which we will call <literal>oracle</literal>. Type
+ Next, we create a new Consumer which we will call<literal>oracle</literal>. Type
"<literal>oracle</literal>" in
the "Create a consumer named:" field then click on "Create consumer":
<mediaobject>
@@ -482,7 +484,12 @@
<para>While we recommend you use the WSRP Configuration portlet to configure Consumers, we provide an
alternative way to configure consumers by editing the XML file located at
- <filename>$GATEIN_HOME/lib/wsrp-consumer-$WSRP_VERSION.jar/conf/wsrp-consumers-config.xml</filename>.
+
+ !!! TODO claprun: finish updating from here.
+
+ <filename>extension-component-$PORTAL_VERSION.jar/conf/wsrp-consumers-config.xml</filename>
+ in your
+ JBoss AS deploy directory.
</para>
<programlisting role="XML"><![CDATA[
<?xml version='1.0' encoding='UTF-8' ?>
@@ -685,7 +692,9 @@
<para>
Here is the configuration of the
- <literal>selfv1</literal> and <literal>selfv2</literal>
+ <literal>selfv1</literal>
+ and
+ <literal>selfv2</literal>
consumers as found in
<filename>$GATEIN_HOME/lib/wsrp-consumer-$WSRP_VERSION.jar/conf/wsrp-consumers-config.xml</filename>
with a cache expiring every 500 seconds and with a 50 second timeout for web service operations.
@@ -961,7 +970,8 @@
<para>You can re-import the portlets directly by pressing the "Use for import" button or, on the Consumers list
page, using the "Import" action for a given consumer. Let's assume that you used that second option and that
you currently have several available sets of previously exported portlets to import from. After clicking the
- action link, you should see a screen similar to the one below:</para>
+ action link, you should see a screen similar to the one below:
+ </para>
<mediaobject>
<imageobject>
<imagedata fileref="images/WSRP/export_list.png" format="PNG" align="center" valign="middle"/>
@@ -995,7 +1005,8 @@
<literal>NetUnity WSRP 2 Interop - Cache Markup (remote)</literal>
and
<literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal>
- as shown below:</para>
+ as shown below:
+ </para>
<mediaobject>
<imageobject>
<imagedata fileref="images/WSRP/import_original_page.png" format="PNG" align="center" valign="middle"/>
@@ -1122,7 +1133,8 @@
register.
</para>
<para>New in &PRODUCT;, we now display the WSDL URLs to access &PRODUCT_NAME;'s WSRP producer either in WSRP 1
- or WSRP 2 mode.</para>
+ or WSRP 2 mode.
+ </para>
</sect2>
<sect2 id="registration-configuration">
13 years, 4 months
gatein SVN: r8037 - in epp/portal/branches/EPP_5_2_Branch/wsrp-integration: extension-war/src/main/webapp/WEB-INF/conf/wsrp and 1 other directory.
by do-not-reply@jboss.org
Author: chris.laprun(a)jboss.com
Date: 2011-11-10 17:31:04 -0500 (Thu, 10 Nov 2011)
New Revision: 8037
Modified:
epp/portal/branches/EPP_5_2_Branch/wsrp-integration/extension-component/src/main/java/org/gatein/integration/wsrp/WSRPServiceIntegration.java
epp/portal/branches/EPP_5_2_Branch/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml
Log:
- JBEPP-1357: allow configuration files to be put in $gatein.conf.dir for greater user friendliness.
Modified: epp/portal/branches/EPP_5_2_Branch/wsrp-integration/extension-component/src/main/java/org/gatein/integration/wsrp/WSRPServiceIntegration.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/wsrp-integration/extension-component/src/main/java/org/gatein/integration/wsrp/WSRPServiceIntegration.java 2011-11-10 22:27:56 UTC (rev 8036)
+++ epp/portal/branches/EPP_5_2_Branch/wsrp-integration/extension-component/src/main/java/org/gatein/integration/wsrp/WSRPServiceIntegration.java 2011-11-10 22:31:04 UTC (rev 8037)
@@ -30,7 +30,6 @@
import org.exoplatform.portal.config.DataStorage;
import org.exoplatform.portal.pc.ExoKernelIntegration;
import org.exoplatform.portal.pom.config.POMSessionManager;
-import org.exoplatform.services.cache.CacheService;
import org.exoplatform.services.jcr.ext.hierarchy.NodeHierarchyCreator;
import org.exoplatform.services.listener.ListenerService;
import org.gatein.common.logging.Logger;
@@ -41,7 +40,6 @@
import org.gatein.integration.wsrp.structure.PortalStructureAccess;
import org.gatein.pc.api.PortletInvoker;
import org.gatein.pc.federation.FederatingPortletInvoker;
-import org.gatein.pc.federation.PortletInvokerResolver;
import org.gatein.pc.portlet.PortletInvokerInterceptor;
import org.gatein.pc.portlet.aspects.EventPayloadInterceptor;
import org.gatein.pc.portlet.container.ContainerPortletInvoker;
@@ -90,18 +88,20 @@
{
private static final Logger log = LoggerFactory.getLogger(WSRPServiceIntegration.class);
- private static final String CLASSPATH = "classpath:/";
+ private static final String DEFAULT_PRODUCER_CONFIG_LOCATION = "classpath:/conf/wsrp-producer-config.xml";
+ private static final String DEFAULT_CONSUMERS_CONFIG_LOCATION = "classpath:/conf/wsrp-consumers-config.xml";
private static final String PRODUCER_CONFIG_LOCATION = "producerConfigLocation";
private static final String CONSUMERS_CONFIG_LOCATION = "consumersConfigLocation";
public static final String CONSUMERS_INIT_DELAY = "consumersInitDelay";
public static final int DEFAULT_DELAY = 2;
+ public static final String FILE = "file://";
- private final InputStream producerConfigurationIS;
- private final String producerConfigLocation;
+ private InputStream producerConfigurationIS;
+ private String producerConfigLocation;
private WSRPProducer producer;
- private final InputStream consumersConfigurationIS;
- private final String consumersConfigLocation;
+ private InputStream consumersConfigurationIS;
+ private String consumersConfigLocation;
private JCRConsumerRegistry consumerRegistry;
private ExoContainer container;
private final ExoKernelIntegration exoKernelIntegration;
@@ -115,14 +115,12 @@
// IMPORTANT: even though NodeHierarchyCreator is not used anywhere in the code, it's still needed for pico
// to properly make sure that this service is started after the PC one. Yes, Pico is crap. :/
- // todo: we currently only allow the service to go through initialization if we are running in the default portal
- // as this service is not meant to work with extensions yet...
if ("portal".equals(context.getName()))
{
if (params != null)
{
- producerConfigLocation = params.getValueParam(PRODUCER_CONFIG_LOCATION).getValue();
- consumersConfigLocation = params.getValueParam(CONSUMERS_CONFIG_LOCATION).getValue();
+ producerConfigLocation = computePath(params.getValueParam(PRODUCER_CONFIG_LOCATION).getValue());
+ consumersConfigLocation = computePath(params.getValueParam(CONSUMERS_CONFIG_LOCATION).getValue());
String delayString = params.getValueParam(CONSUMERS_INIT_DELAY).getValue();
try
{
@@ -139,9 +137,26 @@
+ PRODUCER_CONFIG_LOCATION + "and " + CONSUMERS_CONFIG_LOCATION);
}
- producerConfigurationIS = configurationManager.getInputStream(CLASSPATH + producerConfigLocation);
- consumersConfigurationIS = configurationManager.getInputStream(CLASSPATH + consumersConfigLocation);
+ try
+ {
+ producerConfigurationIS = configurationManager.getInputStream(producerConfigLocation);
+ }
+ catch (Exception e)
+ {
+ producerConfigLocation = DEFAULT_PRODUCER_CONFIG_LOCATION;
+ producerConfigurationIS = configurationManager.getInputStream(DEFAULT_PRODUCER_CONFIG_LOCATION);
+ }
+ try
+ {
+ consumersConfigurationIS = configurationManager.getInputStream(consumersConfigLocation);
+ }
+ catch (Exception e)
+ {
+ consumersConfigLocation = DEFAULT_CONSUMERS_CONFIG_LOCATION;
+ consumersConfigurationIS = configurationManager.getInputStream(DEFAULT_CONSUMERS_CONFIG_LOCATION);
+ }
+
container = context.getContainer();
exoKernelIntegration = pc;
@@ -162,6 +177,12 @@
}
}
+ private String computePath(String pathFromConfig)
+ {
+ // if specified path starts with / then it's a file and we need to add file:// to it so that ConfigurationManager can properly resolve it
+ return pathFromConfig.startsWith("/") ? FILE + pathFromConfig : pathFromConfig;
+ }
+
public void start()
{
if (!bypass)
Modified: epp/portal/branches/EPP_5_2_Branch/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml 2011-11-10 22:27:56 UTC (rev 8036)
+++ epp/portal/branches/EPP_5_2_Branch/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml 2011-11-10 22:31:04 UTC (rev 8037)
@@ -34,16 +34,18 @@
<value-param>
<name>producerConfigLocation</name>
<description>Location of the default producer configuration file</description>
- <value>conf/wsrp-producer-config.xml</value>
+ <value>${gatein.conf.dir:classpath:/conf}/wsrp-producer-config.xml</value>
</value-param>
<value-param>
<name>consumersConfigLocation</name>
<description>Location of the default consumers configuration file</description>
- <value>conf/wsrp-consumers-config.xml</value>
+ <value>${gatein.conf.dir:classpath:/conf}/wsrp-consumers-config.xml</value>
</value-param>
<value-param>
<name>consumersInitDelay</name>
- <description>Time (in seconds) after the start of the WSRP extension, waited before the consumers are started</description>
+ <description>Time (in seconds) after the start of the WSRP extension, waited before the consumers are
+ started
+ </description>
<value>2</value>
</value-param>
</init-params>
13 years, 4 months
gatein SVN: r8036 - in portal/trunk/wsrp-integration: extension-war/src/main/webapp/WEB-INF/conf/wsrp and 1 other directory.
by do-not-reply@jboss.org
Author: chris.laprun(a)jboss.com
Date: 2011-11-10 17:27:56 -0500 (Thu, 10 Nov 2011)
New Revision: 8036
Modified:
portal/trunk/wsrp-integration/extension-component/src/main/java/org/gatein/integration/wsrp/WSRPServiceIntegration.java
portal/trunk/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml
Log:
- GTNPORTAL-2268: allow configuration files to be put in $gatein.conf.dir for greater user friendliness.
Modified: portal/trunk/wsrp-integration/extension-component/src/main/java/org/gatein/integration/wsrp/WSRPServiceIntegration.java
===================================================================
--- portal/trunk/wsrp-integration/extension-component/src/main/java/org/gatein/integration/wsrp/WSRPServiceIntegration.java 2011-11-10 21:57:36 UTC (rev 8035)
+++ portal/trunk/wsrp-integration/extension-component/src/main/java/org/gatein/integration/wsrp/WSRPServiceIntegration.java 2011-11-10 22:27:56 UTC (rev 8036)
@@ -30,7 +30,6 @@
import org.exoplatform.portal.config.DataStorage;
import org.exoplatform.portal.pc.ExoKernelIntegration;
import org.exoplatform.portal.pom.config.POMSessionManager;
-import org.exoplatform.services.cache.CacheService;
import org.exoplatform.services.jcr.ext.hierarchy.NodeHierarchyCreator;
import org.exoplatform.services.listener.ListenerService;
import org.gatein.common.logging.Logger;
@@ -41,7 +40,6 @@
import org.gatein.integration.wsrp.structure.PortalStructureAccess;
import org.gatein.pc.api.PortletInvoker;
import org.gatein.pc.federation.FederatingPortletInvoker;
-import org.gatein.pc.federation.PortletInvokerResolver;
import org.gatein.pc.portlet.PortletInvokerInterceptor;
import org.gatein.pc.portlet.aspects.EventPayloadInterceptor;
import org.gatein.pc.portlet.container.ContainerPortletInvoker;
@@ -90,18 +88,20 @@
{
private static final Logger log = LoggerFactory.getLogger(WSRPServiceIntegration.class);
- private static final String CLASSPATH = "classpath:/";
+ private static final String DEFAULT_PRODUCER_CONFIG_LOCATION = "classpath:/conf/wsrp-producer-config.xml";
+ private static final String DEFAULT_CONSUMERS_CONFIG_LOCATION = "classpath:/conf/wsrp-consumers-config.xml";
private static final String PRODUCER_CONFIG_LOCATION = "producerConfigLocation";
private static final String CONSUMERS_CONFIG_LOCATION = "consumersConfigLocation";
public static final String CONSUMERS_INIT_DELAY = "consumersInitDelay";
public static final int DEFAULT_DELAY = 2;
+ public static final String FILE = "file://";
- private final InputStream producerConfigurationIS;
- private final String producerConfigLocation;
+ private InputStream producerConfigurationIS;
+ private String producerConfigLocation;
private WSRPProducer producer;
- private final InputStream consumersConfigurationIS;
- private final String consumersConfigLocation;
+ private InputStream consumersConfigurationIS;
+ private String consumersConfigLocation;
private JCRConsumerRegistry consumerRegistry;
private ExoContainer container;
private final ExoKernelIntegration exoKernelIntegration;
@@ -115,14 +115,12 @@
// IMPORTANT: even though NodeHierarchyCreator is not used anywhere in the code, it's still needed for pico
// to properly make sure that this service is started after the PC one. Yes, Pico is crap. :/
- // todo: we currently only allow the service to go through initialization if we are running in the default portal
- // as this service is not meant to work with extensions yet...
if ("portal".equals(context.getName()))
{
if (params != null)
{
- producerConfigLocation = params.getValueParam(PRODUCER_CONFIG_LOCATION).getValue();
- consumersConfigLocation = params.getValueParam(CONSUMERS_CONFIG_LOCATION).getValue();
+ producerConfigLocation = computePath(params.getValueParam(PRODUCER_CONFIG_LOCATION).getValue());
+ consumersConfigLocation = computePath(params.getValueParam(CONSUMERS_CONFIG_LOCATION).getValue());
String delayString = params.getValueParam(CONSUMERS_INIT_DELAY).getValue();
try
{
@@ -139,9 +137,26 @@
+ PRODUCER_CONFIG_LOCATION + "and " + CONSUMERS_CONFIG_LOCATION);
}
- producerConfigurationIS = configurationManager.getInputStream(CLASSPATH + producerConfigLocation);
- consumersConfigurationIS = configurationManager.getInputStream(CLASSPATH + consumersConfigLocation);
+ try
+ {
+ producerConfigurationIS = configurationManager.getInputStream(producerConfigLocation);
+ }
+ catch (Exception e)
+ {
+ producerConfigLocation = DEFAULT_PRODUCER_CONFIG_LOCATION;
+ producerConfigurationIS = configurationManager.getInputStream(DEFAULT_PRODUCER_CONFIG_LOCATION);
+ }
+ try
+ {
+ consumersConfigurationIS = configurationManager.getInputStream(consumersConfigLocation);
+ }
+ catch (Exception e)
+ {
+ consumersConfigLocation = DEFAULT_CONSUMERS_CONFIG_LOCATION;
+ consumersConfigurationIS = configurationManager.getInputStream(DEFAULT_CONSUMERS_CONFIG_LOCATION);
+ }
+
container = context.getContainer();
exoKernelIntegration = pc;
@@ -162,6 +177,12 @@
}
}
+ private String computePath(String pathFromConfig)
+ {
+ // if specified path starts with / then it's a file and we need to add file:// to it so that ConfigurationManager can properly resolve it
+ return pathFromConfig.startsWith("/") ? FILE + pathFromConfig : pathFromConfig;
+ }
+
public void start()
{
if (!bypass)
Modified: portal/trunk/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml
===================================================================
--- portal/trunk/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml 2011-11-10 21:57:36 UTC (rev 8035)
+++ portal/trunk/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml 2011-11-10 22:27:56 UTC (rev 8036)
@@ -34,16 +34,18 @@
<value-param>
<name>producerConfigLocation</name>
<description>Location of the default producer configuration file</description>
- <value>conf/wsrp-producer-config.xml</value>
+ <value>${gatein.conf.dir:classpath:/conf}/wsrp-producer-config.xml</value>
</value-param>
<value-param>
<name>consumersConfigLocation</name>
<description>Location of the default consumers configuration file</description>
- <value>conf/wsrp-consumers-config.xml</value>
+ <value>${gatein.conf.dir:classpath:/conf}/wsrp-consumers-config.xml</value>
</value-param>
<value-param>
<name>consumersInitDelay</name>
- <description>Time (in seconds) after the start of the WSRP extension, waited before the consumers are started</description>
+ <description>Time (in seconds) after the start of the WSRP extension, waited before the consumers are
+ started
+ </description>
<value>2</value>
</value-param>
</init-params>
13 years, 4 months
gatein SVN: r8035 - in epp/docs/branches/5.2: Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity and 1 other directory.
by do-not-reply@jboss.org
Author: smumford
Date: 2011-11-10 16:57:36 -0500 (Thu, 10 Nov 2011)
New Revision: 8035
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml
Log:
JBEPP-1350: Removed some references to Tomcat server.
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-11-10 21:35:23 UTC (rev 8034)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-11-10 21:57:36 UTC (rev 8035)
@@ -41,12 +41,14 @@
</para>
</listitem>
</itemizedlist>
+ <!-- Removed as per https://issues.jboss.org/browse/JBEPP-1350
<note>
<title>Prerequisites</title>
<para>
In this tutorial, the SSO server is being installed in a Tomcat environment. Tomcat can be obtained from <ulink type="http" url="http://tomcat.apache.org">http://tomcat.apache.org</ulink>.
</para>
</note>
+ Retaining as placeholder -->
<para>
All the packages required for SSO setup can be found in a zip file located in the <filename>jboss-epp-<replaceable>VERSION</replaceable>/gatein-sso</filename> directory of the JBoss Enterprise Portal Platform binary package.
</para>
@@ -518,6 +520,7 @@
<para>
There's a line comment already in this source file to assist you.
</para>
+ <!-- Removing as per https://issues.jboss.org/browse/JBEPP-1350
<para>
In Tomcat, edit <filename>GATEIN_HOME/conf/jaas.conf</filename>, uncomment on this section and comment other parts:
</para>
@@ -526,6 +529,7 @@
portalContainerName=portal
realmName=gatein-domain;
</programlisting>
+ -->
</step>
<step>
<para>
@@ -990,6 +994,7 @@
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default118.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
</step>
+ <!-- Removed as per https://issues.jboss.org/browse/JBEPP-1350
<step>
<para>
If you are running the product in Tomcat, edit <replaceable><JBOSS_HOME></replaceable>/conf/jaas.conf, uncomment the following section and comment all other sections:
@@ -1000,6 +1005,7 @@
realmName=gatein-domain;
</programlisting>
</step>
+ -->
<step>
<para>
Test the installation:
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-11-10 21:35:23 UTC (rev 8034)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-11-10 21:57:36 UTC (rev 8035)
@@ -51,6 +51,7 @@
</listitem>
</itemizedlist>
+ <!-- Removed as per https://issues.jboss.org/browse/JBEPP-1350
<note>
<title>Prerequisites</title>
@@ -58,6 +59,7 @@
In this tutorial, the SSO server is being installed in a Tomcat environment. Tomcat can be obtained from <ulink type="http" url="http://tomcat.apache.org"> http://tomcat.apache.org </ulink> .
</para>
</note>
+ Retaining as placeholder -->
<para>
All the packages required for SSO setup can be found in a zip file located in the <filename>jboss-epp-<replaceable>VERSION</replaceable>/gatein-sso</filename> directory of the JBoss Enterprise Portal Platform binary package.
@@ -595,6 +597,7 @@
There's a line comment already in this source file to assist you.
</para>
+ <!-- Removing as per https://issues.jboss.org/browse/JBEPP-1350
<para>
In Tomcat, edit <filename>GATEIN_HOME/conf/jaas.conf</filename>, uncomment on this section and comment other parts:
</para>
@@ -603,6 +606,7 @@
portalContainerName=portal
realmName=gatein-domain;
</programlisting>
+ -->
</step>
<step>
@@ -1132,6 +1136,7 @@
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default118.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
</step>
+ <!-- Removed as per https://issues.jboss.org/browse/JBEPP-1350
<step>
<para>
If you are running the product in Tomcat, edit <replaceable><JBOSS_HOME></replaceable>/conf/jaas.conf, uncomment the following section and comment all other sections:
@@ -1142,6 +1147,7 @@
realmName=gatein-domain;
</programlisting>
</step>
+ -->
<step>
<para>
13 years, 4 months
gatein SVN: r8034 - in epp/docs/branches/5.2: Reference_Guide-eXoJCR-1.14/en-US/modules and 1 other directory.
by do-not-reply@jboss.org
Author: smumford
Date: 2011-11-10 16:35:23 -0500 (Thu, 10 Nov 2011)
New Revision: 8034
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml
Log:
JBEPP-1353: Swapped instances of 5.1 version number with entities.
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml 2011-11-10 14:39:49 UTC (rev 8033)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml 2011-11-10 21:35:23 UTC (rev 8034)
@@ -53,10 +53,10 @@
JBoss Enterprise Portal Platform does not support custom window states or modes, therefore neither does the WSRP component. It does, however, support CSS on both the Producer (although this is more a function of the portlets than an inherent Producer capability) and Consumer.
</para>
<para>
- JBoss Enterprise Portal Platform 5.1 includes implementations of WSRP 1.0 and 2.0.
+ JBoss Enterprise Portal Platform &VY; includes implementations of WSRP 1.0 and 2.0.
</para>
<para>
- All optional features in WSRP 2 are implemented in JBoss Enterprise Portal Platform 5.1 except support for lifetimes and leasing support.
+ All optional features in WSRP 2 are implemented in JBoss Enterprise Portal Platform &VY; except support for lifetimes and leasing support.
</para>
</section>
@@ -353,7 +353,7 @@
The portlet also is a group page for /platform/administrators
</para>
<para>
- Although the Configuration Portlet is installed by default in JBoss Enterprise Portal Platform 5.1., installation instructions are included below should the portlet ever need to be re-installed:
+ Although the Configuration Portlet is installed by default in JBoss Enterprise Portal Platform &VY;., installation instructions are included below should the portlet ever need to be re-installed:
</para>
<procedure>
<title><emphasis role="bold">Installing the configuration portlet:</emphasis></title>
@@ -797,7 +797,7 @@
</imageobject>
</mediaobject>
<note>
- <title><emphasis role="bold">JBoss Enterprise Portal Platform 5.1 and WSRP 1 Exceptions</emphasis></title>
+ <title><emphasis role="bold">JBoss Enterprise Portal Platform &VY; and WSRP 1 Exceptions</emphasis></title>
<para>
In WSRP 1, it can be difficult to ascertain what caused an <exceptionname>OperationFailedFault</exceptionname> as it is a generic exception returned by producers during a failed method invocation.
</para>
@@ -877,7 +877,7 @@
<formalpara>
<title><emphasis role="bold">Additional Functionalities in WSRP 2.0</emphasis></title>
<para>
- In addition to those listed above, the WSRP 2.0 implementation in JBoss Enterprise Portal Platform 5.1 also includes the following functions:
+ In addition to those listed above, the WSRP 2.0 implementation in JBoss Enterprise Portal Platform &VY; also includes the following functions:
</para>
</formalpara>
<variablelist>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml 2011-11-10 14:39:49 UTC (rev 8033)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml 2011-11-10 21:35:23 UTC (rev 8034)
@@ -4,1597 +4,1597 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP">
- <title>Web Services for Remote Portlets (WSRP)</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Introduction">
- <title>Introduction</title>
- <para>
- The Web Services for Remote Portlets (WSRP) specification defines a web service interface for accessing and interacting with interactive presentation-oriented web services.
- </para>
- <para>
- It has been produced through the efforts of the Web Services for Remote Portlets (WSRP) OASIS Technical Committee. It is based on the requirements gathered and the proposals made to the committee.
- </para>
- <para>
- Scenarios that motivate WSRP functionality include:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Content hosts, such as portal servers, providing Portlets as presentation-oriented web services that can be used by aggregation engines.
- </para>
+ <title>Web Services for Remote Portlets (WSRP)</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Introduction">
+ <title>Introduction</title>
+ <para>
+ The Web Services for Remote Portlets (WSRP) specification defines a web service interface for accessing and interacting with interactive presentation-oriented web services.
+ </para>
+ <para>
+ It has been produced through the efforts of the Web Services for Remote Portlets (WSRP) OASIS Technical Committee. It is based on the requirements gathered and the proposals made to the committee.
+ </para>
+ <para>
+ Scenarios that motivate WSRP functionality include:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Content hosts, such as portal servers, providing Portlets as presentation-oriented web services that can be used by aggregation engines.
+ </para>
- </listitem>
- <listitem>
- <para>
- Aggregating frameworks, including portal servers, consuming presentation-oriented web services offered by content providers and integrating them into the framework.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Aggregating frameworks, including portal servers, consuming presentation-oriented web services offered by content providers and integrating them into the framework.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- More information on WSRP can be found on the official <ulink url="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp">website</ulink>. We suggest reading the <ulink url="http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html">primer</ulink> for a good, albeit technical, overview of WSRP.
- </para>
+ </itemizedlist>
+ <para>
+ More information on WSRP can be found on the official <ulink url="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp">website</ulink>. We suggest reading the <ulink url="http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html">primer</ulink> for a good, albeit technical, overview of WSRP.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Level_of_Support">
- <title>Level of Support</title>
- <para>
- The WSRP Technical Committee defined <ulink url="http://www.oasis-open.org/committees/download.php/3073">WSRP Use Profiles</ulink> to help with WSRP interoperability. Terms defined in that document will be used in this section.
- </para>
- <para>
- JBoss Enterprise Portal Platform provides a <emphasis>Simple</emphasis> level of support for the WSRP Producer, with the exception of out-of-band registration. In-band registration and persistent local state (which are defined at the <emphasis>Complex</emphasis> level) are supported.
- </para>
- <para>
- JBoss Enterprise Portal Platform provides a <emphasis>Medium</emphasis> level of support for the Consumer, excepting HTML markup (as JBoss Enterprise Portal Platform itself does not handle other markup types). Explicit portlet cloning and the <literal>PortletManagement</literal> interface are supported.
- </para>
- <para>
- The WSRP component has Level 1 Producer and Consumer caching. Cookie handling is supported properly on the Consumer. The Producer requires cookie initialization (as this improves interoperability with some consumers).
- </para>
- <para>
- JBoss Enterprise Portal Platform does not support custom window states or modes, therefore neither does the WSRP component. It does, however, support CSS on both the Producer (although this is more a function of the portlets than an inherent Producer capability) and Consumer.
- </para>
- <para>
- JBoss Enterprise Portal Platform 5.1 includes implementations of WSRP 1.0 and 2.0.
- </para>
- <para>
- All optional features in WSRP 2 are implemented in JBoss Enterprise Portal Platform 5.1 except support for lifetimes and leasing support.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Level_of_Support">
+ <title>Level of Support</title>
+ <para>
+ The WSRP Technical Committee defined <ulink url="http://www.oasis-open.org/committees/download.php/3073">WSRP Use Profiles</ulink> to help with WSRP interoperability. Terms defined in that document will be used in this section.
+ </para>
+ <para>
+ JBoss Enterprise Portal Platform provides a <emphasis>Simple</emphasis> level of support for the WSRP Producer, with the exception of out-of-band registration. In-band registration and persistent local state (which are defined at the <emphasis>Complex</emphasis> level) are supported.
+ </para>
+ <para>
+ JBoss Enterprise Portal Platform provides a <emphasis>Medium</emphasis> level of support for the Consumer, excepting HTML markup (as JBoss Enterprise Portal Platform itself does not handle other markup types). Explicit portlet cloning and the <literal>PortletManagement</literal> interface are supported.
+ </para>
+ <para>
+ The WSRP component has Level 1 Producer and Consumer caching. Cookie handling is supported properly on the Consumer. The Producer requires cookie initialization (as this improves interoperability with some consumers).
+ </para>
+ <para>
+ JBoss Enterprise Portal Platform does not support custom window states or modes, therefore neither does the WSRP component. It does, however, support CSS on both the Producer (although this is more a function of the portlets than an inherent Producer capability) and Consumer.
+ </para>
+ <para>
+ JBoss Enterprise Portal Platform &VY; includes implementations of WSRP 1.0 and 2.0.
+ </para>
+ <para>
+ All optional features in WSRP 2 are implemented in JBoss Enterprise Portal Platform &VY; except support for lifetimes and leasing support.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Deploying_WSRP">
- <title>Deploying WSRP</title>
- <note>
- <title>Notational Devices</title>
- <para>
- The following list of support files uses the following notational devices:
- </para>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Notations">
- <title>Notations:</title>
- <varlistentry>
- <term><replaceable>JBOSS_HOME</replaceable></term>
- <listitem>
- <para>
- <replaceable>JBOSS_HOME</replaceable> refers to the directory that your instance of JBoss Enterprise Portal Platform has been extracted/installed to. For example: <filename>/home/<replaceable>USERNAME</replaceable>/jboss-epp-<replaceable><VERSION></replaceable>/</filename>
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Deploying_WSRP">
+ <title>Deploying WSRP</title>
+ <note>
+ <title>Notational Devices</title>
+ <para>
+ The following list of support files uses the following notational devices:
+ </para>
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Notations">
+ <title>Notations:</title>
+ <varlistentry>
+ <term><replaceable>JBOSS_HOME</replaceable></term>
+ <listitem>
+ <para>
+ <replaceable>JBOSS_HOME</replaceable> refers to the directory that your instance of JBoss Enterprise Portal Platform has been extracted/installed to. For example: <filename>/home/<replaceable>USERNAME</replaceable>/jboss-epp-<replaceable><VERSION></replaceable>/</filename>
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable></term>
- <listitem>
- <para>
- The WSRP files referred to in this section are found in the <filename><replaceable>JBOSS_HOME</replaceable>/jboss-as/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear</filename> directory.
- </para>
- <para>
- For ease of reference this path will be represented by: <replaceable>WSRP_PATH</replaceable>.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable></term>
+ <listitem>
+ <para>
+ The WSRP files referred to in this section are found in the <filename><replaceable>JBOSS_HOME</replaceable>/jboss-as/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear</filename> directory.
+ </para>
+ <para>
+ For ease of reference this path will be represented by: <replaceable>WSRP_PATH</replaceable>.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_VERSION</replaceable></term>
- <listitem>
- <para>
- <replaceable>WSRP_VERSION</replaceable> represents the version of the WSRP component in use.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_VERSION</replaceable></term>
+ <listitem>
+ <para>
+ <replaceable>WSRP_VERSION</replaceable> represents the version of the WSRP component in use.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>PORTAL_VERSION</replaceable></term>
- <listitem>
- <para>
- <replaceable>PORTAL_VERSION</replaceable> represents the version of JBoss Enterprise Portal Platform in use.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>PORTAL_VERSION</replaceable></term>
+ <listitem>
+ <para>
+ <replaceable>PORTAL_VERSION</replaceable> represents the version of JBoss Enterprise Portal Platform in use.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- </note>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-WSRP_support_files">
- <title>WSRP support files</title>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/wsrp-admin-gui.war</term>
- <listitem>
- <para>
- This file contains the WSRP Configuration portlet with which you can configure consumers to access remote servers and how the WSRP producer is configured.
- </para>
+ </note>
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-WSRP_support_files">
+ <title>WSRP support files</title>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable>/wsrp-admin-gui.war</term>
+ <listitem>
+ <para>
+ This file contains the WSRP Configuration portlet with which you can configure consumers to access remote servers and how the WSRP producer is configured.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/wsrp-producer.war</term>
- <listitem>
- <para>
- This file contains the WSRP producer web application.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable>/wsrp-producer.war</term>
+ <listitem>
+ <para>
+ This file contains the WSRP producer web application.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-common-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains common classes needed by the different WSRP libraries.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-common-<replaceable>WSRP_VERSION</replaceable>.jar</term>
+ <listitem>
+ <para>
+ This file contains common classes needed by the different WSRP libraries.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the WSRP consumer.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar</term>
+ <listitem>
+ <para>
+ This file contains the WSRP consumer.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the API classes needed to integrate the WSRP component into portals.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar</term>
+ <listitem>
+ <para>
+ This file contains the API classes needed to integrate the WSRP component into portals.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-producer-lib-$WSRP_VERSION.jar</term>
- <listitem>
- <para>
- This file contains the classes needed by the WSRP producer.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-producer-lib-$WSRP_VERSION.jar</term>
+ <listitem>
+ <para>
+ This file contains the classes needed by the WSRP producer.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-wsrp1-ws-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the generated JAX-WS classes for WSRP version 1.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-wsrp1-ws-<replaceable>WSRP_VERSION</replaceable>.jar</term>
+ <listitem>
+ <para>
+ This file contains the generated JAX-WS classes for WSRP version 1.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-wsrp2-ws-<replaceable>WSRP_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the JAX-WS classes for WSRP version 2.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable>/lib/wsrp-wsrp2-ws-<replaceable>WSRP_VERSION</replaceable>.jar</term>
+ <listitem>
+ <para>
+ This file contains the JAX-WS classes for WSRP version 2.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable>PORTAL_VERSION</replaceable>.jar</term>
- <listitem>
- <para>
- This file contains the code to integrate the WSRP service into JBoss Enterprise Portal Platform.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable>PORTAL_VERSION</replaceable>.jar</term>
+ <listitem>
+ <para>
+ This file contains the code to integrate the WSRP service into JBoss Enterprise Portal Platform.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Non_default_Ports_or_Hostnames">
- <title>Non-default Ports or Hostnames</title>
- <para>
- JBoss WS (the web service stack that JBoss Enterprise Portal Platform uses) should update the port and host name used in WSDL. Refer to the JBoss WS <ulink url="http://community.jboss.org/wiki/JBossWS-UserGuide#Configuration">user guide</ulink> for more information.
- </para>
- <para>
- If the host name and port on which the server runs have been modified, the configuration for the Consumer used to consume JBoss Enterprise Portal Platform's "self" Producer will need to be updated. Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" /> for directions on how to do this.
- </para>
+ </variablelist>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Non_default_Ports_or_Hostnames">
+ <title>Non-default Ports or Hostnames</title>
+ <para>
+ JBoss WS (the web service stack that JBoss Enterprise Portal Platform uses) should update the port and host name used in WSDL. Refer to the JBoss WS <ulink url="http://community.jboss.org/wiki/JBossWS-UserGuide#Configuration">user guide</ulink> for more information.
+ </para>
+ <para>
+ If the host name and port on which the server runs have been modified, the configuration for the Consumer used to consume JBoss Enterprise Portal Platform's "self" Producer will need to be updated. Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" /> for directions on how to do this.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Using_WSRP_with_SSL">
- <title>Using WSRP with SSL</title>
- <para>
- It is possible to use WSRP over SSL for secure exchange of data. Refer to these <ulink url="http://community.jboss.org/wiki/ConfiguringWSRPforuseoverSSL">instructions</ulink> for how to do this.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Deploying_WSRP-Using_WSRP_with_SSL">
+ <title>Using WSRP with SSL</title>
+ <para>
+ It is possible to use WSRP over SSL for secure exchange of data. Refer to these <ulink url="http://community.jboss.org/wiki/ConfiguringWSRPforuseoverSSL">instructions</ulink> for how to do this.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Making_a_Portlet_Remotable">
- <title>Making a Portlet Remotable</title>
- <note>
- <para>
- Only JSR-286 (Portlet 2.0) portlets can be made remotable as the mechanism to expose a portlet to WSRP relies on a JSR-286-only functionality.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Making_a_Portlet_Remotable">
+ <title>Making a Portlet Remotable</title>
+ <note>
+ <para>
+ Only JSR-286 (Portlet 2.0) portlets can be made remotable as the mechanism to expose a portlet to WSRP relies on a JSR-286-only functionality.
+ </para>
- </note>
- <para>
- JBoss Enterprise Portal Platform does <emphasis role="bold">not</emphasis>, by default, expose local portlets for consumption by remote WSRP consumers.
- </para>
- <para>
- In order to make a portlet remotely available, it must be made "remotable" by marking it as such in the associated <filename>portlet.xml</filename>.
- </para>
- <para>
- A specific <code>org.gatein.pc.remotable container-runtime-option</code> is used to accomplish this. Setting its value to <code>true</code> makes the portlet available for remote consumption, while setting its value to <code>false</code> will not publish it remotely.
- </para>
- <para>
- As specifying the remotable status for a portlet is optional, nothing need be done if portlets do not need to be remotely available.
- </para>
- <para>
- In the following example, the "BasicPortlet" portlet is specified as being remotable.
- </para>
-
+ </note>
+ <para>
+ JBoss Enterprise Portal Platform does <emphasis role="bold">not</emphasis>, by default, expose local portlets for consumption by remote WSRP consumers.
+ </para>
+ <para>
+ In order to make a portlet remotely available, it must be made "remotable" by marking it as such in the associated <filename>portlet.xml</filename>.
+ </para>
+ <para>
+ A specific <code>org.gatein.pc.remotable container-runtime-option</code> is used to accomplish this. Setting its value to <code>true</code> makes the portlet available for remote consumption, while setting its value to <code>false</code> will not publish it remotely.
+ </para>
+ <para>
+ As specifying the remotable status for a portlet is optional, nothing need be done if portlets do not need to be remotely available.
+ </para>
+ <para>
+ In the following example, the "BasicPortlet" portlet is specified as being remotable.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default255.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- It is also possible to specify that all the portlets declared within a given portlet application be remotable by default.
- </para>
- <para>
- This is done by specifying the <code>container-runtime-option</code> at the <code>portlet-app</code> element level. Individual portlets can override that value to not be remotely exposed.
- </para>
- <para>
- For example:
- </para>
-
+ <para>
+ It is also possible to specify that all the portlets declared within a given portlet application be remotable by default.
+ </para>
+ <para>
+ This is done by specifying the <code>container-runtime-option</code> at the <code>portlet-app</code> element level. Individual portlets can override that value to not be remotely exposed.
+ </para>
+ <para>
+ For example:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default256.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- This example defines two portlets. As the <code>org.gatein.pc.remotable container-runtime-option</code> is set to <code>true</code> at the <code>portlet-app</code> level, all portlets defined in this particular portlet application are exposed remotely by JBoss Enterprise Portal Platform's WSRP Producer.
- </para>
- <para>
- It is possible to override this default behavior. Specifying a value for the <code>org.gatein.pc.remotable container-runtime-option</code> at the <code>portlet</code> level will take precedence over the default.
- </para>
- <para>
- In the example above, the <varname>RemotelyExposedPortlet</varname> inherits the remotable status defined at the <code>portlet-app</code> level since it does not specify a value for the <code>org.gatein.pc.remotable container-runtime-option</code>.
- </para>
- <para>
- The <varname>NotRemotelyExposedPortlet</varname>, however, overrides the default behavior and is not remotely exposed.
- </para>
- <note>
- <para>
- Portlets are not remotely exposed if no top-level <code>org.gatein.pc.remotable container-runtime-option</code> value is set to <code>true</code>.
- </para>
+ <para>
+ This example defines two portlets. As the <code>org.gatein.pc.remotable container-runtime-option</code> is set to <code>true</code> at the <code>portlet-app</code> level, all portlets defined in this particular portlet application are exposed remotely by JBoss Enterprise Portal Platform's WSRP Producer.
+ </para>
+ <para>
+ It is possible to override this default behavior. Specifying a value for the <code>org.gatein.pc.remotable container-runtime-option</code> at the <code>portlet</code> level will take precedence over the default.
+ </para>
+ <para>
+ In the example above, the <varname>RemotelyExposedPortlet</varname> inherits the remotable status defined at the <code>portlet-app</code> level since it does not specify a value for the <code>org.gatein.pc.remotable container-runtime-option</code>.
+ </para>
+ <para>
+ The <varname>NotRemotelyExposedPortlet</varname>, however, overrides the default behavior and is not remotely exposed.
+ </para>
+ <note>
+ <para>
+ Portlets are not remotely exposed if no top-level <code>org.gatein.pc.remotable container-runtime-option</code> value is set to <code>true</code>.
+ </para>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_WSRP_portlets_from_a_remote_Consumer">
- <title>Consuming WSRP portlets from a remote Consumer</title>
- <para>
- Configuration is extremely variable between different WSRP Consumers. Most, however, require a specification of the URL for the Producer's WSDL definition. If the JBoss Enterprise Portal Platform Consumer is not being used, refer to the documentation for the Consumer that is in use for specific instructions.
- </para>
- <para>
- For instructions on how to specify this URL in JBoss Enterprise Portal Platform, refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" />.
- </para>
- <para>
- JBoss Enterprise Portal Platform's Producer is automatically set up when a portal instance is deployed with the WSRP service.
- </para>
- <para>
- The WSDL file can be accessed at:
- </para>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Consuming_WSRP_portlets_from_a_remote_Consumer-File_paths">
- <title>File paths:</title>
- <varlistentry>
- <term>WSRP 1.0:</term>
- <listitem>
- <para>
- <filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v1/MarkupService?wsdl</filename>.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_WSRP_portlets_from_a_remote_Consumer">
+ <title>Consuming WSRP portlets from a remote Consumer</title>
+ <para>
+ Configuration is extremely variable between different WSRP Consumers. Most, however, require a specification of the URL for the Producer's WSDL definition. If the JBoss Enterprise Portal Platform Consumer is not being used, refer to the documentation for the Consumer that is in use for specific instructions.
+ </para>
+ <para>
+ For instructions on how to specify this URL in JBoss Enterprise Portal Platform, refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets" />.
+ </para>
+ <para>
+ JBoss Enterprise Portal Platform's Producer is automatically set up when a portal instance is deployed with the WSRP service.
+ </para>
+ <para>
+ The WSDL file can be accessed at:
+ </para>
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Consuming_WSRP_portlets_from_a_remote_Consumer-File_paths">
+ <title>File paths:</title>
+ <varlistentry>
+ <term>WSRP 1.0:</term>
+ <listitem>
+ <para>
+ <filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v1/MarkupService?wsdl</filename>.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>WSRP 2.0:</term>
- <listitem>
- <para>
- <filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v2/MarkupService?wsdl</filename>.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>WSRP 2.0:</term>
+ <listitem>
+ <para>
+ <filename>http://<replaceable>{hostname}</replaceable>:<replaceable>{port}</replaceable>/wsrp-producer/v2/MarkupService?wsdl</filename>.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
- <para>
- The default hostname is <literal>localhost</literal> and the default port is <literal>8080</literal>.
- </para>
+ </variablelist>
+ <para>
+ The default hostname is <literal>localhost</literal> and the default port is <literal>8080</literal>.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets">
- <title>Consuming Remote WSRP Portlets</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Overview">
- <title>Overview</title>
- <para>
- To be able to consume WSRP portlets exposed by a remote producer, JBoss Enterprise Portal Platform's WSRP consumer must be configured to access that remote producer.
- </para>
- <para>
- Access to a remote producer can be configured using WSRP Producer descriptors. Alternatively, a portlet is provided to configure remote producers.
- </para>
- <para>
- Once a remote producer has been configured, the portlets that it exposes are then available in the Application Registry to be added to categories and then to pages.
- </para>
- <!-- Removed as out of date and not in Community version of doc.
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consuming_Remote_WSRP_Portlets">
+ <title>Consuming Remote WSRP Portlets</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Overview">
+ <title>Overview</title>
+ <para>
+ To be able to consume WSRP portlets exposed by a remote producer, JBoss Enterprise Portal Platform's WSRP consumer must be configured to access that remote producer.
+ </para>
+ <para>
+ Access to a remote producer can be configured using WSRP Producer descriptors. Alternatively, a portlet is provided to configure remote producers.
+ </para>
+ <para>
+ Once a remote producer has been configured, the portlets that it exposes are then available in the Application Registry to be added to categories and then to pages.
+ </para>
+ <!-- Removed as out of date and not in Community version of doc.
<para>
A default consumer named <literal>self</literal>, that consumes the portlets exposed by JBoss Enterprise Portal Platform's producer, has been configured as a way to test the WSRP producer service and to check that portlets are correctly published via WSRP.
</para>
-->
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Configuring_a_Remote_Producer">
- <title>Configuring a Remote Producer</title>
- <para>
- Access to a remote producer needs to be defined so that portlets can be consumed within JBoss Enterprise Portal Platform. This section will show how to configure access to <emphasis role="bold">Oracle</emphasis>'s public WSRP producer. Firstly using the configuration portlet. Then how the same result can be accomplished with a producer descriptor, though it is far easier to do so via the configuration portlet.
- </para>
- <important>
- <title>Chunked Encoding</title>
- <para>
- Some WSRP producers, such as Oracle, do not support chunked encoding. If your producer does not support chunked encoding, it will not be able to properly connect to the producer.
- </para>
- <para>
- This will manifest itself with the following error:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Configuring_a_Remote_Producer">
+ <title>Configuring a Remote Producer</title>
+ <para>
+ Access to a remote producer needs to be defined so that portlets can be consumed within JBoss Enterprise Portal Platform. This section will show how to configure access to <emphasis role="bold">Oracle</emphasis>'s public WSRP producer. Firstly using the configuration portlet. Then how the same result can be accomplished with a producer descriptor, though it is far easier to do so via the configuration portlet.
+ </para>
+ <important>
+ <title>Chunked Encoding</title>
+ <para>
+ Some WSRP producers, such as Oracle, do not support chunked encoding. If your producer does not support chunked encoding, it will not be able to properly connect to the producer.
+ </para>
+ <para>
+ This will manifest itself with the following error:
+ </para>
+
<screen>Caused by: org.jboss.ws.WSException: Invalid HTTP server response [503] - Service Unavailable.
</screen>
- <para>
- A workaround for this issue involves editing the <parameter>chunksize</parameter> setting in the <filename>standard-jaxws-client-config.xml</filename> file.
- </para>
- <para>
- Refer to <ulink type="http" url="http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported">http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported</ulink> for more information.
- </para>
+ <para>
+ A workaround for this issue involves editing the <parameter>chunksize</parameter> setting in the <filename>standard-jaxws-client-config.xml</filename> file.
+ </para>
+ <para>
+ Refer to <ulink type="http" url="http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported">http://community.jboss.org/wiki/Workaroundwhenchunkedencodingisnotsupported</ulink> for more information.
+ </para>
- </important>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet">
- <title>The Configuration Portlet</title>
- <para>
- JBoss Enterprise Portal Platform provides a graphical portlet to assist with configuring access to, and other facets of, remote WSRP Producers.
- </para>
- <para>
- It is available at: <ulink type="http" url="http://localhost:8080/portal/login?initialURI=%2Fportal%2Fprivate%2Fclass..." />.
- </para>
- <para>
- The portlet also is a group page for /platform/administrators
- </para>
- <para>
- Although the Configuration Portlet is installed by default in JBoss Enterprise Portal Platform 5.1., installation instructions are included below should the portlet ever need to be re-installed:
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-The_Configuration_Portlet-Installing_the_configuration_portlet">
- <title><emphasis role="bold">Installing the configuration portlet:</emphasis></title>
- <step>
- <para>
- Log into the portal as an administrator and go to the Application Registry (Click <ulink url="http://localhost:8080/portal/private/classic/administration/registry">http://localhost:8080/portal/private/classic/administration/registry</ulink> if using the default installation).
- </para>
+ </important>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet">
+ <title>The Configuration Portlet</title>
+ <para>
+ JBoss Enterprise Portal Platform provides a graphical portlet to assist with configuring access to, and other facets of, remote WSRP Producers.
+ </para>
+ <para>
+ It is available at: <ulink type="http" url="http://localhost:8080/portal/login?initialURI=%2Fportal%2Fprivate%2Fclass..." />.
+ </para>
+ <para>
+ The portlet also is a group page for /platform/administrators
+ </para>
+ <para>
+ Although the Configuration Portlet is installed by default in JBoss Enterprise Portal Platform &VY;., installation instructions are included below should the portlet ever need to be re-installed:
+ </para>
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-The_Configuration_Portlet-Installing_the_configuration_portlet">
+ <title><emphasis role="bold">Installing the configuration portlet:</emphasis></title>
+ <step>
+ <para>
+ Log into the portal as an administrator and go to the Application Registry (Click <ulink url="http://localhost:8080/portal/private/classic/administration/registry">http://localhost:8080/portal/private/classic/administration/registry</ulink> if using the default installation).
+ </para>
- </step>
- <step>
- <para>
- Add the WSRP Configuration portlet to the Administration category. If the Import Applications functionality is used, the WSRP Configuration portlet will be automatically added to the Administration category.
- </para>
+ </step>
+ <step>
+ <para>
+ Add the WSRP Configuration portlet to the Administration category. If the Import Applications functionality is used, the WSRP Configuration portlet will be automatically added to the Administration category.
+ </para>
- </step>
- <step>
- <para>
- Once the portlet is added to a category, it can be added to a page and used. It is recommended that it be added to the same page as the Application Registry (as other operations relating to WSRP and adding portlets to categories are somewhat related). Add the WSRP Configuration portlet to the page using the standard procedure.
- </para>
+ </step>
+ <step>
+ <para>
+ Once the portlet is added to a category, it can be added to a page and used. It is recommended that it be added to the same page as the Application Registry (as other operations relating to WSRP and adding portlets to categories are somewhat related). Add the WSRP Configuration portlet to the page using the standard procedure.
+ </para>
- </step>
+ </step>
- </procedure>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_Configuration_Portlet-Using_the_Configuration_portlet">
- <title><emphasis role="bold">Using the Configuration portlet</emphasis></title>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_init.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_init.png" format="PNG" width="444" />
- </imageobject>
+ </procedure>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_Configuration_Portlet-Using_the_Configuration_portlet">
+ <title><emphasis role="bold">Using the Configuration portlet</emphasis></title>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_init.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_init.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- This screen presents all the configured consumers associated with their status and possible actions on them.
- </para>
- <para>
- A Consumer can be active or inactive. Activating a Consumer means that it is ready to act as a portlet provider.
- </para>
- <para>
- Note also that a Consumer can be marked as requiring <emphasis>refresh</emphasis>, which means that the information held about it might not be up to date. Refreshing it from the remote Producer will update this information.
- </para>
- <para>
- This can happen for several reasons: the service description for that remote Producer has not been fetched yet, the cached version has expired or modifications have been made to the configuration that could potentially invalidate it, thus requiring re-validation of the information.
- </para>
- <para>
- To create a new Consumer:
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Using_the_Configuration_portlet-Creating_a_Consumer">
- <title><emphasis role="bold">Creating a Consumer</emphasis></title>
- <step>
- <para>
- Type "<literal> oracle</literal>" into the "<emphasis role="bold">Create a consumer named:</emphasis>" field.
- </para>
+ </mediaobject>
+ <para>
+ This screen presents all the configured consumers associated with their status and possible actions on them.
+ </para>
+ <para>
+ A Consumer can be active or inactive. Activating a Consumer means that it is ready to act as a portlet provider.
+ </para>
+ <para>
+ Note also that a Consumer can be marked as requiring <emphasis>refresh</emphasis>, which means that the information held about it might not be up to date. Refreshing it from the remote Producer will update this information.
+ </para>
+ <para>
+ This can happen for several reasons: the service description for that remote Producer has not been fetched yet, the cached version has expired or modifications have been made to the configuration that could potentially invalidate it, thus requiring re-validation of the information.
+ </para>
+ <para>
+ To create a new Consumer:
+ </para>
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Using_the_Configuration_portlet-Creating_a_Consumer">
+ <title><emphasis role="bold">Creating a Consumer</emphasis></title>
+ <step>
+ <para>
+ Type "<literal> oracle</literal>" into the "<emphasis role="bold">Create a consumer named:</emphasis>" field.
+ </para>
- </step>
- <step>
- <para>
- Click on "<emphasis role="bold">Create consumer</emphasis>" to create a new Consumer called <literal>oracle</literal>.
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_create.png" format="PNG" scale="100" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_create.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ Click on "<emphasis role="bold">Create consumer</emphasis>" to create a new Consumer called <literal>oracle</literal>.
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_create.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_create.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
- <step>
- <para>
- In the next form, set the cache expiration value to <parameter>300</parameter> seconds.
- </para>
+ </step>
+ <step>
+ <para>
+ In the next form, set the cache expiration value to <parameter>300</parameter> seconds.
+ </para>
- </step>
- <step>
- <para>
- Leave the default timeout value for web services (WS) operations.
- </para>
+ </step>
+ <step>
+ <para>
+ Leave the default timeout value for web services (WS) operations.
+ </para>
- </step>
- <step>
- <para>
- Enter the WSDL URL for the producer in the text field.
- </para>
+ </step>
+ <step>
+ <para>
+ Enter the WSDL URL for the producer in the text field.
+ </para>
- </step>
- <step>
- <para>
- Press the "Refresh & Save" button:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_wsdl.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_wsdl.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ Press the "Refresh & Save" button:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_wsdl.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_wsdl.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
+ </step>
- </procedure>
-
- <para>
- This will retrieve the service description associated with the Producer which WSRP interface is described by the WSDL file found at the URL entered.
- </para>
- <para>
- In this case, querying the service description will show that the Producer requires registration but did not request any registration property:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_refresh.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_refresh.png" format="PNG" width="444" />
- </imageobject>
+ </procedure>
+
+ <para>
+ This will retrieve the service description associated with the Producer which WSRP interface is described by the WSDL file found at the URL entered.
+ </para>
+ <para>
+ In this case, querying the service description will show that the Producer requires registration but did not request any registration property:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_refresh.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_refresh.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- The Consumer for the <literal>oracle</literal> Producer should now be available as a portlet provider and be ready to be used.
- </para>
- <para>
- Assuming that the producer required a value for an <literal>email</literal> registration property, JBoss Enterprise Portal Platform's WSRP consumer will report that some information was missing:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_missing.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_missing.png" format="PNG" width="444" />
- </imageobject>
+ </mediaobject>
+ <para>
+ The Consumer for the <literal>oracle</literal> Producer should now be available as a portlet provider and be ready to be used.
+ </para>
+ <para>
+ Assuming that the producer required a value for an <literal>email</literal> registration property, JBoss Enterprise Portal Platform's WSRP consumer will report that some information was missing:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_missing.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_missing.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <note>
- <title>Values</title>
- <para>
- As at this release there is no automated way to learn about which possible values (if any) are expected by the remote Producer. Possible values may be indicated in the registration property description but this is not always the case. Refer to the specific Producer's documentation.
- </para>
+ </mediaobject>
+ <note>
+ <title>Values</title>
+ <para>
+ As at this release there is no automated way to learn about which possible values (if any) are expected by the remote Producer. Possible values may be indicated in the registration property description but this is not always the case. Refer to the specific Producer's documentation.
+ </para>
- </note>
- <para>
- Enter an address for the registration property ("<literal>example(a)example.com</literal>") and press "<emphasis role="bold">Save & Refresh</emphasis>" once more:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_end.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_end.png" format="PNG" width="444" />
- </imageobject>
+ </note>
+ <para>
+ Enter an address for the registration property ("<literal>example(a)example.com</literal>") and press "<emphasis role="bold">Save & Refresh</emphasis>" once more:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_end.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_end.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-Using_XML">
- <title>Using XML</title>
- <para>
- Although using the WSRP Configuration portlet to configure Consumers is recommended, the WSRP component provides an alternative way to configure consumers.
- </para>
- <para>
- This is done by editing the XML file located at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-Using_XML">
+ <title>Using XML</title>
+ <para>
+ Although using the WSRP Configuration portlet to configure Consumers is recommended, the WSRP component provides an alternative way to configure consumers.
+ </para>
+ <para>
+ This is done by editing the XML file located at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default257.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The file as shown above specifies access to two producers: <literal>self</literal>, which consumes JBoss Enterprise Portal Platform's own WSRP producer (albeit in a version that assumes that the producer requires a value for an <literal>email</literal> registration property), and <literal>oracle</literal>, which consumes Oracle's public producer, both in configurations as shown in the procedure above.
- </para>
- <note>
- <para>
- An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
- </para>
+ <para>
+ The file as shown above specifies access to two producers: <literal>self</literal>, which consumes JBoss Enterprise Portal Platform's own WSRP producer (albeit in a version that assumes that the producer requires a value for an <literal>email</literal> registration property), and <literal>oracle</literal>, which consumes Oracle's public producer, both in configurations as shown in the procedure above.
+ </para>
+ <note>
+ <para>
+ An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
+ </para>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-Adding_remote_portlets_to_categories">
- <title>Adding remote portlets to categories</title>
- <para>
- Clicking on the Portlet link in the Application Registry will now show the remote portlets in the <emphasis role="bold">REMOTE</emphasis> tab in the left column:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/remote_portlets.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/remote_portlets.png" format="PNG" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-Adding_remote_portlets_to_categories">
+ <title>Adding remote portlets to categories</title>
+ <para>
+ Clicking on the Portlet link in the Application Registry will now show the remote portlets in the <emphasis role="bold">REMOTE</emphasis> tab in the left column:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/remote_portlets.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/remote_portlets.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- These portlets are available to be used as regular portlets: they can be used in categories and added to pages. Using the Import Applications functionality will also automatically import them into categories based on the keywords they define.
- </para>
- <para>
- More specifically, to add a <emphasis>WSRP</emphasis> portlet to a category, select <literal>wsrp</literal> in the Application Type drop-down menu:
- </para>
- <mediaobject>
- <imageobject>
- <imagedata align="center" fileref="images/WSRP/remote_portlets_category.png" format="PNG" scalefit="1" valign="middle" />
- </imageobject>
+ </mediaobject>
+ <para>
+ These portlets are available to be used as regular portlets: they can be used in categories and added to pages. Using the Import Applications functionality will also automatically import them into categories based on the keywords they define.
+ </para>
+ <para>
+ More specifically, to add a <emphasis>WSRP</emphasis> portlet to a category, select <literal>wsrp</literal> in the Application Type drop-down menu:
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="images/WSRP/remote_portlets_category.png" format="PNG" scalefit="1" valign="middle" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Configuring_Access_to_Remote_Producers_via_XML">
- <title>Configuring Access to Remote Producers via XML</title>
- <para>
- Again, configuring consumers via XML is done by editing <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
- </para>
- <note>
- <title>XML Elements</title>
- <para>
- An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Configuring_Access_to_Remote_Producers_via_XML">
+ <title>Configuring Access to Remote Producers via XML</title>
+ <para>
+ Again, configuring consumers via XML is done by editing <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-consumer-<replaceable>WSRP_VERSION</replaceable>.jar/conf/wsrp-consumers-config.xml</filename>.
+ </para>
+ <note>
+ <title>XML Elements</title>
+ <para>
+ An XML Schema defining which elements are available to configure Consumers via XML can be found in <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_consumer_1_0.xsd </filename>
+ </para>
- </note>
- <note>
- <title>The Consumer Configuration file</title>
- <para>
- It is important to understand how the XML Consumers configuration file is processed. It is read the first time the WSRP service starts and the associated information is then put under control of the JCR (Java Content Repository).
- </para>
- <para>
- Subsequent launches of the WSRP service will use the JCR-stored information for all producers that are already known to JBoss Enterprise Portal Platform. More specifically, the <filename>wsrp-consumers-config.xml</filename> file is scanned for producer identifiers. Any identifier that is already known will be bypassed and the JCR information associated with this remote producer will be used.
- </para>
- <para>
- The information defined at the XML level is only processed for producer definition for which no information is already present in the JCR.
- </para>
- <para>
- Therefore, to delete a Producer configuration, the associated information in the database must be deleted (this can be accomplished using the configuration portlet as shown in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet" />).
- </para>
- <para>
- The associated information in <filename>wsrp-consumers-config.xml</filename> (if such information exists) must also be removed, otherwise the producer will be re-created the next time the WSRP is launched.
- </para>
+ </note>
+ <note>
+ <title>The Consumer Configuration file</title>
+ <para>
+ It is important to understand how the XML Consumers configuration file is processed. It is read the first time the WSRP service starts and the associated information is then put under control of the JCR (Java Content Repository).
+ </para>
+ <para>
+ Subsequent launches of the WSRP service will use the JCR-stored information for all producers that are already known to JBoss Enterprise Portal Platform. More specifically, the <filename>wsrp-consumers-config.xml</filename> file is scanned for producer identifiers. Any identifier that is already known will be bypassed and the JCR information associated with this remote producer will be used.
+ </para>
+ <para>
+ The information defined at the XML level is only processed for producer definition for which no information is already present in the JCR.
+ </para>
+ <para>
+ Therefore, to delete a Producer configuration, the associated information in the database must be deleted (this can be accomplished using the configuration portlet as shown in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet" />).
+ </para>
+ <para>
+ The associated information in <filename>wsrp-consumers-config.xml</filename> (if such information exists) must also be removed, otherwise the producer will be re-created the next time the WSRP is launched.
+ </para>
- </note>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_Access_to_Remote_Producers_via_XML-Required_Configuration_Information">
- <title>Required Configuration Information</title>
- <para>
- The following information needs to be provided to configure access to a remote Producer:
- </para>
- <orderedlist>
- <listitem>
- <para>
- An identifier must be provided for the producer being configured so that it can be referred to later. This is done in the mandatory <literal>id</literal> attribute of the <literal><wsrp-producer></literal> element.
- </para>
+ </note>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_Access_to_Remote_Producers_via_XML-Required_Configuration_Information">
+ <title>Required Configuration Information</title>
+ <para>
+ The following information needs to be provided to configure access to a remote Producer:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ An identifier must be provided for the producer being configured so that it can be referred to later. This is done in the mandatory <literal>id</literal> attribute of the <literal><wsrp-producer></literal> element.
+ </para>
- </listitem>
- <listitem>
- <para>
- JBoss Enterprise Portal Platform also needs to know about the remote Producer's endpoints to be able to connect to the remote web services and perform WSRP invocations. Use the <literal><endpoint-wsdl-url></literal> element to specify the URL for the WSDL description of the remote WSRP service.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ JBoss Enterprise Portal Platform also needs to know about the remote Producer's endpoints to be able to connect to the remote web services and perform WSRP invocations. Use the <literal><endpoint-wsdl-url></literal> element to specify the URL for the WSDL description of the remote WSRP service.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
- <para>
- Both the <literal>id</literal> attribute and <literal><endpoint-wsdl-url></literal> elements are required for a functional remote producer configuration.
- </para>
+ </orderedlist>
+ <para>
+ Both the <literal>id</literal> attribute and <literal><endpoint-wsdl-url></literal> elements are required for a functional remote producer configuration.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_Access_to_Remote_Producers_via_XML-Optional_Configuration">
- <title>Optional Configuration</title>
- <para>
- It is also possible to provide additional configuration, which, in some cases, might be important to establish a proper connection to the remote producer.
- </para>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Optional_Configuration-Optional_Configurations">
- <title>Optional Configurations</title>
- <varlistentry>
- <term>Caching</term>
- <listitem>
- <para>
- To prevent unnecessary traffic between the local consumer and the remote producer, it is possible to cache some of the information sent by the producer (such as the list of offered portlets) for a given duration.
- </para>
- <para>
- The rate at which the information is refreshed is defined by the <literal>expiration-cache</literal> attribute of the <literal><wsrp-producer></literal> element (in seconds).
- </para>
- <para>
- For example; providing a value of <literal>120</literal> for expiration-cache means that the producer information will not be refreshed for 2 minutes after it has been accessed. If no value is provided, JBoss Enterprise Portal Platform will always access the remote producer regardless of whether the remote information has changed or not.
- </para>
- <para>
- Since, in most instances, the information provided by the producer does not change often, use of this caching facility to minimize bandwidth usage is recommended.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_Access_to_Remote_Producers_via_XML-Optional_Configuration">
+ <title>Optional Configuration</title>
+ <para>
+ It is also possible to provide additional configuration, which, in some cases, might be important to establish a proper connection to the remote producer.
+ </para>
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Optional_Configuration-Optional_Configurations">
+ <title>Optional Configurations</title>
+ <varlistentry>
+ <term>Caching</term>
+ <listitem>
+ <para>
+ To prevent unnecessary traffic between the local consumer and the remote producer, it is possible to cache some of the information sent by the producer (such as the list of offered portlets) for a given duration.
+ </para>
+ <para>
+ The rate at which the information is refreshed is defined by the <literal>expiration-cache</literal> attribute of the <literal><wsrp-producer></literal> element (in seconds).
+ </para>
+ <para>
+ For example; providing a value of <literal>120</literal> for expiration-cache means that the producer information will not be refreshed for 2 minutes after it has been accessed. If no value is provided, JBoss Enterprise Portal Platform will always access the remote producer regardless of whether the remote information has changed or not.
+ </para>
+ <para>
+ Since, in most instances, the information provided by the producer does not change often, use of this caching facility to minimize bandwidth usage is recommended.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>WS Timeout</term>
- <listitem>
- <para>
- It is also possible to define a timeout after which WS operations are considered as failed. This is helpful to avoid blocking the WSRP service, as it waits on a service that does not answer.
- </para>
- <para>
- Use the <literal>ws-timeout</literal> attribute of the <literal><wsrp-producer></literal> element to specify how many milliseconds the WSRP service will wait for a response from the remote producer before timing out.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>WS Timeout</term>
+ <listitem>
+ <para>
+ It is also possible to define a timeout after which WS operations are considered as failed. This is helpful to avoid blocking the WSRP service, as it waits on a service that does not answer.
+ </para>
+ <para>
+ Use the <literal>ws-timeout</literal> attribute of the <literal><wsrp-producer></literal> element to specify how many milliseconds the WSRP service will wait for a response from the remote producer before timing out.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Pre-registration information</term>
- <listitem>
- <para>
- Some producers require consumers to register with them before authorizing them to access their offered portlets. If known, some registration information can be provided in the producer configuration beforehand, so that the consumer can register with the remote producer when required.
- </para>
- <note>
- <para>
- Only simple String properties are supported. It is not possible to configure complex registration data. However, this should be sufficient for most cases.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Pre-registration information</term>
+ <listitem>
+ <para>
+ Some producers require consumers to register with them before authorizing them to access their offered portlets. If known, some registration information can be provided in the producer configuration beforehand, so that the consumer can register with the remote producer when required.
+ </para>
+ <note>
+ <para>
+ Only simple String properties are supported. It is not possible to configure complex registration data. However, this should be sufficient for most cases.
+ </para>
- </note>
- <para>
- This pre-registration configuration is done via the <literal><registration-data></literal> element.
- </para>
- <para>
- If the remote producer does not require any registration properties, only an empty <literal><registration-data></literal> element need be provided, as JBoss Enterprise Portal Platform can generate the mandatory information.
- </para>
- <para>
- Values for the registration properties required by the remote producer can be provided via <literal><property></literal> elements. Refer to the example below for more details.
- </para>
- <para>
- Additionally, the default consumer name automatically provided by JBoss Enterprise Portal Platform can be overridden via the <literal><consumer-name></literal> element. When providing a consumer name, please remember that it should uniquely identify your consumer.
- </para>
+ </note>
+ <para>
+ This pre-registration configuration is done via the <literal><registration-data></literal> element.
+ </para>
+ <para>
+ If the remote producer does not require any registration properties, only an empty <literal><registration-data></literal> element need be provided, as JBoss Enterprise Portal Platform can generate the mandatory information.
+ </para>
+ <para>
+ Values for the registration properties required by the remote producer can be provided via <literal><property></literal> elements. Refer to the example below for more details.
+ </para>
+ <para>
+ Additionally, the default consumer name automatically provided by JBoss Enterprise Portal Platform can be overridden via the <literal><consumer-name></literal> element. When providing a consumer name, please remember that it should uniquely identify your consumer.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Examples">
- <title>Examples</title>
- <para>
- This is the configuration of the <literal>selfv1</literal> and <literal>selfv2</literal> consumers as found in <filename>default-wsrp.xml</filename> with a cache expiring every five minutes and with a 30 second timeout for web service operations:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consuming_Remote_WSRP_Portlets-Examples">
+ <title>Examples</title>
+ <para>
+ This is the configuration of the <literal>selfv1</literal> and <literal>selfv2</literal> consumers as found in <filename>default-wsrp.xml</filename> with a cache expiring every five minutes and with a 30 second timeout for web service operations:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default258.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- This is an example of a WSRP descriptor with registration data and cache expiring every minute:
- </para>
-
+ <para>
+ This is an example of a WSRP descriptor with registration data and cache expiring every minute:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../extras/WSRP/default259.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consumers_Maintenance">
- <title>Consumers Maintenance</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Modifying_a_Currently_Held_Registration">
- <title>Modifying a Currently Held Registration</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_for_Service_Upgrade">
- <title>Registration Modification for Service Upgrade</title>
- <para>
- Producers often offer several levels of service depending on consumers' subscription levels (for example). This is implemented at the WSRP level with the registration concept: producers can assert which level of service to provide to consumers based on the values of given registration properties.
- </para>
- <para>
- There may also be cases where the registration information has changed and must be updated. For example, the producer required you to provide a valid email and the previous email address is not valid anymore and needs to be updated.
- </para>
- <para>
- Therefore at times it may be necessary to modify the registration that sets the service agreement between a consumer and a producer.
- </para>
- <para>
- For example; the producer requiring an email that was configured in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet" />. In that case the producer was requiring registration and required a value to be provided for the <literal>email</literal> property.
- </para>
- <para>
- To update the email address that was provided, the remote producer must be informed that some registration data has been modified.
- </para>
- <para>
- The following procedure assumes access to the producer has been configured as previously described.
- </para>
- <procedure>
- <step>
- <para>
- Go to the configuration screen for the <literal>self</literal> producer and change the value of <literal>email</literal> to <literal>foo(a)example.com</literal> instead of <literal>example(a)example.com</literal>:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_start.png" format="PNG" scale="100" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_start.png" format="PNG" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Consumers_Maintenance">
+ <title>Consumers Maintenance</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Modifying_a_Currently_Held_Registration">
+ <title>Modifying a Currently Held Registration</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_for_Service_Upgrade">
+ <title>Registration Modification for Service Upgrade</title>
+ <para>
+ Producers often offer several levels of service depending on consumers' subscription levels (for example). This is implemented at the WSRP level with the registration concept: producers can assert which level of service to provide to consumers based on the values of given registration properties.
+ </para>
+ <para>
+ There may also be cases where the registration information has changed and must be updated. For example, the producer required you to provide a valid email and the previous email address is not valid anymore and needs to be updated.
+ </para>
+ <para>
+ Therefore at times it may be necessary to modify the registration that sets the service agreement between a consumer and a producer.
+ </para>
+ <para>
+ For example; the producer requiring an email that was configured in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_a_Remote_Producer-The_Configuration_Portlet" />. In that case the producer was requiring registration and required a value to be provided for the <literal>email</literal> property.
+ </para>
+ <para>
+ To update the email address that was provided, the remote producer must be informed that some registration data has been modified.
+ </para>
+ <para>
+ The following procedure assumes access to the producer has been configured as previously described.
+ </para>
+ <procedure>
+ <step>
+ <para>
+ Go to the configuration screen for the <literal>self</literal> producer and change the value of <literal>email</literal> to <literal>foo(a)example.com</literal> instead of <literal>example(a)example.com</literal>:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_start.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_start.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
- <step>
- <para>
- Click on "<emphasis role="bold">Update properties</emphasis>" to save the change. A "<emphasis role="bold">Modify registration</emphasis>" button should now appear to let you send this new data to the remote producer:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_modify.png" format="PNG" scale="100" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_modify.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ Click on "<emphasis role="bold">Update properties</emphasis>" to save the change. A "<emphasis role="bold">Modify registration</emphasis>" button should now appear to let you send this new data to the remote producer:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_modify.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_modify.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
- <step>
- <para>
- Click on <emphasis role="bold">Modify registration</emphasis> and, if the updated registration details have been accepted by the remote producer the following should appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_end.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_end.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ Click on <emphasis role="bold">Modify registration</emphasis> and, if the updated registration details have been accepted by the remote producer the following should appear:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_end.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_end.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
+ </step>
- </procedure>
-
+ </procedure>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error">
- <title>Registration Modification on Producer Error</title>
- <para>
- If a Producer administrator changes the requirements for registered consumers, invoking operations on the producer may fail with an <exceptionname>OperationFailedFault</exceptionname>. JBoss Enterprise Portal Platform will attempt to assist in these cases.
- </para>
- <para>
- This section will discuss an example using the <literal>self</literal> producer.
- </para>
- <para>
- Assuming that the registration requires a valid value for an <literal>email</literal> registration property (as has been shown) the configuration screen for this producer should show:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/config_self.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_self.png" format="PNG" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error">
+ <title>Registration Modification on Producer Error</title>
+ <para>
+ If a Producer administrator changes the requirements for registered consumers, invoking operations on the producer may fail with an <exceptionname>OperationFailedFault</exceptionname>. JBoss Enterprise Portal Platform will attempt to assist in these cases.
+ </para>
+ <para>
+ This section will discuss an example using the <literal>self</literal> producer.
+ </para>
+ <para>
+ Assuming that the registration requires a valid value for an <literal>email</literal> registration property (as has been shown) the configuration screen for this producer should show:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/config_self.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/config_self.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- If the administrator of the producer now requires an additional value to be provided for a <literal>name</literal> registration property operations with this producer will fail.
- </para>
- <para>
- If a registration modification is required, go to the configuration screen for this remote producer and refresh the information held by the consumer by pressing "<emphasis role="bold">Refresh & Save</emphasis>":
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_self.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self.png" format="PNG" width="444" />
- </imageobject>
+ </mediaobject>
+ <para>
+ If the administrator of the producer now requires an additional value to be provided for a <literal>name</literal> registration property operations with this producer will fail.
+ </para>
+ <para>
+ If a registration modification is required, go to the configuration screen for this remote producer and refresh the information held by the consumer by pressing "<emphasis role="bold">Refresh & Save</emphasis>":
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_self.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- The configuration screen now shows the currently held registration information and the expected information from the producer.
- </para>
- <para>
- Enter a value for the <literal>name</literal> property and then click on "<emphasis role="bold">Modify registration</emphasis>". If the producer accepts the new registration data, the following screen will appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" width="444" />
- </imageobject>
+ </mediaobject>
+ <para>
+ The configuration screen now shows the currently held registration information and the expected information from the producer.
+ </para>
+ <para>
+ Enter a value for the <literal>name</literal> property and then click on "<emphasis role="bold">Modify registration</emphasis>". If the producer accepts the new registration data, the following screen will appear:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/modify_reg_self_end.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <note>
- <title><emphasis role="bold">JBoss Enterprise Portal Platform 5.1 and WSRP 1 Exceptions</emphasis></title>
- <para>
- In WSRP 1, it can be difficult to ascertain what caused an <exceptionname>OperationFailedFault</exceptionname> as it is a generic exception returned by producers during a failed method invocation.
- </para>
- <para>
- An <exceptionname>OperationFailedFault</exceptionname> failure can be caused by several different reasons, one of them being a request to modify the registration data.
- </para>
- <para>
- In these instances examining the log files may assist in gathering more information about the problem.
- </para>
- <para>
- WSRP 2 introduces an exception that is specific to a request to modify registrations which reduces the ambiguity that currently exists.
- </para>
+ </mediaobject>
+ <note>
+ <title><emphasis role="bold">JBoss Enterprise Portal Platform &VY; and WSRP 1 Exceptions</emphasis></title>
+ <para>
+ In WSRP 1, it can be difficult to ascertain what caused an <exceptionname>OperationFailedFault</exceptionname> as it is a generic exception returned by producers during a failed method invocation.
+ </para>
+ <para>
+ An <exceptionname>OperationFailedFault</exceptionname> failure can be caused by several different reasons, one of them being a request to modify the registration data.
+ </para>
+ <para>
+ In these instances examining the log files may assist in gathering more information about the problem.
+ </para>
+ <para>
+ WSRP 2 introduces an exception that is specific to a request to modify registrations which reduces the ambiguity that currently exists.
+ </para>
- </note>
+ </note>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Consumer_Operations">
- <title>Consumer Operations</title>
- <para>
- Several operations are available from the consumer list view of the WSRP configuration portlet:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/consumer_operations.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/consumer_operations.png" format="PNG" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Consumer_Operations">
+ <title>Consumer Operations</title>
+ <para>
+ Several operations are available from the consumer list view of the WSRP configuration portlet:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/consumer_operations.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/consumer_operations.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- The available operations are:
- </para>
- <variablelist>
- <varlistentry>
- <term>Configure</term>
- <listitem>
- <para>
- Displays the consumer details and allows user to edit them.
- </para>
+ </mediaobject>
+ <para>
+ The available operations are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>Configure</term>
+ <listitem>
+ <para>
+ Displays the consumer details and allows user to edit them.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Refresh</term>
- <listitem>
- <para>
- Forces the consumer to retrieve the service description from the remote producer to refresh the local information (such as offered portlets, registration information).
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Refresh</term>
+ <listitem>
+ <para>
+ Forces the consumer to retrieve the service description from the remote producer to refresh the local information (such as offered portlets, registration information).
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Activate/Deactivate</term>
- <listitem>
- <para>
- Activates or deactivates a consumer, governing whether it will be available to provide portlets and receive portlet invocations.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Activate/Deactivate</term>
+ <listitem>
+ <para>
+ Activates or deactivates a consumer, governing whether it will be available to provide portlets and receive portlet invocations.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Register/De-register</term>
- <listitem>
- <para>
- Registers or de-registers a consumer based on whether registration is required and/or acquired.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Register/De-register</term>
+ <listitem>
+ <para>
+ Registers or de-registers a consumer based on whether registration is required and/or acquired.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Delete</term>
- <listitem>
- <para>
- Destroys the consumer, after de-registering it if it was registered.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Delete</term>
+ <listitem>
+ <para>
+ Destroys the consumer, after de-registering it if it was registered.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
- <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Additional_Functionalities_in_WSRP_2.0">
- <title><emphasis role="bold">Additional Functionalities in WSRP 2.0</emphasis></title>
- <para>
- In addition to those listed above, the WSRP 2.0 implementation in JBoss Enterprise Portal Platform 5.1 also includes the following functions:
- </para>
+ </variablelist>
+ <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Additional_Functionalities_in_WSRP_2.0">
+ <title><emphasis role="bold">Additional Functionalities in WSRP 2.0</emphasis></title>
+ <para>
+ In addition to those listed above, the WSRP 2.0 implementation in JBoss Enterprise Portal Platform &VY; also includes the following functions:
+ </para>
- </formalpara>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Additional_Functions">
- <title>Additional Functions:</title>
- <varlistentry>
- <term>Export</term>
- <listitem>
- <para>
- Exports some or all of the consumer's portlets to be able to later import them in a different context
- </para>
+ </formalpara>
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Additional_Functions">
+ <title>Additional Functions:</title>
+ <varlistentry>
+ <term>Export</term>
+ <listitem>
+ <para>
+ Exports some or all of the consumer's portlets to be able to later import them in a different context
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Import</term>
- <listitem>
- <para>
- Imports some or all of previously exported portlets.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Import</term>
+ <listitem>
+ <para>
+ Imports some or all of previously exported portlets.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Importing_and_Exporting_Portlets">
- <title><emphasis role="bold">Importing and Exporting Portlets</emphasis></title>
- <para>
- Import and export are new functionalities added in WSRP 2.
- </para>
- <para>
- Exporting a portlet allows a consumer to get an opaque representation of the portlet which can then be use by the corresponding import operation to reconstitute it.
- </para>
- <para>
- This is mostly used in migration scenarios during batch operations. Since JBoss Enterprise Portal Platform does not currently support automated migration of portal data, the functionality provided as part of WSRP 2 is necessarily less complete than it could be with full portal support.
- </para>
- <para>
- The import/export implementation in JBoss Enterprise Portal Platform allows users to export portlets from a given consumer and then import them back to replace existing portlets assigned to windows on pages by the previously exported portlets.
- </para>
- <procedure>
- <title></title>
- <step>
- <para>
- Click on the "<guilabel>Export</guilabel>" action for a given consumer to display the list of portlets currently made available by this specific consumer. An example list is shown below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/export_portlet_list.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_portlet_list.png" format="PNG" width="444" />
- </imageobject>
+ </variablelist>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumer_Operations-Importing_and_Exporting_Portlets">
+ <title><emphasis role="bold">Importing and Exporting Portlets</emphasis></title>
+ <para>
+ Import and export are new functionalities added in WSRP 2.
+ </para>
+ <para>
+ Exporting a portlet allows a consumer to get an opaque representation of the portlet which can then be use by the corresponding import operation to reconstitute it.
+ </para>
+ <para>
+ This is mostly used in migration scenarios during batch operations. Since JBoss Enterprise Portal Platform does not currently support automated migration of portal data, the functionality provided as part of WSRP 2 is necessarily less complete than it could be with full portal support.
+ </para>
+ <para>
+ The import/export implementation in JBoss Enterprise Portal Platform allows users to export portlets from a given consumer and then import them back to replace existing portlets assigned to windows on pages by the previously exported portlets.
+ </para>
+ <procedure>
+ <title></title>
+ <step>
+ <para>
+ Click on the "<guilabel>Export</guilabel>" action for a given consumer to display the list of portlets currently made available by this specific consumer. An example list is shown below:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/export_portlet_list.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_portlet_list.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
- <step>
- <para>
- Once portlets have been selected, they can be exported by clicking on the "<guilabel>Export</guilabel>" button. This makes them available for later import:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/export_done.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_done.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ Once portlets have been selected, they can be exported by clicking on the "<guilabel>Export</guilabel>" button. This makes them available for later import:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/export_done.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_done.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
- <step>
- <para>
- The portlets can be re-imported directly by pressing the "<guilabel>Use for import</guilabel>" button or, on the Consumers list page, using the "<guilabel>Import</guilabel>" action for a given consumer.
- </para>
- <para>
- The example below assumes that the second option has been used and that several sets of previously exported portlets are available to import from. After clicking the action link, a screen similar to the one below should appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/export_list.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_list.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ The portlets can be re-imported directly by pressing the "<guilabel>Use for import</guilabel>" button or, on the Consumers list page, using the "<guilabel>Import</guilabel>" action for a given consumer.
+ </para>
+ <para>
+ The example below assumes that the second option has been used and that several sets of previously exported portlets are available to import from. After clicking the action link, a screen similar to the one below should appear:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/export_list.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/export_list.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- This screen presents the list of available exports with available operations for each.
- </para>
- <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Importing_and_Exporting_Portlets-Operations">
- <title>Operations:</title>
- <varlistentry>
- <term>View</term>
- <listitem>
- <para>
- Displays the export details as previously seen when the export was first performed.
- </para>
+ </mediaobject>
+ <para>
+ This screen presents the list of available exports with available operations for each.
+ </para>
+ <variablelist id="vari-Reference_Guide_eXo_JCR_1.14-Importing_and_Exporting_Portlets-Operations">
+ <title>Operations:</title>
+ <varlistentry>
+ <term>View</term>
+ <listitem>
+ <para>
+ Displays the export details as previously seen when the export was first performed.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Delete</term>
- <listitem>
- <para>
- Deletes the selected export, asking you for confirmation first.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Delete</term>
+ <listitem>
+ <para>
+ Deletes the selected export, asking you for confirmation first.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Use for import</term>
- <listitem>
- <para>
- Selects the export to import portlets from.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Use for import</term>
+ <listitem>
+ <para>
+ Selects the export to import portlets from.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- </step>
- <step>
- <para>
- Once you have selected an export to import from, you will see a screen similar to the one below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_start.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_start.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ Once you have selected an export to import from, you will see a screen similar to the one below:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_start.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_start.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- The screen displays the list of available exported portlets for the previously selected export. You can select which portlet you want to import by checking the checkbox next to its name.
- </para>
+ </mediaobject>
+ <para>
+ The screen displays the list of available exported portlets for the previously selected export. You can select which portlet you want to import by checking the checkbox next to its name.
+ </para>
- </step>
- <step>
- <para>
- Select the content of which window the imported portlet will replace. This process is done in three steps:
- </para>
- <para>
- This example assumes that you have the following page called <literal>page1</literal> which contains two windows called <literal>NetUnity WSRP 2 Interop - Cache Markup (remote)</literal> and <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal>, as shown below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_original_page.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_original_page.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ Select the content of which window the imported portlet will replace. This process is done in three steps:
+ </para>
+ <para>
+ This example assumes that you have the following page called <literal>page1</literal> which contains two windows called <literal>NetUnity WSRP 2 Interop - Cache Markup (remote)</literal> and <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal>, as shown below:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_original_page.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_original_page.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- In this example, we want to replace the content of the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> with the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet that was previously exported.
- </para>
- <procedure>
- <title></title>
- <step>
- <para>
- Check the box next to the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet name to indicate that you want to import its data.
- </para>
+ </mediaobject>
+ <para>
+ In this example, we want to replace the content of the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> with the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet that was previously exported.
+ </para>
+ <procedure>
+ <title></title>
+ <step>
+ <para>
+ Check the box next to the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> portlet name to indicate that you want to import its data.
+ </para>
- </step>
- <step>
- <para>
- Select <literal>page1</literal> in the list of available pages. The screen will then refresh to display the list of available windows on that page, similar to the image below:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_selected_page.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_selected_page.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ Select <literal>page1</literal> in the list of available pages. The screen will then refresh to display the list of available windows on that page, similar to the image below:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_selected_page.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_selected_page.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <note>
- <title>Note</title>
- <para>
- At this point, you still need to select which window content you want to replace before being able to complete the import operation
- </para>
+ </mediaobject>
+ <note>
+ <title>Note</title>
+ <para>
+ At this point, you still need to select which window content you want to replace before being able to complete the import operation
+ </para>
- </note>
+ </note>
- </step>
- <step>
- <para>
- Select the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window, which enables the "<guilabel>Import</guilabel>" button. This indicates that all the necessary data to perform the import is available.
- </para>
+ </step>
+ <step>
+ <para>
+ Select the <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window, which enables the "<guilabel>Import</guilabel>" button. This indicates that all the necessary data to perform the import is available.
+ </para>
- </step>
- <step>
- <para>
- Click the "<guilabel>Import</guilabel>" button. A screen similar to the one below will appear:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_success.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_success.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ Click the "<guilabel>Import</guilabel>" button. A screen similar to the one below will appear:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_success.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_success.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
+ </step>
- </procedure>
-
+ </procedure>
+
- </step>
- <step>
- <para>
- The <literal>page1</literal> page should now show that the content of <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window has been replaced by the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> imported portlet and that the window has been renamed appropriately.
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/import_modified_page.png" format="PNG" scale="120" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_modified_page.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ The <literal>page1</literal> page should now show that the content of <literal>/samples-remotecontroller-portlet.RemoteControl (remote)</literal> window has been replaced by the content of the <literal>/ajaxPortlet.JSFAJAXPortlet</literal> imported portlet and that the window has been renamed appropriately.
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/import_modified_page.png" format="PNG" scale="120" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/WSRP/import_modified_page.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
+ </step>
- </procedure>
-
+ </procedure>
+
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Erasing_Local_Registration_Data">
- <title>Erasing Local Registration Data</title>
- <para>
- In rare cases, it may be necessary to erase the local data without being able to de-register first.
- </para>
- <para>
- This can occur when a consumer is registered with a producer that has been modified by its administrator to not require registration any longer.
- </para>
- <para>
- In this scenario, local registration information can be erased from the consumer to allow it to resume interacting with the remote producer.
- </para>
- <para>
- To do this click on the "<emphasis role="bold">Erase local registration</emphasis>" button next to the registration context information on the consumer configuration screen:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/erase_registration.png" format="PNG" scale="80" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration.png" format="PNG" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Consumers_Maintenance-Erasing_Local_Registration_Data">
+ <title>Erasing Local Registration Data</title>
+ <para>
+ In rare cases, it may be necessary to erase the local data without being able to de-register first.
+ </para>
+ <para>
+ This can occur when a consumer is registered with a producer that has been modified by its administrator to not require registration any longer.
+ </para>
+ <para>
+ In this scenario, local registration information can be erased from the consumer to allow it to resume interacting with the remote producer.
+ </para>
+ <para>
+ To do this click on the "<emphasis role="bold">Erase local registration</emphasis>" button next to the registration context information on the consumer configuration screen:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/erase_registration.png" format="PNG" scale="80" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <warning>
- <para>
- This operation is dangerous as it can result in inability to interact with the remote producer if invoked when not required. The warning message below will be displayed before any data is erased.
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/erase_registration_warning.png" format="PNG" scale="100" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration_warning.png" format="PNG" width="444" />
- </imageobject>
+ </mediaobject>
+ <warning>
+ <para>
+ This operation is dangerous as it can result in inability to interact with the remote producer if invoked when not required. The warning message below will be displayed before any data is erased.
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/erase_registration_warning.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/erase_registration_warning.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </warning>
+ </warning>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Configuring_the_WSRP_Producer">
- <title>Configuring the WSRP Producer</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Overview">
- <title>Overview</title>
- <para>
- The behavior of the Portal's WSRP Producer can be configured using the WSRP administration interface, (this is the recommended method), or by editing the <filename><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable><VERSION></replaceable>-epp-GA.jar/conf/wsrp-producer-config.xml</filename> file.
- </para>
- <para>
- Several aspects can be modified with respect to whether registration is required for consumers to access the Producer's services. An XML Schema for the configuration format is available at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_producer_1_0.xsd </filename>.
- </para>
- <para>
- An alternative to editing the default <filename>wsrp-producer-config.xml</filename> file is to make a custom copy containing the required configuration options.
- </para>
- <para>
- If a copy is used in place of the original, however, the <filename><replaceable>WSRP_PATH</replaceable>/02portal.war/WEB-INF/conf/wsrp/wsrp-configuration.xml</filename> <emphasis role="bold">must</emphasis> be updated to reference the custom file (this file defines the component <literal>WSRPServiceIntegration</literal> and contains a producer and consumer configuration location).
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Configuring_the_WSRP_Producer">
+ <title>Configuring the WSRP Producer</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Overview">
+ <title>Overview</title>
+ <para>
+ The behavior of the Portal's WSRP Producer can be configured using the WSRP administration interface, (this is the recommended method), or by editing the <filename><replaceable>WSRP_PATH</replaceable>/lib/gatein.portal.component.wsrp-<replaceable><VERSION></replaceable>-epp-GA.jar/conf/wsrp-producer-config.xml</filename> file.
+ </para>
+ <para>
+ Several aspects can be modified with respect to whether registration is required for consumers to access the Producer's services. An XML Schema for the configuration format is available at <filename><replaceable>WSRP_PATH</replaceable>/lib/wsrp-integration-api-<replaceable>WSRP_VERSION</replaceable>.jar/xsd/gatein_wsrp_producer_1_0.xsd </filename>.
+ </para>
+ <para>
+ An alternative to editing the default <filename>wsrp-producer-config.xml</filename> file is to make a custom copy containing the required configuration options.
+ </para>
+ <para>
+ If a copy is used in place of the original, however, the <filename><replaceable>WSRP_PATH</replaceable>/02portal.war/WEB-INF/conf/wsrp/wsrp-configuration.xml</filename> <emphasis role="bold">must</emphasis> be updated to reference the custom file (this file defines the component <literal>WSRPServiceIntegration</literal> and contains a producer and consumer configuration location).
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Default_Configuration">
- <title>Default Configuration</title>
- <para>
- The default producer configuration requires that consumers register with it before providing access to its services. However it does not require any specific registration properties (excepting those mandated by the WSRP standard).
- </para>
- <para>
- It does, however, require consumers to be registered before sending them a full service description. This means that the WSRP producer will not provide the list of offered portlets and other capabilities to unregistered consumers.
- </para>
- <para>
- The producer also uses the default <classname>RegistrationPolicy</classname> paired with the default <classname>RegistrationPropertyValidator</classname>.
- </para>
- <para>
- This allows users to customize how Portal's WSRP Producer decides whether a given registration property is valid or not (however property validators are discussed in greater detail in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Registration_Configuration" />).
- </para>
- <para>
- JBoss Enterprise Portal Platform provides a web interface to configure the producer's behavior. It can be accessed by clicking on the "<emphasis role="bold">Producer Configuration</emphasis>" tab of the "<emphasis role="bold">WSRP</emphasis>" page of the "<emphasis role="bold">admin</emphasis>" portal.
- </para>
- <para>
- The default configuration should show:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_default.png" format="PNG" scale="110" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_default.png" format="PNG" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Default_Configuration">
+ <title>Default Configuration</title>
+ <para>
+ The default producer configuration requires that consumers register with it before providing access to its services. However it does not require any specific registration properties (excepting those mandated by the WSRP standard).
+ </para>
+ <para>
+ It does, however, require consumers to be registered before sending them a full service description. This means that the WSRP producer will not provide the list of offered portlets and other capabilities to unregistered consumers.
+ </para>
+ <para>
+ The producer also uses the default <classname>RegistrationPolicy</classname> paired with the default <classname>RegistrationPropertyValidator</classname>.
+ </para>
+ <para>
+ This allows users to customize how Portal's WSRP Producer decides whether a given registration property is valid or not (however property validators are discussed in greater detail in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Registration_Configuration" />).
+ </para>
+ <para>
+ JBoss Enterprise Portal Platform provides a web interface to configure the producer's behavior. It can be accessed by clicking on the "<emphasis role="bold">Producer Configuration</emphasis>" tab of the "<emphasis role="bold">WSRP</emphasis>" page of the "<emphasis role="bold">admin</emphasis>" portal.
+ </para>
+ <para>
+ The default configuration should show:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_default.png" format="PNG" scale="110" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_default.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- You can specify whether or not the producer will send the full service description to unregistered consumers, and, if it requires registration, which <literal>RegistrationPolicy</literal> to use (and, if needed, which <literal>RegistrationPropertyValidator</literal>), along with required registration property description for which consumers must provide acceptable values to successfully register.
- </para>
- <para>
- WSDL URLs to access JBoss Enterprise Portal Platform's WSRP producer are now displayed in either in WSRP 1 or WSRP 2 mode.
- </para>
+ </mediaobject>
+ <para>
+ You can specify whether or not the producer will send the full service description to unregistered consumers, and, if it requires registration, which <literal>RegistrationPolicy</literal> to use (and, if needed, which <literal>RegistrationPropertyValidator</literal>), along with required registration property description for which consumers must provide acceptable values to successfully register.
+ </para>
+ <para>
+ WSDL URLs to access JBoss Enterprise Portal Platform's WSRP producer are now displayed in either in WSRP 1 or WSRP 2 mode.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Registration_Configuration">
- <title>Registration Configuration</title>
- <para>
- In order to have consumers register with Portal's producer the Portal's behavior with respect to registration must be configured.
- </para>
- <para>
- Registration is optional, as are registration properties. The producer can require registration without requiring consumers to pass any registration properties as is the case in the default configuration.
- </para>
- <para>
- The following section discusses configuring a producer's registration behavior from a blank state:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_blank.png" format="PNG" width="700" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_blank.png" format="PNG" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-Registration_Configuration">
+ <title>Registration Configuration</title>
+ <para>
+ In order to have consumers register with Portal's producer the Portal's behavior with respect to registration must be configured.
+ </para>
+ <para>
+ Registration is optional, as are registration properties. The producer can require registration without requiring consumers to pass any registration properties as is the case in the default configuration.
+ </para>
+ <para>
+ The following section discusses configuring a producer's registration behavior from a blank state:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_blank.png" format="PNG" width="700" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_blank.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <procedure>
- <step>
- <para>
- To allow unregistered consumers to see the list of offered portlets, leave the first checkbox ("<emphasis role="bold">Access to full service description requires consumers to be registered.</emphasis>") unchecked.
- </para>
+ </mediaobject>
+ <procedure>
+ <step>
+ <para>
+ To allow unregistered consumers to see the list of offered portlets, leave the first checkbox ("<emphasis role="bold">Access to full service description requires consumers to be registered.</emphasis>") unchecked.
+ </para>
- </step>
- <step>
- <para>
- To specify, however, that consumers will need to be registered to be able to interact with the producer, check the second box ("<emphasis role="bold">Requires registration. Modifying this information will trigger invalidation of consumer registrations."</emphasis>).
- </para>
- <para>
- The screen will refresh and display:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_registration.png" format="PNG" width="700" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_registration.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ To specify, however, that consumers will need to be registered to be able to interact with the producer, check the second box ("<emphasis role="bold">Requires registration. Modifying this information will trigger invalidation of consumer registrations."</emphasis>).
+ </para>
+ <para>
+ The screen will refresh and display:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_registration.png" format="PNG" width="700" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_registration.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
- <step>
- <para>
- The fully-qualified name for the <classname>RegistrationPolicy</classname> and <classname>RegistrationPropertyValidator</classname> can be specified here. The default values are acceptable. Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Registration_Configuration-Customization_of_Registration_Handling_Behavior" /> for more information.
- </para>
+ </step>
+ <step>
+ <para>
+ The fully-qualified name for the <classname>RegistrationPolicy</classname> and <classname>RegistrationPropertyValidator</classname> can be specified here. The default values are acceptable. Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Registration_Configuration-Customization_of_Registration_Handling_Behavior" /> for more information.
+ </para>
- </step>
- <step>
- <para>
- To add a registration property called <literal>email</literal> click "<emphasis role="bold">Add property</emphasis>" and enter the appropriate information in the fields, providing a description for the registration property that can be used by consumers to determine its purpose:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/WSRP/producer_email.png" format="PNG" width="700" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_email.png" format="PNG" width="444" />
- </imageobject>
+ </step>
+ <step>
+ <para>
+ To add a registration property called <literal>email</literal> click "<emphasis role="bold">Add property</emphasis>" and enter the appropriate information in the fields, providing a description for the registration property that can be used by consumers to determine its purpose:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/WSRP/producer_email.png" format="PNG" width="700" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="140mm" fileref="images/WSRP/producer_email.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </step>
- <step>
- <para>
- Press "Save" to record the modifications.
- </para>
+ </step>
+ <step>
+ <para>
+ Press "Save" to record the modifications.
+ </para>
- </step>
+ </step>
- </procedure>
-
- <note>
- <para>
- At this time, only String (<literal>xsd:string</literal>) properties are supported.
- </para>
+ </procedure>
+
+ <note>
+ <para>
+ At this time, only String (<literal>xsd:string</literal>) properties are supported.
+ </para>
- </note>
- <note>
- <para>
- If consumers are already registered with the producer, modifying the configuration of required registration information will trigger the invalidation of held registrations, requiring consumers to modify their registration before being able to access the producer again. The consumer side of that process is documented in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error" />.
- </para>
+ </note>
+ <note>
+ <para>
+ If consumers are already registered with the producer, modifying the configuration of required registration information will trigger the invalidation of held registrations, requiring consumers to modify their registration before being able to access the producer again. The consumer side of that process is documented in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Modifying_a_Currently_Held_Registration-Registration_Modification_on_Producer_Error" />.
+ </para>
- </note>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Registration_Configuration-Customization_of_Registration_Handling_Behavior">
- <title>Customization of Registration Handling Behavior</title>
- <para>
- Registration handling behavior can be customized by users to suit their Producer needs. This is done with an implementation of the <classname>RegistrationPolicy</classname> interface.
- </para>
- <para>
- This interface defines methods that are called by Portal's Registration service so that decisions can be made appropriately. A default registration policy that provides basic behavior is provided and should be enough for most user needs.
- </para>
- <para>
- While the default registration policy provides default behavior for most registration-related aspects, one aspect requires specific configuration: whether a given value for a registration property is acceptable by the WSRP Producer.
- </para>
- <para>
- This is done by plugging a <classname>RegistrationPropertyValidator</classname> into the default registration policy. This allows users to define their own validation mechanism.
- </para>
- <para>
- Refer to the <trademark class="trade">Javadoc</trademark> for <classname>org.gatein.registration.RegistrationPolicy</classname> and <classname>org.gatein.registration.policies.RegistrationPropertyValidator</classname> for more details on what is expected of each method.
- </para>
- <para>
- A defined registration policy is required for the producer to be correctly configured. Do this by specifying the qualified class name of the registration policy.
- </para>
- <para>
- As it is anticipated that most users will use the default registration policy, it is possible to provide the class name of a custom property validator instead to customize the default registration policy behavior. Note that property validators are only used by the default policy.
- </para>
- <note>
- <para>
- Since the policy or the validator are defined via their class name and dynamically loaded, it is important to ensure that the identified class is available to the application server.
- </para>
- <para>
- One way to accomplish that is to deploy the policy implementation as a JAR file in the AS instance deploy directory.
- </para>
- <para>
- Note also that, since both policies and validators are dynamically instantiated, they must provide a default, no-argument constructor.
- </para>
+ </note>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Registration_Configuration-Customization_of_Registration_Handling_Behavior">
+ <title>Customization of Registration Handling Behavior</title>
+ <para>
+ Registration handling behavior can be customized by users to suit their Producer needs. This is done with an implementation of the <classname>RegistrationPolicy</classname> interface.
+ </para>
+ <para>
+ This interface defines methods that are called by Portal's Registration service so that decisions can be made appropriately. A default registration policy that provides basic behavior is provided and should be enough for most user needs.
+ </para>
+ <para>
+ While the default registration policy provides default behavior for most registration-related aspects, one aspect requires specific configuration: whether a given value for a registration property is acceptable by the WSRP Producer.
+ </para>
+ <para>
+ This is done by plugging a <classname>RegistrationPropertyValidator</classname> into the default registration policy. This allows users to define their own validation mechanism.
+ </para>
+ <para>
+ Refer to the <trademark class="trade">Javadoc</trademark> for <classname>org.gatein.registration.RegistrationPolicy</classname> and <classname>org.gatein.registration.policies.RegistrationPropertyValidator</classname> for more details on what is expected of each method.
+ </para>
+ <para>
+ A defined registration policy is required for the producer to be correctly configured. Do this by specifying the qualified class name of the registration policy.
+ </para>
+ <para>
+ As it is anticipated that most users will use the default registration policy, it is possible to provide the class name of a custom property validator instead to customize the default registration policy behavior. Note that property validators are only used by the default policy.
+ </para>
+ <note>
+ <para>
+ Since the policy or the validator are defined via their class name and dynamically loaded, it is important to ensure that the identified class is available to the application server.
+ </para>
+ <para>
+ One way to accomplish that is to deploy the policy implementation as a JAR file in the AS instance deploy directory.
+ </para>
+ <para>
+ Note also that, since both policies and validators are dynamically instantiated, they must provide a default, no-argument constructor.
+ </para>
- </note>
+ </note>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-WSRP_Validation_Mode">
- <title>WSRP Validation Mode</title>
- <para>
- The lack of conformance kit and the wording of the WSRP specification leaves room for differing interpretations, resulting in interoperability issues. It is therefore possible to encounter issues when using consumers from different vendors.
- </para>
- <para>
- Experience of these issues has produced a way to relax the validation that the WSRP producer performs on the data provided by consumers to help with interoperability by accepting data that would normally be invalid.
- </para>
- <para>
- Note that the our validation algorithm is only relaxed on aspects of the specification that are deemed harmless such as invalid language codes.
- </para>
- <para>
- By default, the WSRP producer is configured in strict mode. If you experience issues with a given consumer, you may attempt to relax the validation mode. Un-checking the "Use strict WSRP compliance" checkbox on the Producer configuration screen to do this.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuring_the_WSRP_Producer-WSRP_Validation_Mode">
+ <title>WSRP Validation Mode</title>
+ <para>
+ The lack of conformance kit and the wording of the WSRP specification leaves room for differing interpretations, resulting in interoperability issues. It is therefore possible to encounter issues when using consumers from different vendors.
+ </para>
+ <para>
+ Experience of these issues has produced a way to relax the validation that the WSRP producer performs on the data provided by consumers to help with interoperability by accepting data that would normally be invalid.
+ </para>
+ <para>
+ Note that the our validation algorithm is only relaxed on aspects of the specification that are deemed harmless such as invalid language codes.
+ </para>
+ <para>
+ By default, the WSRP producer is configured in strict mode. If you experience issues with a given consumer, you may attempt to relax the validation mode. Un-checking the "Use strict WSRP compliance" checkbox on the Producer configuration screen to do this.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Removing_WSRP">
- <title>Removing WSRP</title>
- <para>
- If you are not going to use WSRP in your JBoss Enterprise Portal Platform instance, the WSRP configuration files may be left in place. They will not adversely affect your installation.
- </para>
- <para>
- However, if you wish to completely remove WSRP from your portal installation, follow this procedure:
- </para>
- <procedure>
- <title></title>
- <step>
- <para>
- Navigate to the <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/conf/gatein/</filename> directory of your JBoss Enterprise Portal Platform instance.
- </para>
- <substeps>
- <step>
- <para>
- Open the <filename>configuration.xml</filename> file and remove the following lines:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Web_Services_for_Remote_Portlets_WSRP-Removing_WSRP">
+ <title>Removing WSRP</title>
+ <para>
+ If you are not going to use WSRP in your JBoss Enterprise Portal Platform instance, the WSRP configuration files may be left in place. They will not adversely affect your installation.
+ </para>
+ <para>
+ However, if you wish to completely remove WSRP from your portal installation, follow this procedure:
+ </para>
+ <procedure>
+ <title></title>
+ <step>
+ <para>
+ Navigate to the <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/conf/gatein/</filename> directory of your JBoss Enterprise Portal Platform instance.
+ </para>
+ <substeps>
+ <step>
+ <para>
+ Open the <filename>configuration.xml</filename> file and remove the following lines:
+ </para>
+
<programlisting language="XML" role="XML"><value>
<string>wsrp-producer</string>
</value>
</programlisting>
- </step>
+ </step>
- </substeps>
+ </substeps>
- </step>
- <step>
- <para>
- Navigate up two directory levels and into the <filename>deploy/gatein.ear/</filename> directory (For example: <command>cd ../../deploy/gatein.ear/</command>).
- </para>
+ </step>
+ <step>
+ <para>
+ Navigate up two directory levels and into the <filename>deploy/gatein.ear/</filename> directory (For example: <command>cd ../../deploy/gatein.ear/</command>).
+ </para>
- </step>
- <step>
- <para>
- Remove the following files:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <filename>wsrp-admin-gui.war</filename>
- </para>
+ </step>
+ <step>
+ <para>
+ Remove the following files:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename>wsrp-admin-gui.war</filename>
+ </para>
- </listitem>
- <listitem>
- <para>
- <filename>wsrp-producer.war</filename>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>wsrp-producer.war</filename>
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </step>
- <step>
- <para>
- Navigate into the <filename>lib/</filename> subdirectory and remove the following files:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <filename>gatein.portal.component.wsrp-PORTAL_VERSION.jar</filename>
- </para>
+ </step>
+ <step>
+ <para>
+ Navigate into the <filename>lib/</filename> subdirectory and remove the following files:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename>gatein.portal.component.wsrp-PORTAL_VERSION.jar</filename>
+ </para>
- </listitem>
- <listitem>
- <para>
- <filename>wsrp-common-WSRP_VERSION.jar</filename>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>wsrp-common-WSRP_VERSION.jar</filename>
+ </para>
- </listitem>
- <listitem>
- <para>
- <filename>wsrp-consumer-WSRP_VERSION.jar</filename>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>wsrp-consumer-WSRP_VERSION.jar</filename>
+ </para>
- </listitem>
- <listitem>
- <para>
- <filename>wsrp-integration-api-WSRP_VERSION.jar</filename>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>wsrp-integration-api-WSRP_VERSION.jar</filename>
+ </para>
- </listitem>
- <listitem>
- <para>
- <filename>wsrp-producer-lib-WSRP_VERSION.jar</filename>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>wsrp-producer-lib-WSRP_VERSION.jar</filename>
+ </para>
- </listitem>
- <listitem>
- <para>
- <filename>wsrp-wsrp1-ws-WSRP_VERSION.jar</filename>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>wsrp-wsrp1-ws-WSRP_VERSION.jar</filename>
+ </para>
- </listitem>
- <listitem>
- <para>
- <filename>wsrp-wsrp2-ws-WSRP_VERSION.jar</filename>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>wsrp-wsrp2-ws-WSRP_VERSION.jar</filename>
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </step>
- <step>
- <para>
- Return to the <filename>gatein.ear/</filename> directory and move into the <filename>META-INF/</filename> subdirectory.
- </para>
- <substeps>
- <step>
- <para>
- Open the <filename>application.xml</filename> file and remove the following modules:
- </para>
-
+ </step>
+ <step>
+ <para>
+ Return to the <filename>gatein.ear/</filename> directory and move into the <filename>META-INF/</filename> subdirectory.
+ </para>
+ <substeps>
+ <step>
+ <para>
+ Open the <filename>application.xml</filename> file and remove the following modules:
+ </para>
+
<programlisting language="XML" role="XML"><module>
<web>
<web-uri>wsrp-admin-gui.war</web-uri>
@@ -1602,7 +1602,7 @@
</web>
</module>
</programlisting>
-
+
<programlisting language="XML" role="XML"><module>
<web>
<web-uri>wsrp-producer.war</web-uri>
@@ -1611,90 +1611,90 @@
</module>
</programlisting>
- </step>
- <step>
- <para>
- Save and exit the file.
- </para>
+ </step>
+ <step>
+ <para>
+ Save and exit the file.
+ </para>
- </step>
+ </step>
- </substeps>
+ </substeps>
- </step>
- <step>
- <para>
- Return to the <filename>gatein.ear/</filename> directory and navigate into the <filename>02portal.war/WEB-INF/conf/</filename> subdirectory.
- </para>
- <substeps>
- <step>
- <para>
- Remove the <filename>wsrp/</filename> directory.
- </para>
+ </step>
+ <step>
+ <para>
+ Return to the <filename>gatein.ear/</filename> directory and navigate into the <filename>02portal.war/WEB-INF/conf/</filename> subdirectory.
+ </para>
+ <substeps>
+ <step>
+ <para>
+ Remove the <filename>wsrp/</filename> directory.
+ </para>
- </step>
- <step>
- <para>
- Open the <filename>configuration.xml</filename> file and remove the following line:
- </para>
-
+ </step>
+ <step>
+ <para>
+ Open the <filename>configuration.xml</filename> file and remove the following line:
+ </para>
+
<programlisting language="XML" role="XML"><import profiles="jboss">war:/conf/wsrp/wsrp-configuration.xml</import>
</programlisting>
- </step>
- <step>
- <para>
- Save and exit the file.
- </para>
+ </step>
+ <step>
+ <para>
+ Save and exit the file.
+ </para>
- </step>
+ </step>
- </substeps>
+ </substeps>
- </step>
- <step>
- <para>
- From your current location, navigate into the <filename>portal/</filename> subdirectory.
- </para>
- <substeps>
- <step>
- <para>
- Open the <filename>portal-configuration.xml</filename> file and remove the line:
- </para>
-
+ </step>
+ <step>
+ <para>
+ From your current location, navigate into the <filename>portal/</filename> subdirectory.
+ </para>
+ <substeps>
+ <step>
+ <para>
+ Open the <filename>portal-configuration.xml</filename> file and remove the line:
+ </para>
+
<programlisting language="XML" role="XML"><value>org.exoplatform.portal.pom.spi.wsrp.WSRPState</value>
</programlisting>
- </step>
- <step>
- <para>
- Save and exit the file.
- </para>
+ </step>
+ <step>
+ <para>
+ Save and exit the file.
+ </para>
- </step>
+ </step>
- </substeps>
+ </substeps>
- </step>
- <step>
- <para>
- Return to the <filename>conf/</filename> directory and move into the <filename>jcr/</filename> subdirectory.
- </para>
- <substeps>
- <step>
- <para>
- Open the <filename>jcr-configuration.xml</filename> file and remove the line:
- </para>
-
+ </step>
+ <step>
+ <para>
+ Return to the <filename>conf/</filename> directory and move into the <filename>jcr/</filename> subdirectory.
+ </para>
+ <substeps>
+ <step>
+ <para>
+ Open the <filename>jcr-configuration.xml</filename> file and remove the line:
+ </para>
+
<programlisting language="XML" role="XML"><property name="wsrp" value="http://www.gatein.org/jcr/wsrp/1.0/"/>
</programlisting>
- </step>
- <step>
- <para>
- Remove the following configuration file references:
- </para>
-
+ </step>
+ <step>
+ <para>
+ Remove the following configuration file references:
+ </para>
+
<programlisting language="XML" role="XML"><value>war:/conf/wsrp/consumers-configuration-nodetypes.xml</value>
<value>war:/conf/wsrp/producer-configuration-nodetypes.xml</value>
<value>war:/conf/wsrp/producer-registrations-nodetypes.xml</value>
@@ -1702,18 +1702,18 @@
<value>war:/conf/wsrp/migration-nodetypes.xml</value>
</programlisting>
- </step>
- <step>
- <para>
- Save and exit the file.
- </para>
+ </step>
+ <step>
+ <para>
+ Save and exit the file.
+ </para>
- </step>
- <step>
- <para>
- Open the <filename>repository-configuration.xml</filename> and remove the <emphasis role="bold">WSRP</emphasis> workspace:
- </para>
-
+ </step>
+ <step>
+ <para>
+ Open the <filename>repository-configuration.xml</filename> and remove the <emphasis role="bold">WSRP</emphasis> workspace:
+ </para>
+
<programlisting language="XML" role="XML"><!-- WSRP -->
<workspace name="wsrp-system">
<container>
@@ -1782,45 +1782,45 @@
</workspace>
</programlisting>
- </step>
+ </step>
- </substeps>
+ </substeps>
- </step>
- <step>
- <title>Optional:</title>
- <para>
- Remove any references to <emphasis>WSRP</emphasis> from the following files:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <filename>gatein.ear/01eXoResources.war/META-INF/MANIFEST.MF</filename>
- </para>
+ </step>
+ <step>
+ <title>Optional:</title>
+ <para>
+ Remove any references to <emphasis>WSRP</emphasis> from the following files:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename>gatein.ear/01eXoResources.war/META-INF/MANIFEST.MF</filename>
+ </para>
- </listitem>
- <listitem>
- <para>
- <filename>gatein.ear/META-INF/MANIFEST.MF</filename>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>gatein.ear/META-INF/MANIFEST.MF</filename>
+ </para>
- </listitem>
- <listitem>
- <para>
- <filename>gatein.ear/02portal.war/META-INF/MANIFEST.MF</filename>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>gatein.ear/02portal.war/META-INF/MANIFEST.MF</filename>
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </step>
+ </step>
- </procedure>
-
+ </procedure>
+
- </section>
-
+ </section>
+
</chapter>
13 years, 4 months
gatein SVN: r8033 - epp/examples/tags.
by do-not-reply@jboss.org
Author: theute
Date: 2011-11-10 09:39:49 -0500 (Thu, 10 Nov 2011)
New Revision: 8033
Added:
epp/examples/tags/EPP_5_2_0_ER06/
Removed:
epp/examples/tags/EPP_5_1_1_ER06/
Log:
Oups
13 years, 4 months
gatein SVN: r8032 - epp/examples/tags.
by do-not-reply@jboss.org
Author: theute
Date: 2011-11-10 09:39:04 -0500 (Thu, 10 Nov 2011)
New Revision: 8032
Added:
epp/examples/tags/EPP_5_1_1_ER06/
Log:
Tagging examples
13 years, 4 months
gatein SVN: r8031 - epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/background.
by do-not-reply@jboss.org
Author: theute
Date: 2011-11-10 09:28:12 -0500 (Thu, 10 Nov 2011)
New Revision: 8031
Added:
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/background/NavDownArrow_ar.gif
Log:
Adapt examples for EPP 5.2
Added: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/background/NavDownArrow_ar.gif
===================================================================
(Binary files differ)
Property changes on: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/background/NavDownArrow_ar.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
13 years, 4 months
gatein SVN: r8030 - in epp/examples/branches/EPP_5_2_Branch: portlets/jsfhellouser and 20 other directories.
by do-not-reply@jboss.org
Author: theute
Date: 2011-11-10 09:25:30 -0500 (Thu, 10 Nov 2011)
New Revision: 8030
Added:
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/IconWindowPortlet.gif
Removed:
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/Stylesheet.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/BGDecoratorCenter1x18.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/DefaultTheme.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MDefaultTheme.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MMacBlack.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MMacGray.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MMacGreen.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MMacTheme.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerBlue.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerGreen.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerOrange.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerPink.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerViolet.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowBlue.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowGreen.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowOrange.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowPink.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowViolet.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MVistaBlue.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MVistaTheme.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MacBlack.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MacGray.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MacGreen.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MacTheme.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/Resize17x19.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ResizeArea17x15.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ResizeArea18x18.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ResizeArea18x18.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundConerGreen.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundConerOrange.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundConerPink.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundConerViolet.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundCornerBlue.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowBlue.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowGreen.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowOrange.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowPink.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowViolet.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/SimpleStyle.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/VistaBlue.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/VistaTheme.png
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/icons/SimpleIcons.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIBreadcumb/Stylesheet.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIBreadcumb/background/HomeIcon.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIPortalApplicationSkin.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/Stylesheet.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/background/AddDashboard.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/background/IconClose.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/Stylesheet.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/background/GateinLogo.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/background/GateinLogo.jpg
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/background/ToolbarContainer.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/background/UseIcon.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/Stylesheet.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/CollapseAllIcon.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/CollapseIcon.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/Dotted.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/ExpandAllIcon.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/ExpandIcon.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/LastNode.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/NullItem.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/RootTree.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/SitemapItemBoxTitle150x1.gif
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/default_sitemap.gif
Modified:
epp/examples/branches/EPP_5_2_Branch/portlets/idmhelloworld/pom.xml
epp/examples/branches/EPP_5_2_Branch/portlets/jsfhellouser/pom.xml
epp/examples/branches/EPP_5_2_Branch/portlets/jsfhellouser/src/main/webapp/WEB-INF/portlet.xml
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/pom.xml
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/WEB-INF/gatein-resources.xml
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/Portlet/Stylesheet.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/Stylesheet.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIHomePagePortlet/Stylesheet.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/Stylesheet.css
epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/background/NavDownArrow.gif
Log:
Adapt examples for EPP 5.2
Modified: epp/examples/branches/EPP_5_2_Branch/portlets/idmhelloworld/pom.xml
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/portlets/idmhelloworld/pom.xml 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/portlets/idmhelloworld/pom.xml 2011-11-10 14:25:30 UTC (rev 8030)
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.portal.examples.portlets</groupId>
- <version>1.1.1-GA</version>
+ <version>1.2.0-GA</version>
<artifactId>gatein-idm-helloworld</artifactId>
<packaging>war</packaging>
@@ -12,8 +12,8 @@
<properties>
<gatein.home>${EPP_HOME}/jboss-as/server/default/deploy/gatein.ear</gatein.home>
- <gatein.core.version>2.3.9-GA</gatein.core.version>
- <gatein.kernel.version>2.2.9-GA</gatein.kernel.version>
+ <gatein.core.version>2.4.3-GA</gatein.core.version>
+ <gatein.kernel.version>2.3.3-GA</gatein.kernel.version>
</properties>
<build>
Modified: epp/examples/branches/EPP_5_2_Branch/portlets/jsfhellouser/pom.xml
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/portlets/jsfhellouser/pom.xml 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/portlets/jsfhellouser/pom.xml 2011-11-10 14:25:30 UTC (rev 8030)
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.portal.examples.portlets</groupId>
- <version>1.1.1-GA</version>
+ <version>1.2.0-GA</version>
<artifactId>gatein-jsf-hellouser</artifactId>
<packaging>war</packaging>
@@ -12,7 +12,7 @@
<properties>
<portletBridge.home>${EPP_HOME}/portletbridge</portletBridge.home>
- <portletBridge.version>2.1.2.GA.EPP51</portletBridge.version>
+ <portletBridge.version>2.2.0.GA.EPP520</portletBridge.version>
</properties>
<build>
Modified: epp/examples/branches/EPP_5_2_Branch/portlets/jsfhellouser/src/main/webapp/WEB-INF/portlet.xml
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/portlets/jsfhellouser/src/main/webapp/WEB-INF/portlet.xml 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/portlets/jsfhellouser/src/main/webapp/WEB-INF/portlet.xml 2011-11-10 14:25:30 UTC (rev 8030)
@@ -10,19 +10,6 @@
<display-name xml:lang="EN">JSF Hello User Portlet</display-name>
<portlet-class>javax.portlet.faces.GenericFacesPortlet</portlet-class>
- <supports>
- <mime-type>text/html</mime-type>
- <portlet-mode>view</portlet-mode>
- <portlet-mode>edit</portlet-mode>
- <portlet-mode>help</portlet-mode>
- </supports>
-
- <portlet-info>
- <title>JSF Hello User Portlet</title>
- <short-title>JSF Hello User Portlet</short-title>
- <keywords>Sample</keywords>
- </portlet-info>
-
<init-param>
<name>javax.portlet.faces.defaultViewId.view</name>
<value>/jsf/welcome.jsp</value>
@@ -38,5 +25,18 @@
<value>/jsf/help.jsp</value>
</init-param>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>view</portlet-mode>
+ <portlet-mode>edit</portlet-mode>
+ <portlet-mode>help</portlet-mode>
+ </supports>
+
+ <portlet-info>
+ <title>JSF Hello User Portlet</title>
+ <short-title>JSF Hello User Portlet</short-title>
+ <keywords>Sample</keywords>
+ </portlet-info>
+
</portlet>
</portlet-app>
Modified: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/pom.xml
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/pom.xml 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/pom.xml 2011-11-10 14:25:30 UTC (rev 8030)
@@ -23,7 +23,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.portal.examples.skins</groupId>
- <version>1.0.1-GA</version>
+ <version>1.1.0-GA</version>
<artifactId>gatein-simple-skin</artifactId>
<packaging>war</packaging>
<name>EPP Skins Examples - Simple Deployable Skin</name>
Modified: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/WEB-INF/gatein-resources.xml
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/WEB-INF/gatein-resources.xml 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/WEB-INF/gatein-resources.xml 2011-11-10 14:25:30 UTC (rev 8030)
@@ -21,12 +21,13 @@
-->
<gatein-resources
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_resources_1_0 http://www.gatein.org/xml/ns/gatein_resources_1_0"
- xmlns="http://www.gatein.org/xml/ns/gatein_resources_1_0">
+ xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_resources_1_2 http://www.gatein.org/xml/ns/gatein_resources_1_2"
+ xmlns="http://www.gatein.org/xml/ns/gatein_resources_1_2">
<portal-skin>
<skin-name>SimpleSkin</skin-name>
<css-path>/skin/Stylesheet.css</css-path>
+ <css-priority>0</css-priority>
</portal-skin>
<!-- Skins for portlets in 'web' application -->
@@ -52,29 +53,22 @@
<css-path>/skin/webPortlet/webui/component/UIPortalNavigationPortlet/Stylesheet.css</css-path>
</portlet-skin>
- <portlet-skin>
- <application-name>web</application-name>
- <portlet-name>PortalNavigationPortlet</portlet-name>
- <skin-name>SimpleSkin</skin-name>
- <css-path>/skin/webPortlet/webui/component/UIPortalNavigationPortlet/Stylesheet.css</css-path>
- </portlet-skin>
-
- <portlet-skin>
- <application-name>web</application-name>
- <portlet-name>SiteMapPortlet</portlet-name>
- <skin-name>SimpleSkin</skin-name>
- <css-path>/skin/webPortlet/webui/component/UISiteMap/Stylesheet.css</css-path>
- </portlet-skin>
-
<!-- Skin for HomePagePortlet -->
<portlet-skin>
<application-name>web</application-name>
<portlet-name>HomePagePortlet</portlet-name>
<skin-name>SimpleSkin</skin-name>
<css-path>/skin/webPortlet/webui/component/UIHomePagePortlet/Stylesheet.css</css-path>
+ </portlet-skin>
+
+ <!-- Skin for OrganizationPortlet -->
+ <portlet-skin>
+ <application-name>exoadmin</application-name>
+ <portlet-name>OrganizationPortlet</portlet-name>
+ <skin-name>SimpleSkin</skin-name>
+ <css-path>/skin/exoadmin/organization/webui/component/UIOrganizationPortlet/SimpleStylesheet.css</css-path>
</portlet-skin>
-
-
+
<!-- Simple window style -->
<window-style>
<style-name>Simple</style-name>
Modified: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/Portlet/Stylesheet.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/Portlet/Stylesheet.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/Portlet/Stylesheet.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -46,7 +46,7 @@
font-family: Verdana, Arial, Helvetica, Sans-Serif, sans-serif;
font-size: 12px;
font-style: normal;
- color: #336699;
+ color: #058bb6;
}
/* Help messages, general additional information, etc. */
@@ -97,16 +97,17 @@
}
.portlet-section-selected {
- background-color: #CBD4E6;
+ background-color: #d9d8d9;
}
.portlet-section-subheader {
font-weight: bold;
- font-size: 10px;
+ padding: 5px 0px;
}
.portlet-section-footer {
font-size: 11px;
+ border-top: 1px solid #F2F2F2;
}
/* Text that belongs to the table but does not fall in one of the other categories
@@ -121,40 +122,45 @@
/* Table header */
.portlet-table-header {
- background-color: #eef;
- padding: 0 5px 5px 5px;
+ background-color: #e9e8ed;
+ padding: 0 0px 0px 5px;
font-weight: bold;
color: #333333;
font-size: 12px;
border-bottom: 1px solid #d5d5d5;
+ line-height: 20px;
}
/* Normal text in a table cell */
-.portlet-table-body {}
+.portlet-table-body {
+ padding: 10px;
+}
/* Text in every other row in the table */
.portlet-table-alternate {
- background-color: #E6E8E5;
+ background-color: #e7e6eb;
border-bottom: 1px solid #d5d5d5;
+ padding: 5px 10px;
}
/* Text in a selected cell range */
.portlet-table-selected {
color: #000;
- font-size: 12px;
- background-color: #CBD4E6;
+ background-color: #dddddd;
+ padding: 5px 10px;
}
/* Text of a subheading */
.portlet-table-subheader {
font-weight: bold;
- color: #000;
+ color: #777777;
font-size: 12px;
+ padding: 5px;
}
/* Table footer */
.portlet-table-footer {
- padding: 5px 5px 0 5px;
+ padding: 5px;
font-weight: bold;
color: #333333;
font-size: 12px;
@@ -170,7 +176,6 @@
/** FORMS **/
.portlet-form-label {
- font-size: 10px;
color: #333333;
}
@@ -182,14 +187,15 @@
/* Form Button Style */
.portlet-form-button {
- font-size: 10px;
- font-weight: bold;
- color: #FFFFFF;
- background-color: #5078aa;
- border-top: 1px solid #97B7C6;
- border-left: 1px solid #97B7C6;
- border-bottom: 1px solid #254869;
- border-right: 1px solid #254869;
+ font-size: 11px;
+ color: #5c5c5c;
+ background-color: #cfcfcf;
+ border-top: 1px solid #dadada;
+ border-left: 1px solid #dadada;
+ border-bottom: 1px solid #9a9a9a;
+ border-right: 1px solid #9a9a9a;
+ line-height: 22px;
+ padding: 0px 20px;
}
/* Text that appears beside a context dependent action icon */
@@ -231,60 +237,110 @@
/** MENUS **/
/*General menu settings such as background color, margins, etc. */
-.portlet-menu {}
+.portlet-menu {
+}
/* Normal, unselected menu item. */
.portlet-menu-item {
- color: #242424;
- text-decoration: none;
- font-family: Verdana, Arial, Helvetica, sans-serif;
- font-size: 12px;
+ background: #dddddd;
+ color: #2e2e2e;
+ text-decoration: none;
}
/* Selected menu item. */
-.portlet-menu-item-selected {}
+.portlet-menu-item-selected {
+ background: #dddddd;
+ color: #058bb6;
+}
.portlet-menu-item-hover {
- color: #5699B7;
- text-decoration: none;
- font-family: Verdana, Arial, Helvetica, sans-serif;
- font-size: 12px;
+ background: #dddddd;
+ color: #058bb6;
+ text-decoration: none;
}
/* Selected menu item when the mouse hovers over it. */
-.portlet-menu-item-hover-selected {}
+.portlet-menu-item-hover-selected {
+ background: #dddddd;
+ color: #058bb6;
+}
/* Normal, unselected menu item that has sub-menus. */
-.portlet-menu-cascade-item {}
+.portlet-menu-cascade-item {
+ background: #e9e8ed;
+ color: #636363;
+ text-decoration: none;
+}
/* Selected sub-menu item that has sub-menus */
-.portlet-menu-cascade-item-selected {}
+.portlet-menu-cascade-item-selected {
+ background: #e9e8ed;
+ color: #252525;
+ text-decoration: none;
+}
-.porlet-menu-cascade {}
+.porlet-menu-cascade {
+ background: #e9e8ed;
+ color: #636363;
+ text-decoration: none;
+}
-.portlet-menu-cascade-item-hover {}
+.portlet-menu-cascade-item-hover {
+ background: #e9e8ed;
+ color: #252525;
+ text-decoration: none;
+}
-.portlet-menu-cascade-item-hover-selected {}
+.portlet-menu-cascade-item-hover-selected {
+ background: #e9e8ed;
+ color: #252525;
+ text-decoration: none;
+}
-.portlet-menu-separator {}
+.portlet-menu-separator {
+}
.portlet-menu-cascade-separator {}
-.portlet-menu-content {}
+.portlet-menu-content {
+ background: #f6f6f6;
+ color: #717171;
+ text-decoration: none;
+}
-.portlet-menu-content-selected {}
+.portlet-menu-content-selected {
+ background: #f6f6f6;
+ color: #272727;
+ text-decoration: none;
+}
-.portlet-menu-content-hover {}
+.portlet-menu-content-hover {
+ background: #f6f6f6;
+ color: #272727;
+ text-decoration: none;
+}
-.portlet-menu-content-hover-selected {}
+.portlet-menu-content-hover-selected {
+ background: #f6f6f6;
+ color: #272727;
+ text-decoration: none;
+}
-.portlet-menu-indicator {}
+.portlet-menu-indicator {
+ color: #8b8b8b;
+}
-.portlet-menu-indicator-selected {}
+.portlet-menu-indicator-selected {
+ color: #606060;
+}
-.portlet-menu-indicator-hover {}
+.portlet-menu-indicator-hover {
+ color: #606060;
+}
-.portlet-menu-indicator-hover-selected {}
+.portlet-menu-indicator-hover-selected {
+ color: #606060;
+}
.portlet-menu-description {}
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/Stylesheet.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/Stylesheet.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/Stylesheet.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -1,3500 +0,0 @@
-/**
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * 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.
- */
-
-/*-------------------------- DefaultTheme ---------------------------*/
-
-.DefaultTheme .WindowBarCenter .WindowPortletInfo {
- margin-right: 80px; /* orientation=lt */
- margin-left: 80px; /* orientation=rt */
-}
-
-.DefaultTheme .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 24px;
- height: 17px;
- cursor: pointer;
- background-image: url('background/DefaultTheme.png');
-}
-
-.DefaultTheme .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.DefaultTheme .OverArrowDownIcon {
- background-position: center 116px;
-}
-
-.DefaultTheme .MinimizedIcon {
- background-position: center 44px;
-}
-
-.DefaultTheme .OverMinimizedIcon {
- background-position: center 140px;
-}
-
-.DefaultTheme .MaximizedIcon {
- background-position: center 68px;
-}
-
-.DefaultTheme .OverMaximizedIcon {
- background-position: center 164px;
-}
-
-.DefaultTheme .RestoreIcon {
- background-position: center 92px;
-}
-
-.DefaultTheme .OverRestoreIcon {
- background-position: center 188px;
-}
-
-.DefaultTheme .NormalIcon {
- background-position: center 92px;
-}
-
-.DefaultTheme .OverNormalIcon {
- background-position: center 188px;
-}
-
-
-.UIPageDesktop .DefaultTheme .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 18px; height: 18px;
- cursor: nw-resize;
- background: url('background/ResizeArea18x18.gif') no-repeat left top; /* orientation=lt */
- background: url('background/ResizeArea18x18-rt.gif') no-repeat right top; /* orientation=rt */
-}
-
-.DefaultTheme .Information {
- height: 18px; line-height: 18px;
- vertical-align: middle; font-size: 10px;
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
-}
-
-.DefaultTheme .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
- line-height: 16px;
-}
-
-.DefaultTheme .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.DefaultTheme .WindowBarLeft {
- padding-left: 12px;
- background-image: url('background/DefaultTheme.png');
- background-repeat: no-repeat;
- background-position: left -148px;
-}
-
-.DefaultTheme .WindowBarRight {
- padding-right: 11px;
- background-image: url('background/DefaultTheme.png');
- background-repeat: no-repeat;
- background-position: right -119px;
-}
-
-.DefaultTheme .WindowBarCenter {
- background-image: url('background/DefaultTheme.png');
- background-repeat: repeat-x;
- background-position: left -90px;
-}
-
-.DefaultTheme .WindowBarCenter .FixHeight {
- height: 21px;
- padding-top: 8px;
-}
-
-.DefaultTheme .MiddleDecoratorLeft {
- padding-left: 12px;
- background: url('background/MDefaultTheme.png') repeat-y left;
-}
-
-.DefaultTheme .MiddleDecoratorRight {
- padding-right: 11px;
- background: url('background/MDefaultTheme.png') repeat-y right;
-}
-
-.DefaultTheme .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.DefaultTheme .BottomDecoratorLeft {
- padding-left: 12px;
- background-image: url('background/DefaultTheme.png');
- background-repeat: no-repeat;
- background-position: left -60px;
-}
-
-.DefaultTheme .BottomDecoratorRight {
- padding-right: 11px;
- background-image: url('background/DefaultTheme.png');
- background-repeat: no-repeat;
- background-position: right -30px;
-}
-
-.DefaultTheme .BottomDecoratorCenter {
- background-image: url('background/DefaultTheme.png');
- background-repeat: repeat-x;
- background-position: left top;
-}
-
-.DefaultTheme .BottomDecoratorCenter .FixHeight {
- height: 30px;
-}
-
-/*-------------------------- MacTheme ---------------------------*/
-
-.MacTheme .WindowBarCenter .WindowPortletInfo {
- margin: 0px 70px 0px 0px; /* orientation=lt */
- margin: 0px 0px 0px 70px; /* orientation=rt */
-}
-
-.MacTheme .WindowBarCenter .WindowPortletIcon {
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.MacTheme .WindowBarCenter .PortletName {
- font-weight: bold;
- line-height: 17px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.MacTheme .WindowBarCenter .PortletIcon {
- background: url('/eXoSkinMac/skin/MacSkin/skinIcons/16x16/icons/DefaultPortletIcon.png') no-repeat left top; /* orientation=lt */
- background: url('/eXoSkinMac/skin/MacSkin/skinIcons/16x16/icons/DefaultPortletIcon.png') no-repeat right top; /* orientation=rt */
-}
-
-.MacTheme .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 21px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/MacTheme.png');
-}
-
-.MacTheme .ArrowDownIcon {
- background-position: center 18px;
-}
-
-.MacTheme .OverArrowDownIcon {
- background-position: center 98px;
-}
-
-.MacTheme .MinimizedIcon {
- background-position: center 37px;
-}
-
-.MacTheme .OverMinimizedIcon {
- background-position: center 118px;
-}
-
-.MacTheme .MaximizedIcon {
- background-position: center 57px;
-}
-
-.MacTheme .OverMaximizedIcon {
- background-position: center 138px;
-}
-
-.MacTheme .NormalIcon {
- background-position: center 78px;
-}
-
-.MacTheme .OverNormalIcon {
- background-position: center 158px;
-}
-
-.MacTheme .RestoreIcon {
- background-position: center 78px;
-}
-
-.MacTheme .OverRestoreIcon {
- background-position: center 158px;
-}
-
-.MacTheme .BackgroundIcon {
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
- margin: 4px 2px 0px 2px;
-}
-
-.UIPageDesktop .MacTheme .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 15px;
- cursor: nw-resize;
- background: url('background/ResizeArea17x15.png') no-repeat right top; /* orientation=lt */
- background: url('background/ResizeArea17x15-rt.png') no-repeat left top; /* orientation=rt */
-}
-
-.MacTheme .Information {
- height: 16px; line-height: 14px; vertical-align: middle;
- font-size: 10px;
- margin-right: 18px;
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.MacTheme .MiddleDecoratorLeft {
- background: url('background/MMacTheme.png') repeat-y left;
- padding: 0px 0px 0px 5px;
-}
-
-.MacTheme .MiddleDecoratorRight {
- padding: 0px 5px 0px 0px;
- background: url('background/MMacTheme.png') repeat-y right;
-}
-
-.MacTheme .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .MacTheme .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.MacTheme .BottomDecoratorLeft {
- background-image: url('background/MacTheme.png');
- background-repeat: no-repeat;
- background-position: left -46px;
- padding: 0px 0px 0px 5px;
-}
-
-.MacTheme .BottomDecoratorRight {
- background-image: url('background/MacTheme.png');
- background-repeat: no-repeat;
- background-position: right -23px;
- padding: 0px 5px 0px 0px;
-}
-
-.MacTheme .BottomDecoratorCenter {
- background-image: url('background/MacTheme.png');
- background-repeat: repeat-x;
- background-position: center top;
-}
-
-.MacTheme .BottomDecoratorCenter .FixHeight {
- height: 23px; line-height: 23px;
-}
-
-.MacTheme .WindowBarLeft {
- background-image: url('background/MacTheme.png');
- background-repeat: no-repeat;
- background-position: left -115px;
- padding: 0px 0px 0px 12px;
-}
-
-.MacTheme .WindowBarRight {
- background-image: url('background/MacTheme.png');
- background-repeat: no-repeat;
- background-position: right -92px;
- padding: 0px 12px 0px 0px;
-}
-
-.MacTheme .WindowBarCenter {
- background-image: url('background/MacTheme.png');
- background-repeat: repeat-x;
- background-position: center -69px;
-}
-
-.MacTheme .WindowBarCenter .FixHeight {
- height: 19px;
- padding-top: 4px;
-}
-
-/*-------------------------- MacGray ---------------------------*/
-
-.MacGray .WindowBarCenter .WindowPortletInfo {
- margin: 0px 70px 0px 0px; /* orientation=lt */
- margin: 0px 0px 0px 70px; /* orientation=rt */
-}
-
-.MacGray .WindowBarCenter .WindowPortletIcon {
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.MacGray .WindowBarCenter .PortletName {
- font-weight: bold;
- line-height: 17px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.MacGray .WindowBarCenter .PortletIcon {
- background: url('/eXoSkinMac/skin/MacSkin/skinIcons/16x16/icons/DefaultPortletIcon.png') no-repeat left top; /* orientation=lt */
- background: url('/eXoSkinMac/skin/MacSkin/skinIcons/16x16/icons/DefaultPortletIcon.png') no-repeat right top; /* orientation=rt */
-}
-
-.MacGray .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 21px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/MacGray.png');
-}
-
-.MacGray .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.MacGray .OverArrowDownIcon {
- background-position: center 100px;
-}
-
-.MacGray .MinimizedIcon {
- background-position: center 37px;
-}
-
-.MacGray .OverMinimizedIcon {
- background-position: center 120px;
-}
-
-.MacGray .MaximizedIcon {
- background-position: center 57px;
-}
-
-.MacGray .OverMaximizedIcon {
- background-position: center 140px;
-}
-
-.MacGray .NormalIcon {
- background-position: center 78px;
-}
-
-.MacGray .OverNormalIcon {
- background-position: center 160px;
-}
-
-.MacGray .RestoreIcon {
- background-position: center 78px;
-}
-
-.MacGray .OverRestoreIcon {
- background-position: center 160px;
-}
-
-.MacGray .BackgroundIcon {
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
- margin: 4px 2px 0px 2px;
-}
-
-.UIPageDesktop .MacGray .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 15px;
- cursor: nw-resize;
- background: url('background/ResizeArea17x15.png') no-repeat;
-}
-
-.MacGray .Information {
- height: 16px; line-height: 14px; vertical-align: middle;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.MacGray .MiddleDecoratorLeft {
- background: url('background/MMacGray.png') repeat-y left;
- padding: 0px 0px 0px 8px;
-}
-
-.MacGray .MiddleDecoratorRight {
- padding: 0px 8px 0px 0px;
- background: url('background/MMacGray.png') repeat-y right;
-}
-
-.MacGray .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.MacGray .MiddleDecoratorCenter {
- height:100%;
-}
-
-.MacGray .BottomDecoratorLeft {
- background-image: url('background/MacGray.png');
- background-repeat: no-repeat;
- background-position: left -48px;
- padding: 0px 0px 0px 9px;
-}
-
-.MacGray .BottomDecoratorRight {
- padding: 0px 9px 0px 0px;
- background-image: url('background/MacGray.png');
- background-repeat: no-repeat;
- background-position: right -24px;
-}
-
-.MacGray .BottomDecoratorCenter {
- background-image: url('background/MacGray.png');
- background-repeat: repeat-x;
- background-position: left top;
-}
-
-.MacGray .BottomDecoratorCenter .FixHeight {
- height: 24px; line-height: 24px;
-}
-
-.MacGray .WindowBarLeft {
- padding: 0px 0px 0px 9px;
- background-image: url('background/MacGray.png');
- background-repeat: no-repeat;
- background-position: left -118px;
-}
-
-.MacGray .WindowBarRight {
- padding: 0px 9px 0px 0px;
- background-image: url('background/MacGray.png');
- background-repeat: no-repeat;
- background-position: right -95px;
-}
-
-.MacGray .WindowBarCenter {
- background-image: url('background/MacGray.png');
- background-repeat: repeat-x;
- background-position: center -72px;
-}
-
-.MacGray .WindowBarCenter .FixHeight {
- height: 19px;
- padding-top: 4px;
-}
-
-/*-------------------------- MacBlack ---------------------------*/
-
-.MacBlack .WindowBarCenter .WindowPortletInfo {
- margin: 0px 70px 0px 0px; /* orientation=lt */
- margin: 0px 0px 0px 70px; /* orientation=rt */
-}
-
-.MacBlack .WindowBarCenter .WindowPortletIcon {
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.MacBlack .WindowBarCenter .PortletName {
- font-weight: bold;
- line-height: 17px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.MacBlack .WindowBarCenter .PortletIcon {
- background: url('/eXoSkinMac/skin/MacSkin/skinIcons/16x16/icons/DefaultPortletIcon.png') no-repeat left top; /* orientation=lt */
- background: url('/eXoSkinMac/skin/MacSkin/skinIcons/16x16/icons/DefaultPortletIcon.png') no-repeat right top; /* orientation=rt */
-}
-
-.MacBlack .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 21px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/MacBlack.png');
-}
-
-.MacBlack .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.MacBlack .OverArrowDownIcon {
- background-position: center 100px;
-}
-
-.MacBlack .MinimizedIcon {
- background-position: center 37px;
-}
-
-.MacBlack .OverMinimizedIcon {
- background-position: center 120px;
-}
-
-.MacBlack .MaximizedIcon {
- background-position: center 57px;
-}
-
-.MacBlack .OverMaximizedIcon {
- background-position: center 140px;
-}
-
-.MacBlack .NormalIcon {
- background-position: center 78px;
-}
-
-.MacBlack .OverNormalIcon {
- background-position: center 160px;
-}
-
-.MacBlack .RestoreIcon {
- background-position: center 78px;
-}
-
-.MacBlack .OverRestoreIcon {
- background-position: center 160px;
-}
-
-.MacBlack .BackgroundIcon {
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
- margin: 4px 2px 0px 2px;
-}
-
-.UIPageDesktop .MacBlack .ResizeArea {
- float: left; /* orientation=rt */
- float: right; /* orientation=lt */
- width: 17px; height: 15px;
- cursor: nw-resize;
- background: url('background/ResizeArea17x15.png') no-repeat;
-}
-
-.MacBlack .Information {
- height: 16px; line-height: 14px; vertical-align: middle;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.MacBlack .MiddleDecoratorLeft {
- background: url('background/MMacBlack.png') repeat-y left;
- padding: 0px 0px 0px 8px;
-}
-
-.MacBlack .MiddleDecoratorRight {
- padding: 0px 8px 0px 0px;
- background: url('background/MMacBlack.png') repeat-y right;
-}
-
-.MacBlack .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .MacBlack .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.MacBlack .BottomDecoratorLeft {
- background-image: url('background/MacBlack.png');
- background-repeat: no-repeat;
- background-position: left -48px;
- padding: 0px 0px 0px 9px;
-}
-
-.MacBlack .BottomDecoratorRight {
- padding: 0px 9px 0px 0px;
- background-image: url('background/MacBlack.png');
- background-repeat: no-repeat;
- background-position: right -24px;
-}
-
-.MacBlack .BottomDecoratorCenter {
- background-image: url('background/MacBlack.png');
- background-repeat: repeat-x;
- background-position: left top;
-}
-
-.MacBlack .BottomDecoratorCenter .FixHeight {
- height: 24px; line-height: 24px;
-}
-
-.MacBlack .WindowBarLeft {
- padding: 0px 0px 0px 9px;
- background-image: url('background/MacBlack.png');
- background-repeat: no-repeat;
- background-position: left -118px;
-}
-
-.MacBlack .WindowBarRight {
- padding: 0px 9px 0px 0px;
- background-image: url('background/MacBlack.png');
- background-repeat: no-repeat;
- background-position: right -95px;
-}
-
-.MacBlack .WindowBarCenter {
- background-image: url('background/MacBlack.png');
- background-repeat: repeat-x;
- background-position: center -72px;
-}
-
-.MacBlack .WindowBarCenter .FixHeight {
- height: 19px;
- padding-top: 4px;
-}
-
-/*-------------------------- MacGreenSteel ---------------------------*/
-
-.MacGreenSteel .WindowBarCenter .WindowPortletInfo {
- margin: 0px 70px 0px 0px; /* orientation=lt */
- margin: 0px 0px 0px 70px; /* orientation=rt */
-}
-
-.MacGreenSteel .WindowBarCenter .WindowPortletIcon {
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.MacGreenSteel .WindowBarCenter .PortletName {
- font-weight: bold;
- line-height: 17px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.MacGreenSteel .WindowBarCenter .PortletIcon {
- background: url('/eXoSkinMac/skin/MacSkin/skinIcons/16x16/icons/DefaultPortletIcon.png') no-repeat left top; /* orientation=lt */
- background: url('/eXoSkinMac/skin/MacSkin/skinIcons/16x16/icons/DefaultPortletIcon.png') no-repeat right top; /* orientation=rt */
-}
-
-.MacGreenSteel .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 21px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/MacGreen.png');
-}
-
-.MacGreenSteel .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.MacGreenSteel .OverArrowDownIcon {
- background-position: center 100px;
-}
-
-.MacGreenSteel .MinimizedIcon {
- background-position: center 37px;
-}
-
-.MacGreenSteel .OverMinimizedIcon {
- background-position: center 120px;
-}
-
-.MacGreenSteel .MaximizedIcon {
- background-position: center 57px;
-}
-
-.MacGreenSteel .OverMaximizedIcon {
- background-position: center 140px;
-}
-
-.MacGreenSteel .NormalIcon {
- background-position: center 78px;
-}
-
-.MacGreenSteel .OverNormalIcon {
- background-position: center 160px;
-}
-
-.MacGreenSteel .RestoreIcon {
- background-position: center 78px;
-}
-
-.MacGreenSteel .OverRestoreIcon {
- background-position: center 160px;
-}
-
-.MacGreenSteel .BackgroundIcon {
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
- margin: 4px 2px 0px 2px;
-}
-
-.UIPageDesktop .MacGreenSteel .ResizeArea {
- float: left; /* orientation=rt */
- float: right; /* orientation=lt */
- width: 17px; height: 15px;
- cursor: nw-resize;
- background: url('background/ResizeArea17x15.png') no-repeat;
-}
-
-.MacGreenSteel .Information {
- height: 16px; line-height: 14px; vertical-align: middle;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.MacGreenSteel .MiddleDecoratorLeft {
- background: url('background/MMacGreen.png') repeat-y left;
- padding: 0px 0px 0px 8px;
-}
-
-.MacGreenSteel .MiddleDecoratorRight {
- padding: 0px 8px 0px 0px;
- background: url('background/MMacGreen.png') repeat-y right;
-}
-
-.MacGreenSteel .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .MacGreenSteel .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.MacGreenSteel .BottomDecoratorLeft {
- background-image: url('background/MacGreen.png');
- background-repeat: no-repeat;
- background-position: left -48px;
- padding: 0px 0px 0px 9px;
-}
-
-.MacGreenSteel .BottomDecoratorRight {
- padding: 0px 9px 0px 0px;
- background-image: url('background/MacGreen.png');
- background-repeat: no-repeat;
- background-position: right -24px;
-}
-
-.MacGreenSteel .BottomDecoratorCenter {
- background-image: url('background/MacGreen.png');
- background-repeat: repeat-x;
- background-position: left top;
-}
-
-.MacGreenSteel .BottomDecoratorCenter .FixHeight {
- height: 24px; line-height: 24px;
-}
-
-.MacGreenSteel .WindowBarLeft {
- padding: 0px 0px 0px 9px;
- background-image: url('background/MacGreen.png');
- background-repeat: no-repeat;
- background-position: left -118px;
-}
-
-.MacGreenSteel .WindowBarRight {
- padding: 0px 9px 0px 0px;
- background-image: url('background/MacGreen.png');
- background-repeat: no-repeat;
- background-position: right -95px;
-}
-
-.MacGreenSteel .WindowBarCenter {
- background-image: url('background/MacGreen.png');
- background-repeat: repeat-x;
- background-position: center -72px;
-}
-
-.MacGreenSteel .WindowBarCenter .FixHeight {
- height: 19px;
- padding-top: 4px;
-}
-
-/*-------------------------------- VistaTheme -----------------------------*/
-
-.VistaTheme .WindowBarCenter .WindowPortletInfo {
- margin-right: 95px; /* orientation=lt */
- margin-left: 95px; /* orientation=rt */
-
-}
-
-.VistaTheme .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 22px;
-}
-
-.VistaTheme .WindowBarCenter .PortletIcon {
- background: url('/eXoSkinVista/skin/VistaSkin/skinIcons/16x16/icons/PortletIcon.png') no-repeat left 3px; /* orientation=lt */
- background: url('/eXoSkinVista/skin/VistaSkin/skinIcons/16x16/icons/PortletIcon-rt.png') no-repeat right 3px; /* orientation=rt */
-}
-
-.VistaTheme .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 30px;
- height: 20px;
- cursor: pointer;
- background-image: url('background/VistaTheme.png'); /* orientation=lt */
- background-image: url('background/VistaTheme-rt.png'); /* orientation=rt */
-}
-
-.VistaTheme .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.VistaTheme .OverArrowDownIcon {
- background-position: center 100px;
-}
-
-.VistaTheme .MinimizedIcon {
- background-position: center 40px;
-}
-
-.VistaTheme .OverMinimizedIcon {
- background-position: center 120px;
-}
-
-.VistaTheme .MaximizedIcon {
- background-position: center 60px;
-}
-
-.VistaTheme .OverMaximizedIcon {
- background-position: center 140px;
-}
-
-.VistaTheme .NormalIcon {
- background-position: center 80px;
-}
-
-.VistaTheme .OverNormalIcon {
- background-position: center 160px;
-}
-
-.VistaTheme .RestoreIcon {
- background-position: center 80px;
-}
-
-.VistaTheme .OverRestoreIcon {
- background-position: center 160px;
-}
-
-.VistaTheme .Information {
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
- height: 18px; line-height: 18px;
- font-size: 10px;
-}
-
-.VistaTheme .MiddleDecoratorCenter {
- background: #ffffff;
- border: solid 1px #717171;
-}
-
-.UIPageDesktop .VistaTheme .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 9px; height: 12px;
- cursor: nw-resize;
- background: url('/eXoSkinVista/skin/VistaSkin/skinIcons/16x16/icons/ResizeBG.gif') no-repeat bottom right; /* orientation=lt */
- background: url('/eXoSkinVista/skin/VistaSkin/skinIcons/16x16/icons/ResizeBG-rt.gif') no-repeat bottom left; /* orientation=rt */
-}
-
-.VistaTheme .MiddleDecoratorLeft {
- padding-left:12px;
- background: url('background/MVistaTheme.png') repeat-y left;
-}
-
-.VistaTheme .MiddleDecoratorRight {
- padding-right: 13px;
- background: url('background/MVistaTheme.png') repeat-y right;
-}
-
-.UIPageBody .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.VistaTheme .BottomDecoratorLeft {
- background-image: url('background/VistaTheme.png');
- background-repeat: no-repeat;
- background-position: left -48px;
- padding-left: 12px;
-}
-
-.VistaTheme .BottomDecoratorRight {
- background-image: url('background/VistaTheme.png');
- background-repeat: no-repeat;
- background-position: right -24px;
- padding-right: 13px;
-}
-
-.VistaTheme .BottomDecoratorCenter {
- background-image: url('background/VistaTheme.png');
- background-repeat: repeat-x;
- background-position: left top;
-}
-
-.VistaTheme .BottomDecoratorCenter .FixHeight {
- height: 24px;
-}
-
-.VistaTheme .WindowBarCenter .PortletName {
- font-weight: bold;
- line-height: 22px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.VistaTheme .WindowBarLeft {
- background-image: url('background/VistaTheme.png');
- background-repeat: no-repeat;
- background-position: left -130px;
- padding-left: 12px;
-}
-
-.VistaTheme .WindowBarRight {
- background-image: url('background/VistaTheme.png');
- background-repeat: no-repeat;
- background-position: right -101px;
- padding-right: 16px;
-}
-
-.VistaTheme .WindowBarCenter {
- background-image: url('background/VistaTheme.png');
- background-repeat: repeat-x;
- background-position: left -72px;
-}
-
-.VistaTheme .WindowBarCenter .FixHeight {
- height: 24px;
- padding-top: 5px;
-}
-
-/*-------------------------------- VistaBlue -----------------------------*/
-
-.VistaBlue .WindowBarCenter .WindowPortletInfo {
- margin-right: 95px; /* orientation=lt */
- margin-left: 95px; /* orientation=rt */
-
-}
-
-.VistaBlue .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 20px;
-}
-
-.VistaBlue .WindowBarCenter .PortletName {
- font-weight: bold;
- line-height: 22px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.VistaBlue .WindowBarCenter .PortletIcon {
- background: url('/eXoSkinVista/skin/VistaSkin/skinIcons/16x16/icons/PortletIcon.png') no-repeat left 3px; /* orientation=lt */
- background: url('/eXoSkinVista/skin/VistaSkin/skinIcons/16x16/icons/PortletIcon-rt.png') no-repeat right 3px; /* orientation=rt */
-}
-
-.VistaBlue .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 30px; height: 19px;
- cursor: pointer;
- background-image: url('background/VistaBlue.png');
-}
-
-.VistaBlue .ArrowDownIcon {
- background-position: center 19px;
-}
-
-.VistaBlue .OverArrowDownIcon {
- background-position: center 99px;
-}
-
-.VistaBlue .MinimizedIcon {
- background-position: center 39px;
-}
-
-.VistaBlue .OverMinimizedIcon {
- background-position: center 119px;
-}
-
-.VistaBlue .MaximizedIcon {
- background-position: center 59px;
-}
-
-.VistaBlue .OverMaximizedIcon {
- background-position: center 139px;
-}
-
-.VistaBlue .NormalIcon {
- background-position: center 79px;
-}
-
-.VistaBlue .OverNormalIcon {
- background-position: center 159px;
-}
-
-.VistaBlue .RestoreIcon {
- background-position: center 79px;
-}
-
-.VistaBlue .OverRestoreIcon {
- background-position: center 159px;
-}
-
-.VistaBlue .Information {
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
- height: 18px; line-height: 18px;
- font-size: 10px;
-}
-
-.VistaBlue .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .VistaBlue .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.UIPageDesktop .VistaBlue .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 9px; height: 12px;
- cursor: nw-resize;
- background: url('/eXoSkinVista/skin/VistaSkin/skinIcons/16x16/icons/ResizeBG.gif') no-repeat bottom right;
-}
-
-.VistaBlue .MiddleDecoratorLeft {
- padding-left: 15px;
- background: url('background/MVistaBlue.png') repeat-y left;
-}
-
-.VistaBlue .MiddleDecoratorRight {
- padding-right: 18px;
- background: url('background/MVistaBlue.png') repeat-y right;
-}
-
-.UIPortlet .VistaBlue .MiddleDecoratorRight {
- padding-right: 16px;
-}
-
-.VistaBlue .BottomDecoratorLeft {
- background-image: url('background/VistaBlue.png');
- background-repeat: no-repeat;
- background-position: left -54px;
- padding-left: 15px;
-}
-
-.VistaBlue .BottomDecoratorRight {
- background-image: url('background/VistaBlue.png');
- background-repeat: no-repeat;
- background-position: right -27px;
- padding-right: 15px;
-}
-
-.VistaBlue .BottomDecoratorCenter {
- background-image: url('background/VistaBlue.png');
- background-repeat: repeat-x;
- background-position: left top;
-}
-
-.VistaBlue .BottomDecoratorCenter .FixHeight {
- height: 27px;
-}
-
-.VistaBlue .WindowBarLeft {
- background-image: url('background/VistaBlue.png');
- background-repeat: no-repeat;
- background-position: left -151px;
- padding-left: 15px;
-}
-
-.VistaBlue .WindowBarRight {
- background-image: url('background/VistaBlue.png');
- background-repeat: no-repeat;
- background-position: right -116px;
- padding-right: 15px;
-}
-
-.VistaBlue .WindowBarCenter {
- background-image: url('background/VistaBlue.png');
- background-repeat: repeat-x;
- background-position: left -81px;
-}
-
-.VistaBlue .WindowBarCenter .FixHeight {
- height: 27px;
- padding-top: 8px;
-}
-
-/*-------------------------- RoundConerBlue ---------------------------*/
-
-.RoundConerBlue .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-
-}
-
-.RoundConerBlue .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/RoundCornerBlue.png');
-}
-
-.RoundConerBlue .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.RoundConerBlue .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .RoundConerBlue .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.RoundConerBlue .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 19px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.RoundConerBlue .ArrowDownIcon {
- background-position: center 21px;
-}
-
-.RoundConerBlue .OverArrowDownIcon {
- background-position: center 117px;
-}
-
-.RoundConerBlue .MinimizedIcon {
- background-position: center 45px;
-}
-
-.RoundConerBlue .OverMinimizedIcon {
- background-position: center 141px;
-}
-
-.RoundConerBlue .MaximizedIcon {
- background-position: center 69px;
-}
-
-.RoundConerBlue .OverMaximizedIcon {
- background-position: center 165px;
-}
-
-.RoundConerBlue .RestoreIcon {
- background-position: center 93px;
-}
-
-.RoundConerBlue .OverRestoreIcon {
- background-position: center 189px;
-}
-
-.RoundConerBlue .NormalIcon {
- background-position: center 93px;
-}
-
-.RoundConerBlue .OverNormalIcon {
- background-position: center 189px;
-}
-
-.RoundConerBlue .WindowBarLeft {
- padding-left: 12px;
- background-image: url('background/RoundCornerBlue.png');
- background-repeat: no-repeat;
- background-position: left -154px;
-}
-
-.RoundConerBlue .WindowBarRight {
- padding-right: 12px;
- background-image: url('background/RoundCornerBlue.png');
- background-repeat: no-repeat;
- background-position: right -122px;
-}
-
-.RoundConerBlue .WindowBarCenter {
- background: url('background/RoundCornerBlue.png') repeat-x;
- background-position: left -90px;
-}
-
-.RoundConerBlue .WindowBarCenter .FixHeight {
- height: 22px;
- padding-top: 10px;
-}
-
-.RoundConerBlue .MiddleDecoratorLeft {
- padding-left: 13px;
- background: url('background/MRoundConerBlue.png') repeat-y left;
-}
-
-.RoundConerBlue .MiddleDecoratorRight {
- padding-right: 13px;
- background: url('background/MRoundConerBlue.png') repeat-y right;
-}
-
-.RoundConerBlue .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .RoundConerBlue .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.RoundConerBlue .BottomDecoratorLeft {
- padding-left: 13px;
- background-image: url('background/RoundCornerBlue.png');
- background-repeat: no-repeat;
- background-position: left -60px;
-}
-
-.RoundConerBlue .BottomDecoratorRight {
- padding-right: 13px;
- background-image: url('background/RoundCornerBlue.png');
- background-repeat: no-repeat;
- background-position: right -30px;
-}
-
-.RoundConerBlue .BottomDecoratorCenter {
- background: url('background/RoundCornerBlue.png') repeat-x;
- background-position: top;
-}
-
-.RoundConerBlue .BottomDecoratorCenter .FixHeight {
- height: 30px;
-}
-
-/*------------------ RoundConerViolet -----------------*/
-
-.RoundConerViolet .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-
-}
-
-.RoundConerViolet .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/RoundConerViolet.png');
-}
-
-.RoundConerViolet .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- padding-left: 5px;
- margin-right: 18px;
-}
-
-.RoundConerViolet .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .RoundConerViolet .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.RoundConerViolet .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 19px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.RoundConerViolet .ArrowDownIcon {
- background-position: center 21px;
-}
-
-.RoundConerViolet .OverArrowDownIcon {
- background-position: center 117px;
-}
-
-.RoundConerViolet .MinimizedIcon {
- background-position: center 45px;
-}
-
-.RoundConerViolet .OverMinimizedIcon {
- background-position: center 141px;
-}
-
-.RoundConerViolet .MaximizedIcon {
- background-position: center 69px;
-}
-
-.RoundConerViolet .OverMaximizedIcon {
- background-position: center 165px;
-}
-
-.RoundConerViolet .RestoreIcon {
- background-position: center 93px;
-}
-
-.RoundConerViolet .OverRestoreIcon {
- background-position: center 189px;
-}
-
-.RoundConerViolet .NormalIcon {
- background-position: center 93px;
-}
-
-.RoundConerViolet .OverNormalIcon {
- background-position: center 189px;
-}
-
-.RoundConerViolet .WindowBarLeft {
- padding-left: 13px;
- background-image: url('background/RoundConerViolet.png');
- background-repeat: no-repeat;
- background-position: left -153px;
-}
-
-.RoundConerViolet .WindowBarRight {
- padding-right: 13px;
- background-image: url('background/RoundConerViolet.png');
- background-repeat: no-repeat;
- background-position: right -121px;
-}
-
-.RoundConerViolet .WindowBarCenter {
- background: url('background/RoundConerViolet.png') repeat-x;
- background-position: left -90px;
-}
-
-.RoundConerViolet .WindowBarCenter .FixHeight {
- height: 22px;
- padding-top: 10px;
-}
-
-.UIPortlet .RoundConerViolet .WindowBarCenter {
- height: 31px;
-}
-
-.RoundConerViolet .MiddleDecoratorLeft {
- padding-left: 13px;
- background: url('background/MRoundConerViolet.png') repeat-y left;
-}
-
-.RoundConerViolet .MiddleDecoratorRight {
- padding-right: 13px;
- background: url('background/MRoundConerViolet.png') repeat-y right;
-}
-
-.RoundConerViolet .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .RoundConerViolet .MiddleDecoratorCenter {
- height:100%;
-}
-
-.RoundConerViolet .BottomDecoratorLeft {
- padding-left: 13px;
- background-image: url('background/RoundConerViolet.png');
- background-repeat: no-repeat;
- background-position: left -60px;
-}
-
-.RoundConerViolet .BottomDecoratorRight {
- padding-right: 13px;
- background-image: url('background/RoundConerViolet.png');
- background-repeat: no-repeat;
- background-position: right -30px;
-}
-
-.RoundConerViolet .BottomDecoratorCenter {
- background: url('background/RoundConerViolet.png') repeat-x;
- background-position: top;
-}
-
-.RoundConerViolet .BottomDecoratorCenter .FixHeight {
- height: 30px;
-}
-
-/*------------------------------- RoundConerOrange ----------------------------------*/
-
-.RoundConerOrange .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-}
-
-.RoundConerOrange .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/RoundConerOrange.png');
-}
-
-.RoundConerOrange .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.RoundConerOrange .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .RoundConerOrange .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.RoundConerOrange .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 19px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.RoundConerOrange .ArrowDownIcon {
- background-position: center 21px;
-}
-
-.RoundConerOrange .OverArrowDownIcon {
- background-position: center 117px;
-}
-
-.RoundConerOrange .MinimizedIcon {
- background-position: center 45px;
-}
-
-.RoundConerOrange .OverMinimizedIcon {
- background-position: center 141px;
-}
-
-.RoundConerOrange .MaximizedIcon {
- background-position: center 69px;
-}
-
-.RoundConerOrange .OverMaximizedIcon {
- background-position: center 165px;
-}
-
-.RoundConerOrange .RestoreIcon {
- background-position: center 93px;
-}
-
-.RoundConerOrange .OverRestoreIcon {
- background-position: center 189px;
-}
-
-.RoundConerOrange .NormalIcon {
- background-position: center 93px;
-}
-
-.RoundConerOrange .OverNormalIcon {
- background-position: center 189px;
-}
-
-.RoundConerOrange .WindowBarLeft {
- padding-left: 13px;
- background-image: url('background/RoundConerOrange.png');
- background-repeat: no-repeat;
- background-position: left -153px;
-}
-
-.RoundConerOrange .WindowBarRight {
- padding-right: 13px;
- background-image: url('background/RoundConerOrange.png');
- background-repeat: no-repeat;
- background-position: right -121px;
-}
-
-.RoundConerOrange .WindowBarCenter {
- background: url('background/RoundConerOrange.png') repeat-x;
- background-position: left -90px;
-}
-
-.RoundConerOrange .WindowBarCenter .FixHeight {
- height: 22px;
- padding-top: 10px;
-}
-
-.UIPortlet .RoundConerOrange .WindowBarCenter {
- height: 31px;
-}
-
-.RoundConerOrange .MiddleDecoratorLeft {
- padding-left: 13px;
- background: url('background/MRoundConerOrange.png') repeat-y left;
-}
-
-.RoundConerOrange .MiddleDecoratorRight {
- padding-right: 13px;
- background: url('background/MRoundConerOrange.png') repeat-y right;
-}
-
-.RoundConerOrange .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .RoundConerOrange .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.RoundConerOrange .BottomDecoratorLeft {
- padding-left: 13px;
- background-image: url('background/RoundConerOrange.png');
- background-repeat: no-repeat;
- background-position: left -60px;
-}
-
-.RoundConerOrange .BottomDecoratorRight {
- padding-right: 13px;
- background-image: url('background/RoundConerOrange.png');
- background-repeat: no-repeat;
- background-position: right -30px;
-}
-
-.RoundConerOrange .BottomDecoratorCenter {
- background: url('background/RoundConerOrange.png') repeat-x;
- background-position: top;
-}
-
-.RoundConerOrange .BottomDecoratorCenter .FixHeight {
- height: 30px;
-}
-
-/*------------------------------- RoundConerPink ----------------------------------*/
-
-.RoundConerPink .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-}
-
-.RoundConerPink .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/RoundConerPink.png');
-}
-
-.RoundConerPink .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.RoundConerPink .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .RoundConerPink .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.RoundConerPink .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 19px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.RoundConerPink .ArrowDownIcon {
- background-position: center 21px;
-}
-
-.RoundConerPink .OverArrowDownIcon {
- background-position: center 117px;
-}
-
-.RoundConerPink .MinimizedIcon {
- background-position: center 45px;
-}
-
-.RoundConerPink .OverMinimizedIcon {
- background-position: center 141px;
-}
-
-.RoundConerPink .MaximizedIcon {
- background-position: center 69px;
-}
-
-.RoundConerPink .OverMaximizedIcon {
- background-position: center 165px;
-}
-
-.RoundConerPink .RestoreIcon {
- background-position: center 93px;
-}
-
-.RoundConerPink .OverRestoreIcon {
- background-position: center 189px;
-}
-
-.RoundConerPink .NormalIcon {
- background-position: center 93px;
-}
-
-.RoundConerPink .OverNormalIcon {
- background-position: center 189px;
-}
-
-.RoundConerPink .WindowBarLeft {
- padding-left: 13px;
- background-image: url('background/RoundConerPink.png');
- background-repeat: no-repeat;
- background-position: left -153px;
-}
-
-.RoundConerPink .WindowBarRight {
- padding-right: 13px;
- background-image: url('background/RoundConerPink.png');
- background-repeat: no-repeat;
- background-position: right -121px;
-}
-
-.RoundConerPink .WindowBarCenter {
- background: url('background/RoundConerPink.png') repeat-x;
- background-position: left -90px;
-}
-
-.RoundConerPink .WindowBarCenter .FixHeight {
- height: 22px;
- padding-top: 10px;
-}
-
-.UIPortlet .RoundConerPink .WindowBarCenter {
- height: 31px;
-}
-
-.RoundConerPink .MiddleDecoratorLeft {
- padding-left: 13px;
- background: url('background/MRoundConerPink.png') repeat-y left;
-}
-
-.RoundConerPink .MiddleDecoratorRight {
- padding-right: 13px;
- background: url('background/MRoundConerPink.png') repeat-y right;
-}
-
-.RoundConerPink .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .RoundConerPink .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.RoundConerPink .BottomDecoratorLeft {
- padding-left: 13px;
- background-image: url('background/RoundConerPink.png');
- background-repeat: no-repeat;
- background-position: left -60px;
-}
-
-.RoundConerPink .BottomDecoratorRight {
- padding-right: 13px;
- background-image: url('background/RoundConerPink.png');
- background-repeat: no-repeat;
- background-position: right -30px;
-}
-
-.RoundConerPink .BottomDecoratorCenter {
- background: url('background/RoundConerPink.png') repeat-x;
- background-position: top;
-}
-
-.RoundConerPink .BottomDecoratorCenter .FixHeight {
- height: 30px;
-}
-
-/*------------------------------- RoundConerGreen ----------------------------------*/
-
-.RoundConerGreen .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-}
-
-.RoundConerGreen .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/RoundConerGreen.png');
-}
-
-.RoundConerGreen .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.RoundConerGreen .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .RoundConerGreen .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.RoundConerGreen .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 19px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.RoundConerGreen .ArrowDownIcon {
- background-position: center 21px;
-}
-
-.RoundConerGreen .OverArrowDownIcon {
- background-position: center 117px;
-}
-
-.RoundConerGreen .MinimizedIcon {
- background-position: center 45px;
-}
-
-.RoundConerGreen .OverMinimizedIcon {
- background-position: center 141px;
-}
-
-.RoundConerGreen .MaximizedIcon {
- background-position: center 69px;
-}
-
-.RoundConerGreen .OverMaximizedIcon {
- background-position: center 165px;
-}
-
-.RoundConerGreen .RestoreIcon {
- background-position: center 93px;
-}
-
-.RoundConerGreen .OverRestoreIcon {
- background-position: center 189px;
-}
-
-.RoundConerGreen .NormalIcon {
- background-position: center 93px;
-}
-
-.RoundConerGreen .OverNormalIcon {
- background-position: center 189px;
-}
-
-.RoundConerGreen .WindowBarLeft {
- padding-left: 13px;
- background-image: url('background/RoundConerGreen.png');
- background-repeat: no-repeat;
- background-position: left -153px;
-}
-
-.RoundConerGreen .WindowBarRight {
- padding-right: 13px;
- background-image: url('background/RoundConerGreen.png');
- background-repeat: no-repeat;
- background-position: right -121px;
-}
-
-.RoundConerGreen .WindowBarCenter {
- background: url('background/RoundConerGreen.png') repeat-x;
- background-position: left -90px;
-}
-
-.RoundConerGreen .WindowBarCenter .FixHeight {
- height: 22px;
- padding-top: 10px;
-}
-
-.UIPortlet .RoundConerGreen .WindowBarCenter {
- height: 31px;
-}
-
-.RoundConerGreen .MiddleDecoratorLeft {
- padding-left: 13px;
- background: url('background/MRoundConerGreen.png') repeat-y left;
-}
-
-.RoundConerGreen .MiddleDecoratorRight {
- padding-right: 13px;
- background: url('background/MRoundConerGreen.png') repeat-y right;
-}
-
-.RoundConerGreen .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .RoundConerGreen .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.RoundConerGreen .BottomDecoratorLeft {
- padding-left: 13px;
- background-image: url('background/RoundConerGreen.png');
- background-repeat: no-repeat;
- background-position: left -60px;
-}
-
-.RoundConerGreen .BottomDecoratorRight {
- padding-right: 13px;
- background-image: url('background/RoundConerGreen.png');
- background-repeat: no-repeat;
- background-position: right -30px;
-}
-
-.RoundConerGreen .BottomDecoratorCenter {
- background: url('background/RoundConerGreen.png') repeat-x;
- background-position: top;
-}
-
-.RoundConerGreen .BottomDecoratorCenter .FixHeight {
- height: 30px;
-}
-
-/*-------------------------- ShadowBlue ---------------------------*/
-
-.ShadowBlue .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-}
-
-.ShadowBlue .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/ShadowBlue.png');
-}
-
-.ShadowBlue .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.ShadowBlue .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .ShadowBlue .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.ShadowBlue .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 16px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.ShadowBlue .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.ShadowBlue .OverArrowDownIcon {
- background-position: center 116px;
-}
-
-.ShadowBlue .MinimizedIcon {
- background-position: center 44px;
-}
-
-.ShadowBlue .OverMinimizedIcon {
- background-position: center 140px;
-}
-
-.ShadowBlue .MaximizedIcon {
- background-position: center 68px;
-}
-
-.ShadowBlue .OverMaximizedIcon {
- background-position: center 164px;
-}
-
-.ShadowBlue .RestoreIcon {
- background-position: center 92px;
-}
-
-.ShadowBlue .OverRestoreIcon {
- background-position: center 188px;
-}
-
-.ShadowBlue .NormalIcon {
- background-position: center 92px;
-}
-
-.ShadowBlue .OverNormalIcon {
- background-position: center 188px;
-}
-
-.ShadowBlue .WindowBarLeft {
- padding-left: 11px;
- background-image: url('background/ShadowBlue.png');
- background-repeat: no-repeat;
- background-position: left -142px;
-}
-
-.ShadowBlue .WindowBarRight {
- padding-right: 10px;
- background-image: url('background/ShadowBlue.png');
- background-repeat: no-repeat;
- background-position: right -113px;
-}
-
-.ShadowBlue .WindowBarCenter {
- background-image: url('background/ShadowBlue.png');
- background-repeat: repeat-x;
- background-position: center -84px;
-}
-
-.ShadowBlue .WindowBarCenter .FixHeight {
- height: 20px;
- padding-top: 9px;
-}
-
-.ShadowBlue .MiddleDecoratorLeft {
- padding-left: 11px;
- background: url('background/MShadowBlue.png') repeat-y left;
-}
-
-.ShadowBlue .MiddleDecoratorRight {
- padding-right: 10px;
- background: url('background/MShadowBlue.png') repeat-y right;
-}
-
-.ShadowBlue .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .ShadowBlue .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.ShadowBlue .BottomDecoratorLeft {
- padding-left: 11px;
- background-image: url('background/ShadowBlue.png');
- background-repeat: no-repeat;
- background-position: left -56px;
-}
-
-.ShadowBlue .BottomDecoratorRight {
- padding-right: 10px;
- background-image: url('background/ShadowBlue.png');
- background-repeat: no-repeat;
- background-position: right -28px;
-}
-
-.ShadowBlue .BottomDecoratorCenter {
- background-image: url('background/ShadowBlue.png');
- background-repeat: repeat-x;
- background-position: center top;
-}
-
-.ShadowBlue .BottomDecoratorCenter .FixHeight {
- height: 28px;
-}
-
-/*------------------------------ ShadowViolet -----------------------------------*/
-
-.ShadowViolet .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-}
-
-.ShadowViolet .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/ShadowViolet.png');
-}
-
-.ShadowViolet .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.ShadowViolet .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .ShadowViolet .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.ShadowViolet .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 16px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.ShadowViolet .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.ShadowViolet .OverArrowDownIcon {
- background-position: center 116px;
-}
-
-.ShadowViolet .MinimizedIcon {
- background-position: center 44px;
-}
-
-.ShadowViolet .OverMinimizedIcon {
- background-position: center 140px;
-}
-
-.ShadowViolet .MaximizedIcon {
- background-position: center 68px;
-}
-
-.ShadowViolet .OverMaximizedIcon {
- background-position: center 164px;
-}
-
-.ShadowViolet .RestoreIcon {
- background-position: center 92px;
-}
-
-.ShadowViolet .OverRestoreIcon {
- background-position: center 188px;
-}
-
-.ShadowViolet .NormalIcon {
- background-position: center 92px;
-}
-
-.ShadowViolet .OverNormalIcon {
- background-position: center 188px;
-}
-
-.ShadowViolet .WindowBarLeft {
- padding-left: 11px;
- background-image: url('background/ShadowViolet.png');
- background-repeat: no-repeat;
- background-position: left -142px;
-}
-
-.ShadowViolet .WindowBarRight {
- padding-right: 10px;
- background-image: url('background/ShadowViolet.png');
- background-repeat: no-repeat;
- background-position: right -113px;
-}
-
-.ShadowViolet .WindowBarCenter {
- background-image: url('background/ShadowViolet.png');
- background-repeat: repeat-x;
- background-position: center -84px;
-}
-
-.ShadowViolet .WindowBarCenter .FixHeight {
- height: 20px;
- padding-top: 9px;
-}
-
-.ShadowViolet .MiddleDecoratorLeft {
- padding-left: 11px;
- background: url('background/MShadowViolet.png') repeat-y left;
-}
-
-.ShadowViolet .MiddleDecoratorRight {
- padding-right: 10px;
- background: url('background/MShadowViolet.png') repeat-y right;
-}
-
-.ShadowViolet .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .ShadowViolet .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.ShadowViolet .BottomDecoratorLeft {
- padding-left: 11px;
- background-image: url('background/ShadowViolet.png');
- background-repeat: no-repeat;
- background-position: left -56px;
-}
-
-.ShadowViolet .BottomDecoratorRight {
- padding-right: 10px;
- background-image: url('background/ShadowViolet.png');
- background-repeat: no-repeat;
- background-position: right -28px;
-}
-
-.ShadowViolet .BottomDecoratorCenter {
- background-image: url('background/ShadowViolet.png');
- background-repeat: repeat-x;
- background-position: center top;
-}
-
-.ShadowViolet .BottomDecoratorCenter .FixHeight {
- height: 28px;
-}
-
-/*------------------------------ ShadowOrange -----------------------------------*/
-
-.ShadowOrange .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-}
-
-.ShadowOrange .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/ShadowOrange.png');
-}
-
-.ShadowOrange .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.ShadowOrange .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .ShadowOrange .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.ShadowOrange .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 16px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.ShadowOrange .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.ShadowOrange .OverArrowDownIcon {
- background-position: center 116px;
-}
-
-.ShadowOrange .MinimizedIcon {
- background-position: center 44px;
-}
-
-.ShadowOrange .OverMinimizedIcon {
- background-position: center 140px;
-}
-
-.ShadowOrange .MaximizedIcon {
- background-position: center 68px;
-}
-
-.ShadowOrange .OverMaximizedIcon {
- background-position: center 164px;
-}
-
-.ShadowOrange .RestoreIcon {
- background-position: center 92px;
-}
-
-.ShadowOrange .OverRestoreIcon {
- background-position: center 188px;
-}
-
-.ShadowOrange .NormalIcon {
- background-position: center 92px;
-}
-
-.ShadowOrange .OverNormalIcon {
- background-position: center 188px;
-}
-
-.ShadowOrange .WindowBarLeft {
- padding-left: 11px;
- background-image: url('background/ShadowOrange.png');
- background-repeat: no-repeat;
- background-position: left -142px;
-}
-
-.ShadowOrange .WindowBarRight {
- padding-right: 10px;
- background-image: url('background/ShadowOrange.png');
- background-repeat: no-repeat;
- background-position: right -113px;
-}
-
-.ShadowOrange .WindowBarCenter {
- background-image: url('background/ShadowOrange.png');
- background-repeat: repeat-x;
- background-position: center -84px;
-}
-
-.ShadowOrange .WindowBarCenter .FixHeight {
- height: 19px;
- padding-top: 10px;
-}
-
-.ShadowOrange .MiddleDecoratorLeft {
- padding-left: 11px;
- background: url('background/MShadowOrange.png') repeat-y left;
-}
-
-.ShadowOrange .MiddleDecoratorRight {
- padding-right: 10px;
- background: url('background/MShadowOrange.png') repeat-y right;
-}
-
-.ShadowOrange .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .ShadowOrange .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.ShadowOrange .BottomDecoratorLeft {
- padding-left: 11px;
- background-image: url('background/ShadowOrange.png');
- background-repeat: no-repeat;
- background-position: left -56px;
-}
-
-.ShadowOrange .BottomDecoratorRight {
- padding-right: 10px;
- background-image: url('background/ShadowOrange.png');
- background-repeat: no-repeat;
- background-position: right -28px;
-}
-
-.ShadowOrange .BottomDecoratorCenter {
- background-image: url('background/ShadowOrange.png');
- background-repeat: repeat-x;
- background-position: center top;
-}
-
-.ShadowOrange .BottomDecoratorCenter .FixHeight {
- height: 28px;
-}
-
-/*------------------------------ ShadowPink -----------------------------------*/
-
-
-.ShadowPink .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-}
-
-.ShadowPink .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/ShadowPink.png');
-}
-
-.ShadowPink .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.ShadowPink .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .ShadowPink .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.ShadowPink .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 16px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.ShadowPink .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.ShadowPink .OverArrowDownIcon {
- background-position: center 116px;
-}
-
-.ShadowPink .MinimizedIcon {
- background-position: center 44px;
-}
-
-.ShadowPink .OverMinimizedIcon {
- background-position: center 140px;
-}
-
-.ShadowPink .MaximizedIcon {
- background-position: center 68px;
-}
-
-.ShadowPink .OverMaximizedIcon {
- background-position: center 164px;
-}
-
-.ShadowPink .RestoreIcon {
- background-position: center 92px;
-}
-
-.ShadowPink .OverRestoreIcon {
- background-position: center 188px;
-}
-
-.ShadowPink .NormalIcon {
- background-position: center 92px;
-}
-
-.ShadowPink .OverNormalIcon {
- background-position: center 188px;
-}
-
-.ShadowPink .WindowBarLeft {
- padding-left: 11px;
- background-image: url('background/ShadowPink.png');
- background-repeat: no-repeat;
- background-position: left -142px;
-}
-
-.ShadowPink .WindowBarRight {
- padding-right: 10px;
- background-image: url('background/ShadowPink.png');
- background-repeat: no-repeat;
- background-position: right -113px;
-}
-
-.ShadowPink .WindowBarCenter {
- background-image: url('background/ShadowPink.png');
- background-repeat: repeat-x;
- background-position: center -84px;
-}
-
-.ShadowPink .WindowBarCenter .FixHeight {
- height: 19px;
- padding-top: 10px;
-}
-
-.ShadowPink .MiddleDecoratorLeft {
- padding-left: 11px;
- background: url('background/MShadowPink.png') repeat-y left;
-}
-
-.ShadowPink .MiddleDecoratorRight {
- padding-right: 10px;
- background: url('background/MShadowPink.png') repeat-y right;
-}
-
-.ShadowPink .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .ShadowPink .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.ShadowPink .BottomDecoratorLeft {
- padding-left: 11px;
- background-image: url('background/ShadowPink.png');
- background-repeat: no-repeat;
- background-position: left -56px;
-}
-
-.ShadowPink .BottomDecoratorRight {
- padding-right: 10px;
- background-image: url('background/ShadowPink.png');
- background-repeat: no-repeat;
- background-position: right -28px;
-}
-
-.ShadowPink .BottomDecoratorCenter {
- background-image: url('background/ShadowPink.png');
- background-repeat: repeat-x;
- background-position: center top;
-}
-
-.ShadowPink .BottomDecoratorCenter .FixHeight {
- height: 28px;
-}
-
-/*------------------------------ ShadowGreen -----------------------------------*/
-
-
-.ShadowGreen .WindowBarCenter .WindowPortletInfo {
- margin-right: 70px; /* orientation=lt */
- margin-left: 70px; /* orientation=rt */
-}
-
-.ShadowGreen .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 20px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
- background-image: url('background/ShadowGreen.png');
-}
-
-.ShadowGreen .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.ShadowGreen .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .ShadowGreen .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.ShadowGreen .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- line-height: 16px;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.ShadowGreen .ArrowDownIcon {
- background-position: center 20px;
-}
-
-.ShadowGreen .OverArrowDownIcon {
- background-position: center 116px;
-}
-
-.ShadowGreen .MinimizedIcon {
- background-position: center 44px;
-}
-
-.ShadowGreen .OverMinimizedIcon {
- background-position: center 140px;
-}
-
-.ShadowGreen .MaximizedIcon {
- background-position: center 68px;
-}
-
-.ShadowGreen .OverMaximizedIcon {
- background-position: center 164px;
-}
-
-.ShadowGreen .RestoreIcon {
- background-position: center 92px;
-}
-
-.ShadowGreen .OverRestoreIcon {
- background-position: center 188px;
-}
-
-.ShadowGreen .NormalIcon {
- background-position: center 92px;
-}
-
-.ShadowGreen .OverNormalIcon {
- background-position: center 188px;
-}
-
-.ShadowGreen .WindowBarLeft {
- padding-left: 11px;
- background-image: url('background/ShadowGreen.png');
- background-repeat: no-repeat;
- background-position: left -142px;
-}
-
-.ShadowGreen .WindowBarRight {
- padding-right: 10px;
- background-image: url('background/ShadowGreen.png');
- background-repeat: no-repeat;
- background-position: right -113px;
-}
-
-.ShadowGreen .WindowBarCenter {
- background-image: url('background/ShadowGreen.png');
- background-repeat: repeat-x;
- background-position: center -84px;
-}
-
-.ShadowGreen .WindowBarCenter .FixHeight {
- height: 20px;
- padding-top: 9px;
-}
-
-.ShadowGreen .MiddleDecoratorLeft {
- padding-left: 11px;
- background: url('background/MShadowGreen.png') repeat-y left;
-}
-
-.ShadowGreen .MiddleDecoratorRight {
- padding-right: 10px;
- background: url('background/MShadowGreen.png') repeat-y right;
-}
-
-.ShadowGreen .MiddleDecoratorCenter {
- background: #ffffff;
-}
-
-.UIPortlet .ShadowGreen .MiddleDecoratorCenter {
- height: 100%;
-}
-
-.ShadowGreen .BottomDecoratorLeft {
- padding-left: 11px;
- background-image: url('background/ShadowGreen.png');
- background-repeat: no-repeat;
- background-position: left -56px;
-}
-
-.ShadowGreen .BottomDecoratorRight {
- padding-right: 10px;
- background-image: url('background/ShadowGreen.png');
- background-repeat: no-repeat;
- background-position: right -28px;
-}
-
-.ShadowGreen .BottomDecoratorCenter {
- background-image: url('background/ShadowGreen.png');
- background-repeat: repeat-x;
- background-position: center top;
-}
-
-.ShadowGreen .BottomDecoratorCenter .FixHeight {
- height: 28px;
-}
-
-/*------------------------------ SimpleBlue -----------------------------------*/
-
-.SimpleBlue .WindowBarCenter .WindowPortletInfo {
- margin-right: 60px; /* orientation=lt */
- margin-left: 60px; /* orientation=rt */
-}
-
-.SimpleBlue .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 16px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
-}
-
-.SimpleBlue .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.SimpleBlue .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .SimpleBlue .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.SimpleBlue .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.SimpleBlue .ArrowDownIcon {
- background: url('background/SimpleStyle.gif') left 16px;
-}
-
-.SimpleBlue .OverArrowDownIcon {
- background: url('background/SimpleStyle.gif') right 16px;
-}
-
-.SimpleBlue .MinimizedIcon {
- background: url('background/SimpleStyle.gif') left 32px;
-}
-
-.SimpleBlue .OverMinimizedIcon {
- background: url('background/SimpleStyle.gif') right 32px;
-}
-
-.SimpleBlue .MaximizedIcon {
- background: url('background/SimpleStyle.gif') left 48px;
-}
-
-.SimpleBlue .OverMaximizedIcon {
- background: url('background/SimpleStyle.gif') right 48px;
-}
-
-.SimpleBlue .RestoreIcon {
- background: url('background/SimpleStyle.gif') left 64px;
-}
-
-.SimpleBlue .OverRestoreIcon {
- background: url('background/SimpleStyle.gif') right 64px;
-}
-
-.SimpleBlue .NormalIcon {
- background: url('background/SimpleStyle.gif') left 64px;
-}
-
-.SimpleBlue .OverNormalIcon {
- background: url('background/SimpleStyle.gif') right 64px;
-}
-
-.SimpleBlue .WindowBarLeft {
- border: 1px solid #3d589d;
- border-bottom: none;
-}
-
-.SimpleBlue .WindowBarRight {
- border: 1px solid #d7e5f2;
-}
-
-.SimpleBlue .WindowBarCenter {
- background: #b0c0f5;
-}
-
-.SimpleBlue .WindowBarCenter .FixHeight {
- height: 18px;
- line-height: 18px;
-}
-
-
-.SimpleBlue .MiddleDecoratorLeft {
- border-left: 1px solid #3d589d;
- border-right: 1px solid #3d589d;
-}
-
-.SimpleBlue .MiddleDecoratorRight {
- border: 2px solid #d7e5f2;
- border-top: none;
- border-bottom: none;
-}
-
-.SimpleBlue .MiddleDecoratorCenter {
- border: 1px solid #4a67b1;
- border-bottom: none;
- background: #ffffff;
- padding: 1px;
-}
-
-.SimpleBlue .BottomDecoratorLeft {
- border-left: 1px solid #3d589d;
- border-right: 1px solid #3d589d;
- border-bottom: 1px solid #3d589d;
-}
-
-.SimpleBlue .BottomDecoratorRight {
- border: 2px solid #d7e5f2;
- border-top: none;
-}
-
-.SimpleBlue .BottomDecoratorCenter {
- border: 1px solid #4a67b1;
- border-top: none;
- background: white url('background/BGDecoratorCenter1x18.gif') repeat-x;
-}
-
-.SimpleBlue .BottomDecoratorCenter .FixHeight {
- height: 19px;
-}
-
-/*------------------------------ SimpleViolet -----------------------------------*/
-
-.SimpleViolet .WindowBarCenter .WindowPortletInfo {
- margin-right: 60px; /* orientation=lt */
- margin-left: 60px; /* orientation=rt */
-}
-
-.SimpleViolet .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 16px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
-}
-
-.SimpleViolet .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.SimpleViolet .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .SimpleViolet .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.SimpleViolet .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.SimpleViolet .ArrowDownIcon {
- background: url('background/SimpleStyle.gif') left 80px;
-}
-
-.SimpleViolet .OverArrowDownIcon {
- background: url('background/SimpleStyle.gif') right 80px;
-}
-
-.SimpleViolet .MinimizedIcon {
- background: url('background/SimpleStyle.gif') left 96px;
-}
-
-.SimpleViolet .OverMinimizedIcon {
- background: url('background/SimpleStyle.gif') right 96px;
-}
-
-.SimpleViolet .MaximizedIcon {
- background: url('background/SimpleStyle.gif') left 112px;
-}
-
-.SimpleViolet .OverMaximizedIcon {
- background: url('background/SimpleStyle.gif') right 112px;
-}
-
-.SimpleViolet .RestoreIcon {
- background: url('background/SimpleStyle.gif') left 128px;
-}
-
-.SimpleViolet .OverRestoreIcon {
- background: url('background/SimpleStyle.gif') right 128px;
-}
-
-.SimpleViolet .NormalIcon {
- background: url('background/SimpleStyle.gif') left 128px;
-}
-
-.SimpleViolet .OverNormalIcon {
- background: url('background/SimpleStyle.gif') right 128px;
-}
-
-.SimpleViolet .WindowBarLeft {
- border: 1px solid #c41fdc;
- border-bottom: none;
-}
-
-.SimpleViolet .WindowBarRight {
- border: 1px solid #ece7ff;
-}
-
-.SimpleViolet .WindowBarCenter {
- background: #c4a6ff;
-}
-
-.SimpleViolet .WindowBarCenter .FixHeight {
- height: 18px;
- line-height: 18px;
-}
-
-.SimpleViolet .MiddleDecoratorLeft {
- border-left: 1px solid #c41fdc;
- border-right: 1px solid #c41fdc;
-}
-
-.SimpleViolet .MiddleDecoratorRight {
- border: 2px solid #ece7ff;
- border-top: none;
- border-bottom: none;
-}
-
-.SimpleViolet .MiddleDecoratorCenter {
- border: 1px solid #5700a9;
- border-bottom: none;
- background: #ffffff;
- padding: 1px;
-}
-
-.SimpleViolet .BottomDecoratorLeft {
- border: 1px solid #c41fdc;
- border-top: none;
-}
-
-.SimpleViolet .BottomDecoratorRight {
- border: 2px solid #ece7ff;
- border-top: none;
-}
-
-.SimpleViolet .BottomDecoratorCenter {
- border: 1px solid #5700a9;
- border-top: none;
- background: url('background/BGDecoratorCenter1x18.gif') repeat-x;
-}
-
-.SimpleViolet .BottomDecoratorCenter .FixHeight {
- height: 19px;
-}
-
-.UIPortlet .SimpleViolet .BottomDecoratorCenter {
- height: 18px;
-}
-
-/*------------------------------ SimpleOrange -----------------------------------*/
-
-.SimpleOrange .WindowBarCenter .WindowPortletInfo {
- margin-right: 60px; /* orientation=lt */
- margin-left: 60px; /* orientation=rt */
-}
-
-.SimpleOrange .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 16px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
-}
-
-.SimpleOrange .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.SimpleOrange .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .SimpleOrange .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.SimpleOrange .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.SimpleOrange .ArrowDownIcon {
- background: url('background/SimpleStyle.gif') left 144px;
-}
-
-.SimpleOrange .OverArrowDownIcon {
- background: url('background/SimpleStyle.gif') right 144px;
-}
-
-.SimpleOrange .MinimizedIcon {
- background: url('background/SimpleStyle.gif') left 160px;
-}
-
-.SimpleOrange .OverMinimizedIcon {
- background: url('background/SimpleStyle.gif') right 160px;
-}
-
-.SimpleOrange .MaximizedIcon {
- background: url('background/SimpleStyle.gif') left 192px;
-}
-
-.SimpleOrange .OverMaximizedIcon {
- background: url('background/SimpleStyle.gif') right 192px;
-}
-
-.SimpleOrange .RestoreIcon {
- background: url('background/SimpleStyle.gif') left 176px;
-}
-
-.SimpleOrange .OverRestoreIcon {
- background: url('background/SimpleStyle.gif') right 176px;
-}
-
-.SimpleOrange .NormalIcon {
- background: url('background/SimpleStyle.gif') left 176px;
-}
-
-.SimpleOrange .OverNormalIcon {
- background: url('background/SimpleStyle.gif') right 176px;
-}
-
-.SimpleOrange .WindowBarLeft {
- border: 1px solid #ffb27f;
- border-bottom: none;
-}
-
-.SimpleOrange .WindowBarRight {
- border: 1px solid #fff1e5;
-}
-
-.SimpleOrange .WindowBarCenter {
- background: #ffd1a8;
-}
-
-.SimpleOrange .WindowBarCenter .FixHeight {
- height: 18px;
- line-height: 18px;
-}
-
-.SimpleOrange .MiddleDecoratorLeft {
- border-left: 1px solid #ffb27f;
- border-right: 1px solid #ffb27f;
-}
-
-.SimpleOrange .MiddleDecoratorRight {
- border: 2px solid #fff1e5;
- border-top: none;
- border-bottom: none;
-}
-
-.SimpleOrange .MiddleDecoratorCenter {
- border: 1px solid #b27a49;
- border-bottom: none;
- background: #ffffff;
- padding: 1px;
-}
-
-.SimpleOrange .BottomDecoratorLeft {
- border: 1px solid #ffb27f;
- border-top: none;
-}
-
-.SimpleOrange .BottomDecoratorRight {
- border: 2px solid #fff1e5;
- border-top: none;
-}
-
-.SimpleOrange .BottomDecoratorCenter {
- border: 1px solid #b27a49;
- border-top: none;
- background: url('background/BGDecoratorCenter1x18.gif') repeat-x;
-}
-
-.SimpleOrange .BottomDecoratorCenter .FixHeight {
- height: 19px;
-}
-
-.UIPortlet .SimpleOrange .BottomDecoratorCenter {
- height: 18px;
-}
-
-/*------------------------------ SimplePink -----------------------------------*/
-
-.SimplePink .WindowBarCenter .WindowPortletInfo {
- margin-right: 60px; /* orientation=lt */
- margin-left: 60px; /* orientation=rt */
-}
-
-.SimplePink .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 16px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
-}
-
-.SimplePink .Information {
- height: 18px; line-height: 18px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.SimplePink .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .SimplePink .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.SimplePink .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.SimplePink .ArrowDownIcon {
- background: url('background/SimpleStyle.gif') left 208px;
-}
-
-.SimplePink .OverArrowDownIcon {
- background: url('background/SimpleStyle.gif') right 208px;
-}
-
-.SimplePink .MinimizedIcon {
- background: url('background/SimpleStyle.gif') left 224px;
-}
-
-.SimplePink .OverMinimizedIcon {
- background: url('background/SimpleStyle.gif') right 224px;
-}
-
-.SimplePink .MaximizedIcon {
- background: url('background/SimpleStyle.gif') left 240px;
-}
-
-.SimplePink .OverMaximizedIcon {
- background: url('background/SimpleStyle.gif') right 240px;
-}
-
-.SimplePink .RestoreIcon {
- background: url('background/SimpleStyle.gif') left 256px;
-}
-
-.SimplePink .OverRestoreIcon {
- background: url('background/SimpleStyle.gif') right 256px;
-}
-
-.SimplePink .NormalIcon {
- background: url('background/SimpleStyle.gif') left 256px;
-}
-
-.SimplePink .OverNormalIcon {
- background: url('background/SimpleStyle.gif') right 256px;
-}
-
-.SimplePink .WindowBarLeft {
- border: 1px solid #b69db3;
- border-bottom: none;
-}
-
-.SimplePink .WindowBarRight {
- border: 1px solid #fff1fd;
-}
-
-.SimplePink .WindowBarCenter {
- background: #fdd8f9;
-}
-
-.SimplePink .WindowBarCenter .FixHeight {
- height: 18px;
- line-height: 18px;
-}
-
-.SimplePink .MiddleDecoratorLeft {
- border-left: 1px solid #b69db3;
- border-right: 1px solid #b69db3;
-}
-
-.SimplePink .MiddleDecoratorRight {
- border: 2px solid #fff1fd;
- border-top: none;
- border-bottom: none;
-}
-
-.SimplePink .MiddleDecoratorCenter {
- border: 1px solid #9a5591;
- border-bottom: none;
- background: #ffffff;
- padding: 1px;
-}
-
-.SimplePink .BottomDecoratorLeft {
- border: 1px solid #b69db3;
- border-top: none;
-}
-
-.SimplePink .BottomDecoratorRight {
- border: 2px solid #fff1fd;
- border-top: none;
-}
-
-.SimplePink .BottomDecoratorCenter {
- border: 1px solid #9a5591;
- border-top: none;
- background: url('background/BGDecoratorCenter1x18.gif') repeat-x;
-}
-
-.SimplePink .BottomDecoratorCenter .FixHeight {
- height: 19px;
-}
-
-.UIPortlet .SimplePink .BottomDecoratorCenter {
- height: 18px;
-}
-
-/*------------------------------ SimpleGreen -----------------------------------*/
-
-.SimpleGreen .WindowBarCenter .WindowPortletInfo {
- margin-right: 60px; /* orientation=lt */
- margin-left: 60px; /* orientation=rt */
-}
-
-.SimpleGreen .WindowBarCenter .ControlIcon {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 16px; height: 16px;
- margin-right: 2px; /* orientation=lt */
- margin-left: 2px; /* orientation=rt */
- cursor: pointer;
-}
-
-.SimpleGreen .Information {
- line-height: 18px;
- width: 100px;
- font-size: 10px;
- margin-right: 18px; /* orientation=lt */
- margin-left: 18px; /* orientation=rt */
- padding-left: 5px; /* orientation=lt */
- padding-right: 5px; /* orientation=rt */
-}
-
-.SimpleGreen .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
-}
-
-.UIPageDesktop .SimpleGreen .ResizeArea {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
- width: 17px; height: 19px;
- cursor: nw-resize;
- background: url('background/Resize17x19.png') no-repeat;
-}
-
-.SimpleGreen .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
-}
-
-.SimpleGreen .ArrowDownIcon {
- background: url('background/SimpleStyle.gif') left 272px;
-}
-
-.SimpleGreen .OverArrowDownIcon {
- background: url('background/SimpleStyle.gif') right 272px;
-}
-
-.SimpleGreen .MinimizedIcon {
- background: url('background/SimpleStyle.gif') left 288px;
-}
-
-.SimpleGreen .OverMinimizedIcon {
- background: url('background/SimpleStyle.gif') right 288px;
-}
-
-.SimpleGreen .MaximizedIcon {
- background: url('background/SimpleStyle.gif') left 304px;
-}
-
-.SimpleGreen .OverMaximizedIcon {
- background: url('background/SimpleStyle.gif') right 304px;
-}
-
-.SimpleGreen .RestoreIcon {
- background: url('background/SimpleStyle.gif') left 320px;
-}
-
-.SimpleGreen .OverRestoreIcon {
- background: url('background/SimpleStyle.gif') right 320px;
-}
-
-.SimpleGreen .NormalIcon {
- background: url('background/SimpleStyle.gif') left 320px;
-}
-
-.SimpleGreen .OverNormalIcon {
- background: url('background/SimpleStyle.gif') right 320px;
-}
-
-.SimpleGreen .WindowBarLeft {
- border: 1px solid #a0b9b6;
- border-bottom: none;
-}
-
-.SimpleGreen .WindowBarRight {
- border: 1px solid #eaf4ff;
-}
-
-.SimpleGreen .WindowBarCenter {
- background: #a3d0ff;
-}
-
-.SimpleGreen .WindowBarCenter .FixHeight {
- height: 18px;
- line-height: 18px;
-}
-
-
-.SimpleGreen .MiddleDecoratorLeft {
- border-left: 1px solid #a0b9b6;
- border-right: 1px solid #a0b9b6;
-}
-
-.SimpleGreen .MiddleDecoratorRight {
- border: 2px solid #eaf4ff;
- border-top: none;
- border-bottom: none;
-}
-
-.SimpleGreen .MiddleDecoratorCenter {
- background: #ffffff;
- border: 1px solid #4c717e;
- border-bottom: none;
- padding: 1px;
-}
-
-.SimpleGreen .BottomDecoratorLeft {
- border: 1px solid #a0b9b6;
- border-top: none;
-}
-
-.SimpleGreen .BottomDecoratorRight {
- background: #eaf4ff;
- padding: 0px 2px 2px 2px;
-}
-
-.SimpleGreen .BottomDecoratorCenter {
- border: 1px solid #4c717e;
- border-top: none;
- background: url('background/BGDecoratorCenter1x18.gif') repeat-x;
-}
-
-.SimpleGreen .BottomDecoratorCenter .FixHeight {
- height: 19px;
-}
-
-.UIPortlet .SimpleGreen .BottomDecoratorCenter {
- height: 18px;
-}
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/BGDecoratorCenter1x18.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/DefaultTheme.png
===================================================================
(Binary files differ)
Added: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/IconWindowPortlet.gif
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/IconWindowPortlet.gif (rev 0)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/IconWindowPortlet.gif 2011-11-10 14:25:30 UTC (rev 8030)
@@ -0,0 +1,7 @@
+GIF89a
+
+#K���WQ
+8N��W!,W�&2S��0W<R��WW+'3D
+�M4IE Q��y�I ���.
\ No newline at end of file
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MDefaultTheme.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MMacBlack.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MMacGray.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MMacGreen.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MMacTheme.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerBlue.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerGreen.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerOrange.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerPink.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MRoundConerViolet.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowBlue.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowGreen.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowOrange.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowPink.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MShadowViolet.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MVistaBlue.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MVistaTheme.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MacBlack.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MacGray.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MacGreen.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/MacTheme.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/Resize17x19.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ResizeArea17x15.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ResizeArea18x18.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ResizeArea18x18.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundConerGreen.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundConerOrange.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundConerPink.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundConerViolet.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/RoundCornerBlue.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowBlue.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowGreen.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowOrange.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowPink.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/ShadowViolet.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/SimpleStyle.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/VistaBlue.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/background/VistaTheme.png
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/PortletThemes/icons/SimpleIcons.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIBreadcumb/Stylesheet.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIBreadcumb/Stylesheet.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIBreadcumb/Stylesheet.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -1,46 +0,0 @@
-/**
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * 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.
- */
-
-.UIBreadcumbs {
- padding: 0 40px;
-}
-
-.UIBreadcumbs .LeftBreadcumbsBar {
- background: none;
-}
-
-.UIBreadcumbs .HomeIcon {
- background: url('background/HomeIcon.gif') no-repeat left top;
- width: 16px;
- height: 16px;
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
- margin: 6px 5px 0 0; /* orientation=lt */
- margin: 6px 0 0 5px; /* orientation=rt */
-}
-
-.UIBreadcumbs .BreadcumbsInfoBar {
- padding: 0;
-}
-
-.UIBreadcumbs .RightBlackGridArrowIcon {
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
- margin: 5px 0px 0px 0px;
-}
\ No newline at end of file
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIBreadcumb/background/HomeIcon.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIPortalApplicationSkin.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIPortalApplicationSkin.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIPortalApplicationSkin.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -1,175 +0,0 @@
-/**
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * 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.
- */
-
-@import url(/eXoResources/skin/DefaultSkin/portal/webui/component/control/Stylesheet.css);
-@import url(/eXoResources/skin/DefaultSkin/portal/webui/component/customization/Stylesheet.css);
-@import url(/eXoResources/skin/DefaultSkin/portal/webui/component/view/Stylesheet.css);
-@import url(/eXoResources/skin/DefaultSkin/portal/webui/component/widget/Stylesheet.css);
-@import url(/eXoResources/skin/DefaultSkin/webui/component/Stylesheet.css);
-@import url(UIBreadcumb/Stylesheet.css);
-@import url(UIToolbarContainer/Stylesheet.css);
-@import url(UITabPaneDashboard/Stylesheet.css);
-
-div {
- padding: 0px; margin: 0px;
- outline: none;
-}
-
-table {
- width: 100%;
- padding: 0px; margin: 0px;
- border-spacing: 0px;
- border-collapse: collapse;
-}
-
-th, td {
- padding: 0px; margin: 0px;
- vertical-align: top;
-}
-
-img {
- padding: 0px; margin: 0px; border: none; vertical-align: middle;
-}
-
-form {
- padding: 0px; margin: 0px;
-}
-
-html {
- margin: 0px; padding: 0px;
- *overflow-x: hidden;
-}
-
-body {
- background: #eeeeee;
- margin: 0px; padding: 0px;
- font-family: Tahoma,Verdana, Arial, Helvetica, sans-serif;
- font-size: 11px;
- overflow-x: hidden;
-}
-
-a {
- text-decoration: none;
- color: black;
-}
-
-.UIWorkingWorkspace {
- width: 1017px;
- background: white;
-}
-
-.UIPageBody .BLPagebody {
- display: none;
-}
-/*###############################################################################################*/
-
-.OverflowContainer {
- overflow: hidden;
- width: 100%;
-}
-
-.LeftBlock {
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
-}
-
-.RightBlock {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
-}
-
-.ClearFix:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-
-.ClearFix {
- !display: inline-block;
- !zoom: 1;
- !display: block;
-}
-
-.InlineContainer {
- overflow: hidden;
-}
-
-.InlineLeft {
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
-}
-
-.InlineRight {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
-}
-
-.AjaxLoadingMask {
- width: 180px; height: 110px;
- background: white;
- border: 1px solid #66667e;
- padding: 1px;
-}
-
-.AjaxLoadingMask .LoadingContainer {
- height: 108px;
- background: #ffffff;
- border: solid 1px #a8a9bb;
-}
-
-.AjaxLoadingMask .LoadingText {
- text-align: center;
- padding: 10px 0px 5px 0px;
-}
-
-.AjaxLoadingMask .LoadingProgressBar {
- width: 32px; height: 40px;
- background: url('../../../background/LoadingProgress.gif') no-repeat center;
- margin: auto;
-}
-
-.AjaxLoadingMask .UIAction .ActionButton{
- float: none;
-}
-
-.FloatLeft {
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
-}
-
-.FloatRight {
- float: right; /* orientation=lt */
- float: left; /* orientation=rt */
-}
-
-.ClearLeft {
- clear: left; /* orientation=lt */
- clear: right; /* orientation=rt */
-}
-
-.ClearRight {
- clear: right; /* orientation=lt */
- clear: left; /* orientation=rt */
-}
-
-.ClearBoth {
- clear: both;
-}
\ No newline at end of file
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/Stylesheet.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/Stylesheet.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/Stylesheet.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -1,97 +0,0 @@
-#UITabbedDashboardPortlet {
- padding: 0 8px;
-}
-
-.UITabPaneDashboard {
- background: #f9f9f9;
- border-bottom: 1px solid #e5e5e5;
- padding: 0px 9px;
-}
-
-.UITabPaneDashboard .LtTabDashboard {
- padding: 0;
- background: none;
-}
-
-.UITabPaneDashboard .RtTabDashboard {
- padding: 0;
- background: none;
-}
-
-.UITabPaneDashboard .CtTabDashboard {
- padding: 0;
- background: none;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs {
- padding: 5px 0px 4px 0px;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .TabsContainer {
- height: auto;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle {
- margin: 0px 4px 0px 0px;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .NormalTab .MiddleTab,
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .SelectedTab .MiddleTab {
- padding: 0px;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .UITab span {
- margin: 0px 10px;
- font-weight: normal;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .UITab .CloseIcon {
- background: url('background/IconClose.gif') no-repeat left top;
- width: 16px;
- height: 16px;
- cursor: pointer;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .AddDashboard {
- background: url('background/AddDashboard.gif') no-repeat left top;
- width: 22px; height: 22px;
- float: left; /* orientation=lt */
- float: right; /* orientation=rt */
- cursor: pointer;
- margin-top: 0px;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .NormalTab .LeftTab {
- background: #E6E6E6;
- border: 1px solid #DADADA;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .NormalTab .RightTab {
- background: none;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .NormalTab .MiddleTab {
- background: none;
- line-height: 20px;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .NormalTab .MiddleTab span {
- color: #999999;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .SelectedTab .LeftTab {
- background: #fff;
- border: 1px solid #dadada;
- padding: 0px;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .SelectedTab .RightTab {
- background: #fff;
- padding: 0px;
-}
-
-.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .SelectedTab .MiddleTab {
- background: #fff;
- padding: 0px;
- line-height: 20px;
-}
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/background/AddDashboard.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/background/IconClose.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/Stylesheet.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/Stylesheet.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/Stylesheet.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -1,168 +0,0 @@
-/**
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * 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.
- */
-
-.UIToolbarContainer .ToolbarContainer .TRContainer {
- height: 30px;
-}
-
-.UIToolbarContainer .NormalContainerBlock .ToolbarContainer {
- background: #232d36;
- height: 30px;
- border: none;
-}
-
-.UIToolbarContainer .ToolbarContainer a {
- padding: 0px 15px 0px 35px; /* orientation=lt */
- padding: 0px 35px 0px 15px; /* orientation=rt */
- color: #fff;
-}
-
-.UIToolbarContainer .UITab a:hover {
- color: #9fc5ff;
-}
-
-.UIToolbarContainer .UIHorizontalTabs .TabsContainer {
- height: 30px; /* orientation=lt */
- height: auto; /* orientation=rt */
-}
-
-.UIToolbarContainer .UIHorizontalTabs .UITab {
- line-height: 30px;
- background: none;
- font-weight: normal;
-}
-
-
-/****************************/
-
-.UIToolbarContainer .MenuItemContainer {
- border: 1px solid #e7e6eb;
- background: #e7e6eb;
-}
-
-.UIToolbarContainer .TitleBar {
- color: #232d36;
- background: #cccccc;
- font-weight: normal;
- padding: 0px 5px;
-}
-
-.UIToolbarContainer .MenuItem {
- background: none;
-}
-
-.UIToolbarContainer .MenuItem .ArrowIcon {
- background: url('background/ToolbarContainer.gif') no-repeat right bottom; /* orientation=lt */
- background: url('background/ToolbarContainer-rt.gif') no-repeat -5px bottom; /* orientation=rt */
-}
-
-.UIToolbarContainer .MenuItem a {
- padding: 0px 25px 0px 30px; /* orientation=lt */
- padding: 0px 30px 0px 25px; /* orientation=rt */
- color: #232d36;
-}
-
-.UIToolbarContainer .MenuItem a:hover {
- color: #000;
- background-color: #d7d7d7;
-}
-
-.UIToolbarContainer .ItemIcon {
- background-position: 5px center; /* orientation=lt */
- background-position: 95% center; /* orientation=rt */
-}
-
-/**********************************/
-
-.UIToolbarContainer .DashboardIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 5px -65px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -65px; /* orientation=rt */
-}
-
-.UIToolbarContainer .SitesIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 5px -96px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -96px; /* orientation=rt */
-}
-
-.UIToolbarContainer .GroupIcon {
- background: url('background/ToolbarContainer.gif') no-repeat left -131px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -131px; /* orientation=rt */
- margin-left: 10px; /* orientation=lt */
- margin-right: 10px; /* orientation=rt */
-}
-
-.UIToolbarContainer .EditorIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 5px -164px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -164px; /* orientation=rt */
-}
-
-.UIToolbarContainer .AddPageIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 0px -320px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -320px; /* orientation=rt */
-}
-
-.UIToolbarContainer .EditPageIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 0px -352px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -352px; /* orientation=rt */
-}
-
-.UIToolbarContainer .EditSiteIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 0px -384px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -384px; /* orientation=rt */
-}
-
-.UIToolbarContainer .ChangeLanguageIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 0px -192px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -192px; /* orientation=rt */
-}
-
-.UIToolbarContainer .ChangeSkinIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 0px -224px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -224px; /* orientation=rt */
-}
-
-.UIToolbarContainer .AccountSettingIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 5px -256px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -256px; /* orientation=rt */
-}
-
-.UIToolbarContainer .SignOutIcon {
- background: url('background/ToolbarContainer.gif') no-repeat 0px -288px; /* orientation=lt */
- background: url('background/ToolbarContainer.gif') no-repeat 100% -288px; /* orientation=rt */
-}
-
-.UIToolbarContainer .Name a {
- background: url('background/UseIcon.gif') no-repeat left center; /* orientation=lt */
- background: url('background/UseIcon.gif') no-repeat right center; /* orientation=rt */
- padding: 0px 10px 0px 25px; /* orientation=lt */
- padding: 0px 25px 0px 10px; /* orientation=rt */
- color: #fff;
-}
-
-.UIToolbarContainer .Name a:hover {
- color: #9fc5ff;
-}
-/***************UIStarToolBarPortlet*****************/
-
-.UIStarToolBarPortlet {
- background: url('background/GateinLogo.jpg') no-repeat 10px 6px; /* orientation=lt */
- background: url('background/GateinLogo.jpg') no-repeat 23px 5px; /* orientation=rt */
- width: 64px;
- height: 30px;
-}
\ No newline at end of file
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/background/GateinLogo.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/background/GateinLogo.jpg
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/background/ToolbarContainer.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UIToolbarContainer/background/UseIcon.gif
===================================================================
(Binary files differ)
Modified: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/Stylesheet.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/Stylesheet.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/Stylesheet.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -17,6 +17,8 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-@import url(SimpleSkin/UIPortalApplicationSkin.css);
-@import url(PortletThemes/Stylesheet.css);
+@import url(/eXoResources/skin/DefaultSkin/webui/component/Stylesheet.css);
+@import url(SimpleSkin/portal/webui/component/UIPortalApplicationSkin.css);
+@import url(SimpleSkin/webui/component/Stylesheet.css);
+@import url(/eXoResources/skin/PortletThemes/Stylesheet.css);
@import url(Portlet/Stylesheet.css);
Modified: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIHomePagePortlet/Stylesheet.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIHomePagePortlet/Stylesheet.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIHomePagePortlet/Stylesheet.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -1,12 +1,11 @@
-.UIWorkingWorkspace {
- width: 1017px;
-}
-
.UIWindow .UIHomePagePortlet {
margin: 0px;
- padding: 10px;
}
+.UIWindow .UIHomePagePortlet .TRContainer {
+ width: 210px;
+}
+
.UIHomePagePortlet {
background: white;
}
Modified: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/Stylesheet.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/Stylesheet.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/Stylesheet.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -27,181 +27,78 @@
.UINavigationPortlet {
border-bottom: 1px solid #e5e5e5;
}
-
-.UINavigationPortlet .UINavigationBar {
- white-space: nowrap;
-}
-.UINavigationPortlet .UINavigationBar .UIHorizontalTabs {
- height: 30px;
+.UINavigationPortlet ul {
+ list-style:none;
+ padding:0px;
+ margin:0px;
}
-
-.UINavigationPortlet .UINavigationBar .UIHorizontalTabs .TabsContainer {
+
+.UINavigationPortlet .UINavigationBar {
+ white-space: nowrap;
+ padding: 0px 24px;
+ background: #f9f9f9;
float: none;
!position: relative;
height: 30px;
}
-.UINavigationPortlet .UINavigationBar .LeftNavigationBar {
+.UINavigationPortlet .UINavigationBar .UITab {
+ font-weight:normal;
}
-.UINavigationPortlet .UINavigationBar .RightNavigationBar {
-}
-
-.UINavigationPortlet .UINavigationBar .MiddleNavigationBar {
- padding: 0px 24px;
- background: #f9f9f9;
-}
-
-.UINavigationPortlet .UITab a.TabLabel {
+.UINavigationPortlet .UITab a.TabIcon {
display: block;
- padding: 0px 0px 0px 20px; /* orientation=lt */
- padding: 0px 20px 0px 0px; /* orientation=rt */
- background-position: left; /* orientation=lt */
- background-position: right; /* orientation=rt */
+ padding-left: 23px;/* orientation=lt */
+ padding-right: 23px;/* orientation=rt */
+ line-height: 27px;
+ background-position: right ;/* orientation=rt */
}
-.UINavigationPortlet .UITab a.DefaultPageIcon {
+.UINavigationPortlet .UITab > span a.DefaultPageIcon {
background: none;
padding: 0px;
}
-/*###########################--NavigationTabTab--############################*/
-
-.UINavigationPortlet .UITab .NormalNavigationTab {
- line-height: 230px;
- margin: 0px 8px 0px 0px;
+.UINavigationPortlet .SelectedNavigationTab .TabIcon {
+ font-weight:bold;
}
-.UINavigationPortlet .UITab .NormalNavigationTab .LeftTab {
- line-height: 30px;
+.UINavigationPortlet .UITab > span {
+ display:block;
+ padding: 0px;
+ margin-right: 28px;/* orientation=lt */
+ margin-left: 28px;/* orientation=rt */
}
-.UINavigationPortlet .UITab .NormalNavigationTab .RightTab {
- line-height: 30px;
+.UINavigationPortlet .UITab .DropDownArrowIcon {
+ background: url('background/NavDownArrow.gif') no-repeat right center; /* orientation=lt */
+ background: url('background/NavDownArrow_ar.gif') no-repeat left center; /* orientation=rt */
+ padding: 0 17px 0 0px; /* orientation=lt */
+ padding: 0 0px 0 17px; /* orientation=rt */
}
-.UINavigationPortlet .UITab .NormalNavigationTab .MiddleTab {
- line-height: 30px;
- text-align: center;
- padding: 0px 10px;
-}
-
-.UINavigationPortlet .UITab .NormalNavigationTab .TabIcon {
- line-height: 27px;
-}
-
-.UINavigationPortlet .UITab .NormalNavigationTab a {
- color: #565656;
- font-weight: normal;
-}
-
-.UINavigationPortlet .UITab .NormalNavigationTab .DropDownArrowIcon {
- padding-right: 12px; /* orientation=lt */
- padding-left: 12px; /* orientation=rt */
- background: url('background/NavDownArrow.gif') no-repeat right; /* orientation=lt */
- background: url('background/NavDownArrow.gif') no-repeat left; /* orientation=rt */
- cursor: pointer;
-}
-
-/*###############-Hightlight Navigation Tab -################*/
-
-.UINavigationPortlet .UITab .HighlightNavigationTab {
- line-height: 30px;
- margin: 0px 8px 0px 0px;
-}
-
-.UINavigationPortlet .UITab .HighlightNavigationTab .LeftTab {
- line-height: 30px;
-}
-
-.UINavigationPortlet .UITab .HighlightNavigationTab .RightTab {
- line-height: 30px;
-}
-
-.UINavigationPortlet .UITab .HighlightNavigationTab .MiddleTab {
- height: 30px;
- text-align: center;
- padding: 0px 10px;
-}
-
-.UINavigationPortlet .UITab .HighlightNavigationTab .TabIcon {
- color: #000;
- line-height: 27px;
+.UINavigationPortlet .HighlightNavigationTab > span,.UINavigationPortlet .SelectedNavigationTab > span {
border-bottom:3px solid #E5E5E5;
}
-.UINavigationPortlet .UITab .HighlightNavigationTab a {
- color: #000;
- font-weight: normal;
-}
+/*============ Submenu =====================*/
-.UINavigationPortlet .UITab .HighlightNavigationTab .DropDownArrowIcon {
- padding-right: 12px; /* orientation=lt */
- padding-left: 12px; /* orientation=rt */
- background: url('background/NavDownArrow.gif') no-repeat right; /* orientation=lt */
- background: url('background/NavDownArrow.gif') no-repeat left; /* orientation=rt */
- cursor: pointer;
-}
-/*###############-Selected Navigation Tab-################*/
-
-.UINavigationPortlet .UITab .SelectedNavigationTab {
- line-height: 30px;
- margin: 0px 8px 0px 0px;
-}
-
-
-.UINavigationPortlet .UITab .SelectedNavigationTab .LeftTab {
- line-height: 30px;
-}
-
-.UINavigationPortlet .UITab .SelectedNavigationTab .RightTab {
- line-height: 30px;
-}
-
-.UINavigationPortlet .UITab .SelectedNavigationTab .MiddleTab {
- line-height: 30px;
- text-align: center;
- padding: 0px 10px;
-}
-
-.UINavigationPortlet .UITab .SelectedNavigationTab .TabIcon {
- color: #000;
- line-height: 27px;
- border-bottom: 3px solid #E5E5E5;
-}
-
-.UINavigationPortlet .UITab .SelectedNavigationTab a {
- color: #000;
-}
-
-.UINavigationPortlet .UITab .SelectedNavigationTab .DropDownArrowIcon {
- padding-right: 12px; /* orientation=lt */
- padding-left: 12px; /* orientation=rt */
- background: url('background/NavDownArrow.gif') no-repeat right center; /* orientation=lt */
- background: url('background/NavDownArrow.gif') no-repeat left center; /* orientation=rt */
- cursor: pointer;
-}
-
.UINavigationPortlet .MenuItemContainer {
white-space: nowrap;
border: solid #b7b7b7 1px; /*fix for IE*/
text-align: left; /* orientation=lt */
text-align: right; /* orientation=rt */
+ padding: 1px 1px 6px 1px;
+ background-color: #FFF;
}
-.UINavigationPortlet .MenuItemContainer .MenuItemDecorator {
- border: 1px solid #fcfcfc;
- background: white;
- padding-bottom: 6px;
-}
-
.UINavigationPortlet .MenuItemContainer .MenuItem {
- border-bottom: 1px solid #fff;
cursor: pointer;
line-height: 24px;
- height: 24px; width: auto;
+ height: 24px;
+ width: auto;
display: block;
white-space: nowrap;
font-weight: normal;
@@ -218,12 +115,14 @@
.UINavigationPortlet .MenuItemContainer .MenuItem a:hover {
color: #3e8df0;
}
+
+.UINavigationPortlet .MenuItemContainer .ArrowIcon {
+ background: url('background/Button.gif') no-repeat right -48px; /* orientation=lt */
+ background: url('background/Button-rt.gif') no-repeat left -48px; /* orientation=rt */
+}
.UINavigationPortlet .MenuItemContainer .SelectedItem {
- line-height: 24px;
- width: auto;
background: #c7c7c7;
- color: #3e8df0;
}
.UINavigationPortlet .MenuItemContainer .SelectedItem a {
@@ -243,85 +142,61 @@
}
.UINavigationPortlet .MenuItemContainer .ItemIcon {
- height: 24px; width: auto;
-}
-
-.UINavigationPortlet .MenuItemContainer .MenuItem .ArrowIcon {
height: 24px;
width: auto;
- background: url('background/Button.gif') no-repeat right -48px; /* orientation=lt */
- background: url('background/Button-rt.gif') no-repeat left -48px; /* orientation=rt */
-}
+ background-position: right;/* orientation=rt */
+}
+
/*============ Scroll Buttons =====================*/
.UINavigationPortlet .ScrollButtons {
+ margin: 10px 0 0 0;
+ display: none;
+ cursor:pointer;
float: right; /* orientation=lt */
float: left; /* orientation=rt */
- padding-top: 10px;
- display: none;
+ height: 15px;
+ width: 20px;
+}
+
+.UINavigationPortlet .ScrollButtons a {
+ display:block;
+ cursor:pointer;
+ width: 10px;
+ height: 15px;
+ float: left; /* orientation=lt */
+ float: right; /* orientation=rt */
}
.UINavigationPortlet .ScrollLeftButton {
- cursor: pointer;
background: url('background/Button.gif') no-repeat left -15px; /* orientation=lt */
background: url('background/Button-rt.gif') no-repeat right -15px; /* orientation=rt */
- width: 10px;
- height: 15px;
- padding-left: 12px; /* orientation=lt */
- padding-right: 12px; /* orientation=rt */
- margin: 0px 5px;
+
}
.UINavigationPortlet .ScrollRightButton {
- cursor: pointer;
background: url('background/Button.gif') no-repeat right -15px; /* orientation=lt */
background: url('background/Button-rt.gif') no-repeat left -15px; /* orientation=rt */
- width: 10px;
- height: 15px;
}
.UINavigationPortlet .DisableScrollLeftButton {
- cursor: pointer;
background: url('background/Button.gif') no-repeat left -30px; /* orientation=lt */
background: url('background/Button-rt.gif') no-repeat right -30px; /* orientation=rt */
- width: 10px;
- height: 15px;
- padding-left: 12px; /* orientation=lt */
- padding-right: 12px; /* orientation=rt */
- margin: 0px 5px;
}
.UINavigationPortlet .DisableScrollRightButton {
- cursor: pointer;
background: url('background/Button.gif') no-repeat right -30px; /* orientation=lt */
background: url('background/Button-rt.gif') no-repeat left -30px; /* orientation=rt */
- width: 10px;
- height: 15px;
}
-.UINavigationPortlet .HighlightScrollLeftButton {
- cursor: pointer;
+.UINavigationPortlet .HighlightScrollLeftButton ,.UINavigationPortlet .ScrollLeftButton:hover{
background: url('background/Button.gif') no-repeat left top; /* orientation=lt */
background: url('background/Button-rt.gif') no-repeat right top; /* orientation=rt */
- width: 10px;
- height: 15px;
- padding-left: 12px; /* orientation=lt */
- padding-right: 12px; /* orientation=rt */
- margin: 0px 5px;
}
-.UINavigationPortlet .HighlightScrollRightButton {
- cursor: pointer;
+.UINavigationPortlet .HighlightScrollRightButton ,.UINavigationPortlet .ScrollRightButton:hover{
background: url('background/Button.gif') no-repeat right top; /* orientation=lt */
background: url('background/Button-rt.gif') no-repeat left top; /* orientation=rt */
- width: 10px;
- height: 15px;
}
-/***********GroupNavigation*************/
-
-.UINavigationPortlet .GroupNavigation {
- background: #f9f9f9;
-}
-
Modified: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UIPortalNavigationPortlet/background/NavDownArrow.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/Stylesheet.css
===================================================================
--- epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/Stylesheet.css 2011-11-10 14:23:41 UTC (rev 8029)
+++ epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/Stylesheet.css 2011-11-10 14:25:30 UTC (rev 8030)
@@ -1,137 +0,0 @@
-/**
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * 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.
- */
-
-/**
- * Cated by The eXo Platform SAS
- * Modifile : Vu Duy Tu
- * duytucntt(a)gmail.com
- * January 10, 2007
- * version: $Id$
- */
-
-
-.UIWindow .UISitemapPortlet {
- border: none;
- margin: 0px;
-}
-
-.UISitemapPortlet {
-}
-
-.UISitemap {
- background: #fff url('background/default_sitemap.gif') no-repeat 95% 90%;
- padding: 10px 30px;
- color: #4e4e4e;
-}
-
-.UISitemap a {
- color: #4e4e4e;
-}
-
-.UISitemap .ClearFix:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-
-.UISitemap .ClearFix {
- !display: inline-block;
- !zoom: 1;
- !display: block;
-}
-
-.UISitemap .CollapseAll {
- background: url('background/CollapseAllIcon.gif') no-repeat left center; /* orientation=lt */
- background: url('background/CollapseAllIcon-rt.gif') no-repeat right center; /* orientation=rt */
- padding: 0px 20px;
- cursor: pointer;
-}
-
-.UISitemap .ExpandAll {
- background: url('background/ExpandAllIcon.gif') no-repeat left center; /* orientation=lt */
- background: url('background/ExpandAllIcon-rt.gif') no-repeat right center; /* orientation=rt */
- padding: 0px 20px;
- cursor: pointer;
-}
-
-.UISitemap .SitemapContent {
- background: url('background/RootTree.gif') no-repeat left top; /* orientation=lt */
- background: url('background/RootTree-rt.gif') no-repeat right top; /* orientation=rt */
- padding-top: 8px;
- margin: 20px 0px;
-}
-
-.UISitemap .SitemapContent .UISiteTree a {
- display: block;
-}
-
-.UISitemap .SitemapContent .UISiteTree a:hover {
- color: #058bb6;
-}
-
-.UISitemap .UISiteTree .Node {
- line-height: 30px;
- background: url('background/Dotted.gif') repeat-y 4px top; /* orientation=lt */
- background: url('background/Dotted-rt.gif') repeat-y 99.6% top; /* orientation=rt */
-}
-
-.UISitemap .UISiteTree .LastNode {
- line-height: 26px;
- background: url('background/LastNode.gif') no-repeat 4px top; /* orientation=lt */
- background: url('background/LastNode-rt.gif') no-repeat 99.6% top; /* orientation=rt */
-}
-
-.UISitemap .CollapseIcon {
- background: url('background/CollapseIcon.gif') no-repeat left center; /* orientation=lt */
- background: url('background/CollapseIcon-rt.gif') no-repeat right center; /* orientation=rt */
- padding: 0px 0px 0px 32px; /* orientation=lt */
- padding: 0px 32px 0px 0px; /* orientation=rt */
- cursor: pointer;
-}
-
-.UISitemap .ExpandIcon {
- background: url('background/ExpandIcon.gif') no-repeat left center; /* orientation=lt */
- background: url('background/ExpandIcon-rt.gif') no-repeat right center; /* orientation=rt */
- padding: 0px 0px 0px 32px; /* orientation=lt */
- padding: 0px 32px 0px 0px; /* orientation=rt */
- cursor: pointer;
-}
-
-.UISitemap .NullItem {
- background: url('background/NullItem.gif') no-repeat left center; /* orientation=lt */
- background: url('background/NullItem-rt.gif') no-repeat right center; /* orientation=rt */
- padding: 0px 32px;
-}
-
-.UISitemap .DefaultPageIcon {
- padding: 0px 0px 0px 20px; /* orientation=lt */
- padding: 0px 20px 0px 0px; /* orientation=rt */
- background-position: left center; /* orientation=lt */
- background-position: right center; /* orientation=rt */
- width: auto;
-}
-
-.UISitemap .ChildrenContainer {
- padding-top: 30px;
- padding-left: 31px; /* orientation=lt */
- padding-right: 31px; /* orientation=rt */
- float: none;
-}
\ No newline at end of file
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/CollapseAllIcon.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/CollapseIcon.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/Dotted.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/ExpandAllIcon.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/ExpandIcon.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/LastNode.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/NullItem.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/RootTree.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/SitemapItemBoxTitle150x1.gif
===================================================================
(Binary files differ)
Deleted: epp/examples/branches/EPP_5_2_Branch/skins/simpleskin/src/main/webapp/skin/webPortlet/webui/component/UISiteMap/background/default_sitemap.gif
===================================================================
(Binary files differ)
13 years, 4 months