portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wea...@apache.org
Subject cvs commit: jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl ParameterSetImpl.java SecurityRoleRefImpl.java ParameterImpl.java PortletParameterSetImpl.java SecurityRoleRefSetImpl.java ServletParameterSetImpl.java
Date Wed, 04 Feb 2004 21:12:27 GMT
weaver      2004/02/04 13:12:27

  Modified:    services/registry/src/java/org/apache/jetspeed/om/impl
                        ParameterSetImpl.java SecurityRoleRefImpl.java
                        ParameterImpl.java PortletParameterSetImpl.java
                        SecurityRoleRefSetImpl.java
                        ServletParameterSetImpl.java
  Log:
  - refactored to support the new non-OJB collections
  
  Revision  Changes    Path
  1.2       +61 -38    jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/ParameterSetImpl.java
  
  Index: ParameterSetImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/ParameterSetImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ParameterSetImpl.java	12 Jan 2004 06:19:51 -0000	1.1
  +++ ParameterSetImpl.java	4 Feb 2004 21:12:27 -0000	1.2
  @@ -54,9 +54,9 @@
   package org.apache.jetspeed.om.impl;
   
   import java.io.Serializable;
  -import java.util.HashMap;
  +import java.util.ArrayList;
  +import java.util.Collection;
   import java.util.Iterator;
  -import java.util.Set;
   
   //TODO: import org.apache.jetspeed.exception.JetspeedRuntimeException;
   import org.apache.jetspeed.om.common.ParameterComposite;
  @@ -72,25 +72,23 @@
    * @version $Id$
    *
    */
  -public abstract class ParameterSetImpl extends AbstractSupportSet implements ParameterSet,
ParameterSetCtrl, Serializable
  +public abstract class ParameterSetImpl implements ParameterSet, ParameterSetCtrl, Serializable
   {
  -    private HashMap parameterMap;
  -
  -    protected abstract Class getParameterClass();
  -
  -    // TODO: protected abstract Log getLog();
  +    protected Collection innerCollection;
   
       /**
        * @param wrappedSet
        */
  -    public ParameterSetImpl(Set wrappedSet)
  +    public ParameterSetImpl(Collection collection)
       {
  -        super(wrappedSet);
  +        super();
  +        this.innerCollection = collection;
       }
   
       public ParameterSetImpl()
       {
  -        parameterMap = new HashMap();
  +        super();
  +        this.innerCollection = new ArrayList();
       }
   
       /**
  @@ -98,7 +96,7 @@
        */
       public Iterator iterator()
       {
  -        return super.iterator();
  +        return innerCollection.iterator();
       }
   
       /**
  @@ -106,7 +104,17 @@
        */
       public Parameter get(String name)
       {
  -        return (Parameter) parameterMap.get(name);
  +        Iterator itr = innerCollection.iterator();
  +        while (itr.hasNext())
  +        {
  +            Parameter p = (Parameter) itr.next();
  +            if (p.getName().equals(name))
  +            {
  +                return p;
  +            }
  +        }
  +
  +        return null;
       }
   
       /**
  @@ -114,14 +122,11 @@
        */
       public Parameter add(String name, String value)
       {
  -
  -        ParameterComposite p = (ParameterComposite) newParameterInstance();
  +        ParameterComposite p = newParameterInstance();
           p.setName(name);
           p.setValue(value);
           add(p);
  -
  -        return (Parameter) p;
  -
  +        return p;
       }
   
       /**
  @@ -129,9 +134,24 @@
        */
       public Parameter remove(String name)
       {
  -        Parameter p = (Parameter) parameterMap.get(name);
  -        remove(p);
  -        return p;
  +        Iterator itr = innerCollection.iterator();
  +        Parameter removeMe = null;
  +        while (itr.hasNext())
  +        {
  +            Parameter p = (Parameter) itr.next();
  +            if (p.getName().equals(name))
  +            {
  +                removeMe = p;
  +                break;
  +            }
  +        }
  +
  +        if (removeMe != null)
  +        {
  +            innerCollection.remove(removeMe);
  +        }
  +
  +        return removeMe;
       }
   
       /**
  @@ -152,8 +172,8 @@
       public boolean add(Object o)
       {
           ParameterComposite p = (ParameterComposite) o;
  -        parameterMap.put(p.getName(), p);
  -        return super.add(p);
  +
  +        return innerCollection.add(p);
       }
   
       /**
  @@ -162,27 +182,30 @@
       public boolean remove(Object o)
       {
           Parameter p = (Parameter) o;
  -        parameterMap.remove(p.getName());
  -        return super.remove(p);
  +
  +        return innerCollection.remove(p);
       }
   
       /**
        * Creates a Parameter class this Collection will be working with.
        * <br>
        */
  -    protected ParameterComposite newParameterInstance()
  +    protected abstract ParameterComposite newParameterInstance();
  +
  +    /**
  +     * @return
  +     */
  +    public Collection getInnerCollection()
       {
  -        try
  -        {
  -            return (ParameterComposite) getParameterClass().newInstance();
  -        }
  -        catch (Exception e)
  -        {
  -            // TODO:          getLog().error("Unable to instaniate new Parameter class.",
e);
  -            //            throw new JetspeedRuntimeException("Unable to instantiate new
Parameter class.", e);
  -            e.printStackTrace();
  -        }
  -        return null;
  +        return innerCollection;
  +    }
  +
  +    /**
  +     * @param collection
  +     */
  +    public void setInnerCollection(Collection collection)
  +    {
  +        innerCollection = collection;
       }
   
   }
  
  
  
  1.2       +32 -9     jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/SecurityRoleRefImpl.java
  
  Index: SecurityRoleRefImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/SecurityRoleRefImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SecurityRoleRefImpl.java	12 Jan 2004 06:19:51 -0000	1.1
  +++ SecurityRoleRefImpl.java	4 Feb 2004 21:12:27 -0000	1.2
  @@ -54,11 +54,14 @@
   package org.apache.jetspeed.om.impl;
   
   import java.io.Serializable;
  +import java.util.ArrayList;
  +import java.util.Collection;
   import java.util.Locale;
   
  -import org.apache.jetspeed.util.JetspeedLocale;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
  +import org.apache.jetspeed.registry.JetspeedPortletRegistry;
   import org.apache.jetspeed.om.common.MutableDescription;
  -import org.apache.jetspeed.om.common.MutableDescriptionSet;
   import org.apache.jetspeed.om.common.SecurityRoleRefComposite;
   import org.apache.jetspeed.util.HashCodeBuilder;
   import org.apache.pluto.om.common.Description;
  @@ -80,7 +83,10 @@
       protected long portletId;
       private String link;
       private String name;
  -    private MutableDescriptionSet descriptions;
  +    private Collection descriptions;
  +    private DescriptionSetImpl descCollWrapper = new DescriptionSetImpl(DescriptionImpl.TYPE_SEC_ROLE_REF);
  +    
  +    private static final Log log = LogFactory.getLog(SecurityRoleRefImpl.class);
   
       /**
        * @see org.apache.pluto.om.common.SecurityRoleRef#getRoleLink()
  @@ -146,7 +152,8 @@
       {
           if (descriptions != null)
           {
  -            return descriptions.get(arg0);
  +        	descCollWrapper.setInnerCollection(descriptions);
  +            return descCollWrapper.get(arg0);
           }
           return null;
       }
  @@ -158,9 +165,10 @@
       {
           if (descriptions == null)
           {
  -            descriptions = new DescriptionSetImpl(MutableDescription.TYPE_SEC_ROLE_REF);
  +            descriptions = new ArrayList();
           }
  -        descriptions.addDescription(description);
  +        descCollWrapper.setInnerCollection(descriptions);
  +		descCollWrapper.addDescription(description);
       }
   
       /**
  @@ -168,7 +176,7 @@
        */
       public void setDescriptionSet(DescriptionSet descriptions)
       {
  -        this.descriptions = (MutableDescriptionSet) descriptions;
  +        this.descriptions = ((DescriptionSetImpl) descriptions).getInnerCollection();
   
       }
   
  @@ -181,7 +189,22 @@
        */
       public void setDescription(String arg0)
       {
  -       DescriptionImpl di = new DescriptionImpl(JetspeedLocale.getDefaultLocale(), arg0,
MutableDescription.TYPE_SEC_ROLE_REF);
  +		try
  +		{
  +			MutableDescription descObj =
  +				(MutableDescription) JetspeedPortletRegistry.getNewObjectInstance(MutableDescription.TYPE_PORTLET,
true);
  +			// descObj.setLocale(Jetspeed.getDefaultLocale());
  +			descObj.setLocale(Locale.getDefault());
  +			descObj.setDescription(arg0);
  +			
  +		}
  +		catch (Exception e)
  +		{
  +			String msg = "Unable to instantiate Description implementor, " + e.toString();
  +			log.error(msg, e);
  +			throw new IllegalStateException(msg);
  +		}
  +       
       }
   
   }
  
  
  
  1.2       +35 -13    jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/ParameterImpl.java
  
  Index: ParameterImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/ParameterImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ParameterImpl.java	12 Jan 2004 06:19:51 -0000	1.1
  +++ ParameterImpl.java	4 Feb 2004 21:12:27 -0000	1.2
  @@ -55,11 +55,15 @@
   package org.apache.jetspeed.om.impl;
   
   import java.io.Serializable;
  +import java.util.ArrayList;
  +import java.util.Collection;
   import java.util.Locale;
   
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   import org.apache.jetspeed.om.common.MutableDescription;
  -import org.apache.jetspeed.om.common.MutableDescriptionSet;
   import org.apache.jetspeed.om.common.ParameterComposite;
  +import org.apache.jetspeed.registry.JetspeedPortletRegistry;
   import org.apache.jetspeed.util.HashCodeBuilder;
   import org.apache.pluto.om.common.Description;
   import org.apache.pluto.om.common.DescriptionSet;
  @@ -79,7 +83,10 @@
   
       protected long parentId;
   
  -    private MutableDescriptionSet descriptions;
  +    private Collection descriptions;
  +    private DescriptionSetImpl descCollWrapper = new DescriptionSetImpl(DescriptionImpl.TYPE_PARAMETER);
  +    
  +    private static final Log log = LogFactory.getLog(ParameterImpl.class);
   
       /**
        * @see org.apache.pluto.om.common.Parameter#getName()
  @@ -120,10 +127,12 @@
        */
       public boolean equals(Object obj)
       {
  -        if (obj != null && obj instanceof Parameter)
  +        if (obj != null && obj.getClass().equals(getClass()))
           {
  -            Parameter p = (Parameter) obj;
  -            return this.getName().equals(p.getName());
  +            ParameterImpl p = (ParameterImpl) obj;            
  +            boolean sameParent = (p.parentId == parentId);
  +            boolean sameName  = (name != null && p.getName() != null &&
name.equals(p.getName()));
  +            return sameParent && sameName;            
           }
   
           return false;
  @@ -146,7 +155,7 @@
       {
           if (descriptions != null)
           {
  -            return descriptions.get(arg0);
  +            return new DescriptionSetImpl(descriptions).get(arg0);
           }
           return null;
   
  @@ -157,7 +166,7 @@
        */
       public void setDescriptionSet(DescriptionSet arg0)
       {
  -        this.descriptions = (MutableDescriptionSet) arg0;
  +        this.descriptions = ((DescriptionSetImpl) arg0).getInnerCollection();
       }
   
       /**
  @@ -167,10 +176,23 @@
       {
           if (descriptions == null)
           {
  -            descriptions = new DescriptionSetImpl(MutableDescription.TYPE_PARAMETER);
  +			descriptions = new ArrayList();
  +        }
  +        descCollWrapper.setInnerCollection(descriptions);
  +        try
  +        {
  +            MutableDescription descObj =
  +                (MutableDescription) JetspeedPortletRegistry.getNewObjectInstance(MutableDescription.TYPE_PARAMETER,
true);
  +			descObj.setLocale(locale);
  +			descObj.setDescription(desc);
  +			descCollWrapper.addDescription(descObj);
  +        }
  +        catch (Exception e)
  +        {
  +            String msg = "Unable to instantiate Description implementor, " + e.toString();
  +            log.error(msg, e);
  +            throw new IllegalStateException(msg);
           }
  -
  -        descriptions.addDescription(new DescriptionImpl(locale, desc, MutableDescription.TYPE_PARAMETER));
   
       }
   
  @@ -178,11 +200,11 @@
       {
           if (descriptions == null)
           {
  -            descriptions = new DescriptionSetImpl(MutableDescription.TYPE_PARAMETER);
  +            descriptions = new ArrayList();
           }
   
  -        descriptions.addDescription(desc);
  -
  +        descCollWrapper.setInnerCollection(descriptions);
  +        descCollWrapper.addDescription(desc);
       }
   
       /**
  
  
  
  1.2       +24 -15    jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/PortletParameterSetImpl.java
  
  Index: PortletParameterSetImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/PortletParameterSetImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PortletParameterSetImpl.java	12 Jan 2004 06:19:51 -0000	1.1
  +++ PortletParameterSetImpl.java	4 Feb 2004 21:12:27 -0000	1.2
  @@ -53,8 +53,12 @@
    */
   package org.apache.jetspeed.om.impl;
   
  -import java.util.Set;
  +import java.util.Collection;
   
  +import org.apache.jetspeed.om.common.ParameterComposite;
  +import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
  +
  +import org.apache.jetspeed.registry.JetspeedPortletRegistry;
   
   /**
    * 
  @@ -68,11 +72,11 @@
   {
   
       /**
  -     * @param wrappedSet
  +     * @param collection
        */
  -    public PortletParameterSetImpl(Set wrappedSet)
  +    public PortletParameterSetImpl(Collection collection)
       {
  -        super(wrappedSet);
  +        super(collection);
       }
   
       /**
  @@ -86,17 +90,22 @@
       /**
        * @see org.apache.jetspeed.om.common.ParameterSetImpl#getParameterClass()
        */
  -    protected Class getParameterClass()
  -    {
  -        return PortletInitParameterImpl.class;
  -    }
   
       /**
  -     * @see org.apache.jetspeed.om.common.ParameterSetImpl#getLog()
  -     *
  -    protected Log getLog()
  -    {        
  -        return LogFactory.getLog(PortletParameterSetImpl.class);
  +     * 
  +     */
  +    protected ParameterComposite newParameterInstance()
  +    {
  +        try
  +        {
  +            return (ParameterComposite) JetspeedPortletRegistry.getNewObjectInstance(
  +                  ParameterComposite.TYPE_PORTLET,
  +                true);
  +        }
  +        catch (Exception e)
  +        {        	
  +            throw new IllegalStateException("Instance class unable to be configured " +
e.toString());
  +        }
       }
  -    */
  +
   }
  
  
  
  1.2       +144 -14   jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/SecurityRoleRefSetImpl.java
  
  Index: SecurityRoleRefSetImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/SecurityRoleRefSetImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SecurityRoleRefSetImpl.java	12 Jan 2004 06:19:51 -0000	1.1
  +++ SecurityRoleRefSetImpl.java	4 Feb 2004 21:12:27 -0000	1.2
  @@ -54,7 +54,9 @@
   package org.apache.jetspeed.om.impl;
   
   import java.io.Serializable;
  -import java.util.HashMap;
  +import java.util.ArrayList;
  +import java.util.Collection;
  +import java.util.Iterator;
   
   import org.apache.pluto.om.common.DescriptionSet;
   import org.apache.pluto.om.common.SecurityRoleRef;
  @@ -69,14 +71,19 @@
    * @version $Id$
    *
    */
  -public class SecurityRoleRefSetImpl extends AbstractSupportSet implements SecurityRoleRefSet,
SecurityRoleRefSetCtrl, Serializable
  +public class SecurityRoleRefSetImpl implements SecurityRoleRefSet, SecurityRoleRefSetCtrl,
Serializable
   {
   
  -    private HashMap refMap = new HashMap();
  +    protected Collection innerCollection;
   
       public SecurityRoleRefSetImpl()
       {
  -        refMap = new HashMap();
  +        innerCollection = new ArrayList();
  +    }
  +
  +    public SecurityRoleRefSetImpl(Collection collection)
  +    {
  +        innerCollection = collection;
       }
   
       /**
  @@ -84,7 +91,17 @@
        */
       public SecurityRoleRef get(String name)
       {
  -        return (SecurityRoleRef) refMap.get(name);
  +        Iterator itr = innerCollection.iterator();
  +        while (itr.hasNext())
  +        {
  +			SecurityRoleRef roleRef = (SecurityRoleRef) itr.next();
  +            if (roleRef.getRoleName().equals(name))
  +            {
  +                return roleRef;
  +            }
  +        }
  +
  +        return null;
       }
   
       /**
  @@ -106,7 +123,7 @@
        */
       public SecurityRoleRef add(SecurityRoleRef securityRoleRef)
       {
  -        add(securityRoleRef);
  +        innerCollection.add(securityRoleRef);
           return securityRoleRef;
       }
   
  @@ -115,8 +132,13 @@
        */
       public SecurityRoleRef remove(String name)
       {
  -        SecurityRoleRef ref = (SecurityRoleRef) refMap.get(name);
  -        return ref;
  +        SecurityRoleRef roleRef = get(name);
  +        if(roleRef != null)
  +        {
  +        	innerCollection.remove(roleRef);
  +        }
  +        
  +        return roleRef;
       }
   
       /**
  @@ -124,7 +146,7 @@
        */
       public void remove(SecurityRoleRef securityRoleRef)
       {
  -        remove(securityRoleRef);
  +        innerCollection.remove(securityRoleRef);
   
       }
   
  @@ -134,8 +156,11 @@
       public boolean add(Object o)
       {
           SecurityRoleRef ref = (SecurityRoleRef) o;
  -        refMap.put(ref.getRoleName(), ref);
  -        return super.add(o);
  +        if(innerCollection.contains(o))
  +        {
  +        	remove(o);
  +        }
  +        return innerCollection.add(o);
       }
   
       /**
  @@ -144,8 +169,8 @@
       public boolean remove(Object o)
       {
           SecurityRoleRef ref = (SecurityRoleRef) o;
  -        refMap.remove(ref.getRoleName());
  -        return super.remove(o);
  +        
  +        return innerCollection.remove(o);
       }
   
       /**
  @@ -159,6 +184,111 @@
           newRef.setDescriptionSet(descriptions);
           add(newRef);
           return newRef;
  +    }
  +
  +    /**
  +     * @see java.util.Collection#addAll(java.util.Collection)
  +     */
  +    public boolean addAll(Collection c)
  +    {        
  +        return innerCollection.addAll(c);
  +    }
  +
  +    /**
  +     * @see java.util.Collection#clear()
  +     */
  +    public void clear()
  +    {
  +        innerCollection.clear();
  +
  +    }
  +
  +    /**
  +     * @see java.util.Collection#contains(java.lang.Object)
  +     */
  +    public boolean contains(Object o)
  +    {        
  +        return innerCollection.contains(o);
  +    }
  +
  +    /**
  +     * @see java.util.Collection#containsAll(java.util.Collection)
  +     */
  +    public boolean containsAll(Collection c)
  +    {        
  +        return innerCollection.containsAll(c);
  +    }
  +
  +    /**
  +     * @see java.util.Collection#isEmpty()
  +     */
  +    public boolean isEmpty()
  +    {        
  +        return innerCollection.isEmpty();
  +    }
  +
  +    /**
  +     * @see java.util.Collection#iterator()
  +     */
  +    public Iterator iterator()
  +    {        
  +        return innerCollection.iterator();
  +    }
  +
  +    /**
  +     * @see java.util.Collection#removeAll(java.util.Collection)
  +     */
  +    public boolean removeAll(Collection c)
  +    {        
  +        return innerCollection.removeAll(c);
  +    }
  +
  +    /**
  +     * @see java.util.Collection#retainAll(java.util.Collection)
  +     */
  +    public boolean retainAll(Collection c)
  +    {        
  +        return innerCollection.retainAll(c);
  +    }
  +
  +    /**
  +     * @see java.util.Collection#size()
  +     */
  +    public int size()
  +    {        
  +        return innerCollection.size();
  +    }
  +
  +    /**
  +     * @see java.util.Collection#toArray()
  +     */
  +    public Object[] toArray()
  +    {        
  +        return innerCollection.toArray();
  +    }
  +
  +    /**
  +     * @see java.util.Collection#toArray(java.lang.Object[])
  +     */
  +    public Object[] toArray(Object[] a)
  +    {        
  +        return innerCollection.toArray(a);
  +    }
  +
  +    /**
  +     * @return
  +     */
  +    public Collection getInnerCollection()
  +    {
  +        return innerCollection;
  +    }
  +
  +    /**
  +     * @param collection
  +     */
  +    public void setInnerCollection(Collection collection)
  +    {
  +        innerCollection = collection;
       }
   
   }
  
  
  
  1.2       +14 -14    jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/ServletParameterSetImpl.java
  
  Index: ServletParameterSetImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/impl/ServletParameterSetImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ServletParameterSetImpl.java	12 Jan 2004 06:19:51 -0000	1.1
  +++ ServletParameterSetImpl.java	4 Feb 2004 21:12:27 -0000	1.2
  @@ -53,6 +53,8 @@
    */
   package org.apache.jetspeed.om.impl;
   
  +import org.apache.jetspeed.om.common.ParameterComposite;
  +import org.apache.jetspeed.registry.JetspeedPortletRegistry;
   
   /**
    * 
  @@ -73,20 +75,18 @@
           super();
       }
   
  -    /**
  -     * @see org.apache.jetspeed.om.common.ParameterSetImpl#getParameterClass()
  -     */
  -    protected Class getParameterClass()
  +    protected ParameterComposite newParameterInstance()
       {
  -        return ServletInitParameterImpl.class;
  +        try
  +        {
  +            return (ParameterComposite) JetspeedPortletRegistry.getNewObjectInstance(
  +                ParameterComposite.TYPE_WEB_APP,
  +                true);
  +        }
  +        catch (Exception e)
  +        {
  +            throw new IllegalStateException("Instance class unable to be configured " +
e.toString());
  +        }
       }
  -
  -    /**
  -     * @see org.apache.jetspeed.om.common.ParameterSetImpl#getLog()
  -     */
  -//TODO:    protected Log getLog()
  -//    {
  -//        return LogFactory.getLog(ServletParameterSetImpl.class);
  -//    }
   
   }
  
  
  

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


Mime
View raw message