tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hls...@apache.org
Subject svn commit: r293369 - in /jakarta/tapestry/trunk/examples/Vlib/src: context/ context/WEB-INF/ java/org/apache/tapestry/vlib/pages/ java/org/apache/tapestry/vlib/pages/admin/
Date Mon, 03 Oct 2005 15:45:20 GMT
Author: hlship
Date: Mon Oct  3 08:45:13 2005
New Revision: 293369

URL: http://svn.apache.org/viewcvs?rev=293369&view=rev
Log:
Continue upgrading the Virtual Library to 4.0.

Modified:
    jakarta/tapestry/trunk/examples/Vlib/src/context/EditProfile.html
    jakarta/tapestry/trunk/examples/Vlib/src/context/EditPublishers.html
    jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.page
    jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.properties
    jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.page
    jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.properties
    jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/EditProfile.java
    jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/admin/EditPublishers.java

Modified: jakarta/tapestry/trunk/examples/Vlib/src/context/EditProfile.html
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Vlib/src/context/EditProfile.html?rev=293369&r1=293368&r2=293369&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Vlib/src/context/EditProfile.html (original)
+++ jakarta/tapestry/trunk/examples/Vlib/src/context/EditProfile.html Mon Oct  3 08:45:13
2005
@@ -1,51 +1,65 @@
 <html jwcid="$content$">
-<body jwcid="border@Border">
-
-<p>
-	Update your registration information using the form below. Fields marked with
-	<span class="required-field">*</span> are required.
-</p>
-
-<span jwcid="@ShowError"/>
-<span jwcid="@ShowValidationError" delegate="ognl:validationDelegate"/>
-
-<form jwcid="form@Form" listener="listener:updateProfile" delegate="ognl:validationDelegate">
-  <table class="form">
-    <tr>
-      <th>First Name</th>
-      <td></td>
-      <td width="390"><input jwcid="@TextField" value="ognl:attributes.firstName"
size="30" maxlength="30" type="text"/>
-      </td>
-    </tr>
-    <tr>
-      <th><span jwcid="@FieldLabel" field="component:inputLastName">Last Name</span></th>
-    <td><span class="required-field">*</span></td>
-      <td><input jwcid="inputLastName" size="30" maxlength="30" type="text"/>
-      </td>
-    </tr>
-    <tr>
-      <th><span jwcid="@FieldLabel" field="component:inputEmail">E-mail</span></th>
-      <td><span class="required-field">*</span></td>
-      <td><input jwcid="inputEmail" type="text" size="30" maxlength="60"/>
-      </td>
-    </tr>
-    <tr>
-      <th><span jwcid="@FieldLabel" field="component:inputPassword1">Password</span></th>
-      <td></td>
-      <td><input jwcid="inputPassword1" type="password" size="20" maxlength="20"/>
-      </td>
-    </tr>
-    <tr>
-      <th><span jwcid="@FieldLabel" field="component:inputPassword2">Password
(again)</span></th>
-      <td></td>
-      <td><input jwcid="inputPassword2" type="password" size="20" maxlength="20"/>
-      </td>
-    </tr>
-    <tr>
-      <td colspan="2"></td>
-      <td><input type="image" src="images/update.png" height="20" width="52" border="0"
alt="Update"/></td>
-    </tr>
-  </table>
-</form>
-</body>
+  <body jwcid="border@Border">
+    <p> Update your registration information using the form below. Fields marked with
<span class="required-field"
+      >*</span> are required.</p>
+    <span jwcid="@ShowError"/>
+    <span jwcid="@ShowValidationError" delegate="ognl:validationDelegate"/>
+    <form jwcid="form">
+      <table class="form">
+        <tr>
+          <th>First Name</th>
+          <td/>
+          <td width="390">
+            <input jwcid="firstName@TextField" value="ognl:attributes.firstName" size="30"
maxlength="30" type="text"/>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <span jwcid="@FieldLabel" field="component:lastName">Last Name</span>
+          </th>
+          <td>
+            <span class="required-field">*</span>
+          </td>
+          <td>
+            <input jwcid="lastName" size="30" maxlength="30" type="text"/>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <span jwcid="@FieldLabel" field="component:email">E-mail</span>
+          </th>
+          <td>
+            <span class="required-field">*</span>
+          </td>
+          <td>
+            <input jwcid="email" type="text" size="30" maxlength="60"/>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <span jwcid="@FieldLabel" field="component:password1">Password</span>
+          </th>
+          <td/>
+          <td>
+            <input jwcid="password1" type="password" size="20" maxlength="20"/>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <span jwcid="@FieldLabel" field="component:password2">Password (again)</span>
+          </th>
+          <td/>
+          <td>
+            <input jwcid="password2" type="password" size="20" maxlength="20"/>
+          </td>
+        </tr>
+        <tr>
+          <td colspan="2"/>
+          <td>
+            <input type="image" src="images/update.png" height="20" width="52" border="0"
alt="Update"/>
+          </td>
+        </tr>
+      </table>
+    </form>
+  </body>
 </html>

Modified: jakarta/tapestry/trunk/examples/Vlib/src/context/EditPublishers.html
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Vlib/src/context/EditPublishers.html?rev=293369&r1=293368&r2=293369&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Vlib/src/context/EditPublishers.html (original)
+++ jakarta/tapestry/trunk/examples/Vlib/src/context/EditPublishers.html Mon Oct  3 08:45:13
2005
@@ -1,8 +1,8 @@
 <html jwcid="$content$">
-<body jwcid="@Border">
+<body jwcid="border@Border">
 <span jwcid="@ShowMessage"/>
-<span jwcid="@ShowError"/>
-<form jwcid="@Form" listener="listener:processForm">
+<span jwcid="@ShowValidationError" delegate="ognl:validationDelegate"/>
+<form jwcid="form">
   <p>This page allows you to rename and delete publishers.
   </p>
   <table class="data">
@@ -10,10 +10,10 @@
       <th>Publisher</th>
       <th>Delete</th>
     </tr>
-    <tr jwcid="listEdit">
-      <td class="control"><input jwcid="inputName@TextField" value="ognl:publisher.name"
size="40" maxlength="40"/>
+    <tr jwcid="loop">
+      <td class="control"><input jwcid="name" size="40" maxlength="40"/>
       </td>
-      <td class="checkbox"><input type="checkbox" jwcid="delete@Checkbox" selected="ognl:listEditMap.deleted"/>
+      <td class="checkbox"><input type="checkbox" jwcid="delete@Checkbox" value="ognl:deleted"/>
       </td>
     </tr>
     <tr>

Modified: jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.page
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.page?rev=293369&r1=293368&r2=293369&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.page (original)
+++ jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.page Mon Oct  3 08:45:13
2005
@@ -16,47 +16,39 @@
 -->
 
 <!DOCTYPE page-specification PUBLIC
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
+  "-//Apache Software Foundation//Tapestry Specification 4.0//EN" 
+  "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
 	
-<page-specification class="org.apache.tapestry.vlib.pages.EditProfile">
-
-  <property-specification name="error" type="java.lang.String"/>
-  <property-specification name="password1" type="java.lang.String"/>
-  <property-specification name="password2" type="java.lang.String"/>
-  <property-specification name="attributes" type="java.util.Map"/>
+<page-specification>
  
-  <bean name="required" class="org.apache.tapestry.valid.StringValidator" lifecycle="page">
-  	<set-property name="required" expression="true"/>
-  	<set-property name="clientScriptingEnabled" expression="true"/>
-  </bean>
-  
-  <bean name="optional" class="org.apache.tapestry.valid.StringValidator" lifecycle="page"/>
-
-  <component id="inputLastName" type="ValidField">
-    <binding name="value" expression="attributes.lastName"/>
-    <static-binding name="displayName" value="Last Name"/>   
-    <binding name="validator" expression="beans.required"/>
+  <component id="form" type="Form">
+    <binding name="success" value="listener:updateProfile"/>
+    <binding name="delegate" value="validationDelegate"/>
+    <binding name="clientValidationEnabled" value="true"/>
+  </component>
+ 
+  <component id="lastName" type="TextField">
+    <binding name="value" value="attributes.lastName"/>
+    <binding name="displayName" value="message:last-name-label"/>   
+    <binding name="validators" value="validators:required"/>
   </component>
 
-  <component id="inputEmail" type="ValidField">
-    <binding name="value" expression="attributes.email"/>
-    <static-binding name="displayName" value="E-Mail"/>
-    <binding name="validator" expression="beans.required"/>
+  <component id="email" type="TextField">
+    <binding name="value" value="attributes.email"/>
+    <binding name="displayName" value="message:email-label"/>
+    <binding name="validators" value="validators:required,email"/>
   </component>
 
-  <component id="inputPassword1" type="ValidField">
-    <binding name="value" expression="password1"/>
-    <static-binding name="displayName" value="Password"/> 
-    <binding name="validator" expression="beans.optional"/>
-    <binding name="hidden" expression="true"/>
+  <component id="password1" type="TextField">
+    <binding name="value" value="password1"/>
+    <binding name="displayName" value="message:password1-label"/>
+    <binding name="hidden" value="true"/>
   </component>
 
-  <component id="inputPassword2" type="ValidField">
-    <binding name="value" expression="password2"/>
-    <static-binding name="displayName" value="Password (again)"/>  
-    <binding name="validator" expression="beans.optional"/>
-    <binding name="hidden" expression="true"/>
+  <component id="password2" type="TextField">
+    <binding name="value" value="password2"/>
+    <binding name="displayName" value="message:password2-label"/>
+      <binding name="hidden" value="true"/>
   </component>
   
 </page-specification>

Modified: jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.properties
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.properties?rev=293369&r1=293368&r2=293369&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.properties (original)
+++ jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditProfile.properties Mon Oct
 3 08:45:13 2005
@@ -13,4 +13,8 @@
 # limitations under the License.
 
 enter-password-twice=Enter the new password, then re-enter it to confirm.
-password-must-match=Enter the same password in both fields.
\ No newline at end of file
+password-must-match=Enter the same password in both fields.
+last-name-label=Last Name
+email-label=E-Mail
+password1-label=Password
+password2-label=Password (again)
\ No newline at end of file

Modified: jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.page
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.page?rev=293369&r1=293368&r2=293369&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.page (original)
+++ jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.page Mon Oct 
3 08:45:13 2005
@@ -16,22 +16,28 @@
 -->
 
 <!DOCTYPE page-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
-  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
+  "-//Apache Software Foundation//Tapestry Specification 4.0//EN" 
+  "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
 
 <page-specification class="org.apache.tapestry.vlib.pages.admin.EditPublishers">
-
-  <property-specification name="listEditMap" type="org.apache.tapestry.form.ListEditMap"/>
-  <property-specification name="message" type="java.lang.String"/>
-  <property-specification name="error" type="java.lang.String"/>
-  
-  <property-specification name="publisher" type="org.apache.tapestry.vlib.ejb.Publisher"/>
+ 
+  <component id="form" type="Form">
+    <binding name="success" value="listener:processForm"/>
+    <binding name="clientValidationEnabled" value="true"/>
+    <binding name="delegate" value="validationDelegate"/>
+  </component>
+ 
+  <component id="loop" type="For">
+  	<binding name="source" value="publishers"/>
+  	<binding name="value" value="publisher"/>
+  	<binding name="element" value="literal:tr"/>
+    <binding name="primaryKeyConverter" value="publisherConverter"/>
+  </component>
   
-  <component id="listEdit" type="ListEdit">
-  	<binding name="source" expression="listEditMap.keys"/>
-  	<binding name="value" expression="listEditMap.key"/>
-  	<static-binding name="element" value="tr"/>
-  	<binding name="listener" expression="listeners.synchronizePublisher"/>
+  <component id="name" type="TextField">
+    <binding name="value" value="publisher.name"/>
+    <binding name="validators" value="validators:required"/>
+    <binding name="displayName" value="message:publisher-name-label"/>
   </component>
   
 </page-specification>

Modified: jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.properties
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.properties?rev=293369&r1=293368&r2=293369&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.properties (original)
+++ jakarta/tapestry/trunk/examples/Vlib/src/context/WEB-INF/EditPublishers.properties Mon
Oct  3 08:45:13 2005
@@ -14,4 +14,6 @@
 
 out-of-date=The data submitted in the form is out of date.  Please try again.
 read-failure=Unable to read the list of publishers.
-update-failure=Unable to update publishers.
\ No newline at end of file
+update-failure=Unable to update publishers.
+publisher-name-label=Publisher Name
+publishers-updated=Updated publishers.
\ No newline at end of file

Modified: jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/EditProfile.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/EditProfile.java?rev=293369&r1=293368&r2=293369&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/EditProfile.java
(original)
+++ jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/EditProfile.java
Mon Oct  3 08:45:13 2005
@@ -59,11 +59,11 @@
     @InjectState("visit")
     public abstract Visit getVisitState();
 
-    @InjectComponent("inputPassword1")
-    public abstract IFormComponent getInputPassword1();
+    @InjectComponent("password1")
+    public abstract IFormComponent getPassword1Field();
 
-    @InjectComponent("inputPassword2")
-    public abstract IFormComponent getInputPassword2();
+    @InjectComponent("password2")
+    public abstract IFormComponent getPassword2Field();
 
     @Message
     public abstract String enterPasswordTwice();
@@ -126,10 +126,10 @@
 
         IValidationDelegate delegate = getValidationDelegate();
 
-        delegate.setFormComponent(getInputPassword1());
+        delegate.setFormComponent(getPassword1Field());
         delegate.recordFieldInputValue(null);
 
-        delegate.setFormComponent(getInputPassword2());
+        delegate.setFormComponent(getPassword2Field());
         delegate.recordFieldInputValue(null);
 
         if (delegate.getHasErrors())
@@ -139,7 +139,7 @@
 
         if (HiveMind.isBlank(password1) != HiveMind.isBlank(password2))
         {
-            setErrorField("inputPassword1", enterPasswordTwice());
+            delegate.record(getPassword1Field(), enterPasswordTwice());
 
             return;
         }
@@ -148,7 +148,7 @@
         {
             if (!password1.equals(password2))
             {
-                setErrorField("inputPassword1", passwordMustMatch());
+                delegate.record(getPassword1Field(), passwordMustMatch());
                 return;
             }
 

Modified: jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/admin/EditPublishers.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/admin/EditPublishers.java?rev=293369&r1=293368&r2=293369&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/admin/EditPublishers.java
(original)
+++ jakarta/tapestry/trunk/examples/Vlib/src/java/org/apache/tapestry/vlib/pages/admin/EditPublishers.java
Mon Oct  3 08:45:13 2005
@@ -15,7 +15,10 @@
 package org.apache.tapestry.vlib.pages.admin;
 
 import java.rmi.RemoteException;
-import java.util.List;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
 
 import javax.ejb.FinderException;
 import javax.ejb.RemoveException;
@@ -23,14 +26,16 @@
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.PageRedirectException;
-import org.apache.tapestry.Tapestry;
+import org.apache.tapestry.annotations.InjectPage;
+import org.apache.tapestry.annotations.Message;
+import org.apache.tapestry.components.IPrimaryKeyConverter;
+import org.apache.tapestry.event.PageBeginRenderListener;
 import org.apache.tapestry.event.PageEvent;
-import org.apache.tapestry.event.PageRenderListener;
-import org.apache.tapestry.form.ListEditMap;
 import org.apache.tapestry.vlib.AdminPage;
 import org.apache.tapestry.vlib.VirtualLibraryEngine;
 import org.apache.tapestry.vlib.ejb.IOperations;
 import org.apache.tapestry.vlib.ejb.Publisher;
+import org.apache.tapestry.vlib.pages.MyLibrary;
 
 /**
  * Allows editting of the publishers in the database, including deleting publishers (which
can be
@@ -39,29 +44,74 @@
  * @author Howard Lewis Ship
  */
 
-public abstract class EditPublishers extends AdminPage implements PageRenderListener
+public abstract class EditPublishers extends AdminPage implements PageBeginRenderListener
 {
-    public abstract ListEditMap getListEditMap();
-
-    public abstract void setListEditMap(ListEditMap listEditMap);
-
     public abstract Publisher getPublisher();
 
     public abstract void setPublisher(Publisher publisher);
 
-    public void synchronizePublisher(IRequestCycle cycle)
+    public abstract Map<Integer, Publisher> getPublisherMap();
+
+    public abstract void setPublisherMap(Map<Integer, Publisher> map);
+
+    public abstract void setPublishers(Publisher[] publishers);
+
+    public abstract void setDeletedPublishers(Set<Integer> deleted);
+
+    public abstract Set<Integer> getDeletedPublishers();
+
+    @Message
+    public abstract String outOfDate();
+
+    @Message
+    public abstract String updateFailure();
+
+    @Message
+    public abstract String publishersUpdated();
+
+    @InjectPage("MyLibrary")
+    public abstract MyLibrary getMyLibrary();
+
+    public class PublisherKeyConverter implements IPrimaryKeyConverter
     {
-        ListEditMap map = getListEditMap();
+        public Object getPrimaryKey(Object value)
+        {
+            Publisher publisher = (Publisher) value;
 
-        Publisher publisher = (Publisher) map.getValue();
+            return publisher.getId();
+        }
 
-        if (publisher == null)
+        public Object getValue(Object primaryKey)
         {
-            setError(getMessage("out-of-date"));
-            throw new PageRedirectException(this);
+            Integer id = (Integer) primaryKey;
+
+            Publisher result = getPublisherMap().get(id);
+
+            if (result == null)
+            {
+                getValidationDelegate().record(null, outOfDate());
+                throw new PageRedirectException(EditPublishers.this);
+            }
+
+            return result;
         }
 
-        setPublisher(publisher);
+    }
+
+    public IPrimaryKeyConverter getPublisherConverter()
+    {
+        return new PublisherKeyConverter();
+    }
+
+    public boolean isDeleted()
+    {
+        return false;
+    }
+
+    public void setDeleted(boolean deleted)
+    {
+        if (deleted)
+            getDeletedPublishers().add(getPublisher().getId());
     }
 
     /**
@@ -87,33 +137,35 @@
             }
             catch (RemoteException ex)
             {
-                vengine.rmiFailure(getMessage("read-failure"), ex, i++);
+                vengine.rmiFailure(updateFailure(), ex, i++);
             }
         }
 
-        ListEditMap map = new ListEditMap();
+        // This is really only needed during render, not rewind
+
+        setPublishers(publishers);
 
-        int count = Tapestry.size(publishers);
+        Map<Integer, Publisher> publisherMap = new HashMap<Integer, Publisher>();
 
-        for (i = 0; i < count; i++)
-            map.add(publishers[i].getId(), publishers[i]);
+        for (Publisher publisher : publishers)
+        {
+            publisherMap.put(publisher.getId(), publisher);
+        }
 
-        setListEditMap(map);
+        setPublisherMap(publisherMap);
     }
 
     public void processForm(IRequestCycle cycle)
     {
-        if (isInError())
-            return;
+        Map<Integer, Publisher> publisherMap = getPublisherMap();
+        Set<Integer> deleted = getDeletedPublishers();
 
-        ListEditMap map = getListEditMap();
-        List updateList = map.getValues();
-        List deletedIds = map.getDeletedKeys();
+        // Delete from the map anything that was marked deleted
 
-        Publisher[] updated = (Publisher[]) updateList.toArray(new Publisher[updateList.size()]);
+        publisherMap.keySet().removeAll(deleted);
 
-        Integer[] deleted = deletedIds == null ? null : (Integer[]) deletedIds
-                .toArray(new Integer[deletedIds.size()]);
+        Publisher[] updated = publisherMap.values().toArray(new Publisher[0]);
+        Integer[] deletedKeys = deleted.toArray(new Integer[0]);
 
         // Now, push the updates through to the database
 
@@ -126,7 +178,7 @@
             {
                 IOperations operations = vengine.getOperations();
 
-                operations.updatePublishers(updated, deleted);
+                operations.updatePublishers(updated, deletedKeys);
 
                 break;
             }
@@ -140,18 +192,26 @@
             }
             catch (RemoteException ex)
             {
-                vengine.rmiFailure(getMessage("update-failure"), ex, i++);
+                vengine.rmiFailure(updateFailure(), ex, i++);
             }
         }
 
         // Clear any cached info about publishers.
 
         vengine.clearCache();
+
+        MyLibrary page = getMyLibrary();
+
+        page.setMessage(publishersUpdated());
+
+        page.activate();
     }
 
     public void pageBeginRender(PageEvent event)
     {
         readPublishers();
+
+        setDeletedPublishers(new HashSet());
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org


Mime
View raw message