[gatein-commits] gatein SVN: r5960 - in components/wsrp/branches/2.0.x/admin-gui/src/main: webapp/jsf/producer and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Mar 3 10:59:11 EST 2011


Author: chris.laprun at jboss.com
Date: 2011-03-03 10:59:11 -0500 (Thu, 03 Mar 2011)
New Revision: 5960

Modified:
   components/wsrp/branches/2.0.x/admin-gui/src/main/java/org/gatein/wsrp/admin/ui/ProducerBean.java
   components/wsrp/branches/2.0.x/admin-gui/src/main/webapp/jsf/producer/producer.xhtml
Log:
- GTNWSRP-201: Fixed improper state management by making local configuration deal with strict mode as well. Made the registration required for full service description and strict mode immediate and with a value change listener to properly handle state change.

Modified: components/wsrp/branches/2.0.x/admin-gui/src/main/java/org/gatein/wsrp/admin/ui/ProducerBean.java
===================================================================
--- components/wsrp/branches/2.0.x/admin-gui/src/main/java/org/gatein/wsrp/admin/ui/ProducerBean.java	2011-03-03 15:50:49 UTC (rev 5959)
+++ components/wsrp/branches/2.0.x/admin-gui/src/main/java/org/gatein/wsrp/admin/ui/ProducerBean.java	2011-03-03 15:59:11 UTC (rev 5960)
@@ -54,7 +54,7 @@
    private static final String PROPERTY = "property";
    private static final String PRODUCER = "producer";
    private String selectedProp;
-   private RegistrationConfiguration registrationConfiguration;
+   private LocalProducerConfiguration localProducerConfiguration;
 
    public ProducerConfigurationService getConfigurationService()
    {
@@ -73,27 +73,27 @@
 
    public boolean isRegistrationRequiredForFullDescription()
    {
-      return getRegRequirements().isRegistrationRequiredForFullDescription();
+      return getLocalConfiguration().isRegistrationRequiredForFullDescription();
    }
 
    public void setRegistrationRequiredForFullDescription(boolean requireRegForFullDescription)
    {
-      getRegRequirements().setRegistrationRequiredForFullDescription(requireRegForFullDescription);
+      getLocalConfiguration().setRegistrationRequiredForFullDescription(requireRegForFullDescription);
    }
 
    public boolean isRegistrationRequired()
    {
-      return getRegRequirements().isRegistrationRequired();
+      return getLocalConfiguration().isRegistrationRequired();
    }
 
    public void setRegistrationRequired(boolean requireRegistration)
    {
-      getRegRequirements().setRegistrationRequired(requireRegistration);
+      getLocalConfiguration().setRegistrationRequired(requireRegistration);
    }
 
    public String getRegistrationPolicyClassName()
    {
-      RegistrationPolicy policy = getRegRequirements().getPolicy();
+      RegistrationPolicy policy = getLocalConfiguration().getPolicy();
       if (policy != null)
       {
          return policy.getClassName();
@@ -118,7 +118,7 @@
    {
       if (isDefaultRegistrationPolicy())
       {
-         DefaultRegistrationPolicy policy = (DefaultRegistrationPolicy)RegistrationPolicyWrapper.unwrap(getRegRequirements().getPolicy());
+         DefaultRegistrationPolicy policy = (DefaultRegistrationPolicy)RegistrationPolicyWrapper.unwrap(getLocalConfiguration().getPolicy());
          return policy.getValidator().getClass().getName();
       }
       throw new IllegalStateException("getValidatorClassName shouldn't be called if we're not using the default registration");
@@ -131,17 +131,17 @@
 
    public boolean isStrictMode()
    {
-      return getConfiguration().isUsingStrictMode();
+      return getLocalConfiguration().isUsingStrictMode();
    }
 
    public void setStrictMode(boolean strictMode)
    {
-      getConfiguration().setUsingStrictMode(strictMode);
+      getLocalConfiguration().setUsingStrictMode(strictMode);
    }
 
    public List<RegistrationPropertyDescription> getRegistrationProperties()
    {
-      return getRegRequirements().getRegistrationProperties();
+      return getLocalConfiguration().getRegistrationProperties();
    }
 
    public List<SelectItem> getSupportedPropertyTypes()
@@ -159,20 +159,24 @@
       try
       {
          // replicate local state to producer state
-         ProducerRegistrationRequirements registrationRequirements = getConfiguration().getRegistrationRequirements();
-         RegistrationConfiguration configuration = getRegRequirements();
+         ProducerConfiguration currentlyPersistedConfiguration = getConfiguration();
+         LocalProducerConfiguration localConfiguration = getLocalConfiguration();
 
-         registrationRequirements.setRegistrationRequiredForFullDescription(configuration.isRegistrationRequiredForFullDescription());
-         registrationRequirements.setRegistrationRequired(configuration.isRegistrationRequired());
+         ProducerRegistrationRequirements registrationRequirements = currentlyPersistedConfiguration.getRegistrationRequirements();
 
+         registrationRequirements.setRegistrationRequiredForFullDescription(localConfiguration.isRegistrationRequiredForFullDescription());
+         registrationRequirements.setRegistrationRequired(localConfiguration.isRegistrationRequired());
+
          registrationRequirements.reloadPolicyFrom(policyClassName, validatorClassName);
 
-         registrationRequirements.setRegistrationProperties(configuration.getRegistrationRequirements().getRegistrationProperties());
+         registrationRequirements.setRegistrationProperties(localConfiguration.getRegistrationRequirements().getRegistrationProperties());
 
+         currentlyPersistedConfiguration.setUsingStrictMode(localConfiguration.isUsingStrictMode());
+
          getConfigurationService().saveConfiguration();
 
          // force a reload local state
-         registrationConfiguration = null;
+         localProducerConfiguration = null;
 
          beanContext.createInfoMessage("bean_producer_save_success");
       }
@@ -191,7 +195,7 @@
          getConfigurationService().reloadConfiguration();
 
          // force a reload local state
-         registrationConfiguration = null;
+         localProducerConfiguration = null;
 
          beanContext.createInfoMessage("bean_producer_cancel_success");
       }
@@ -205,13 +209,13 @@
 
    public String addRegistrationProperty()
    {
-      getRegRequirements().addEmptyRegistrationProperty(PROPERTY + System.currentTimeMillis());
+      getLocalConfiguration().addEmptyRegistrationProperty(PROPERTY + System.currentTimeMillis());
       return PRODUCER;
    }
 
    public String deleteRegistrationProperty()
    {
-      getRegRequirements().removeRegistrationProperty(selectedProp);
+      getLocalConfiguration().removeRegistrationProperty(selectedProp);
       return PRODUCER;
    }
 
@@ -223,6 +227,22 @@
       FacesContext.getCurrentInstance().renderResponse();
    }
 
+   public void strictModeListener(ValueChangeEvent event)
+   {
+      setStrictMode((Boolean)event.getNewValue());
+
+      // bypass the rest of the life cycle and re-display page
+      FacesContext.getCurrentInstance().renderResponse();
+   }
+
+   public void requireRegistrationForFullDescListener(ValueChangeEvent event)
+   {
+      setRegistrationRequiredForFullDescription((Boolean)event.getNewValue());
+
+      // bypass the rest of the life cycle and re-display page
+      FacesContext.getCurrentInstance().renderResponse();
+   }
+
    public void selectProperty(ActionEvent event)
    {
       selectedProp = beanContext.getParameter("propName");
@@ -238,15 +258,16 @@
       return false; // default implementation as not used
    }
 
-   private RegistrationConfiguration getRegRequirements()
+   private LocalProducerConfiguration getLocalConfiguration()
    {
-      if (registrationConfiguration == null)
+      if (localProducerConfiguration == null)
       {
-         registrationConfiguration = new RegistrationConfiguration();
-         registrationConfiguration.initFrom(getConfiguration().getRegistrationRequirements());
+         localProducerConfiguration = new LocalProducerConfiguration();
+         ProducerConfiguration configuration = getConfiguration();
+         localProducerConfiguration.initFrom(configuration.getRegistrationRequirements(), configuration.isUsingStrictMode());
       }
 
-      return registrationConfiguration;
+      return localProducerConfiguration;
    }
 
    public String getV1WSDL()
@@ -259,18 +280,21 @@
       return beanContext.getServerAddress() + "/wsrp-producer/v2/MarkupService?wsdl";
    }
 
-   private static class RegistrationConfiguration
+   private static class LocalProducerConfiguration
    {
       private List<RegistrationPropertyDescription> registrationProperties;
       private ProducerRegistrationRequirements registrationRequirements;
+      private boolean strictMode;
 
-      public void initFrom(ProducerRegistrationRequirements registrationRequirements)
+      public void initFrom(ProducerRegistrationRequirements registrationRequirements, boolean usingStrictMode)
       {
          this.registrationRequirements = new ProducerRegistrationRequirementsImpl(registrationRequirements);
 
          Map descriptions = registrationRequirements.getRegistrationProperties();
          registrationProperties = new LinkedList<RegistrationPropertyDescription>(descriptions.values());
          Collections.sort(registrationProperties);
+
+         this.strictMode = usingStrictMode;
       }
 
       public boolean isRegistrationRequiredForFullDescription()
@@ -328,5 +352,15 @@
       {
          return registrationRequirements;
       }
+
+      public boolean isUsingStrictMode()
+      {
+         return strictMode;
+      }
+
+      public void setUsingStrictMode(boolean usingStrictMode)
+      {
+         this.strictMode = usingStrictMode;
+      }
    }
 }

Modified: components/wsrp/branches/2.0.x/admin-gui/src/main/webapp/jsf/producer/producer.xhtml
===================================================================
--- components/wsrp/branches/2.0.x/admin-gui/src/main/webapp/jsf/producer/producer.xhtml	2011-03-03 15:50:49 UTC (rev 5959)
+++ components/wsrp/branches/2.0.x/admin-gui/src/main/webapp/jsf/producer/producer.xhtml	2011-03-03 15:59:11 UTC (rev 5960)
@@ -1,6 +1,6 @@
 <!--
   ~ JBoss, a division of Red Hat
-  ~ Copyright 2010, Red Hat Middleware, LLC, and individual
+  ~ Copyright 2011, 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.
@@ -41,9 +41,13 @@
       <h:form id="producer-form">
          <h:panelGrid columns="2" width="100%">
             <h:selectBooleanCheckbox id="cons-reg-req-check"
-                                     value="#{producer.registrationRequiredForFullDescription}"/>
+                                     value="#{producer.registrationRequiredForFullDescription}"
+                                     immediate="true"
+                                     valueChangeListener="#{producer.requireRegistrationForFullDescListener}"/>
             <h:outputText value="#{i18n.producer_config_sd_requires_reg}"/>
-            <h:selectBooleanCheckbox value="#{producer.strictMode}"/>
+            <h:selectBooleanCheckbox id="strict-mode-check" value="#{producer.strictMode}"
+                                     immediate="true"
+                                     valueChangeListener="#{producer.strictModeListener}"/>
             <h:outputText value="#{i18n.producer_config_strict}"/>
 
             <h:selectBooleanCheckbox id="req-reg-check" value="#{producer.registrationRequired}" immediate="true"
@@ -182,4 +186,4 @@
       </h:form>
 
    </ui:define>
-</ui:decorate>
\ No newline at end of file
+</ui:decorate>



More information about the gatein-commits mailing list