JBoss Portal SVN: r9307 - in docs/tags/JBoss_Portal_2_6_3/referenceGuide/en: modules and 1 other directory.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-12-05 20:55:51 -0500 (Wed, 05 Dec 2007)
New Revision: 9307
Added:
docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_blank.png
docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_default.png
docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_email.png
docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_registration.png
Modified:
docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/modules/wsrp.xml
Log:
- Added producer configuration content.
- Removed the XML aspects of producer configuration as it's not needed anymore. Will re-add in an appendix at some point.
Added: docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_blank.png
===================================================================
(Binary files differ)
Property changes on: docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_blank.png
___________________________________________________________________
Name: svn:mime-type
+ image/png
Added: docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_default.png
===================================================================
(Binary files differ)
Property changes on: docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_default.png
___________________________________________________________________
Name: svn:mime-type
+ image/png
Added: docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_email.png
===================================================================
(Binary files differ)
Property changes on: docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_email.png
___________________________________________________________________
Name: svn:mime-type
+ image/png
Added: docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_registration.png
===================================================================
(Binary files differ)
Property changes on: docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/images/wsrp/producer_registration.png
___________________________________________________________________
Name: svn:mime-type
+ image/png
Modified: docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/modules/wsrp.xml
===================================================================
--- docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/modules/wsrp.xml 2007-12-06 01:54:34 UTC (rev 9306)
+++ docs/tags/JBoss_Portal_2_6_3/referenceGuide/en/modules/wsrp.xml 2007-12-06 01:55:51 UTC (rev 9307)
@@ -722,8 +722,7 @@
It is therefore sometimes necessary to modify the registration that concretizes the service agreement
between a consumer and a producer. An example of easily available producer offering different level of
services is BEA's public producer. We configured access to that producer in
- <xref linkend="consumer_gui"/>
- .
+ <xref linkend="consumer_gui"/>.
If you recall, the producer was requiring registration and required a value to be provided for the
<literal>registration/consumerRole</literal>
property. The description of that property indicated that
@@ -784,7 +783,7 @@
</sect3>
- <sect3>
+ <sect3 id="reg_mod_error">
<title>Registration modification on producer error</title>
<para>
@@ -909,83 +908,117 @@
You can configure the behavior of Portal's WSRP Producer by using the WSRP administration interface, which
is the preferred way, or by editing the
<filename>conf/config.xml</filename>
- file found in<filename>portal-wsrp.sar</filename>. Several aspects can be modified with respects to whether
+ file found in
+ <filename>portal-wsrp.sar</filename>. Several aspects can be modified with respects to whether
registration is required for consumers to access the Producer's services.
</para>
</sect2>
<sect2>
- <title>Using the configuration portlet</title>
- <para>TODO: ADD CONTENT</para>
- </sect2>
- <sect2>
<title>Default configuration</title>
<para>
- Let's look at the default configuration:
- <programlisting><![CDATA[
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE producer-configuration PUBLIC "-//JBoss Portal//DTD WSRP Local Producer Configuration 2.6//EN"
- "http://www.jboss.org/portal/dtd/jboss-wsrp-producer_2_6.dtd">
-
-<producer-configuration>
- <registration-configuration fullServiceDescriptionRequiresRegistration="true">
- <registration-property-validator>
- org.jboss.portal.registration.policies.DefaultRegistrationPropertyValidator
- </registration-property-validator>
- </registration-configuration>
-</producer-configuration>]]></programlisting>
- The top element
- <literal><producer-configuration></literal>
- contains a single
- <literal><registration-configuration></literal>
- element that defines a
- <literal>fullServiceDescritpionRequiresRegistration</literal>
- attribute with the value "true". This
- configuration specifies that the WSRP producer requires registration to access its services but does not
- require any specific registration properties (apart from what is mandated by the WSRP standard). It does,
- however, require consumers to be registered before sending them a full service description. This means that
- our WSRP producer will not provide the list of offered portlets and other capabilities to unregistered
- consumers. The
- <literal><registration-configuration></literal>
- element contains a
- <literal><registration-property-validator></literal>
- element. We will look into property
+ The default producer configuration is to require that consumers register with it before providing access its
+ services but does not require any specific registration properties (apart from what is mandated by the
+ WSRP standard). It does, however, require consumers to be registered before sending them a full service
+ description. This means that our WSRP producer will not provide the list of offered portlets and other
+ capabilities to unregistered consumers. The producer also uses the default
+ <classname>RegistrationPolicy</classname>
+ paired with the default
+ <classname>RegistrationPropertyValidator</classname>. We will look into property
validators in greater detail later in<xref linkend="registration-configuration"/>. Suffice to say for now
that this allows users to customize how Portal's WSRP Producer decides whether a given registration property
is valid or not.
</para>
- </sect2>
- <sect2>
- <title>Minimal producer configuration</title>
<para>
- Requiring registration is optional: if you don't need your producer to require consumer registration, the
- only thing you need to do is to provide an empty
- <literal><producer-configuration></literal>
- element in<filename>portal-wsrp.sar/conf/config.xml</filename>.
+ JBoss Portal 2.6.3 introduces a web interface to configure the producer's behavior. You can access it
+ by clicking on the "Producer Configuration" tab of the "WSRP" page of the "admin" portal. Here's what you
+ should see with the default configuration:
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/wsrp/producer_default.png" format="png" align="center" valign="middle"/>
+ </imageobject>
+ </mediaobject>
+ As would be expected, you can specify whether or not the producer will send the full service description to
+ unregistered consumers, and, if it requires registration, which
+ <classname>RegistrationPolicy</classname>
+ to
+ use (and, if needed, which<classname>RegistrationPropertyValidator</classname>), along with required
+ registration property description for which consumers must provide acceptable values to successfully
+ register.
</para>
</sect2>
+
<sect2 id="registration-configuration">
<title>Registration configuration</title>
<para>
In order to require consumers to register with Portal's producer before interacting with it, you need to
- configure Portal's behavior with respect to registration. This is done via the
- <literal><registration-configuration></literal>
- element. This element is optional as
+ configure Portal's behavior with respect to registration. 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. Let's configure our producer starting with a blank
+ state:
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/wsrp/producer_blank.png" format="png" align="center" valign="middle"/>
+ </imageobject>
+ </mediaobject>
+ We will allow unregistered consumers to see the list of offered portlets so we leave the first checkbox
+ ("Access to full service description requires consumers to be registered.") unchecked. We will, however,
+ specify that consumers will need to be registered to be able to interact with our producer. Check the second
+ checkbox ("Requires registration. Modifying this information will trigger invalidation of consumer
+ registrations."). The screen should now refresh and display:
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/wsrp/producer_registration.png" format="png" align="center"
+ valign="middle"/>
+ </imageobject>
+ </mediaobject>
+ You can specify the fully-qualified name for your
+ <classname>RegistrationPolicy</classname>
+ and
+ <classname>RegistrationPropertyValidator</classname>
+ there. We will keep the default value. See
+ <xref linkend="custom_registration"/>
+ for more details. Let's add, however, a registration property called
+ <literal>email</literal>. Click "Add property" and enter the appropriate information in the fields,
+ providing a description for the registration property that can be used by consumers to figure out its
+ purpose:
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/wsrp/producer_email.png" format="png" align="center" valign="middle"/>
+ </imageobject>
+ </mediaobject>
+ Press "Save" to record your modifications.
+
+ <note>
+ At this time, only String (xsd:string) properties are supported. If your application requires more
+ complex properties, please let us know.
+ </note>
+
+ <note>
+ 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. We saw the consumer side of that process
+ in<xref linkend="reg_mod_error"/>.
+ </note>
previously noted. It can be empty if you don't require registration properties. You can also specify
whether or not registration is required in order for consumers to access the Producer's full service
description, as noted in our discussion of the default configuration, above. This is done via the
<literal>fullServiceDescriptionRequiresRegistration</literal>
attribute, which is optional. Acceptable
- values for this attribute are "true" or "false", defaulting to "false" in which case the Producer will
- always
+ values for this attribute are
+ <literal>true</literal>
+ or<literal>false</literal>, defaulting to
+ <literal>false</literal>
+ in which case the Producer will always
return the full service description, whether the consumer asking for it is registered or not.
</para>
- <sect3>
+ <sect3 id="custom_registration">
<title>Customization of Registration handling behavior</title>
<para>
Registration handling behavior can be customized by users to suit their Producer needs. This is
accomplished by providing an implementation of the
- <literal>RegistrationPolicy</literal>
+ <classname>RegistrationPolicy</classname>
interface. 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.
@@ -994,27 +1027,21 @@
While the default registration policy provides default behavior for most registration-related aspects,
there is still one aspect that requires configuration: whether a given value for a registration property
is acceptable by the WSRP Producer. This is accomplished by plugging a
- <literal>RegistrationPropertyValidator</literal>
- in the default registration policy. This
- allows users to define their own validation mechanism.
+ <classname>RegistrationPropertyValidator</classname>
+ in the default registration policy. This allows users to define their own validation mechanism.
</para>
<para>Please refer to the Javadoc for
- <literal>org.jboss.portal.registration.RegistrationPolicy</literal>
+ <classname>org.jboss.portal.registration.RegistrationPolicy</classname>
and
- <literal>org.jboss.portal.Registration.policies.RegistrationPropertyValidator</literal>
+ <classname>org.jboss.portal.Registration.policies.RegistrationPropertyValidator</classname>
for more details
on what is expected of each method.
</para>
<para>Defining a registration policy is required for the producer to be correctly configured. This is
- accomplished
- by specifying the qualified class name of the registration policy via the
- <literal><registration-policy></literal>
- element. Since we anticipate that most users
- will use the default registration policy, it is possible to use the
- <literal><registration-property-validator></literal>
- element and provide the class
- name of your custom property validator instead. Since specifying a property validator only makes sense in
- the context of the default registration policy, both elements are mutually exclusive.
+ accomplished by specifying the qualified class name of the registration policy. Since we anticipate that
+ most users will use the default registration policy, it is possible to provide the class
+ name of your custom property validator instead to customize the default registration policy behavior. Note
+ that property validators are only used by the default policy.
<note>Since the policy or the validator are defined via their class name and dynamically loaded, it is
important that you make sure that the identified class is available to the application server. One way
@@ -1023,63 +1050,7 @@
provide a default, no-argument constructor.
</note>
</para>
- </sect3>
-
- <sect3>
- <title>Registration properties</title>
- <para>You can also specify that consumers wishing to register with your producer provide acceptable values
- for one or several registration properties. This is accomplished by providing a
- <literal><registration-property-description></literal>
- element per required registration
- property. This element lets provide information about a given registration property such as its name, its
- type,
- the hint and label that will be sent to remote consumers.
- <note>
- At this time, only String (xsd:string) properties are supported. If your application requires more
- complex
- properties, please let us know.
- </note>
- </para>
- </sect3>
-
- </sect2>
- <sect2>
- <title>Example</title>
- <para>
- Here is an example of a producer configurations requiring registration, barring consumers from accessing its
- complete service description until they are correctly registered and requires consumers to provide
- acceptable
- values for two String registration properties named "name1" and "name2" respectively. The registration
- service will use the
- <literal>com.example.portal.SomeCustomRegistrationPolicy</literal>
- class for its
- registration policy.
- <example>
- <programlisting><![CDATA[
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE producer-configuration PUBLIC "-//JBoss Portal//DTD WSRP Local Producer Configuration 2.6//EN"
- "http://www.jboss.org/portal/dtd/jboss-wsrp-producer_2_6.dtd">
-
-<producer-configuration>
- <registration-configuration fullServiceDescriptionRequiresRegistration="true">
- <registration-policy>com.example.portal.SomeCustomRegistrationPolicy</registration-policy>
- <registration-property-description>
- <name>name1</name>
- <type>xsd:string</type>
- <hint xml:lang="en" resourceName="resource.hint1">hint1</hint>
- <label xml:lang="en" resourceName="resource.label1">label1</label>
- </registration-property-description>
- <registration-property-description>
- <name>name2</name>
- <type>xsd:string</type>
- <hint xml:lang="en" resourceName="resource.hint2">hint2</hint>
- <label xml:lang="en" resourceName="resource.label2">label2</label>
- </registration-property-description>
- </registration-configuration>
-</producer-configuration>]]></programlisting>
- </example>
-
- </para>
- </sect2>
+ </sect3>
+ </sect2>
</sect1>
</chapter>
18 years, 7 months
JBoss Portal SVN: r9306 - in docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en: modules and 1 other directory.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-12-05 20:54:34 -0500 (Wed, 05 Dec 2007)
New Revision: 9306
Added:
docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_blank.png
docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_default.png
docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_email.png
docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_registration.png
Modified:
docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/modules/wsrp.xml
Log:
- Added producer configuration content.
- Removed the XML aspects of producer configuration as it's not needed anymore. Will re-add in an appendix at some point.
Added: docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_blank.png
===================================================================
(Binary files differ)
Property changes on: docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_blank.png
___________________________________________________________________
Name: svn:mime-type
+ image/png
Added: docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_default.png
===================================================================
(Binary files differ)
Property changes on: docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_default.png
___________________________________________________________________
Name: svn:mime-type
+ image/png
Added: docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_email.png
===================================================================
(Binary files differ)
Property changes on: docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_email.png
___________________________________________________________________
Name: svn:mime-type
+ image/png
Added: docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_registration.png
===================================================================
(Binary files differ)
Property changes on: docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/images/wsrp/producer_registration.png
___________________________________________________________________
Name: svn:mime-type
+ image/png
Modified: docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/modules/wsrp.xml
===================================================================
--- docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/modules/wsrp.xml 2007-12-06 00:31:03 UTC (rev 9305)
+++ docs/branches/JBoss_Portal_Branch_2_6/referenceGuide/en/modules/wsrp.xml 2007-12-06 01:54:34 UTC (rev 9306)
@@ -722,8 +722,7 @@
It is therefore sometimes necessary to modify the registration that concretizes the service agreement
between a consumer and a producer. An example of easily available producer offering different level of
services is BEA's public producer. We configured access to that producer in
- <xref linkend="consumer_gui"/>
- .
+ <xref linkend="consumer_gui"/>.
If you recall, the producer was requiring registration and required a value to be provided for the
<literal>registration/consumerRole</literal>
property. The description of that property indicated that
@@ -784,7 +783,7 @@
</sect3>
- <sect3>
+ <sect3 id="reg_mod_error">
<title>Registration modification on producer error</title>
<para>
@@ -909,83 +908,117 @@
You can configure the behavior of Portal's WSRP Producer by using the WSRP administration interface, which
is the preferred way, or by editing the
<filename>conf/config.xml</filename>
- file found in<filename>portal-wsrp.sar</filename>. Several aspects can be modified with respects to whether
+ file found in
+ <filename>portal-wsrp.sar</filename>. Several aspects can be modified with respects to whether
registration is required for consumers to access the Producer's services.
</para>
</sect2>
<sect2>
- <title>Using the configuration portlet</title>
- <para>TODO: ADD CONTENT</para>
- </sect2>
- <sect2>
<title>Default configuration</title>
<para>
- Let's look at the default configuration:
- <programlisting><![CDATA[
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE producer-configuration PUBLIC "-//JBoss Portal//DTD WSRP Local Producer Configuration 2.6//EN"
- "http://www.jboss.org/portal/dtd/jboss-wsrp-producer_2_6.dtd">
-
-<producer-configuration>
- <registration-configuration fullServiceDescriptionRequiresRegistration="true">
- <registration-property-validator>
- org.jboss.portal.registration.policies.DefaultRegistrationPropertyValidator
- </registration-property-validator>
- </registration-configuration>
-</producer-configuration>]]></programlisting>
- The top element
- <literal><producer-configuration></literal>
- contains a single
- <literal><registration-configuration></literal>
- element that defines a
- <literal>fullServiceDescritpionRequiresRegistration</literal>
- attribute with the value "true". This
- configuration specifies that the WSRP producer requires registration to access its services but does not
- require any specific registration properties (apart from what is mandated by the WSRP standard). It does,
- however, require consumers to be registered before sending them a full service description. This means that
- our WSRP producer will not provide the list of offered portlets and other capabilities to unregistered
- consumers. The
- <literal><registration-configuration></literal>
- element contains a
- <literal><registration-property-validator></literal>
- element. We will look into property
+ The default producer configuration is to require that consumers register with it before providing access its
+ services but does not require any specific registration properties (apart from what is mandated by the
+ WSRP standard). It does, however, require consumers to be registered before sending them a full service
+ description. This means that our WSRP producer will not provide the list of offered portlets and other
+ capabilities to unregistered consumers. The producer also uses the default
+ <classname>RegistrationPolicy</classname>
+ paired with the default
+ <classname>RegistrationPropertyValidator</classname>. We will look into property
validators in greater detail later in<xref linkend="registration-configuration"/>. Suffice to say for now
that this allows users to customize how Portal's WSRP Producer decides whether a given registration property
is valid or not.
</para>
- </sect2>
- <sect2>
- <title>Minimal producer configuration</title>
<para>
- Requiring registration is optional: if you don't need your producer to require consumer registration, the
- only thing you need to do is to provide an empty
- <literal><producer-configuration></literal>
- element in<filename>portal-wsrp.sar/conf/config.xml</filename>.
+ JBoss Portal 2.6.3 introduces a web interface to configure the producer's behavior. You can access it
+ by clicking on the "Producer Configuration" tab of the "WSRP" page of the "admin" portal. Here's what you
+ should see with the default configuration:
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/wsrp/producer_default.png" format="png" align="center" valign="middle"/>
+ </imageobject>
+ </mediaobject>
+ As would be expected, you can specify whether or not the producer will send the full service description to
+ unregistered consumers, and, if it requires registration, which
+ <classname>RegistrationPolicy</classname>
+ to
+ use (and, if needed, which<classname>RegistrationPropertyValidator</classname>), along with required
+ registration property description for which consumers must provide acceptable values to successfully
+ register.
</para>
</sect2>
+
<sect2 id="registration-configuration">
<title>Registration configuration</title>
<para>
In order to require consumers to register with Portal's producer before interacting with it, you need to
- configure Portal's behavior with respect to registration. This is done via the
- <literal><registration-configuration></literal>
- element. This element is optional as
+ configure Portal's behavior with respect to registration. 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. Let's configure our producer starting with a blank
+ state:
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/wsrp/producer_blank.png" format="png" align="center" valign="middle"/>
+ </imageobject>
+ </mediaobject>
+ We will allow unregistered consumers to see the list of offered portlets so we leave the first checkbox
+ ("Access to full service description requires consumers to be registered.") unchecked. We will, however,
+ specify that consumers will need to be registered to be able to interact with our producer. Check the second
+ checkbox ("Requires registration. Modifying this information will trigger invalidation of consumer
+ registrations."). The screen should now refresh and display:
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/wsrp/producer_registration.png" format="png" align="center"
+ valign="middle"/>
+ </imageobject>
+ </mediaobject>
+ You can specify the fully-qualified name for your
+ <classname>RegistrationPolicy</classname>
+ and
+ <classname>RegistrationPropertyValidator</classname>
+ there. We will keep the default value. See
+ <xref linkend="custom_registration"/>
+ for more details. Let's add, however, a registration property called
+ <literal>email</literal>. Click "Add property" and enter the appropriate information in the fields,
+ providing a description for the registration property that can be used by consumers to figure out its
+ purpose:
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/wsrp/producer_email.png" format="png" align="center" valign="middle"/>
+ </imageobject>
+ </mediaobject>
+ Press "Save" to record your modifications.
+
+ <note>
+ At this time, only String (xsd:string) properties are supported. If your application requires more
+ complex properties, please let us know.
+ </note>
+
+ <note>
+ 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. We saw the consumer side of that process
+ in<xref linkend="reg_mod_error"/>.
+ </note>
previously noted. It can be empty if you don't require registration properties. You can also specify
whether or not registration is required in order for consumers to access the Producer's full service
description, as noted in our discussion of the default configuration, above. This is done via the
<literal>fullServiceDescriptionRequiresRegistration</literal>
attribute, which is optional. Acceptable
- values for this attribute are "true" or "false", defaulting to "false" in which case the Producer will
- always
+ values for this attribute are
+ <literal>true</literal>
+ or<literal>false</literal>, defaulting to
+ <literal>false</literal>
+ in which case the Producer will always
return the full service description, whether the consumer asking for it is registered or not.
</para>
- <sect3>
+ <sect3 id="custom_registration">
<title>Customization of Registration handling behavior</title>
<para>
Registration handling behavior can be customized by users to suit their Producer needs. This is
accomplished by providing an implementation of the
- <literal>RegistrationPolicy</literal>
+ <classname>RegistrationPolicy</classname>
interface. 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.
@@ -994,27 +1027,21 @@
While the default registration policy provides default behavior for most registration-related aspects,
there is still one aspect that requires configuration: whether a given value for a registration property
is acceptable by the WSRP Producer. This is accomplished by plugging a
- <literal>RegistrationPropertyValidator</literal>
- in the default registration policy. This
- allows users to define their own validation mechanism.
+ <classname>RegistrationPropertyValidator</classname>
+ in the default registration policy. This allows users to define their own validation mechanism.
</para>
<para>Please refer to the Javadoc for
- <literal>org.jboss.portal.registration.RegistrationPolicy</literal>
+ <classname>org.jboss.portal.registration.RegistrationPolicy</classname>
and
- <literal>org.jboss.portal.Registration.policies.RegistrationPropertyValidator</literal>
+ <classname>org.jboss.portal.Registration.policies.RegistrationPropertyValidator</classname>
for more details
on what is expected of each method.
</para>
<para>Defining a registration policy is required for the producer to be correctly configured. This is
- accomplished
- by specifying the qualified class name of the registration policy via the
- <literal><registration-policy></literal>
- element. Since we anticipate that most users
- will use the default registration policy, it is possible to use the
- <literal><registration-property-validator></literal>
- element and provide the class
- name of your custom property validator instead. Since specifying a property validator only makes sense in
- the context of the default registration policy, both elements are mutually exclusive.
+ accomplished by specifying the qualified class name of the registration policy. Since we anticipate that
+ most users will use the default registration policy, it is possible to provide the class
+ name of your custom property validator instead to customize the default registration policy behavior. Note
+ that property validators are only used by the default policy.
<note>Since the policy or the validator are defined via their class name and dynamically loaded, it is
important that you make sure that the identified class is available to the application server. One way
@@ -1023,63 +1050,7 @@
provide a default, no-argument constructor.
</note>
</para>
- </sect3>
-
- <sect3>
- <title>Registration properties</title>
- <para>You can also specify that consumers wishing to register with your producer provide acceptable values
- for one or several registration properties. This is accomplished by providing a
- <literal><registration-property-description></literal>
- element per required registration
- property. This element lets provide information about a given registration property such as its name, its
- type,
- the hint and label that will be sent to remote consumers.
- <note>
- At this time, only String (xsd:string) properties are supported. If your application requires more
- complex
- properties, please let us know.
- </note>
- </para>
- </sect3>
-
- </sect2>
- <sect2>
- <title>Example</title>
- <para>
- Here is an example of a producer configurations requiring registration, barring consumers from accessing its
- complete service description until they are correctly registered and requires consumers to provide
- acceptable
- values for two String registration properties named "name1" and "name2" respectively. The registration
- service will use the
- <literal>com.example.portal.SomeCustomRegistrationPolicy</literal>
- class for its
- registration policy.
- <example>
- <programlisting><![CDATA[
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE producer-configuration PUBLIC "-//JBoss Portal//DTD WSRP Local Producer Configuration 2.6//EN"
- "http://www.jboss.org/portal/dtd/jboss-wsrp-producer_2_6.dtd">
-
-<producer-configuration>
- <registration-configuration fullServiceDescriptionRequiresRegistration="true">
- <registration-policy>com.example.portal.SomeCustomRegistrationPolicy</registration-policy>
- <registration-property-description>
- <name>name1</name>
- <type>xsd:string</type>
- <hint xml:lang="en" resourceName="resource.hint1">hint1</hint>
- <label xml:lang="en" resourceName="resource.label1">label1</label>
- </registration-property-description>
- <registration-property-description>
- <name>name2</name>
- <type>xsd:string</type>
- <hint xml:lang="en" resourceName="resource.hint2">hint2</hint>
- <label xml:lang="en" resourceName="resource.label2">label2</label>
- </registration-property-description>
- </registration-configuration>
-</producer-configuration>]]></programlisting>
- </example>
-
- </para>
- </sect2>
+ </sect3>
+ </sect2>
</sect1>
</chapter>
18 years, 7 months
JBoss Portal SVN: r9305 - branches/JBoss_Portal_Branch_2_6/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-12-05 19:31:03 -0500 (Wed, 05 Dec 2007)
New Revision: 9305
Modified:
branches/JBoss_Portal_Branch_2_6/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ConsumerBean.java
Log:
- JBPORTAL-1838: Erasing local registration confirmation screen now properly goes back to the configuration screen. Exception is expected.
Modified: branches/JBoss_Portal_Branch_2_6/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ConsumerBean.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ConsumerBean.java 2007-12-05 22:11:49 UTC (rev 9304)
+++ branches/JBoss_Portal_Branch_2_6/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ConsumerBean.java 2007-12-06 00:31:03 UTC (rev 9305)
@@ -416,7 +416,7 @@
if (consumer != null)
{
getProducerInfo().eraseRegistrationInfo();
- return null;
+ return ConsumerManagerBean.CONFIGURE_CONSUMER;
}
beanContext.createErrorMessage("Couldn't erase local Registration!");
18 years, 7 months
JBoss Portal SVN: r9304 - in branches/presentation: presentation/src/main/org/jboss/portal/presentation/impl/model and 6 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-12-05 17:11:49 -0500 (Wed, 05 Dec 2007)
New Revision: 9304
Removed:
branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateChange.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateChangeEvent.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateModification.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/navigational/NavigationalStateModification.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/structural/StructuralStateModification.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/state/structural/MockModelTestCase.java
Modified:
branches/presentation/core-presentation/src/main/org/jboss/portal/core/presentation/model/StructuralStateContextImpl.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/impl/model/UIObjectImpl.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/UIObject.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateException.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/structural/StructuralStateContext.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/ModelTestCase.java
branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/state/structural/MockModel.java
Log:
some more stuff in PF
Modified: branches/presentation/core-presentation/src/main/org/jboss/portal/core/presentation/model/StructuralStateContextImpl.java
===================================================================
--- branches/presentation/core-presentation/src/main/org/jboss/portal/core/presentation/model/StructuralStateContextImpl.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/core-presentation/src/main/org/jboss/portal/core/presentation/model/StructuralStateContextImpl.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -26,6 +26,8 @@
import org.jboss.portal.core.model.portal.PortalObjectContainer;
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.PortalObjectPath;
+import org.jboss.portal.presentation.model.state.NoSuchStateException;
+import org.jboss.portal.presentation.model.state.StateException;
import org.jboss.portal.presentation.model.state.structural.AbstractStructuralStateContext;
import org.jboss.portal.presentation.model.state.structural.StructuralObject;
@@ -69,6 +71,26 @@
}
/**
+ * The implementation only validate that an object is present.
+ */
+ public void validate(StructuralObject object) throws IllegalArgumentException, StateException
+ {
+ if (object == null)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ PortalObject portalObject = this.portalObjectContainer.getObject(PortalObjectId.parse(object.getId(), PortalObjectPath.CANONICAL_FORMAT));
+
+ //
+ if (portalObject == null)
+ {
+ throw new NoSuchStateException();
+ }
+ }
+
+ /**
*
*/
public StructuralObject load(String objectId) throws IllegalArgumentException
@@ -87,10 +109,10 @@
}
- public List<StructuralObject> loadChildren(StructuralObject object)
+ public List<StructuralObject> loadChildren(StructuralObject parent)
{
// Get the PortalObject corresponding to this objectId from the PortalObjectContainer
- PortalObject portalObject = this.portalObjectContainer.getObject(PortalObjectId.parse(object.getId(), PortalObjectPath.CANONICAL_FORMAT));
+ PortalObject portalObject = this.portalObjectContainer.getObject(PortalObjectId.parse(parent.getId(), PortalObjectPath.CANONICAL_FORMAT));
//
ArrayList<StructuralObject> children = new ArrayList<StructuralObject>();
@@ -103,10 +125,10 @@
return children;
}
- public StructuralObject loadParent(StructuralObject object)
+ public StructuralObject loadParent(StructuralObject child)
{
// Get the PortalObject corresponding to this objectId from the PortalObjectContainer
- PortalObject portalObject = this.portalObjectContainer.getObject(PortalObjectId.parse(object.getId(), PortalObjectPath.CANONICAL_FORMAT));
+ PortalObject portalObject = this.portalObjectContainer.getObject(PortalObjectId.parse(child.getId(), PortalObjectPath.CANONICAL_FORMAT));
//
PortalObject parent = portalObject.getParent();
Modified: branches/presentation/presentation/src/main/org/jboss/portal/presentation/impl/model/UIObjectImpl.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/impl/model/UIObjectImpl.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/impl/model/UIObjectImpl.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -22,14 +22,18 @@
******************************************************************************/
package org.jboss.portal.presentation.impl.model;
+import org.jboss.portal.common.NotYetImplemented;
import org.jboss.portal.presentation.model.StateScopeType;
import org.jboss.portal.presentation.model.UIObject;
import org.jboss.portal.presentation.model.event.StateChange;
import org.jboss.portal.presentation.model.event.StateChangeEvent;
import org.jboss.portal.presentation.model.event.navigational.NavigationalStateModification;
+import org.jboss.portal.presentation.model.event.structural.StructuralStateModification;
+import org.jboss.portal.presentation.model.state.NoSuchStateException;
+import org.jboss.portal.presentation.model.state.StaleStateException;
import org.jboss.portal.presentation.model.state.StateChangeVetoException;
+import org.jboss.portal.presentation.model.state.StateException;
import org.jboss.portal.presentation.model.state.structural.StructuralObject;
-import org.jboss.portal.presentation.model.event.structural.StructuralStateModification;
import java.io.Serializable;
import java.util.Collections;
@@ -60,12 +64,16 @@
/** This is used to assist with data needed during lazy loading, other state related data etc... */
private StructuralObject structuralObject;
+ /** . */
+ private Status status;
+
public UIObjectImpl(UIContextImpl context, StructuralObject object)
{
this.structuralObject = object;
this.context = context;
this.children = null;
this.parent = null;
+ this.status = Status.VALID;
}
public UIObjectImpl(StructuralObject object)
@@ -74,6 +82,7 @@
this.context = (UIContextImpl)this;
this.children = null;
this.parent = null;
+ this.status = Status.VALID;
}
protected final StructuralObject getStructuralObject()
@@ -120,6 +129,55 @@
}
}
+ public Status getStatus()
+ {
+ return status;
+ }
+
+ void updateStatus(StateException e)
+ {
+ if (e instanceof NoSuchStateException)
+ {
+ status = Status.INVALID;
+ }
+ else if (e instanceof StaleStateException)
+ {
+ status = Status.STALE;
+ }
+ else
+ {
+ throw new AssertionError(e);
+ }
+ }
+
+ public void validate()
+ {
+ try
+ {
+ context.structuralStateContext.validate(structuralObject);
+ }
+ catch (StateException e)
+ {
+ updateStatus(e);
+ }
+ }
+
+ public void resolveConflicts()
+ {
+ switch (status)
+ {
+ case STALE:
+ // Todo :-)
+ throw new NotYetImplemented();
+ case INVALID:
+ // Cannot be resolved
+ throw new IllegalStateException();
+ case VALID:
+ // Nothing to do
+ break;
+ }
+ }
+
public <T> T getProperty(StateScopeType scopeType, String propertyName, Class<T> propertyType)
{
if (scopeType == null)
@@ -191,8 +249,19 @@
changes.put(propertyName, (String)propertyValue);
// Have context process change
- StructuralObject.Update update = context.structuralStateContext.update(structuralObject, changes);
+ StructuralObject.Update update;
+ try
+ {
+ update = context.structuralStateContext.update(structuralObject, changes);
+ }
+ catch (StateException e)
+ {
+ validate();
+ //
+ throw e;
+ }
+
//
context.update(update);
@@ -267,8 +336,19 @@
public <T extends UIObject> T createChild(String name, Class<T> type) throws IllegalArgumentException
{
- StructuralObject.Creation creation = context.structuralStateContext.create(structuralObject, type, name, EMPTY_STATE);
+ StructuralObject.Creation creation;
+ try
+ {
+ creation = context.structuralStateContext.create(structuralObject, type, name, EMPTY_STATE);
+ }
+ catch (StateException e)
+ {
+ updateStatus(e);
+ //
+ throw e;
+ }
+
//
context.update(creation);
Modified: branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/UIObject.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/UIObject.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/UIObject.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -33,60 +33,133 @@
*/
public interface UIObject
{
+
/**
- *
- * @return
+ * The status of a user interface object.
*/
+ public enum Status
+ {
+ /**
+ * It can be used.
+ */
+ VALID,
+
+ /**
+ * It cannot be used.
+ */
+ INVALID,
+
+ /**
+ * It cannot be used as is but a recovery is possible to either become valid or invalid.
+ */
+ STALE
+ }
+
+ /**
+ * Updates the status of the object by comparing validating it against the structural state context.
+ */
+ void validate();
+
+ /**
+ * Attempt a resolution of the current conflict. The behavior of the method will change according to the
+ * current status of the object:
+ * <ul>
+ * <li><code>STALE</code> status leads to resolve the conflict to a new status with <code>INVALID</code> or <code>VALID</code>
+ * as possible values</li>
+ * <li><code>VALID</code> status leads to a non operation</li>
+ * <li><code>INVALID</code> status leads to throw an <code>IllegalStateException</code></li>
+ * </ul>
+ */
+ void resolveConflicts();
+
+ /**
+ * Return the current status.
+ *
+ * @return the status
+ */
+ Status getStatus();
+
+ /**
+ * Returns the id.
+ *
+ * @return the id
+ */
String getId();
/**
+ * Returns the name.
*
- * @return
+ * @return the name
*/
String getName();
/**
+ * Returns the parent or null if the object does not have a parent.
*
- * @return
+ * @return the parent
*/
UIObject getParent();
+ /**
+ * Returns a named child or null if it does not exist.
+ *
+ * @param name the name of the child
+ * @return the named child
+ */
UIObject getChild(String name);
- <T> T getProperty(StateScopeType scopeType, String propertyName, Class<T> propertyType);
+ /**
+ * Returns a property value or null if it does not exist.
+ *
+ * @param scopeType the scope where to get the value from
+ * @param propertyName the property name
+ * @param propertyType the expected property type
+ * @return the property value
+ * @throws IllegalArgumentException if any argument is null or not valid
+ * @throws StateException any state exception
+ */
+ <T> T getProperty(StateScopeType scopeType, String propertyName, Class<T> propertyType) throws IllegalArgumentException, StateException;
/**
* Equivalent to call <code>getPropertyValue(StateScopeType,String,Class)</code> with the <code>Object.class</code>
* literal.
+ *
+ * @param scopeType the scope where to get the value from
+ * @param propertyName the property name
+ * @return the property value
+ * @throws IllegalArgumentException if any argument is null or not valid
+ * @throws StateException any state exception
*/
- Object getProperty(StateScopeType scopeType, String propertyName) throws IllegalArgumentException, StateException, StateChangeVetoException;
+ Object getProperty(StateScopeType scopeType, String propertyName) throws IllegalArgumentException, StateException;
- <T> void setProperty(StateScopeType scopeType, String propertyName, T propertyValue) throws IllegalArgumentException, StateException, StateChangeVetoException;
+ <T> void setProperty(StateScopeType scopeType, String propertyName, T propertyValue) throws IllegalArgumentException, StateException;
/**
- * Create a child with a specified type.
+ * Create a named child with a specified type.
*
* @param name the child name
* @param type the child type
* @return the newly created child
* @throws IllegalArgumentException if the name is null, already exists or this kind of object does not accept children of the specified type
+ * @throws StateException any state exception
*/
- public <T extends UIObject> T createChild(String name, Class<T> type) throws IllegalArgumentException;
+ public <T extends UIObject> T createChild(String name, Class<T> type) throws IllegalArgumentException, StateException;
/**
- *
- * @param name
+ * Returns the children of this object.
+ *
+ * @return the list of children
*/
-// public void removeChild(String name);
+ List<UIObject> getChildren();
/**
- *
- * @return
+ *
+ * @param name
*/
- List<UIObject> getChildren();
+// public void removeChild(String name);
/**
- *
+ *
* @param <T>
* @param type
* @return
Deleted: branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateChange.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateChange.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateChange.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -1,77 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.presentation.model.state;
-
-/**
- * A change in the state of the model. The change is the association of a target id and a modification.
- * The target id refers to an object in the structural state context and the modification is a modification
- * of its state. Note that the modification could also modify the state of other objects.
- *
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 630 $
- */
-public final class StateChange<M extends StateModification>
-{
-
- /** . */
- private final String targetId;
-
- /** . */
- private final M modification;
-
- public StateChange(String targetId, M modification)
- {
- if (targetId == null)
- {
- throw new IllegalArgumentException();
- }
- if (modification == null)
- {
- throw new IllegalArgumentException();
- }
-
- //
- this.targetId = targetId;
- this.modification = modification;
- }
-
- /**
- * Returns the target id of the change.
- *
- * @return the target id
- */
- public String getTargetId()
- {
- return targetId;
- }
-
- /**
- * Returns the modification operated on the target id.
- *
- * @return the modification
- */
- public M getModification()
- {
- return modification;
- }
-}
Deleted: branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateChangeEvent.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateChangeEvent.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateChangeEvent.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -1,59 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.presentation.model.state;
-
-import org.jboss.portal.presentation.model.ModelEvent;
-
-/**
- * Signals a state change occured.
- *
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 630 $
- */
-public final class StateChangeEvent extends ModelEvent
-{
-
- /** . */
- private final StateChange change;
-
- public StateChangeEvent(StateChange change)
- {
- if (change == null)
- {
- throw new IllegalArgumentException();
- }
-
- //
- this.change = change;
- }
-
- /**
- * Returns the state change that occured.
- *
- * @return the state change
- */
- public StateChange getChange()
- {
- return change;
- }
-}
Modified: branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateException.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateException.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateException.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -26,7 +26,7 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 630 $
*/
-public class StateException extends RuntimeException
+public abstract class StateException extends RuntimeException
{
public StateException()
{
Deleted: branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateModification.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateModification.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/StateModification.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -1,33 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.presentation.model.state;
-
-/**
- * An abstract class for the modification of state.
- *
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 630 $
- */
-public abstract class StateModification
-{
-}
Deleted: branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/navigational/NavigationalStateModification.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/navigational/NavigationalStateModification.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/navigational/NavigationalStateModification.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -1,61 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.presentation.model.state.navigational;
-
-import org.jboss.portal.presentation.model.state.StateModification;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 630 $
- */
-public final class NavigationalStateModification extends StateModification
-{
-
- /** . */
- private final String key;
-
- /** . */
- private final Object navigationalState;
-
- public NavigationalStateModification(String key, Object navigationalState)
- {
- if (key == null)
- {
- throw new IllegalArgumentException();
- }
-
- //
- this.key = key;
- this.navigationalState = navigationalState;
- }
-
- public String getKey()
- {
- return key;
- }
-
- public Object getNavigationalState()
- {
- return navigationalState;
- }
-}
Modified: branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/structural/StructuralStateContext.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/structural/StructuralStateContext.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/structural/StructuralStateContext.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -23,7 +23,6 @@
package org.jboss.portal.presentation.model.state.structural;
import org.jboss.portal.presentation.model.UIObject;
-import org.jboss.portal.presentation.model.state.NoSuchStateException;
import org.jboss.portal.presentation.model.state.StateChangeVetoException;
import org.jboss.portal.presentation.model.state.StateException;
@@ -31,7 +30,7 @@
import java.util.Map;
/**
- * The structural state manager.
+ * The structural state context.
*
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
@@ -40,17 +39,44 @@
{
/**
- * Load the state of a specified object.
+ * Validate the state of the provided object. The operation is idempotent and does not modify any state.
+ * If validation is succesfull the method returns otherwise it throws an exception that indicates
+ * the nature of the non validation failure.
*
+ * @param object the object to check
+ * @throws IllegalArgumentException if the provided object is null
+ * @throws StateException any useful exception that would make the object non valid
+ */
+ void validate(StructuralObject object) throws IllegalArgumentException, StateException;
+
+ /**
+ * Load the state of the specified object.
+ *
* @param objectId the object id
* @return the state of the object or null if such state does not exist
* @throws IllegalArgumentException if the object id argument is null
*/
StructuralObject load(String objectId) throws IllegalArgumentException;
- List<StructuralObject> loadChildren(StructuralObject object);
+ /**
+ * Load the children of the provided object.
+ *
+ * @param parent the parent
+ * @return the list of children as structural objects
+ * @throws IllegalArgumentException if the provided object is null
+ * @throws StateException any useful exception that would make the object non valid
+ */
+ List<StructuralObject> loadChildren(StructuralObject parent) throws IllegalArgumentException, StateException;
- StructuralObject loadParent(StructuralObject object);
+ /**
+ * Load the parent of the specified object.
+ *
+ * @param child the child
+ * @return the parent or null if it does not exist
+ * @throws IllegalArgumentException if the provided object is null
+ * @throws StateException any useful exception that would make the object non valid
+ */
+ StructuralObject loadParent(StructuralObject child) throws IllegalArgumentException, StateException;
/**
* Returns the id of the root object.
@@ -66,36 +92,32 @@
* @param type the type of the child
* @param name the name of the child
* @param properties the initial properties of the child @return the id of the newly created structural state
- * @return the state id
- * @throws StateChangeVetoException if the creation is vetoed
- * @throws StateException a generic state exception
- * @throws NoSuchStateException if the parent id does not point a valid state
+ * @return the creation object
* @throws IllegalArgumentException if an argument is null or not valid
+ * @throws StateException if the provided state prevents the operation to be done
*/
- StructuralObject.Creation create(StructuralObject parent, Class<? extends UIObject> type, String name, Map<String, String> properties) throws StateChangeVetoException, StateException, IllegalArgumentException;
+ StructuralObject.Creation create(StructuralObject parent, Class<? extends UIObject> type, String name, Map<String, String> properties) throws StateException, IllegalArgumentException;
/**
* Destroy a specified object.
*
* @param object the object to destroy
- * @throws StateChangeVetoException if the creation is vetoed
- * @throws StateException a generic state exception
- * @throws NoSuchStateException if the object id does not point a valid state
+ * @return the destruction object
* @throws IllegalArgumentException if an argument is null or not valid
- * @throws StateChangeVetoException
+ * @throws StateException if the provided state prevents the operation to be done
*/
- StructuralObject.Destruction destroy(StructuralObject object) throws StateException, IllegalArgumentException;
+ StructuralObject.Destruction destroy(StructuralObject object) throws IllegalArgumentException, StateException;
/**
* Move an object to a new parent.
*
- * @param source
- * @param destination
- * @throws StateException a generic state exception
- * @throws NoSuchStateException if the object id does not point a valid state
+ * @param source the source object
+ * @param destination the destination object
+ * @return the move object
* @throws IllegalArgumentException if an argument is null or not valid
+ * @throws StateException if the provided state prevents the operation to be done
*/
- StructuralObject.Move move(StructuralObject source, StructuralObject destination) throws StateException, IllegalArgumentException;
+ StructuralObject.Move move(StructuralObject source, StructuralObject destination) throws IllegalArgumentException, StateException;
/**
* Update the state of a specified object.
@@ -103,21 +125,9 @@
* @param object the object to udpate
* @param changes the changes
* @throws StateChangeVetoException if the creation is vetoed
- * @throws StateException a generic state exception
- * @throws NoSuchStateException if the object id does not point a valid state
+ * @return the update object
* @throws IllegalArgumentException if an argument is null or not valid
+ * @throws StateException if the provided state prevents the operation to be done
*/
- StructuralObject.Update update(StructuralObject object, Map<String, String> changes) throws StateException, IllegalArgumentException;
-
- /**
- * The structural object equality requires the equality of the id but it may not be a sufficient condition.
- * Equality could be based on the state or on a version id. The equality operation can be considered as safe
- * with respect to passing null as argument.
- *
- * @param left the left
- * @param right the right
- * @return if left and right are equals
- */
- boolean equals(StructuralObject left, StructuralObject right);
-
+ StructuralObject.Update update(StructuralObject object, Map<String, String> changes) throws IllegalArgumentException, StateException;
}
Deleted: branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/structural/StructuralStateModification.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/structural/StructuralStateModification.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/model/state/structural/StructuralStateModification.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -1,136 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.presentation.model.state.structural;
-
-import org.jboss.portal.presentation.model.state.StateModification;
-import org.jboss.portal.presentation.model.UIObject;
-
-import java.util.Map;
-
-/**
- * Specification of state modification for structural state.
- *
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 630 $
- */
-public abstract class StructuralStateModification extends StateModification
-{
-
- protected StructuralStateModification()
- {
- }
-
- /**
- * Destruction of an object.
- */
- public final static class Destruction extends StructuralStateModification
- {
- }
-
- public final static class Creation extends StructuralStateModification
- {
-
- /** . */
- private final Class<? extends UIObject> type;
-
- /** . */
- private final String name;
-
- /** . */
- private final Map<String, String> properties;
-
- public Creation(Class<? extends UIObject> type, String name, Map<String, String> properties)
- {
- this.type = type;
- this.name = name;
- this.properties = properties;
- }
-
- public Class<? extends UIObject> getType()
- {
- return type;
- }
-
- public String getName()
- {
- return name;
- }
-
- public Map<String, String> getProperties()
- {
- return properties;
- }
- }
-
- public final static class Move extends StructuralStateModification
- {
-
- /** . */
- private final String destinationId;
-
- public Move(String parentId)
- {
- this.destinationId = parentId;
- }
-
- public String getDestinationId()
- {
- return destinationId;
- }
- }
-
-
- /**
- * Update the properties portion of the state. The <code>Map</code> values are interpreted as follow:
- * <ul>
- * <li>Each non null value will replace an existing value of create a new one</li>
- * <li>Each null value will destroy an existing value</li>
- * </ul>
- */
- public final static class Update extends StructuralStateModification
- {
-
- /** . */
- private final Map<String, String> changes;
-
- public Update(Map<String, String> changes)
- {
- if (changes == null)
- {
- throw new IllegalArgumentException();
- }
-
- //
- this.changes = changes;
- }
-
- /**
- *
- * @return
- */
- public Map<String, String> getChanges()
- {
- return changes;
- }
- }
-}
Modified: branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/ModelTestCase.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/ModelTestCase.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/ModelTestCase.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -515,4 +515,11 @@
eventAssert.next(portal.getId(), new StructuralStateModification.Creation(UIPortal.class, "foo", new HashMap<String, String>()));
}
+
+ public void testBlah()
+ {
+
+
+
+ }
}
Modified: branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/state/structural/MockModel.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/state/structural/MockModel.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/state/structural/MockModel.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -110,6 +110,11 @@
return root.getId();
}
+ public void validate(StructuralObject object) throws StateException
+ {
+ getValidMockObject(object);
+ }
+
public StructuralObject.Update update(StructuralObject object, Map<String, String> changes) throws StateChangeVetoException
{
MockObject mockObject = getValidMockObject(object);
@@ -140,7 +145,7 @@
return new StructuralObject.Update(mockObject.takeSnapshot());
}
- public StructuralObject.Creation create(StructuralObject parent, Class<? extends UIObject> classType, String name, Map<String, String> properties) throws StateChangeVetoException, StateException, IllegalArgumentException
+ public StructuralObject.Creation create(StructuralObject parent, Class<? extends UIObject> classType, String name, Map<String, String> properties) throws StateException, IllegalArgumentException
{
MockObject mockParent = getValidMockObject(parent);
@@ -154,23 +159,23 @@
return new StructuralObject.Creation(mockParent.takeSnapshot(), mockChild.takeSnapshot());
}
- public List<StructuralObject> loadChildren(StructuralObject object)
+ public List<StructuralObject> loadChildren(StructuralObject parent)
{
- MockObject mockObject = getValidMockObject(object);
+ MockObject mockParent = getValidMockObject(parent);
//
List<StructuralObject> tmp = new ArrayList<StructuralObject>();
- for (MockObject mockChild : mockObject.getChildren())
+ for (MockObject mockChild : mockParent.getChildren())
{
tmp.add(mockChild.takeSnapshot());
}
return tmp;
}
- public StructuralObject loadParent(StructuralObject object)
+ public StructuralObject loadParent(StructuralObject child)
{
- MockObject mockObject = getValidMockObject(object);
- MockObject mockParent = mockObject.getParent();
+ MockObject mockchild = getValidMockObject(child);
+ MockObject mockParent = mockchild.getParent();
return mockParent != null ? mockParent.takeSnapshot() : null;
}
@@ -208,33 +213,5 @@
//
return mockObject;
}
-
- public boolean equals(StructuralObject left, StructuralObject right)
- {
- if (left == null)
- {
- return right == null;
- }
- else
- {
- if (right == null)
- {
- return false;
- }
-
- //
- StructuralObjectImpl lefti = (StructuralObjectImpl)left;
- StructuralObjectImpl righti = (StructuralObjectImpl)left;
-
- //
- if (lefti == righti)
- {
- return true;
- }
-
- //
- return lefti.id.equals(righti.id) && lefti.version == righti.version;
- }
- }
};
}
Deleted: branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/state/structural/MockModelTestCase.java
===================================================================
--- branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/state/structural/MockModelTestCase.java 2007-12-05 22:11:35 UTC (rev 9303)
+++ branches/presentation/presentation/src/main/org/jboss/portal/presentation/test/model/state/structural/MockModelTestCase.java 2007-12-05 22:11:49 UTC (rev 9304)
@@ -1,278 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.presentation.test.model.state.structural;
-
-import junit.framework.TestCase;
-import org.jboss.portal.presentation.model.UIContext;
-import org.jboss.portal.presentation.model.UIPortal;
-import org.jboss.portal.presentation.model.state.StaleStateException;
-import org.jboss.portal.presentation.model.state.structural.AbstractStructuralStateChangeListener;
-import org.jboss.portal.presentation.model.state.structural.StructuralObject;
-import org.jboss.portal.presentation.model.state.structural.StructuralState;
-import org.jboss.portal.presentation.model.state.structural.StructuralStateChangeListener;
-import org.jboss.portal.presentation.model.state.structural.StructuralStateContext;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Test that the mock model we are using behaves in an expected manner
- *
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 630 $
- */
-public class MockModelTestCase extends TestCase
-{
-
- /** . */
- private MockModel model;
-
- /** . */
- private StructuralStateContext ssc;
-
- /** . */
- private Map<String, StructuralObject> universe;
-
- /** . */
- private final StructuralStateChangeListener listener = new AbstractStructuralStateChangeListener()
- {
- public void update(StructuralObject object)
- {
- universe.put(object.getId(), object);
- }
- };
-
- protected void setUp() throws Exception
- {
- model = new MockModel();
- ssc = model.getStructuralStateContext();
- universe = new HashMap<String, StructuralObject>();
- }
-
- protected void tearDown() throws Exception
- {
- model = null;
- ssc = null;
- universe = null;
- }
-
- public void testRoot()
- {
- MockObject mockRoot = model.getRoot();
- assertNotNull(mockRoot);
- assertEquals(Collections.EMPTY_SET, mockRoot.getPropertyNames());
- assertNull(mockRoot.getParent());
- assertEquals(Collections.EMPTY_LIST, mockRoot.getChildren());
- assertEquals(MockObject.Type.CONTEXT, mockRoot.getType());
- assertEquals("", mockRoot.getName());
- assertEquals(true, mockRoot.isValid());
-
- //
- String rootId = ssc.getRootId();
- assertNotNull(rootId);
- StructuralObject root = ssc.load(rootId);
- assertNotNull(root);
- assertEquals(rootId, root.getId());
- StructuralState state = root.getState();
- assertEquals(UIContext.class, state.getType());
- assertEquals("", state.getName());
- assertEquals(Collections.EMPTY_MAP, state.getProperties());
- }
-
- public void testSetProperty()
- {
- MockObject mockRoot = model.getRoot();
- String rootId = mockRoot.getId();
- int rootV0 = mockRoot.getVersion();
-
- //
- StructuralObject root0 = ssc.load(rootId);
- StructuralState rootState0 = root0.getState();
- assertEquals(Collections.EMPTY_MAP, rootState0.getProperties());
-
- // Set
- ssc.update(listener, root0, Collections.singletonMap("foo", "bar"));
-
- //
- int rootV1 = mockRoot.getVersion();
- assertTrue(rootV1 > rootV0);
- assertEquals(Collections.singleton("foo"), mockRoot.getPropertyNames());
- assertEquals("bar", mockRoot.getPropertyValue("foo"));
- assertEquals(Collections.EMPTY_MAP, rootState0.getProperties());
- assertStale(root0);
- StructuralObject root1_0 = universe.get(rootId);
- assertNotNull(root1_0);
- assertNotStale(root1_0);
- StructuralState rootState1_0 = root1_0.getState();
- assertEquals(Collections.singletonMap("foo", "bar"), rootState1_0.getProperties());
- StructuralObject root1_1 = ssc.load(rootId);
- assertNotNull(root1_1);
- assertNotStale(root1_1);
- StructuralState rootState1_1 = root1_1.getState();
- assertEquals(Collections.singletonMap("foo", "bar"), rootState1_1.getProperties());
- }
-
- public void testUpdateProperty()
- {
- MockObject mockRoot = model.getRoot();
- String rootId = mockRoot.getId();
- int rootV0 = mockRoot.getVersion();
-
- //
- StructuralObject root0 = ssc.load(rootId);
- StructuralState rootState0 = root0.getState();
- assertEquals(Collections.EMPTY_MAP, rootState0.getProperties());
-
- // Set
- mockRoot.setPropertyValue("foo", "bar");
-
- //
- int rootV1 = mockRoot.getVersion();
- assertTrue(rootV1 > rootV0);
- assertEquals(Collections.singleton("foo"), mockRoot.getPropertyNames());
- assertEquals("bar", mockRoot.getPropertyValue("foo"));
- assertEquals(Collections.EMPTY_MAP, rootState0.getProperties());
- assertStale(root0);
- StructuralObject root1 = ssc.load(rootId);
- assertNotNull(root1);
- assertNotStale(root1);
- StructuralState rootState1 = root1.getState();
- assertEquals(Collections.singletonMap("foo", "bar"), rootState1.getProperties());
-
- // Update
- ssc.update(listener, root1, Collections.singletonMap("foo", "bar2"));
-
- //
- int rootV2 = mockRoot.getVersion();
- assertTrue(rootV2 > rootV1);
- assertEquals(Collections.singleton("foo"), mockRoot.getPropertyNames());
- assertEquals("bar2", mockRoot.getPropertyValue("foo"));
- assertEquals(Collections.EMPTY_MAP, rootState0.getProperties());
- assertStale(root0);
- assertStale(root1);
-
- //
- StructuralObject root2_0 = universe.get(rootId);
- assertNotNull(root2_0);
- assertNotStale(root2_0);
- StructuralState rootState2_0 = root2_0.getState();
- assertEquals(Collections.singletonMap("foo", "bar2"), rootState2_0.getProperties());
- StructuralObject root2_1 = ssc.load(rootId);
- assertNotNull(root2_1);
- assertNotStale(root2_1);
- StructuralState rootState2_1 = root2_1.getState();
- assertEquals(Collections.singletonMap("foo", "bar2"), rootState2_1.getProperties());
- }
-
- private void assertStale(StructuralObject object)
- {
- try
- {
- ssc.loadParent(object);
- fail();
- }
- catch (StaleStateException ignore)
- {
- }
- try
- {
- ssc.loadChildren(object);
- fail();
- }
- catch (StaleStateException ignore)
- {
- }
- }
-
- private void assertNotStale(StructuralObject object)
- {
- ssc.loadParent(object);
- ssc.loadChildren(object);
- }
-
- public void testAddChild()
- {
- MockObject mockRoot = model.getRoot();
- int rootV0 = mockRoot.getVersion();
-
- //
- String rootId = mockRoot.getId();
- StructuralObject root = ssc.load(rootId);
-
- //
- MockObject mockFoo = mockRoot.addChild("foo", MockObject.Type.PORTAL);
- assertNotNull(mockFoo);
- String fooId = mockFoo.getId();
-
- //
- assertNotNull(fooId);
- assertEquals("foo", mockFoo.getName());
- assertEquals(MockObject.Type.PORTAL, mockFoo.getType());
- assertSame(mockRoot, mockFoo.getParent());
- assertEquals(Collections.singletonList(mockFoo), mockRoot.getChildren());
- assertEquals(Collections.EMPTY_SET, mockFoo.getPropertyNames());
- assertTrue(mockRoot.getVersion() > rootV0);
-
- //
- try
- {
- ssc.loadParent(root);
- fail();
- }
- catch (StaleStateException ignore)
- {
- }
- try
- {
- ssc.loadChildren(root);
- fail();
- }
- catch (StaleStateException ignore)
- {
- }
-
- //
- root = ssc.load(rootId);
- assertNotNull(root);
- assertEquals(rootId, root.getId());
-
- //
- List<StructuralObject> children = ssc.loadChildren(root);
- assertNotNull(children);
- assertEquals(1, children.size());
- StructuralObject foo = children.get(0);
- assertNotNull(foo);
- assertEquals(fooId, foo.getId());
- StructuralState fooState = foo.getState();
- assertNotNull(fooState);
- assertEquals("foo", fooState.getName());
- assertEquals(Collections.EMPTY_MAP, fooState.getProperties());
- assertEquals(UIPortal.class, fooState.getType());
- root = ssc.loadParent(foo);
- assertNotNull(root);
- assertEquals(rootId, root.getId());
- }
-
-}
18 years, 7 months
JBoss Portal SVN: r9303 - in tags/JBoss_Portal_2_6_3/core-identity/src: main/org/jboss/portal/core/identity/ui/admin and 1 other directories.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-12-05 17:11:35 -0500 (Wed, 05 Dec 2007)
New Revision: 9303
Modified:
tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/AssignRoleAction.java
tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditProfileAction.java
tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditRoleAction.java
tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/LostPasswordAction.java
tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/RoleManagementBean.java
tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/UserAdministrationBean.java
tags/JBoss_Portal_2_6_3/core-identity/src/resources/portal-identity-war/WEB-INF/portlet.xml
Log:
JBPORTAL-1837: Searching user with some role fails
Modified: tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/AssignRoleAction.java
===================================================================
--- tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/AssignRoleAction.java 2007-12-05 22:04:05 UTC (rev 9302)
+++ tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/AssignRoleAction.java 2007-12-05 22:11:35 UTC (rev 9303)
@@ -106,7 +106,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
if (this.currentUser != null)
{
this.uiUser = new IdentityUIUser(this.currentUser);
Modified: tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditProfileAction.java
===================================================================
--- tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditProfileAction.java 2007-12-05 22:04:05 UTC (rev 9302)
+++ tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditProfileAction.java 2007-12-05 22:11:35 UTC (rev 9303)
@@ -214,7 +214,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
this.windowState = null;
if (this.currentUser == null)
{
@@ -295,7 +295,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
return "adminChangePassword";
}
Modified: tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditRoleAction.java
===================================================================
--- tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditRoleAction.java 2007-12-05 22:04:05 UTC (rev 9302)
+++ tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditRoleAction.java 2007-12-05 22:11:35 UTC (rev 9303)
@@ -75,7 +75,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentRole = decoder.encode((String) params.get("currentRole"));
+ this.currentRole = params.get("currentRole") != null ? decoder.encode((String) params.get("currentRole")) : null;
try
{
this.uiRole = identityRoleBean.getUIRole(this.currentRole);
Modified: tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/LostPasswordAction.java
===================================================================
--- tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/LostPasswordAction.java 2007-12-05 22:04:05 UTC (rev 9302)
+++ tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/LostPasswordAction.java 2007-12-05 22:11:35 UTC (rev 9303)
@@ -189,7 +189,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.username = decoder.encode((String) params.get("currentUser"));
+ this.username = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
return "resetPassword";
}
Modified: tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/RoleManagementBean.java
===================================================================
--- tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/RoleManagementBean.java 2007-12-05 22:04:05 UTC (rev 9302)
+++ tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/RoleManagementBean.java 2007-12-05 22:11:35 UTC (rev 9303)
@@ -154,7 +154,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- String role = decoder.encode((String) params.get("currentRole"));
+ String role = params.get("currentRole") != null ? decoder.encode((String) params.get("currentRole")) : null;
this.currentRole = role != null ? role : this.currentRole;
try
{
@@ -211,7 +211,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentRole = decoder.encode((String) params.get("currentRole"));
+ this.currentRole = params.get("currentRole") != null ? decoder.encode((String) params.get("currentRole")) : null;
if (this.currentRole != null)
{
try
Modified: tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/UserAdministrationBean.java
===================================================================
--- tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/UserAdministrationBean.java 2007-12-05 22:04:05 UTC (rev 9302)
+++ tags/JBoss_Portal_2_6_3/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/UserAdministrationBean.java 2007-12-05 22:11:35 UTC (rev 9303)
@@ -261,7 +261,7 @@
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
String action = (String) params.get("enableAction");
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
// TODO - do something better than .equals("admin")
if (this.currentUser != null && action != null && ! this.currentUser.equals("admin"))
@@ -348,7 +348,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
if (this.currentUser != null)
{
this.uiUser = new IdentityUIUser(this.currentUser);
Modified: tags/JBoss_Portal_2_6_3/core-identity/src/resources/portal-identity-war/WEB-INF/portlet.xml
===================================================================
--- tags/JBoss_Portal_2_6_3/core-identity/src/resources/portal-identity-war/WEB-INF/portlet.xml 2007-12-05 22:04:05 UTC (rev 9302)
+++ tags/JBoss_Portal_2_6_3/core-identity/src/resources/portal-identity-war/WEB-INF/portlet.xml 2007-12-05 22:11:35 UTC (rev 9303)
@@ -37,7 +37,7 @@
<name>default-view</name>
<value>/WEB-INF/jsf/index.xhtml</value>
</init-param>
- <expiration-cache>-1</expiration-cache>
+ <expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
18 years, 7 months
JBoss Portal SVN: r9302 - in branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui: admin and 1 other directory.
by portal-commits@lists.jboss.org
Author: emuckenhuber
Date: 2007-12-05 17:04:05 -0500 (Wed, 05 Dec 2007)
New Revision: 9302
Modified:
branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/AssignRoleAction.java
branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditProfileAction.java
branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditRoleAction.java
branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/LostPasswordAction.java
branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/RoleManagementBean.java
branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/UserAdministrationBean.java
Log:
JBPORTAL-1837: FastURLDecoder does not like to .encode null
Modified: branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/AssignRoleAction.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/AssignRoleAction.java 2007-12-05 21:25:31 UTC (rev 9301)
+++ branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/AssignRoleAction.java 2007-12-05 22:04:05 UTC (rev 9302)
@@ -106,7 +106,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
if (this.currentUser != null)
{
this.uiUser = new IdentityUIUser(this.currentUser);
Modified: branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditProfileAction.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditProfileAction.java 2007-12-05 21:25:31 UTC (rev 9301)
+++ branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditProfileAction.java 2007-12-05 22:04:05 UTC (rev 9302)
@@ -214,7 +214,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
this.windowState = null;
if (this.currentUser == null)
{
@@ -295,7 +295,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
return "adminChangePassword";
}
Modified: branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditRoleAction.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditRoleAction.java 2007-12-05 21:25:31 UTC (rev 9301)
+++ branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/EditRoleAction.java 2007-12-05 22:04:05 UTC (rev 9302)
@@ -75,7 +75,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentRole = decoder.encode((String) params.get("currentRole"));
+ this.currentRole = params.get("currentRole") != null ? decoder.encode((String) params.get("currentRole")) : null;
try
{
this.uiRole = identityRoleBean.getUIRole(this.currentRole);
Modified: branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/LostPasswordAction.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/LostPasswordAction.java 2007-12-05 21:25:31 UTC (rev 9301)
+++ branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/actions/LostPasswordAction.java 2007-12-05 22:04:05 UTC (rev 9302)
@@ -189,7 +189,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.username = decoder.encode((String) params.get("currentUser"));
+ this.username = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
return "resetPassword";
}
Modified: branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/RoleManagementBean.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/RoleManagementBean.java 2007-12-05 21:25:31 UTC (rev 9301)
+++ branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/RoleManagementBean.java 2007-12-05 22:04:05 UTC (rev 9302)
@@ -154,7 +154,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- String role = decoder.encode((String) params.get("currentRole"));
+ String role = params.get("currentRole") != null ? decoder.encode((String) params.get("currentRole")) : null;
this.currentRole = role != null ? role : this.currentRole;
try
{
@@ -211,7 +211,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentRole = decoder.encode((String) params.get("currentRole"));
+ this.currentRole = params.get("currentRole") != null ? decoder.encode((String) params.get("currentRole")) : null;
if (this.currentRole != null)
{
try
Modified: branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/UserAdministrationBean.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/UserAdministrationBean.java 2007-12-05 21:25:31 UTC (rev 9301)
+++ branches/JBoss_Portal_Branch_2_6/core-identity/src/main/org/jboss/portal/core/identity/ui/admin/UserAdministrationBean.java 2007-12-05 22:04:05 UTC (rev 9302)
@@ -261,7 +261,7 @@
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
String action = (String) params.get("enableAction");
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
// TODO - do something better than .equals("admin")
if (this.currentUser != null && action != null && ! this.currentUser.equals("admin"))
@@ -348,7 +348,7 @@
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
Map params = ectx.getRequestParameterMap();
- this.currentUser = decoder.encode((String) params.get("currentUser"));
+ this.currentUser = params.get("currentUser") != null ? decoder.encode((String) params.get("currentUser")) : null;
if (this.currentUser != null)
{
this.uiUser = new IdentityUIUser(this.currentUser);
18 years, 7 months
JBoss Portal SVN: r9301 - tags/JBoss_Portal_2_6_3/core-admin/src/main/org/jboss/portal/core/admin/ui.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-12-05 16:25:31 -0500 (Wed, 05 Dec 2007)
New Revision: 9301
Modified:
tags/JBoss_Portal_2_6_3/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java
Log:
Don't bug on re-delation of an instance
Modified: tags/JBoss_Portal_2_6_3/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java
===================================================================
--- tags/JBoss_Portal_2_6_3/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java 2007-12-05 21:05:44 UTC (rev 9300)
+++ tags/JBoss_Portal_2_6_3/core-admin/src/main/org/jboss/portal/core/admin/ui/InstanceManagerBean.java 2007-12-05 21:25:31 UTC (rev 9301)
@@ -369,14 +369,17 @@
{
String id = (String)ae.getComponent().getAttributes().get("instanceId");
- //
- instanceContainer.destroyDefinition(id);
+ if (id != null)
+ {
+ //
+ instanceContainer.destroyDefinition(id);
- //
- selectedId = null;
- selectedPrefs = null;
- selectedFrom = 0;
- selectedPlugin = null;
+ //
+ selectedId = null;
+ selectedPrefs = null;
+ selectedFrom = 0;
+ selectedPlugin = null;
+ }
}
catch (NoSuchInstanceException e)
{
18 years, 7 months
JBoss Portal SVN: r9300 - tags/JBoss_Portal_2_6_3/core-admin/src/resources/portal-admin-war/WEB-INF.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-12-05 16:05:44 -0500 (Wed, 05 Dec 2007)
New Revision: 9300
Modified:
tags/JBoss_Portal_2_6_3/core-admin/src/resources/portal-admin-war/WEB-INF/portlet.xml
Log:
Do not cache the page, otherwise dashbard re-org is not reflected
Modified: tags/JBoss_Portal_2_6_3/core-admin/src/resources/portal-admin-war/WEB-INF/portlet.xml
===================================================================
--- tags/JBoss_Portal_2_6_3/core-admin/src/resources/portal-admin-war/WEB-INF/portlet.xml 2007-12-05 10:53:26 UTC (rev 9299)
+++ tags/JBoss_Portal_2_6_3/core-admin/src/resources/portal-admin-war/WEB-INF/portlet.xml 2007-12-05 21:05:44 UTC (rev 9300)
@@ -54,7 +54,7 @@
<name>default-view</name>
<value>/WEB-INF/jsf/dashboard/dashboard.xhtml</value>
</init-param>
- <expiration-cache>-1</expiration-cache>
+ <expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
18 years, 7 months
JBoss Portal SVN: r9299 - tags/JBoss_Portal_2_6_3/core-cms/src/bin/portal-cms-sar/portal/cms/conf/default-content/default.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-12-05 05:53:26 -0500 (Wed, 05 Dec 2007)
New Revision: 9299
Modified:
tags/JBoss_Portal_2_6_3/core-cms/src/bin/portal-cms-sar/portal/cms/conf/default-content/default/index.html
Log:
minor
Modified: tags/JBoss_Portal_2_6_3/core-cms/src/bin/portal-cms-sar/portal/cms/conf/default-content/default/index.html
===================================================================
--- tags/JBoss_Portal_2_6_3/core-cms/src/bin/portal-cms-sar/portal/cms/conf/default-content/default/index.html 2007-12-05 01:52:20 UTC (rev 9298)
+++ tags/JBoss_Portal_2_6_3/core-cms/src/bin/portal-cms-sar/portal/cms/conf/default-content/default/index.html 2007-12-05 10:53:26 UTC (rev 9299)
@@ -30,7 +30,7 @@
publishing and managing its content, and customizing its experience. While most packaged Portal frameworks help
enterprises launch Portals more quickly, only JBoss Portal delivers the benefits of a zero-cost open source license
combined with a flexible and scalable underling platform.</p>
-
+<br />
<div id="welcomegreybox">
<table width="100%">
<tr>
18 years, 7 months
JBoss Portal SVN: r9298 - tags/JBoss_Portal_2_6_3/core/src/main/org/jboss/portal/test/core/model/instance.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-12-04 20:52:20 -0500 (Tue, 04 Dec 2007)
New Revision: 9298
Modified:
tags/JBoss_Portal_2_6_3/core/src/main/org/jboss/portal/test/core/model/instance/BackwardCompatibilityInstanceTestCase.java
Log:
oups
Modified: tags/JBoss_Portal_2_6_3/core/src/main/org/jboss/portal/test/core/model/instance/BackwardCompatibilityInstanceTestCase.java
===================================================================
--- tags/JBoss_Portal_2_6_3/core/src/main/org/jboss/portal/test/core/model/instance/BackwardCompatibilityInstanceTestCase.java 2007-12-05 01:37:56 UTC (rev 9297)
+++ tags/JBoss_Portal_2_6_3/core/src/main/org/jboss/portal/test/core/model/instance/BackwardCompatibilityInstanceTestCase.java 2007-12-05 01:52:20 UTC (rev 9298)
@@ -48,6 +48,7 @@
import org.hibernate.tool.hbm2ddl.SchemaUpdate;
import org.jboss.portal.common.junit.TransactionAssert;
import org.jboss.portal.common.value.StringValue;
+import org.jboss.portal.common.i18n.LocalizedString;
import org.jboss.portal.core.impl.model.instance.InstanceContainerImpl;
import org.jboss.portal.core.model.instance.Instance;
import org.jboss.portal.portlet.invocation.PortletInvocation;
18 years, 7 months