dflorey     2004/06/17 07:54:57

  Modified:    
proposals/projector/src/java/org/apache/slide/projector/processor/security
                        DeleteUser.java AddRole.java
               proposals/projector/src/java/org/apache/slide/projector/processor/table
                        TableGenerator.java TableMapRenderer.java
                        TablePager.java
               proposals/projector/src/java/org/apache/slide/projector/connector/webdav
                        WebdavConnector.java
               proposals/projector/src/java/org/apache/slide/projector/processor/query
                        PropertyQuery.java
               proposals/projector/src/java/org/apache/slide/projector/connector
                        Connector.java
               proposals/projector/src/java/org/apache/slide/projector/processor
                        TemplateMapRenderer.java
               proposals/projector/src/java/org/apache/slide/projector/descriptor
                        MapValueDescriptor.java
               proposals/projector/src/java/org/apache/slide/projector/processor/tree
                        TreeLocalizer.java
  Added:       
proposals/projector/src/java/org/apache/slide/projector/processor/security
                        RemoveRole.java DeleteRole.java ListRoles.java
                        CreateRole.java
               proposals/projector/src/java/org/apache/slide/projector/connector
                        RoleExistsException.java
  Log:
  Admin application core working (but still ugly...)
  
  Revision  Changes    Path
  1.3       +7 -5      
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/DeleteUser.java
  
  Index: DeleteUser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/DeleteUser.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DeleteUser.java   16 Jun 2004 16:45:37 -0000      1.2
  +++ DeleteUser.java   17 Jun 2004 14:54:56 -0000      1.3
  @@ -23,6 +23,7 @@
   
   package org.apache.slide.projector.processor.security;
   
  +import org.apache.slide.projector.Constants;
   import org.apache.slide.projector.Context;
   import org.apache.slide.projector.Processor;
   import org.apache.slide.projector.Result;
  @@ -30,6 +31,7 @@
   import org.apache.slide.projector.connector.ConnectorFactory;
   import org.apache.slide.projector.descriptor.*;
   import org.apache.slide.projector.i18n.ParameterMessage;
  +import org.apache.slide.projector.value.URIValue;
   
   import java.util.Map;
   
  @@ -47,8 +49,8 @@
       private final static ResultDescriptor resultDescriptor = new 
ResultDescriptor(new StateDescriptor[] { StateDescriptor.OK_DESCRIPTOR });
   
       public Result process(Map parameter, Context context) throws Exception {
  -     URI uri = (URI)parameter.get(USER);
  -     ConnectorFactory.getConnector().deleteUser(uri, context.getCredentials());
  +     URI user = new URIValue(Constants.REPOSITORY_DOMAIN+parameter.get(USER));
  +     ConnectorFactory.getConnector().deleteUser(user, context.getCredentials());
        return Result.OK;
       }
   
  
  
  
  1.2       +6 -4      
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/AddRole.java
  
  Index: AddRole.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/AddRole.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AddRole.java      16 Jun 2004 16:45:37 -0000      1.1
  +++ AddRole.java      17 Jun 2004 14:54:56 -0000      1.2
  @@ -23,6 +23,7 @@
   
   package org.apache.slide.projector.processor.security;
   
  +import org.apache.slide.projector.Constants;
   import org.apache.slide.projector.Context;
   import org.apache.slide.projector.Processor;
   import org.apache.slide.projector.Result;
  @@ -30,6 +31,7 @@
   import org.apache.slide.projector.connector.ConnectorFactory;
   import org.apache.slide.projector.descriptor.*;
   import org.apache.slide.projector.i18n.ParameterMessage;
  +import org.apache.slide.projector.value.URIValue;
   
   import java.util.Map;
   
  @@ -49,8 +51,8 @@
       private final static ResultDescriptor resultDescriptor = new 
ResultDescriptor(new StateDescriptor[] { StateDescriptor.OK_DESCRIPTOR });
   
       public Result process(Map parameter, Context context) throws Exception {
  -     URI user = (URI)parameter.get(USER);
  -     URI role = (URI)parameter.get(ROLE);
  +     URI user = new URIValue(Constants.REPOSITORY_DOMAIN+parameter.get(USER));
  +     URI role = new URIValue(Constants.REPOSITORY_DOMAIN+parameter.get(ROLE));
        ConnectorFactory.getConnector().addRole(user, role, context.getCredentials());
        return Result.OK;
       }
  
  
  
  1.1                  
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/RemoveRole.java
  
  Index: RemoveRole.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/RemoveRole.java,v
 1.1 2004/06/17 14:54:56 dflorey Exp $
   * $Revision: 1.1 $
   * $Date: 2004/06/17 14:54:56 $
   *
   * ====================================================================
   *
   * Copyright 2004 The Apache Software Foundation 
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   */
  
  package org.apache.slide.projector.processor.security;
  
  import org.apache.slide.projector.Constants;
  import org.apache.slide.projector.Context;
  import org.apache.slide.projector.Processor;
  import org.apache.slide.projector.Result;
  import org.apache.slide.projector.URI;
  import org.apache.slide.projector.connector.ConnectorFactory;
  import org.apache.slide.projector.descriptor.*;
  import org.apache.slide.projector.i18n.ParameterMessage;
  import org.apache.slide.projector.value.URIValue;
  
  import java.util.Map;
  
  /**
   * The Event class
   * 
   * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Florey</a>
   */
  public class RemoveRole implements Processor {
      public final static String USER = "user";
      public final static String ROLE = "role";
  
      private final static ParameterDescriptor[] parameterDescriptors = new 
ParameterDescriptor[] {
          new ParameterDescriptor(USER, new 
ParameterMessage("addRole/parameter/user"), new URIValueDescriptor()),
          new ParameterDescriptor(ROLE, new 
ParameterMessage("addRole/parameter/role"), new URIValueDescriptor())
      };
      private final static ResultDescriptor resultDescriptor = new 
ResultDescriptor(new StateDescriptor[] { StateDescriptor.OK_DESCRIPTOR });
  
      public Result process(Map parameter, Context context) throws Exception {
        URI user = new URIValue(Constants.REPOSITORY_DOMAIN+parameter.get(USER));
        URI role = new URIValue(Constants.REPOSITORY_DOMAIN+parameter.get(ROLE));
        ConnectorFactory.getConnector().removeRole(user, role, 
context.getCredentials());
        return Result.OK;
      }
  
      public ParameterDescriptor[] getParameterDescriptors() {
          return parameterDescriptors;
      }
  
      public ResultDescriptor getResultDescriptor() {
          return resultDescriptor;
      }
  }
  
  
  1.1                  
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/DeleteRole.java
  
  Index: DeleteRole.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/DeleteRole.java,v
 1.1 2004/06/17 14:54:56 dflorey Exp $
   * $Revision: 1.1 $
   * $Date: 2004/06/17 14:54:56 $
   *
   * ====================================================================
   *
   * Copyright 2004 The Apache Software Foundation 
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   */
  
  package org.apache.slide.projector.processor.security;
  
  import org.apache.slide.projector.Constants;
  import org.apache.slide.projector.Context;
  import org.apache.slide.projector.Processor;
  import org.apache.slide.projector.Result;
  import org.apache.slide.projector.URI;
  import org.apache.slide.projector.connector.ConnectorFactory;
  import org.apache.slide.projector.descriptor.*;
  import org.apache.slide.projector.i18n.ParameterMessage;
  import org.apache.slide.projector.value.URIValue;
  
  import java.util.Map;
  
  /**
   * The Event class
   * 
   * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Florey</a>
   */
  public class DeleteRole implements Processor {
      public final static String ROLE = "role";
  
      private final static ParameterDescriptor[] parameterDescriptors = new 
ParameterDescriptor[] {
          new ParameterDescriptor(ROLE, new 
ParameterMessage("deleteRole/parameter/role"), new URIValueDescriptor())
      };
      private final static ResultDescriptor resultDescriptor = new 
ResultDescriptor(new StateDescriptor[] { StateDescriptor.OK_DESCRIPTOR });
  
      public Result process(Map parameter, Context context) throws Exception {
        URI role = new URIValue(Constants.REPOSITORY_DOMAIN+parameter.get(ROLE));
        ConnectorFactory.getConnector().deleteRole(role, context.getCredentials());
        return Result.OK;
      }
  
      public ParameterDescriptor[] getParameterDescriptors() {
          return parameterDescriptors;
      }
  
      public ResultDescriptor getResultDescriptor() {
          return resultDescriptor;
      }
  }
  
  
  1.1                  
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/ListRoles.java
  
  Index: ListRoles.java
  ===================================================================
  package org.apache.slide.projector.processor.security;
  
  import org.apache.slide.projector.connector.ConnectorFactory;
  import org.apache.slide.projector.connector.UserExistsException;
  import org.apache.slide.projector.descriptor.*;
  import org.apache.slide.projector.i18n.DefaultMessage;
  import org.apache.slide.projector.i18n.ErrorMessage;
  import org.apache.slide.projector.i18n.ParameterMessage;
  import org.apache.slide.projector.value.ArrayValue;
  import org.apache.slide.projector.value.NullValue;
  import org.apache.slide.projector.value.URIValue;
  import org.apache.slide.projector.value.Value;
  import org.apache.slide.projector.Information;
  import org.apache.slide.projector.*;
  
  import java.util.Map;
  
  /**
   * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Florey</a>
   * @version $Revision: 1.1 $
   */
  
  public class ListRoles implements Processor {
      private final static String USER = "user";
  
      private final static String ROLES = "roles";
      private final static String OK = "ok";
      private final static String FAILED = "failed";
  
      private final static ParameterDescriptor [] parameterDescriptor = new 
ParameterDescriptor[] {
              new ParameterDescriptor(USER, new 
ParameterMessage("listRoles/parameter/user"), new URIValueDescriptor())
          };
  
      private final static ResultDescriptor resultDescriptor = new ResultDescriptor(
                new StateDescriptor[] { StateDescriptor.OK_DESCRIPTOR },
                        new ResultEntryDescriptor[] {
                        new ResultEntryDescriptor(ROLES, new 
DefaultMessage("listRoles/result/roles"), ArrayValue.CONTENT_TYPE, false)
                });
  
      public Result process(Map parameter, Context context) throws Exception {
          URI user = new URIValue(Constants.REPOSITORY_DOMAIN+parameter.get(USER));
          ArrayValue roles = ConnectorFactory.getConnector().listRoles(user, 
context.getCredentials());
          return new Result(StateDescriptor.OK, ROLES, roles);
      }
  
      public ParameterDescriptor[] getParameterDescriptors() {
        return parameterDescriptor;
      }
  
      public ResultDescriptor getResultDescriptor() {
        return resultDescriptor;
      }
  }
  
  
  1.1                  
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/security/CreateRole.java
  
  Index: CreateRole.java
  ===================================================================
  package org.apache.slide.projector.processor.security;
  
  import org.apache.slide.projector.connector.ConnectorFactory;
  import org.apache.slide.projector.connector.RoleExistsException;
  import org.apache.slide.projector.connector.UserExistsException;
  import org.apache.slide.projector.descriptor.*;
  import org.apache.slide.projector.i18n.DefaultMessage;
  import org.apache.slide.projector.i18n.ErrorMessage;
  import org.apache.slide.projector.i18n.ParameterMessage;
  import org.apache.slide.projector.value.NullValue;
  import org.apache.slide.projector.value.URIValue;
  import org.apache.slide.projector.value.Value;
  import org.apache.slide.projector.Information;
  import org.apache.slide.projector.*;
  
  import java.util.Map;
  
  /**
   * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Florey</a>
   * @version $Revision: 1.1 $
   */
  
  public class CreateRole implements Processor {
      private final static String ROLENAME = "rolename";
      
      private final static String ROLE = "role";
      private final static String OK = "ok";
      private final static String FAILED = "failed";
  
      private final static ParameterDescriptor [] parameterDescriptor = new 
ParameterDescriptor[] {
              new ParameterDescriptor(ROLENAME, new 
ParameterMessage("createRole/parameter/rolename"), new StringValueDescriptor(1,24)),
          };
  
      private final static ResultDescriptor resultDescriptor = new ResultDescriptor(
                new StateDescriptor[] {
                                new StateDescriptor(OK, new 
DefaultMessage("createRole/state/ok")),
                                        new StateDescriptor(FAILED, new 
DefaultMessage("createRole/state/failed"))
                }, new ResultEntryDescriptor[] {
                                new ResultEntryDescriptor(ROLE, new 
DefaultMessage("createRole/result/role"), URIValue.CONTENT_TYPE, false)
                });
  
      public Result process(Map parameter, Context context) throws Exception {
          String rolename = parameter.get(ROLENAME).toString();
          String state = OK;
          Value role = NullValue.NULL;
          try {
                role = ConnectorFactory.getConnector().createRole(rolename, 
context.getCredentials());  
          } catch ( RoleExistsException exception ) {
                context.addInformation(new Information(Information.ERROR, 
exception.getErrorMessage(), new String[] { ROLENAME }));
                state = FAILED;
          }
          if ( role == null ) {
              context.addInformation(new Information(Information.ERROR, new 
ErrorMessage("createRole/failed"), new String[0]));
              state = FAILED;
          }
          return new Result(state, ROLE, role);
      }
  
      public ParameterDescriptor[] getParameterDescriptors() {
        return parameterDescriptor;
      }
  
      public ResultDescriptor getResultDescriptor() {
        return resultDescriptor;
      }
  }
  
  
  1.3       +2 -2      
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TableGenerator.java
  
  Index: TableGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TableGenerator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TableGenerator.java       1 Jun 2004 07:49:58 -0000       1.2
  +++ TableGenerator.java       17 Jun 2004 14:54:56 -0000      1.3
  @@ -21,7 +21,7 @@
    * @version $Revision$
    */
   
  -public class TableGenerator extends TemplateMapRenderer {
  +public class TableGenerator extends TableMapRenderer {
       final private static String HEADER_FRAGMENT = "header";
       final private static String FOOTER_FRAGMENT = "footer";
       final private static String FIRST_FRAGMENT = "first";
  
  
  
  1.4       +40 -11    
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TableMapRenderer.java
  
  Index: TableMapRenderer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TableMapRenderer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TableMapRenderer.java     15 Jun 2004 16:34:21 -0000      1.3
  +++ TableMapRenderer.java     17 Jun 2004 14:54:56 -0000      1.4
  @@ -6,13 +6,17 @@
   import org.apache.slide.projector.processor.SimpleProcessor;
   import org.apache.slide.projector.util.StoreHelper;
   import org.apache.slide.projector.value.*;
  +import org.apache.slide.projector.descriptor.ArrayValueDescriptor;
  +import org.apache.slide.projector.descriptor.MapValueDescriptor;
   import org.apache.slide.projector.descriptor.NumberValueDescriptor;
   import org.apache.slide.projector.descriptor.ParameterDescriptor;
   import org.apache.slide.projector.descriptor.StringValueDescriptor;
   import org.apache.slide.projector.i18n.ErrorMessage;
   import org.apache.slide.projector.i18n.ParameterMessage;
   
  +import java.util.ArrayList;
   import java.util.Iterator;
  +import java.util.List;
   import java.util.Map;
   import java.util.HashMap;
   
  @@ -39,6 +43,7 @@
       private Template emptyTemplate;
   
       private ParameterDescriptor []parameterDescriptors;
  +    private String[] repeatedFragments;
   
       public TableMapRenderer() {
           setRequiredFragments(new String[] { DEFAULT_FRAGMENT });
  @@ -47,23 +52,35 @@
       }
   
       public void configure(StreamableValue config) throws ConfigurationException {
  -        super.configure(config); 
  +        super.configure(config);
           ParameterDescriptor []parentParameterDescriptors = 
super.getParameterDescriptors();
           // remove fragment parameter
  -        parameterDescriptors = new 
ParameterDescriptor[parentParameterDescriptors.length+3];
  -        int index = 0;
  +        List parameterDescriptorList = new ArrayList();
           for ( int i = 0; i < parentParameterDescriptors.length; i++ ) {
               ParameterDescriptor descriptor = parentParameterDescriptors[i];
               if ( descriptor.getName() != FRAGMENT ) {
  -                parameterDescriptors[index] = parentParameterDescriptors[i];
  -                index++;
  +             if ( descriptor.getName().equals(SimpleProcessor.INPUT) ) {
  +                     // check if entry descriptor is caused by repeated fragments
  +                     List entryDescriptors = 
((MapValueDescriptor)descriptor.getValueDescriptor()).getEntryDescriptors(); 
  +                     for ( Iterator j = entryDescriptors.iterator(); j.hasNext(); ) 
{
  +                             ParameterDescriptor entryDescriptor = 
(ParameterDescriptor)j.next();
  +                             if ( !repeatedParameterDescriptor(entryDescriptor) ) {
  +                                     parameterDescriptorList.add(entryDescriptor);
  +                                     j.remove();
  +                        }
  +                     }
  +                     parameterDescriptorList.add(new 
ParameterDescriptor(SimpleProcessor.INPUT, new 
ParameterMessage("tableMapRenderer/input"), new 
ArrayValueDescriptor(parentParameterDescriptors[i].getValueDescriptor())));
  +             } else {
  +                     parameterDescriptorList.add(descriptor);
  +             }
               }
           }
  -        parameterDescriptors[parentParameterDescriptors.length-1] = new 
ParameterDescriptor(OFFSET, new ParameterMessage("tableRenderer/offset"), new 
NumberValueDescriptor(), new NumberValue(new Integer(0)));
  -        parameterDescriptors[parentParameterDescriptors.length] = new 
ParameterDescriptor(ITEMS_PER_PAGE, new ParameterMessage("tableRenderer/length"), new 
NumberValueDescriptor(), new NumberValue(new Integer(-10)));
  -        parameterDescriptors[parentParameterDescriptors.length+1] = new 
ParameterDescriptor(TableHandler.ID, new ParameterMessage("tableRenderer/id"), new 
StringValueDescriptor(), new StringValue("table"));
  -        parameterDescriptors[parentParameterDescriptors.length+2] = new 
ParameterDescriptor(TableHandler.STORE, new ParameterMessage("tableRenderer/store"), 
new StringValueDescriptor(Store.stores), new StringValue(Store.stores[Store.SESSION]));
  -
  +        parameterDescriptorList.add(new ParameterDescriptor(OFFSET, new 
ParameterMessage("tableRenderer/offset"), new NumberValueDescriptor(), new 
NumberValue(new Integer(0))));
  +        parameterDescriptorList.add(new ParameterDescriptor(ITEMS_PER_PAGE, new 
ParameterMessage("tableRenderer/length"), new NumberValueDescriptor(), new 
NumberValue(new Integer(-10))));
  +        parameterDescriptorList.add(new ParameterDescriptor(TableHandler.ID, new 
ParameterMessage("tableRenderer/id"), new StringValueDescriptor(), new 
StringValue("table")));
  +        parameterDescriptorList.add(new ParameterDescriptor(TableHandler.STORE, new 
ParameterMessage("tableRenderer/store"), new StringValueDescriptor(Store.stores), new 
StringValue(Store.stores[Store.SESSION])));
  +        parameterDescriptors = (ParameterDescriptor[] 
)parameterDescriptorList.toArray(new 
ParameterDescriptor[parameterDescriptorList.size()]);
  +        
           headerTemplate = getOptionalFragment(HEADER_FRAGMENT);
           footerTemplate = getOptionalFragment(FOOTER_FRAGMENT);
           firstTemplate = getOptionalFragment(FIRST_FRAGMENT);
  @@ -112,7 +129,7 @@
               length = maxIndex-offset;
           }
           if ( maxIndex == 0 ) {
  -            emptyTemplate.evaluate(buffer, parameter);
  +             if ( emptyTemplate != null ) emptyTemplate.evaluate(buffer, parameter);
           } else {
               if ( headerTemplate != null ) headerTemplate.evaluate(buffer, 
parameter);
               for ( int i = 0; i < length; i++ ) {
  @@ -143,5 +160,17 @@
   
       public ParameterDescriptor[] getParameterDescriptors() {
           return parameterDescriptors;
  +    }
  +
  +    public void setRepeatedFragments(String[] repeatedFragments) {
  +        this.repeatedFragments = repeatedFragments;
  +    }
  +
  +    protected boolean repeatedParameterDescriptor(ParameterDescriptor 
entryDescriptor) {
  +        List parameterDescriptors = 
getTemplateParameterDescriptor(repeatedFragments);
  +        if ( parameterDescriptors.contains(entryDescriptor) ) {
  +            return true;
  +        }
  +        return false;
       }
   }
  
  
  
  1.6       +21 -7     
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TablePager.java
  
  Index: TablePager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TablePager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TablePager.java   7 Jun 2004 17:21:53 -0000       1.5
  +++ TablePager.java   17 Jun 2004 14:54:56 -0000      1.6
  @@ -8,6 +8,9 @@
   import org.apache.slide.projector.util.StoreHelper;
   import org.apache.slide.projector.value.*;
   
  +import java.io.IOException;
  +import java.util.HashMap;
  +import java.util.Iterator;
   import java.util.Map;
   import java.util.List;
   import java.util.ArrayList;
  @@ -19,6 +22,7 @@
   public class TablePager extends TemplateRenderer {
       public final static String SHOW_RANGE = "showRange";
       public final static String RANGE = "range";
  +    public final static String PARAMETER = "parameter";
   
       public final static String TOTAL_PAGES = "totalPages";
       public final static String CURRENT_PAGE = "currentPage";
  @@ -61,6 +65,7 @@
       }
   
       public Result process(Map parameters, Context context) throws Exception {
  +        Map parameter = ((MapValue)parameters.get(PARAMETER)).getMap();
           boolean showRange = 
((BooleanValue)parameters.get(SHOW_RANGE)).booleanValue();
           int range = ((NumberValue)parameters.get(RANGE)).getNumber().intValue();
           String handlerUrl = 
ProcessorManager.getInstance().process(ProcessorManager.URL, HANDLER, 
context).toString();
  @@ -92,13 +97,13 @@
           }
           StringBuffer buffer = new StringBuffer();
           if (pre != null) pre.evaluate(buffer, parameters);
  -        createHandler(0, itemsPerPage, handlerUrl, storeName, id, parameters);
  +        createHandler(0, itemsPerPage, handlerUrl, storeName, id, parameters, 
parameter);
           if ( firstSelected != null && !hasPrevious ) {
               firstSelected.evaluate(buffer, parameters);
           } else if ( first  != null) {
               first.evaluate(buffer, parameters);
           }
  -        createHandler(Math.max(0, currentPosition - itemsPerPage), itemsPerPage, 
handlerUrl, storeName, id, parameters);
  +        createHandler(Math.max(0, currentPosition - itemsPerPage), itemsPerPage, 
handlerUrl, storeName, id, parameters, parameter);
           if (hasPrevious) {
               if ( previous != null) previous.evaluate(buffer, parameters);
           } else {
  @@ -114,7 +119,7 @@
           for (; i < length; i += step) {
               lastItem = i;
               parameters.put(CURRENT_PAGE, new NumberValue(new Integer(i / 
itemsPerPage + 1)));
  -            createHandler(i, Math.min(i+itemsPerPage, length), handlerUrl, 
storeName, id, parameters);
  +            createHandler(i, Math.min(i+itemsPerPage, length), handlerUrl, 
storeName, id, parameters, parameter);
               int rangeState = IN;
               if (showRange && (i < lowerBorder || i > upperBorder)) rangeState = OUT;
               if (showRange && (i == lowerBorder || i == upperBorder)) rangeState = 
BORDER;
  @@ -142,13 +147,13 @@
                   templateToUse.evaluate(buffer, parameters);
               }
           }
  -        createHandler(currentPosition + itemsPerPage, itemsPerPage, handlerUrl, 
storeName, id, parameters);
  +        createHandler(currentPosition + itemsPerPage, itemsPerPage, handlerUrl, 
storeName, id, parameters, parameter);
           if (hasNext) {
               if ( next != null) next.evaluate(buffer, parameters);
           } else {
               if ( nextDisabled != null) nextDisabled.evaluate(buffer, parameters);
           }
  -        createHandler(i-itemsPerPage, length, handlerUrl, storeName, id, 
parameters);
  +        createHandler(i-itemsPerPage, length, handlerUrl, storeName, id, 
parameters, parameter);
           if ( lastSelected != null && !hasNext ) {
               lastSelected.evaluate(buffer, parameters);
           } else if ( last != null) {
  @@ -159,11 +164,19 @@
           return result;
       }
       
  -    protected void createHandler(int i, int lastItem, String handlerUrl, String 
storeName, String id, Map parameters) {
  +    protected void createHandler(int i, int lastItem, String handlerUrl, String 
storeName, String id, Map parameters, Map parameter) throws IOException {
           parameters.put(TableHandler.TARGET_POSITION, new NumberValue(new 
Integer(i)));
           StringBuffer handlerBuffer = new StringBuffer(128);
           
handlerBuffer.append(handlerUrl).append('?').append(TableHandler.TARGET_POSITION).append('=').append(i).
                   
append('&').append(TableHandler.STORE).append('=').append(storeName).append('&').append(TableHandler.ID).append('=').append(id);
  +        for ( Iterator j = parameter.entrySet().iterator(); j.hasNext(); ) {
  +             Map.Entry entry = (Map.Entry)j.next();
  +             if ( entry.getValue() instanceof PrintableValue ) {
  +                     handlerBuffer.append('&').append(entry.getKey()).append('=');
  +                     ((PrintableValue)entry.getValue()).print(handlerBuffer);
  +             }
  +             
  +        }
           parameters.put(HANDLER_URL, new StringValue(handlerBuffer.toString()));
           parameters.put(FIRST_ITEM, new NumberValue(new Integer(i+1)));
           parameters.put(LAST_ITEM, new NumberValue(new Integer(lastItem)));
  @@ -173,6 +186,7 @@
           super.configure(config);
           // remove fragment parameter
           List parameterList = new ArrayList();
  +        parameterList.add(new ParameterDescriptor(PARAMETER, new 
ParameterMessage("tablePager/parameter"), new MapValueDescriptor(), new MapValue(new 
HashMap())));
           parameterList.add(new ParameterDescriptor(SHOW_RANGE, new 
ParameterMessage("tablePager/showRange"), new BooleanValueDescriptor(), 
BooleanValue.FALSE));
           parameterList.add(new ParameterDescriptor(RANGE, new 
ParameterMessage("tablePager/range"), new NumberValueDescriptor(), new NumberValue(new 
Integer(0))));
           parameterList.add(new ParameterDescriptor(TableHandler.ID, new 
ParameterMessage("tableRenderer/id"), new StringValueDescriptor(), new 
StringValue("table")));
  
  
  
  1.13      +59 -8     
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/connector/webdav/WebdavConnector.java
  
  Index: WebdavConnector.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/connector/webdav/WebdavConnector.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- WebdavConnector.java      16 Jun 2004 16:45:37 -0000      1.12
  +++ WebdavConnector.java      17 Jun 2004 14:54:56 -0000      1.13
  @@ -12,6 +12,7 @@
   import org.apache.slide.projector.Constants;
   import org.apache.slide.projector.URI;
   import org.apache.slide.projector.connector.Connector;
  +import org.apache.slide.projector.connector.RoleExistsException;
   import org.apache.slide.projector.connector.Subscriber;
   import org.apache.slide.projector.connector.UserExistsException;
   import org.apache.slide.projector.i18n.ErrorMessage;
  @@ -68,27 +69,47 @@
        if ( userExists == NullValue.NULL || userExists != null ) {
               throw new UserExistsException(new ErrorMessage("userExists", new 
String[] { username }));
           } else {
  -             URI userUri = new 
URIValue(Constants.REPOSITORY_DOMAIN+Constants.USERS_DIR+username);
  -             MkcolMethod mkcolMethod = new MkcolMethod(userUri.toString());
  +             URI userUri = new URIValue(Constants.USERS_DIR+username);
  +             MkcolMethod mkcolMethod = new 
MkcolMethod(Constants.REPOSITORY_DOMAIN+userUri.toString());
                mkcolMethod.setDoAuthentication(true);
               HttpState httpState = new HttpState();
               httpState.setCredentials(null, Constants.REPOSITORY_HOST, credentials);
               int state = mkcolMethod.execute(httpState, new 
HttpConnection(Constants.REPOSITORY_HOST, Constants.REPOSITORY_PORT, 
Constants.REPOSITORY_PROTOCOL));
               if ( state == HttpStatus.SC_CREATED ) {
  -             changePassword(userUri, null, password, credentials);
  +             changePassword(new URIValue(Constants.REPOSITORY_DOMAIN+userUri), 
null, password, credentials);
                return userUri;
               }
               return null;
           }
       }
       
  -    public void deleteUser(URI uri, Credentials credentials) throws IOException {
  -     removeResource(uri, credentials);
  +    public URI createRole(String rolename, Credentials credentials) throws 
RoleExistsException, IOException {
  +     Value userExists = getResource(new 
URIValue(Constants.REPOSITORY_DOMAIN+Constants.ROLES_DIR+rolename), credentials); 
  +     if ( userExists == NullValue.NULL || userExists != null ) {
  +            throw new RoleExistsException(new ErrorMessage("roleExists", new 
String[] { rolename }));
  +        } else {
  +             URI roleUri = new URIValue(Constants.ROLES_DIR+rolename);
  +             MkcolMethod mkcolMethod = new 
MkcolMethod(Constants.REPOSITORY_DOMAIN+roleUri.toString());
  +             mkcolMethod.setDoAuthentication(true);
  +            HttpState httpState = new HttpState();
  +            httpState.setCredentials(null, Constants.REPOSITORY_HOST, credentials);
  +            int state = mkcolMethod.execute(httpState, new 
HttpConnection(Constants.REPOSITORY_HOST, Constants.REPOSITORY_PORT, 
Constants.REPOSITORY_PROTOCOL));
  +            if ( state == HttpStatus.SC_CREATED ) {
  +             return roleUri;
  +            }
  +            return null;
  +        }
  +    }
  +    
  +    public void deleteRole(URI role, Credentials credentials) throws IOException {
  +     removeResource(role, credentials);
  +    }
  +    
  +    public void deleteUser(URI user, Credentials credentials) throws IOException {
  +     removeResource(user, credentials);
       }
       
       public void addRole(URI user, URI role, Credentials credentials) throws 
IOException {
  -     // Add user to role
  -     role = new URIValue(Constants.REPOSITORY_DOMAIN+role);
        XMLValue roleElement = getPropertyAsXMLValue(role, DAV_NAMESPACE, 
"group-member-set", credentials);
           Element newUserElement = new Element("href", "DAV:");
           newUserElement.addContent(user.toString());
  @@ -99,6 +120,36 @@
       }
       
       public void removeRole(URI user, URI role, Credentials credentials) throws 
IOException {
  +     XMLValue membersElement = getPropertyAsXMLValue(role, DAV_NAMESPACE, 
"group-member-set", credentials);
  +     List members = membersElement.getRootElement().getChildren();
  +     for ( Iterator i = members.iterator(); i.hasNext(); ) {
  +             Element memberElement = (Element)i.next();
  +             String uri = memberElement.getTextTrim();
  +                     if ( uri.equals(user.toString()) ) {
  +                             i.remove();
  +                             break;
  +                     }
  +     }
  +        XMLOutputter xout = new XMLOutputter(Format.getCompactFormat());
  +        String groupMemberSet = 
xout.outputString(membersElement.getRootElement().getContent());
  +             setProperty(role, DAV_NAMESPACE, "group-member-set", groupMemberSet, 
credentials);    
  +    }
  +    
  +    public ArrayValue listRoles(URI user, Credentials credentials) throws 
IOException {
  +     XMLValue membership = getPropertyAsXMLValue(user, DAV_NAMESPACE, 
"group-membership", credentials);
  +     List roles = membership.getRootElement().getChildren();
  +     List roleList = new ArrayList();
  +     for ( Iterator i = roles.iterator(); i.hasNext(); ) {
  +             Map map = new HashMap();
  +             Element roleElement = (Element)i.next();
  +             String uri = roleElement.getTextTrim();
  +                     if ( uri.indexOf(Constants.REPOSITORY_DOMAIN) != -1  ) {
  +                             uri = 
uri.substring(uri.indexOf(Constants.REPOSITORY_DOMAIN)+Constants.REPOSITORY_DOMAIN.length());
  +                     }
  +             map.put("uri", uri);
  +             roleList.add(new MapValue(map));
  +     }
  +     return new ArrayValue((Value [])roleList.toArray(new Value[roleList.size()]));
       }
       
       public void changePassword(URI uri, String oldPassword, String newPassword, 
Credentials credentials) throws IOException {
  @@ -271,7 +322,7 @@
                                searchResults.put(property.getLocalName(), 
property.getPropertyAsString());
                }
                        if ( uri.indexOf(Constants.REPOSITORY_DOMAIN) != -1  ) {
  -                             uri = 
uri.substring(uri.indexOf(Constants.REPOSITORY_DOMAIN));
  +                             uri = 
uri.substring(uri.indexOf(Constants.REPOSITORY_DOMAIN)+Constants.REPOSITORY_DOMAIN.length());
                        }
                        searchResults.put("uri", uri);
                        values.add(new MapValue(searchResults));
  
  
  
  1.3       +4 -4      
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/query/PropertyQuery.java
  
  Index: PropertyQuery.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/query/PropertyQuery.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PropertyQuery.java        1 Jun 2004 07:49:58 -0000       1.2
  +++ PropertyQuery.java        17 Jun 2004 14:54:56 -0000      1.3
  @@ -60,7 +60,7 @@
       };
   
       public Result process(Map parameter, Context context) throws Exception {
  -        ArrayValue properties = ConnectorFactory.getConnector().getProperties(new 
URIValue(Constants.REPOSITORY_DOMAIN+((URIValue)parameter.get(URI)).toString()), 
context.getCredentials());
  +     ArrayValue properties = ConnectorFactory.getConnector().getProperties(new 
URIValue(Constants.REPOSITORY_DOMAIN+((URIValue)parameter.get(URI)).toString()), 
context.getCredentials());
           if ( properties.getArray().length == 0 ) return new Result(EMPTY);
           Result result= new Result(StateDescriptor.OK, ARRAY, properties);
           Map properyMap = new HashMap();
  
  
  
  1.8       +8 -2      
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/connector/Connector.java
  
  Index: Connector.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/connector/Connector.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Connector.java    15 Jun 2004 16:34:20 -0000      1.7
  +++ Connector.java    17 Jun 2004 14:54:56 -0000      1.8
  @@ -19,9 +19,15 @@
                
        public URI createUser(String user, String password, Credentials credentials) 
throws UserExistsException, IOException;
        
  -     public void deleteUser(URI uri, Credentials credentials) throws IOException;
  +     public void deleteUser(URI user, Credentials credentials) throws IOException;
        
  -     public void addRole(URI user, URI role, Credentials credentials) throws 
UserExistsException, IOException;
  +     public URI createRole(String role, Credentials credentials) throws 
RoleExistsException, IOException;
  +     
  +     public void deleteRole(URI role, Credentials credentials) throws IOException;
  +     
  +    public ArrayValue listRoles(URI user, Credentials credentials) throws 
IOException;
  +
  +    public void addRole(URI user, URI role, Credentials credentials) throws 
UserExistsException, IOException;
        
        public void removeRole(URI user, URI role, Credentials credentials) throws 
UserExistsException, IOException;
        
  
  
  
  1.1                  
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/connector/RoleExistsException.java
  
  Index: RoleExistsException.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/connector/RoleExistsException.java,v
 1.1 2004/06/17 14:54:56 dflorey Exp $
   * $Revision: 1.1 $
   * $Date: 2004/06/17 14:54:56 $
   *
   * ====================================================================
   *
   * Copyright 2004 The Apache Software Foundation 
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   */
  
  package org.apache.slide.projector.connector;
  
  import org.apache.slide.projector.ProcessException;
  import org.apache.slide.projector.i18n.ErrorMessage;
  
  /**
   * The UserExistsException class
   * 
   * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Florey</a>
   */
  public class RoleExistsException extends ProcessException {
      public RoleExistsException(ErrorMessage errorMessage, Throwable cause) {
          super(errorMessage, cause);
      }
  
      public RoleExistsException(ErrorMessage errorMessage) {
          super(errorMessage);
      }
  }
  
  
  
  1.5       +14 -37    
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/TemplateMapRenderer.java
  
  Index: TemplateMapRenderer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/TemplateMapRenderer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TemplateMapRenderer.java  15 Jun 2004 16:34:21 -0000      1.4
  +++ TemplateMapRenderer.java  17 Jun 2004 14:54:57 -0000      1.5
  @@ -13,6 +13,7 @@
   import org.apache.slide.projector.value.StringValue;
   
   import java.util.ArrayList;
  +import java.util.HashMap;
   import java.util.Iterator;
   import java.util.List;
   import java.util.Map;
  @@ -23,15 +24,8 @@
   
       private ParameterDescriptor[] parameterDescriptors;
   
  -    private String[] repeatedFragments;
  -
  -    public void setRepeatedFragments(String[] repeatedFragments) {
  -        this.repeatedFragments = repeatedFragments;
  -    }
  -
       public void configure(StreamableValue config) throws ConfigurationException {
           super.configure(config);
  -        if ( repeatedFragments == null ) repeatedFragments = getDefinedFragments();
           MapValueDescriptor mapValueDescriptor = new MapValueDescriptor();
           List parameterDescriptorList = new ArrayList();
           for ( Iterator i = parameterDescriptions.iterator(); i.hasNext(); ) {
  @@ -40,20 +34,15 @@
               if ( entryDescriptor.getName() == FRAGMENT ) {
                   parameterDescriptorList.add(entryDescriptor);
               } else {
  -                // check if parameter descriptor is caused by repeated fragments
  -                if ( repeatedParameterDescriptor(entryDescriptor) ) {
  -                    if ( entryDescriptor.isRequired() ) {
  -                        mapValueDescriptor.addEntryDescriptor(new 
ParameterDescriptor(entryDescriptor.getName(), new 
ParameterMessage("templateMapRenderer/mapEntry"), 
entryDescriptor.getValueDescriptor()));
  -                    } else {
  -                        mapValueDescriptor.addEntryDescriptor(new 
ParameterDescriptor(entryDescriptor.getName(), new 
ParameterMessage("templateMapRenderer/mapEntry"), 
entryDescriptor.getValueDescriptor(), entryDescriptor.getDefaultValue() ));
  -                        parameterDescriptorList.add(new 
ParameterDescriptor(entryDescriptor.getName(), entryDescriptor.getDescription(), 
entryDescriptor.getValueDescriptor(), NullValue.NULL));
  -                    }
  +                if ( entryDescriptor.isRequired() ) {
  +                    mapValueDescriptor.addEntryDescriptor(new 
ParameterDescriptor(entryDescriptor.getName(), new 
ParameterMessage("templateMapRenderer/mapEntry"), 
entryDescriptor.getValueDescriptor()));
                   } else {
  -                    parameterDescriptorList.add(entryDescriptor);
  +                    mapValueDescriptor.addEntryDescriptor(new 
ParameterDescriptor(entryDescriptor.getName(), new 
ParameterMessage("templateMapRenderer/mapEntry"), 
entryDescriptor.getValueDescriptor(), entryDescriptor.getDefaultValue() ));
  +                    parameterDescriptorList.add(new 
ParameterDescriptor(entryDescriptor.getName(), entryDescriptor.getDescription(), 
entryDescriptor.getValueDescriptor(), NullValue.NULL));
                   }
               }
           }
  -        parameterDescriptorList.add(new ParameterDescriptor(SimpleProcessor.INPUT, 
new ParameterMessage("templateMapRenderer/input"), new 
ArrayValueDescriptor(mapValueDescriptor)));
  +        parameterDescriptorList.add(new ParameterDescriptor(SimpleProcessor.INPUT, 
new ParameterMessage("templateMapRenderer/input"), mapValueDescriptor));
           parameterDescriptors = 
(ParameterDescriptor[])parameterDescriptorList.toArray(new 
ParameterDescriptor[parameterDescriptorList.size()]);
       }
   
  @@ -61,10 +50,15 @@
           String fragment = ((StringValue)parameter.get(FRAGMENT)).toString();
           Template template = getRequiredFragment(fragment);
           StringBuffer buffer = new StringBuffer(template.getLength());
  -        ArrayValue input = (ArrayValue)parameter.get(SimpleProcessor.INPUT);
  -        for ( int i = 0; i < input.getArray().length; i++ ) {
  -            template.evaluate(buffer, ((MapValue)input.getArray()[i]).getMap());
  +        Map parameterMap = new HashMap();
  +        parameterMap.putAll(parameter);
  +        for ( Iterator j = 
((MapValue)parameter.get(SimpleProcessor.INPUT)).getMap().entrySet().iterator(); 
j.hasNext(); ) {
  +             Map.Entry entry = (Map.Entry)j.next();
  +             if ( entry.getValue() != NullValue.NULL ) {
  +                     parameterMap.put(entry.getKey(), entry.getValue());
  +             }
           }
  +        template.evaluate(buffer, parameterMap);
           return new Result(OK, OUTPUT, new StringValue(buffer.toString(), 
template.getContentType(), false));
       }
   
  @@ -78,22 +72,5 @@
                   new ResultEntryDescriptor[]{
                       new ResultEntryDescriptor(OUTPUT, new 
DefaultMessage("templateMapRenderer/result/output"), "*", true)
                   });
  -    }
  -
  -    protected int getMaxIndex(Map parameter) {
  -        int maxIndex = 0;
  -        for ( Iterator i = parameter.values().iterator(); i.hasNext(); ) {
  -            ArrayValue resurce = (ArrayValue)i.next();
  -            if ( resurce.getArray().length > maxIndex ) maxIndex = 
resurce.getArray().length;
  -        }
  -        return maxIndex;
  -    }
  -
  -    protected boolean repeatedParameterDescriptor(ParameterDescriptor 
entryDescriptor) {
  -        List parameterDescriptors = 
getTemplateParameterDescriptor(repeatedFragments);
  -        if ( parameterDescriptors.contains(entryDescriptor) ) {
  -            return true;
  -        }
  -        return false;
       }
   }
  
  
  
  1.6       +4 -0      
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/descriptor/MapValueDescriptor.java
  
  Index: MapValueDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/descriptor/MapValueDescriptor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MapValueDescriptor.java   1 Jun 2004 07:49:54 -0000       1.5
  +++ MapValueDescriptor.java   17 Jun 2004 14:54:57 -0000      1.6
  @@ -38,6 +38,10 @@
           entryDescriptors.add(parameterDescriptor);
       }
   
  +    public List getEntryDescriptors() {
  +     return entryDescriptors;
  +    }
  +    
       public Value validate(Object value, Context context) throws ValidationException 
{
           if ( value instanceof MapValue ) {
               // validate entries
  
  
  
  1.4       +4 -4      
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/tree/TreeLocalizer.java
  
  Index: TreeLocalizer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/tree/TreeLocalizer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TreeLocalizer.java        16 Jun 2004 16:45:37 -0000      1.3
  +++ TreeLocalizer.java        17 Jun 2004 14:54:57 -0000      1.4
  @@ -78,7 +78,7 @@
               if ( resources[i] instanceof StringValue ) {
                   Map localizedMap = new HashMap();
                   try {
  -                     localizedMap.put(TreeRenderer.ID, resources[i]);
  +                     localizedMap.put(TreeRenderer.ID, 
ProcessorManager.getInstance().process(ProcessorManager.URL, resources[i], context));
                        Map entries = 
MessageManager.getEntries(((StringValue)resources[i]).toString(), locale);
                       for ( Iterator j = entries.entrySet().iterator(); j.hasNext(); 
) {
                           Map.Entry entry = (Map.Entry)j.next();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to