ÔÚ 2003-08-09 06:06:00 ÄúдµÀ£º
>of you ? Could you tell me ? Thanks~~
>taylor      2003/08/08 23:06:33
>
>  Modified:    portal/src/java/org/apache/jetspeed/om/registry
>                        ClientEntry.java MediaTypeEntry.java
>               portal/src/sql/hsql create-db.sql drop-db.sql
>               portal/src/webapp/WEB-INF/conf/ojb repository_jetspeed.xml
>  Added:       portal/src/java/org/apache/jetspeed/om/registry
>                        Capability.java MimeType.java
>               portal/src/java/org/apache/jetspeed/om/registry/impl
>                        CapabilityImpl.java ClientEntryImpl.java
>                        MediaTypeEntryImpl.java MimeTypeImpl.java
>  Removed:     portal/src/java/org/apache/jetspeed/capability
>                        BaseCapabilityMap.java CapabilityMapFactory.java
>               portal/src/java/org/apache/jetspeed/om/registry/base
>                        BaseCapabilityMap.java BaseClientEntry.java
>                        BaseMediaTypeEntry.java
>  Log:
>  Patch from Roger Ruttimann
>  First phase of database-registry implementation of Media, Client, and Capability 
> registries
>  Includes OJB mapping for these registry classes
>  The services will be committed in the next phase
>
>  Revision  Changes    Path
>  1.2       +24 -2     
> jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/ClientEntry.java
>
>  Index: ClientEntry.java
>  ===================================================================
>  RCS file: 
> /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/ClientEntry.java,v
>  retrieving revision 1.1
>  retrieving revision 1.2
>  diff -u -r1.1 -r1.2
>  --- ClientEntry.java 28 Jul 2003 23:47:42 -0000      1.1
>  +++ ClientEntry.java 9 Aug 2003 06:06:32 -0000       1.2
>  @@ -53,6 +53,8 @@
>    */
>   package org.apache.jetspeed.om.registry;
>
>  +import java.util.Vector;
>  +
>   /**
>    * <P>
>    * The <CODE>ClientEntry</CODE> interface represents one client inside
>  @@ -66,6 +68,19 @@
>   public interface ClientEntry extends RegistryEntry
>   {
>       /**
>  +    * Set Client ID -- Assigns the Client ID
>  +    * @param id
>  +    */
>  +    public void setClientId(int id);
>  +
>  +
>  +       /**
>  +    * Get Client ID
>  +    * @return Client ID
>  +    */
>  +    public int getClientId();
>  +
>  +    /**
>        * Returns the pattern parameter of this client. The pattern is used
>        * to match a client to the user agent used to access the portal. If
>        * the pattern matches the user agent string, this client is recognized
>  @@ -133,7 +148,13 @@
>        * @return the MimeTypeMap
>        * @see MimeTypeMap
>        */
>  -    public MimetypeMap getMimetypeMap();
>  +    public Vector getMimetypes();
>  +
>  +    /**
>  +     * Set MimeTypes
>  +     * @param mimetypes
>  +     */
>  +    public void setMimetypes(Vector mimetypes);
>
>       /**
>        * Returns all supported capablities as <CODE>CapabilityMap</CODE>.
>  @@ -143,6 +164,7 @@
>        * @return the CapabilityMap
>        * @see CapabilityMap
>        */
>  -    public CapabilityMap getCapabilityMap();
>  +    public Vector getCapabilities();
>  +    public void setCapabilities(Vector capabilities);
>
>   }
>
>
>
>  1.2       +53 -11    
> jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/MediaTypeEntry.java
>
>  Index: MediaTypeEntry.java
>  ===================================================================
>  RCS file: 
> /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/MediaTypeEntry.java,v
>  retrieving revision 1.1
>  retrieving revision 1.2
>  diff -u -r1.1 -r1.2
>  --- MediaTypeEntry.java      28 Jul 2003 23:47:42 -0000      1.1
>  +++ MediaTypeEntry.java      9 Aug 2003 06:06:32 -0000       1.2
>  @@ -53,6 +53,8 @@
>    */
>   package org.apache.jetspeed.om.registry;
>
>  +import java.util.Vector;
>  +
>   /**
>    * This entry describes all the properties that should be present in
>    * a RegistryEntry describing a MediaType
>  @@ -65,15 +67,18 @@
>    */
>   public interface MediaTypeEntry extends RegistryEntry
>   {
>  -
>  -    /** @return the mime type associated with this MediaType */
>  -    public String getMimeType();
>  -
>  -    /** Sets the MimeType associated with this MediaType
>  -     *  @param mimeType the MIME type to associate
>  +    /**
>  +     * Set MediaType ID -- Assigns ID
>  +     * @param id
>        */
>  -    public void setMimeType( String mimeType );
>  +    public void setMediatypeId(int id);
>
>  +    /**
>  +     * Get MediaType ID -- Return ID
>  +     * @return MediaTypeID
>  +     */
>  +    public int getMediatypeId();
>  +
>       /** @return the character set associated with this MediaType */
>       public String getCharacterSet();
>
>  @@ -85,8 +90,45 @@
>        * The <CODE>CapabilityMap</CODE> contains all capabilities in arbitrary
>        * order.
>        *
>  -     * @return the CapabilityMap
>  -     * @see CapabilityMap
>  +     * @return a vector of capabilities
>  +     *
>  +     */
>  +    public Vector getCapabilities();
>  +
>  +    /**
>  +     * Set the capabilities
>  +     * @param vector of capabilities
>        */
>  -    public CapabilityMap getCapabilityMap();
>  +    public void setCapabilities(Vector capabilities);
>  +
>  +   /**
>  +   * Returns all supported mimetypes as <CODE>MimeTypeMap</CODE>.
>  +   * The <CODE>MimeTypeMap</CODE> contains all mimetypes in decreasing
>  +   * order of importance.
>  +   *
>  +   * @return the MimeTypeMap
>  +   * @see MimeTypeMap
>  +   */
>  +  public Vector getMimetypes();
>  +
>  +  /**
>  +   * Set mime types
>  +   * @param mimetypes
>  +   */
>  +  public void setMimetypes(Vector mimetypes);
>  +
>  +  /**
>  +   *    removes the MimeType to the MimeType map
>  +   * @param name
>  +   */
>  +
>  +  public void removeMimetype(String name);
>  +
>  +  /**
>  +   * removes the MimeType to the MimeType map
>  +   * @param name
>  +   */
>  +  public void addMimetype(String name);
>  +
>  +
>   }
>
>
>
>  1.1                  
> jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/Capability.java
>
>  Index: Capability.java
>  ===================================================================
>  /* ====================================================================
>   * The Apache Software License, Version 1.1
>   *
>   * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
>   * reserved.
>   *
>   * Redistribution and use in source and binary forms, with or without
>   * modification, are permitted provided that the following conditions
>   * are met:
>   *
>   * 1. Redistributions of source code must retain the above copyright
>   *    notice, this list of conditions and the following disclaimer.
>   *
>   * 2. Redistributions in binary form must reproduce the above copyright
>   *    notice, this list of conditions and the following disclaimer in
>   *    the documentation and/or other materials provided with the
>   *    distribution.
>   *
>   * 3. The end-user documentation included with the redistribution,
>   *    if any, must include the following acknowledgment:
>   *       "This product includes software developed by the
>   *        Apache Software Foundation (http://www.apache.org/)."
>   *    Alternately, this acknowledgment may appear in the software itself,
>   *    if and wherever such third-party acknowledgments normally appear.
>   *
>   * 4. The names "Apache" and "Apache Software Foundation" and
>   *    "Apache Jetspeed" must not be used to endorse or promote products
>   *    derived from this software without prior written permission. For
>   *    written permission, please contact [EMAIL PROTECTED]
>   *
>   * 5. Products derived from this software may not be called "Apache",
>   *    "Apache Jetspeed", nor may "Apache" appear in their name, without
>   *    prior written permission of the Apache Software Foundation.
>   *
>   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>   * SUCH DAMAGE.
>   * ====================================================================
>   *
>   * This software consists of voluntary contributions made by many
>   * individuals on behalf of the Apache Software Foundation.  For more
>   * information on the Apache Software Foundation, please see
>   * <http://www.apache.org/>.
>   */
>
>
>  package org.apache.jetspeed.om.registry;
>
>  /**
>   * Capability class.
>   *
>   * @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
>   * @version $Id: Capability.java,v 1.1 2003/08/09 06:06:32 taylor Exp $
>   */
>  public interface Capability
>  {
>      /**
>       * Set CapabilityId
>       *
>       * @param id
>       */
>      public void setCapabilityId(int id);
>
>      /**
>       * Get CapabilityId
>       *
>       * @return capabilityId
>       */
>      public int getCapabilityId();
>
>      /**
>       * Set Capability name
>       *
>       * @param name
>       */
>      public void setName(String name);
>
>      /**
>       * Get CapabilityId
>       *
>       * @return capability string
>       */
>      public String getName();
>
>  }
>
>
>
>  1.1                  
> jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/MimeType.java
>
>  Index: MimeType.java
>  ===================================================================
>  /* ====================================================================
>   * The Apache Software License, Version 1.1
>   *
>   * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
>   * reserved.
>   *
>   * Redistribution and use in source and binary forms, with or without
>   * modification, are permitted provided that the following conditions
>   * are met:
>   *
>   * 1. Redistributions of source code must retain the above copyright
>   *    notice, this list of conditions and the following disclaimer.
>   *
>   * 2. Redistributions in binary form must reproduce the above copyright
>   *    notice, this list of conditions and the following disclaimer in
>   *    the documentation and/or other materials provided with the
>   *    distribution.
>   *
>   * 3. The end-user documentation included with the redistribution,
>   *    if any, must include the following acknowledgment:
>   *       "This product includes software developed by the
>   *        Apache Software Foundation (http://www.apache.org/)."
>   *    Alternately, this acknowledgment may appear in the software itself,
>   *    if and wherever such third-party acknowledgments normally appear.
>   *
>   * 4. The names "Apache" and "Apache Software Foundation" and
>   *    "Apache Jetspeed" must not be used to endorse or promote products
>   *    derived from this software without prior written permission. For
>   *    written permission, please contact [EMAIL PROTECTED]
>   *
>   * 5. Products derived from this software may not be called "Apache",
>   *    "Apache Jetspeed", nor may "Apache" appear in their name, without
>   *    prior written permission of the Apache Software Foundation.
>   *
>   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>   * SUCH DAMAGE.
>   * ====================================================================
>   *
>   * This software consists of voluntary contributions made by many
>   * individuals on behalf of the Apache Software Foundation.  For more
>   * information on the Apache Software Foundation, please see
>   * <http://www.apache.org/>.
>   */
>
>  package org.apache.jetspeed.om.registry;
>
>  /**
>   * Mimetype class.
>   *
>   * @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
>   * @version $Id: MimeType.java,v 1.1 2003/08/09 06:06:32 taylor Exp $
>   */
>  public interface MimeType
>  {
>      /**
>       * Set MimetypeId
>       *
>       * @param id
>       */
>      public void setMimetypeId(int id);
>
>      /**
>       * Get CapabilityId
>       *
>       * @return capabilityId
>       */
>      public int getMimetypeId();
>
>      /**
>       * Set Capability name
>       *
>       * @param name
>       */
>      public void setName(String name);
>
>      /**
>       * Get CapabilityId
>       *
>       * @return capability string
>       */
>      public String getName();
>
>  }
>
>
>  1.1                  
> jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/impl/CapabilityImpl.java
>
>  Index: CapabilityImpl.java
>  ===================================================================
>  /* ====================================================================
>   * The Apache Software License, Version 1.1
>   *
>   * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
>   * reserved.
>   *
>   * Redistribution and use in source and binary forms, with or without
>   * modification, are permitted provided that the following conditions
>   * are met:
>   *
>   * 1. Redistributions of source code must retain the above copyright
>   *    notice, this list of conditions and the following disclaimer.
>   *
>   * 2. Redistributions in binary form must reproduce the above copyright
>   *    notice, this list of conditions and the following disclaimer in
>   *    the documentation and/or other materials provided with the
>   *    distribution.
>   *
>   * 3. The end-user documentation included with the redistribution,
>   *    if any, must include the following acknowledgment:
>   *       "This product includes software developed by the
>   *        Apache Software Foundation (http://www.apache.org/)."
>   *    Alternately, this acknowledgment may appear in the software itself,
>   *    if and wherever such third-party acknowledgments normally appear.
>   *
>   * 4. The names "Apache" and "Apache Software Foundation" and
>   *    "Apache Jetspeed" must not be used to endorse or promote products
>   *    derived from this software without prior written permission. For
>   *    written permission, please contact [EMAIL PROTECTED]
>   *
>   * 5. Products derived from this software may not be called "Apache",
>   *    "Apache Jetspeed", nor may "Apache" appear in their name, without
>   *    prior written permission of the Apache Software Foundation.
>   *
>   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>   * SUCH DAMAGE.
>   * ====================================================================
>   *
>   * This software consists of voluntary contributions made by many
>   * individuals on behalf of the Apache Software Foundation.  For more
>   * information on the Apache Software Foundation, please see
>   * <http://www.apache.org/>.
>   */
>
>  package org.apache.jetspeed.om.registry.impl;
>
>  import org.apache.jetspeed.om.registry.Capability;
>
>  /**
>   * Capability implementation class.
>   *
>   * @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
>   * @version $Id: CapabilityImpl.java,v 1.1 2003/08/09 06:06:33 taylor Exp $
>   */
>
>  public class CapabilityImpl implements Capability
>  {
>      private int capabilityId;
>      private String name;
>
>      /* (non-Javadoc)
>       * @see org.apache.jetspeed.om.registry.Capability#setCapabilityId(int)
>       */
>      public void setCapabilityId(int id)
>      {
>          this.capabilityId = id;
>      }
>
>      /* (non-Javadoc)
>       * @see org.apache.jetspeed.om.registry.Capability#getCapabilityId()
>       */
>      public int getCapabilityId()
>      {
>          return this.capabilityId;
>      }
>
>      /* (non-Javadoc)
>       * @see org.apache.jetspeed.om.registry.Capability#setName(java.lang.String)
>       */
>      public void setName(String name)
>      {
>          this.name = name;
>      }
>
>      /* (non-Javadoc)
>       * @see org.apache.jetspeed.om.registry.Capability#getName()
>       */
>      public String getName()
>      {
>          return this.name;
>      }
>
>  }
>
>
>
>  1.1                  
> jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/impl/ClientEntryImpl.java
>
>  Index: ClientEntryImpl.java
>  ===================================================================
>  /* ====================================================================
>   * The Apache Software License, Version 1.1
>   *
>   * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
>   * reserved.
>   *
>   * Redistribution and use in source and binary forms, with or without
>   * modification, are permitted provided that the following conditions
>   * are met:
>   *
>   * 1. Redistributions of source code must retain the above copyright
>   *    notice, this list of conditions and the following disclaimer.
>   *
>   * 2. Redistributions in binary form must reproduce the above copyright
>   *    notice, this list of conditions and the following disclaimer in
>   *    the documentation and/or other materials provided with the
>   *    distribution.
>   *
>   * 3. The end-user documentation included with the redistribution,
>   *    if any, must include the following acknowledgment:
>   *       "This product includes software developed by the
>   *        Apache Software Foundation (http://www.apache.org/)."
>   *    Alternately, this acknowledgment may appear in the software itself,
>   *    if and wherever such third-party acknowledgments normally appear.
>   *
>   * 4. The names "Apache" and "Apache Software Foundation" and
>   *    "Apache Jetspeed" must not be used to endorse or promote products
>   *    derived from this software without prior written permission. For
>   *    written permission, please contact [EMAIL PROTECTED]
>   *
>   * 5. Products derived from this software may not be called "Apache",
>   *    "Apache Jetspeed", nor may "Apache" appear in their name, without
>   *    prior written permission of the Apache Software Foundation.
>   *
>   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>   * SUCH DAMAGE.
>   * ====================================================================
>   *
>   * This software consists of voluntary contributions made by many
>   * individuals on behalf of the Apache Software Foundation.  For more
>   * information on the Apache Software Foundation, please see
>   * <http://www.apache.org/>.
>   */
>
>  package org.apache.jetspeed.om.registry.impl;
>
>  import org.apache.jetspeed.om.registry.ClientEntry;
>  import org.apache.jetspeed.om.registry.base.BaseRegistryEntry;
>  import java.util.Vector;
>
>  /**
>   * Simple implementation of the ClientRegistry interface.
>   *
>   * @author <a href="[EMAIL PROTECTED]">Stephan Hesmer</a>
>   * @author <a href="mailto:[EMAIL PROTECTED]">Raphaël Luta</a>
>   * @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
>   * @version $Id: ClientEntryImpl.java,v 1.1 2003/08/09 06:06:33 taylor Exp $
>   */
>  public class ClientEntryImpl extends BaseRegistryEntry
>      implements ClientEntry, java.io.Serializable
>  {
>      private String useragentpattern = "";
>      private String manufacturer = "";
>      private String model = "";
>      private String version = "";
>      private Vector mimetypes;
>      private Vector capabilities;
>
>      private int clientId;
>
>      public ClientEntryImpl()
>      {
>      }
>
>
>      /**
>       * Implements the equals operation so that 2 elements are equal if
>       * all their member values are equal.
>       */
>      public boolean equals(Object object)
>      {
>          if (object==null)
>          {
>              return false;
>          }
>
>          ClientEntryImpl obj = (ClientEntryImpl)object;
>
>          if (useragentpattern!=null)
>          {
>              if (!useragentpattern.equals(obj.useragentpattern))
>              {
>                  return false;
>              }
>          }
>          else
>          {
>              if (obj.useragentpattern!=null)
>              {
>                  return false;
>              }
>          }
>
>          if (manufacturer!=null)
>          {
>              if (!manufacturer.equals(obj.manufacturer))
>              {
>                  return false;
>              }
>          }
>          else
>          {
>              if (obj.manufacturer!=null)
>              {
>                  return false;
>              }
>          }
>
>          if (model!=null)
>          {
>              if (!model.equals(obj.model))
>              {
>                  return false;
>              }
>          }
>          else
>          {
>              if (obj.model!=null)
>              {
>                  return false;
>              }
>          }
>
>          if (version!=null)
>          {
>              if (!version.equals(obj.version))
>              {
>                  return false;
>              }
>          }
>          else
>          {
>              if (obj.version!=null)
>              {
>                  return false;
>              }
>          }
>
>          if (!mimetypes.contains(obj.mimetypes))
>          {
>              return false;
>          }
>
>          if (!capabilities.contains(obj.capabilities))
>          {
>              return false;
>          }
>
>          return super.equals(object);
>      }
>
>      public String getUseragentpattern()
>      {
>          return useragentpattern;
>      }
>
>      public void setUseragentpattern(String useragentpattern)
>      {
>          this.useragentpattern = useragentpattern;
>      }
>
>      public String getManufacturer()
>      {
>          return manufacturer;
>      }
>
>      public void setManufacturer(String name)
>      {
>          manufacturer = name;
>      }
>
>      public String getModel()
>      {
>          return model;
>      }
>
>      public void setModel(String name)
>      {
>          model = name;
>      }
>
>      public String getVersion()
>      {
>          return version;
>      }
>
>      public void setVersion(String name)
>      {
>          version = name;
>      }
>
>
>      public Vector getMimetypes()
>      {
>          return mimetypes;
>      }
>
>      public void setMimetypes(Vector mimetypes)
>      {
>          this.mimetypes = mimetypes;
>      }
>
>      public Vector getCapabilities()
>      {
>          return capabilities;
>      }
>
>      public void setCapabilities(Vector capabilities)
>      {
>          this.capabilities = capabilities;
>      }
>
>      /**
>       * Set Client ID -- Assigns the Client ID
>       * @param id
>       */
>      public void setClientId(int id)
>      {
>          this.clientId = id;
>      }
>
>      /**
>       * Get Client ID
>       * @return Client ID
>       */
>      public int getClientId()
>      {
>          return this.clientId;
>      }
>  }
>
>
>
>  1.1                  
> jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/impl/MediaTypeEntryImpl.java
>
>  Index: MediaTypeEntryImpl.java
>  ===================================================================
>  /* ====================================================================
>   * The Apache Software License, Version 1.1
>   *
>   * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
>   * reserved.
>   *
>   * Redistribution and use in source and binary forms, with or without
>   * modification, are permitted provided that the following conditions
>   * are met:
>   *
>   * 1. Redistributions of source code must retain the above copyright
>   *    notice, this list of conditions and the following disclaimer.
>   *
>   * 2. Redistributions in binary form must reproduce the above copyright
>   *    notice, this list of conditions and the following disclaimer in
>   *    the documentation and/or other materials provided with the
>   *    distribution.
>   *
>   * 3. The end-user documentation included with the redistribution,
>   *    if any, must include the following acknowledgment:
>   *       "This product includes software developed by the
>   *        Apache Software Foundation (http://www.apache.org/)."
>   *    Alternately, this acknowledgment may appear in the software itself,
>   *    if and wherever such third-party acknowledgments normally appear.
>   *
>   * 4. The names "Apache" and "Apache Software Foundation" and
>   *    "Apache Jetspeed" must not be used to endorse or promote products
>   *    derived from this software without prior written permission. For
>   *    written permission, please contact [EMAIL PROTECTED]
>   *
>   * 5. Products derived from this software may not be called "Apache",
>   *    "Apache Jetspeed", nor may "Apache" appear in their name, without
>   *    prior written permission of the Apache Software Foundation.
>   *
>   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>   * SUCH DAMAGE.
>   * ====================================================================
>   *
>   * This software consists of voluntary contributions made by many
>   * individuals on behalf of the Apache Software Foundation.  For more
>   * information on the Apache Software Foundation, please see
>   * <http://www.apache.org/>.
>   */
>  package org.apache.jetspeed.om.registry.impl;
>
>  import org.apache.jetspeed.om.registry.MediaTypeEntry;
>  import org.apache.jetspeed.om.registry.base.BaseRegistryEntry;
>  import java.util.Vector;
>
>  /**
>   * Default bean like implementation of MediaTypeEntry interface
>   * suitable for serializing with Castor
>   *
>   * @author <a href="mailto:[EMAIL PROTECTED]">Raphaël Luta</a>
>   * @version $Id: MediaTypeEntryImpl.java,v 1.1 2003/08/09 06:06:33 taylor Exp $
>   */
>  public class MediaTypeEntryImpl extends BaseRegistryEntry
>      implements MediaTypeEntry
>  {
>      protected String characterSet;
>      private Vector capabilities;
>      private Vector mimetypes;
>      private int mediatypeId;
>
>      public MediaTypeEntryImpl()
>      {}
>
>      public MediaTypeEntryImpl(long id,
>                                String name,
>                                int _hidden,
>                                String mimeType,
>                                String title,
>                                String description,
>                                String image,
>                                 String role)
>      {
>           this.mimetypes.add(mimeType);
>      }
>
>      /**
>       * Implements the equals operation so that 2 elements are equal if
>       * all their member values are equal.
>       */
>      public boolean equals(Object object)
>      {
>          if (object==null)
>          {
>              return false;
>          }
>
>          MediaTypeEntryImpl obj = (MediaTypeEntryImpl)object;
>
>          if (mimetypes.isEmpty()!= true)
>          {
>              if ( !mimetypes.contains(obj.getMimetypes().firstElement()) )
>              {
>                  return false;
>              }
>          }
>          else
>          {
>              if (obj.getMimetypes().isEmpty() == false)
>              {
>                  return false;
>              }
>          }
>
>          if (characterSet!=null)
>          {
>              if (!characterSet.equals(obj.characterSet))
>              {
>                  return false;
>              }
>          }
>          else
>          {
>              if (obj.characterSet!=null)
>              {
>                  return false;
>              }
>          }
>
>          if (!capabilities.equals(obj.capabilities))
>          {
>              return false;
>          }
>
>          return super.equals(object);
>      }
>
>
>      /** @return the character set associated with this MediaType */
>      public String getCharacterSet()
>      {
>          return this.characterSet;
>      }
>
>      /** Sets the character set associated with this MediaType */
>      public void setCharacterSet( String charSet)
>      {
>          this.characterSet = charSet;
>      }
>
>
>      public Vector getCapabilities()
>      {
>          return this.capabilities;
>      }
>
>      public void setCapabilities(Vector capabilities)
>      {
>          this.capabilities = capabilities;
>      }
>
>      public Vector getMimetypes()
>      {
>          return this.mimetypes;
>      }
>
>      public void setMimetypes(Vector mimetypes)
>      {
>          this.mimetypes = mimetypes;
>      }
>
>      public void addMimetype(String name)
>      {
>          if (!mimetypes.contains(name))
>          {
>              mimetypes.add(name);
>          }
>      }
>
>      public void removeMimetype(String name)
>      {
>          mimetypes.remove(name);
>      }
>
>      /**
>       * Set MediaType ID -- Assigns ID
>       * @param id
>       */
>      public void setMediatypeId(int id)
>      {
>          this.mediatypeId = id;
>      }
>
>      /**
>       * Get MediaType ID -- Return ID
>       * @return MediaTypeID
>       */
>      public int getMediatypeId()
>      {
>          return this.mediatypeId;
>      }
>
>  }
>
>
>
>  1.1                  
> jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/om/registry/impl/MimeTypeImpl.java
>
>  Index: MimeTypeImpl.java
>  ===================================================================
>  /* ====================================================================
>   * The Apache Software License, Version 1.1
>   *
>   * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
>   * reserved.
>   *
>   * Redistribution and use in source and binary forms, with or without
>   * modification, are permitted provided that the following conditions
>   * are met:
>   *
>   * 1. Redistributions of source code must retain the above copyright
>   *    notice, this list of conditions and the following disclaimer.
>   *
>   * 2. Redistributions in binary form must reproduce the above copyright
>   *    notice, this list of conditions and the following disclaimer in
>   *    the documentation and/or other materials provided with the
>   *    distribution.
>   *
>   * 3. The end-user documentation included with the redistribution,
>   *    if any, must include the following acknowledgment:
>   *       "This product includes software developed by the
>   *        Apache Software Foundation (http://www.apache.org/)."
>   *    Alternately, this acknowledgment may appear in the software itself,
>   *    if and wherever such third-party acknowledgments normally appear.
>   *
>   * 4. The names "Apache" and "Apache Software Foundation" and
>   *    "Apache Jetspeed" must not be used to endorse or promote products
>   *    derived from this software without prior written permission. For
>   *    written permission, please contact [EMAIL PROTECTED]
>   *
>   * 5. Products derived from this software may not be called "Apache",
>   *    "Apache Jetspeed", nor may "Apache" appear in their name, without
>   *    prior written permission of the Apache Software Foundation.
>   *
>   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>   * SUCH DAMAGE.
>   * ====================================================================
>   *
>   * This software consists of voluntary contributions made by many
>   * individuals on behalf of the Apache Software Foundation.  For more
>   * information on the Apache Software Foundation, please see
>   * <http://www.apache.org/>.
>   */
>
>  package org.apache.jetspeed.om.registry.impl;
>
>  import org.apache.jetspeed.om.registry.MimeType;
>
>
>  /**
>   * Mimetype implementation class.
>   *
>   * @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
>   * @version $Id: MimeTypeImpl.java,v 1.1 2003/08/09 06:06:33 taylor Exp $
>   */
>
>  public class MimeTypeImpl implements MimeType
>  {
>      private int mimeTypeId;
>      private String name;
>
>      /* (non-Javadoc)
>       * @see org.apache.jetspeed.om.registry.MimeType#setMimetypeId(int)
>       */
>      public void setMimetypeId(int id)
>      {
>        this.mimeTypeId = id;
>      }
>
>      /* (non-Javadoc)
>       * @see org.apache.jetspeed.om.registry.MimeType#getMimetypeId()
>       */
>      public int getMimetypeId()
>      {
>          return this.mimeTypeId;
>      }
>
>      /* (non-Javadoc)
>       * @see org.apache.jetspeed.om.registry.MimeType#setName(java.lang.String)
>       */
>      public void setName(String name)
>      {
>          this.name = name;
>      }
>
>      /* (non-Javadoc)
>       * @see org.apache.jetspeed.om.registry.MimeType#getName()
>       */
>      public String getName()
>      {
>          return this.name;
>      }
>
>  }
>
>
>
>  1.6       +77 -0     jakarta-jetspeed-2/portal/src/sql/hsql/create-db.sql
>
>  Index: create-db.sql
>  ===================================================================
>  RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/sql/hsql/create-db.sql,v
>  retrieving revision 1.5
>  retrieving revision 1.6
>  diff -u -r1.5 -r1.6
>  --- create-db.sql    8 Aug 2003 21:59:53 -0000       1.5
>  +++ create-db.sql    9 Aug 2003 06:06:33 -0000       1.6
>  @@ -145,4 +145,81 @@
>       LOCALE_STRING VARCHAR(50) NOT NULL
>   );
>
>  +------------------------------------------------------------------------------
>  +-- Tables for Capability mapping
>  +------------------------------------------------------------------------------
>  +
>  +-----------------------------------------------------------------------------
>  +-- Media Type
>  +------------------------------------------------------------------------------
>  +
>  +CREATE TABLE MEDIA_TYPE(
>  +    MEDIATYPE_ID INTEGER NOT NULL PRIMARY KEY,
>  +    NAME VARCHAR(80) NOT NULL,
>  +    CHARACTER_SET VARCHAR(40),
>  +    TITLE VARCHAR(80),
>  +    DESCRIPTION LONGVARCHAR
>  +);
>  +
>  +------------------------------------------------------------------------------
>  +-- Client
>  +------------------------------------------------------------------------------
>  +
>  +CREATE TABLE CLIENT(
>  +    CLIENT_ID INTEGER NOT NULL PRIMARY KEY,
>  +    NAME VARCHAR(80) NOT NULL,
>  +    USER_AGENT_PATTERN VARCHAR (128),
>  +    MANUFACTURER VARCHAR (80),
>  +    MODEL VARCHAR(80),
>  +    VERSION VARCHAR(40)
>  +);
>  +
>  +------------------------------------------------------------------------------
>  +-- Mimetype
>  +------------------------------------------------------------------------------
>  +
>  +CREATE TABLE MIMETYPE(
>  +    MIMETYPE_ID INTEGER NOT NULL PRIMARY KEY,
>  +    NAME VARCHAR(80) NOT NULL
>  +);
>  +
>  +------------------------------------------------------------------------------
>  +-- Capability
>  +------------------------------------------------------------------------------
>  +
>  +CREATE TABLE  CAPABILITY(
>  +    CAPABILITY_ID INTEGER NOT NULL PRIMARY KEY,
>  +    CAPABILITY VARCHAR(80) NOT NULL
>  +);
>  +
>  +------------------------------------------------------
>  +-- Client association
>  +------------------------------------------------------
>  +CREATE TABLE  CLIENT_TO_CAPABILITY(
>  +
>  +    CLIENT_ID INTEGER NOT NULL,
>  +    CAPABILITY_ID INTEGER NOT NULL
>  +);
>  +
>  +
>  +CREATE TABLE  CLIENT_TO_MIMETYPE(
>  +    CLIENT_ID INTEGER NOT NULL,
>  +    MIMETYPE_ID INTEGER NOT NULL
>  +);
>  +
>  +----------------------------------------------------
>  +-- Media Type association
>  +----------------------------------------------------
>  +CREATE TABLE  MEDIATYPE_TO_CAPABILITY(
>  +
>  +    MEDIATYPE_ID INTEGER NOT NULL,
>  +    CAPABILITY_ID INTEGER NOT NULL
>  +);
>  +
>  +
>  +CREATE TABLE  MEDIATYPE_TO_MIMETYPE(
>  +    MEDIATYPE_ID INTEGER NOT NULL,
>  +    MIMETYPE_ID INTEGER NOT NULL
>  +);
>  +
>
>
>
>
>  1.4       +11 -1     jakarta-jetspeed-2/portal/src/sql/hsql/drop-db.sql
>
>  Index: drop-db.sql
>  ===================================================================
>  RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/sql/hsql/drop-db.sql,v
>  retrieving revision 1.3
>  retrieving revision 1.4
>  diff -u -r1.3 -r1.4
>  --- drop-db.sql      1 Aug 2003 20:14:46 -0000       1.3
>  +++ drop-db.sql      9 Aug 2003 06:06:33 -0000       1.4
>  @@ -27,7 +27,17 @@
>   DROP TABLE OJB_DSET IF EXISTS
>   DROP TABLE OJB_DSET_ENTRIES IF EXISTS
>   DROP TABLE OJB_DMAP IF EXISTS
>  -DROP TABLE OJB_DMAP_ENTRIES IF EXISTS
>  +DROP TABLE OJB_DMAP_ENTRIES IF EXISTS
>  +
>  +DROP TABLE CAPABILITY IF EXISTS
>  +DROP TABLE MIMETYPE IF EXISTS
>  +DROP TABLE CLIENT IF EXISTS
>  +DROP TABLE MEDIA_TYPE IF EXISTS
>  +
>  +DROP TABLE CLIENT_TO_CAPABILITY IF EXISTS
>  +DROP TABLE CLIENT_TO_MIMETYPE IF EXISTS
>  +DROP TABLE MEDIATYPE_TO_CAPABILITY IF EXISTS
>  +DROP TABLE MEDIATYPE_TO_MIMETYPE IF EXISTS
>
>
>
>
>
>
>  1.7       +180 -2    
> jakarta-jetspeed-2/portal/src/webapp/WEB-INF/conf/ojb/repository_jetspeed.xml
>
>  Index: repository_jetspeed.xml
>  ===================================================================
>  RCS file: 
> /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/conf/ojb/repository_jetspeed.xml,v
>  retrieving revision 1.6
>  retrieving revision 1.7
>  diff -u -r1.6 -r1.7
>  --- repository_jetspeed.xml  8 Aug 2003 14:21:53 -0000       1.6
>  +++ repository_jetspeed.xml  9 Aug 2003 06:06:33 -0000       1.7
>  @@ -716,7 +716,185 @@
>
>
>       </class-descriptor>
>  -
>  -
>
>  +
>  +<!--
>  +   - C A P A B I L I T Y  M A P P I N G
>  +--> 
>
>  +<!--
>  +   - M E D I A T Y P E
>  +  -->
>  +    <class-descriptor
>  +      class="org.apache.jetspeed.om.registry.impl.MediaTypeEntryImpl"
>  +      table="MEDIA_TYPE"
>  +   >
>  +
>  +        <field-descriptor
>  +         name="MediatypeId"
>  +         column="MEDIATYPE_ID"
>  +         jdbc-type="INTEGER"
>  +         primarykey="true"
>  +         autoincrement="true"
>  +      />
>  +
>  +      <field-descriptor
>  +         name="Name"
>  +         column="NAME"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +      <field-descriptor
>  +         name="CharacterSet"
>  +         column="CHARACTER_SET"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +      <field-descriptor
>  +         name="Title"
>  +         column="TITLE"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +      <field-descriptor
>  +         name="Description"
>  +         column="DESCRIPTION"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +      <collection-descriptor
>  +          name="Capabilities"
>  +          element-class-ref="org.apache.jetspeed.om.registry.impl.CapabilityImpl"
>  +
>  +          indirection-table="MEDIATYPE_TO_CAPABILITY"
>  +       >
>  +          <fk-pointing-to-this-class column="MEDIATYPE_ID"/>
>  +          <fk-pointing-to-element-class column="CAPABILITY_ID"/>
>  +       </collection-descriptor>
>  +
>  +       <collection-descriptor
>  +          name="Mimetypes"
>  +          element-class-ref="org.apache.jetspeed.om.registry.impl.MimeTypeImpl"
>  +
>  +          indirection-table="MEDIATYPE_TO_MIMETYPE"
>  +       >
>  +          <fk-pointing-to-this-class column="MEDIATYPE_ID"/>
>  +          <fk-pointing-to-element-class column="MIMETYPE_ID"/>
>  +       </collection-descriptor>
>  +
>  +      </class-descriptor>
>  +
>  +  <!--
>  +   - C L I E N T
>  +  -->
>  +    <class-descriptor
>  +      class="org.apache.jetspeed.om.registry.impl.ClientEntryImpl"
>  +      table="CLIENT"
>  +   >
>  +        <field-descriptor
>  +         name="ClientId"
>  +         column="CLIENT_ID"
>  +         jdbc-type="INTEGER"
>  +         primarykey="true"
>  +         autoincrement="true"
>  +       />
>  +
>  +        <field-descriptor
>  +         name="Name"
>  +         column="NAME"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +      <field-descriptor
>  +         name="Useragentpattern"
>  +         column="USER_AGENT_PATTERN"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +      <field-descriptor
>  +         name="Manufacturer"
>  +         column="MANUFACTURER"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +      <field-descriptor
>  +         name="Model"
>  +         column="MODEL"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +      <field-descriptor
>  +         name="Version"
>  +         column="VERSION"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +      <collection-descriptor
>  +          name="Capabilities"
>  +          element-class-ref="org.apache.jetspeed.om.registry.impl.CapabilityImpl"
>  +
>  +          indirection-table="MEDIATYPE_TO_CAPABILITY"
>  +       >
>  +          <fk-pointing-to-this-class column="MEDIATYPE_ID"/>
>  +          <fk-pointing-to-element-class column="CAPABILITY_ID"/>
>  +       </collection-descriptor>
>  +
>  +       <collection-descriptor
>  +          name="Mimetypes"
>  +          element-class-ref="org.apache.jetspeed.om.registry.impl.MimeTypeImpl"
>  +
>  +          indirection-table="MEDIATYPE_TO_MIMETYPE"
>  +       >
>  +          <fk-pointing-to-this-class column="MEDIATYPE_ID"/>
>  +          <fk-pointing-to-element-class column="MIMETYPE_ID"/>
>  +       </collection-descriptor>
>  +
>  +    </class-descriptor>
>  +
>  +<!--
>  +   - M I M E T Y P E
>  +  -->
>  +    <class-descriptor
>  +      class="org.apache.jetspeed.om.registry.impl.MimeTypeImpl"
>  +      table="MIMETYPE"
>  +   >
>  +        <field-descriptor
>  +         name="MimetypeId"
>  +         column="MIMETYPE_ID"
>  +         jdbc-type="INTEGER"
>  +         primarykey="true"
>  +         autoincrement="true"
>  +      />
>  +
>  +
>  +      <field-descriptor
>  +         name="name"
>  +         column="NAME"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +    </class-descriptor>
>  +
>  +<!--
>  +   - C A P A B I L I T Y
>  +  -->
>  +    <class-descriptor
>  +      class="org.apache.jetspeed.om.registry.impl.CapabilityImpl"
>  +      table="CAPABILITY"
>  +   >
>  +        <field-descriptor
>  +         name="CapabilityId"
>  +         column="CAPABILITY_ID"
>  +         jdbc-type="INTEGER"
>  +         primarykey="true"
>  +         autoincrement="true"
>  +      />
>  +
>  +       <field-descriptor
>  +         name="Name"
>  +         column="CAPABILITY"
>  +         jdbc-type="VARCHAR"
>  +      />
>  +
>  +    </class-descriptor>
>  +
>  +
>  \ No newline at end of file
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>
                                 mqg

- SOUVENIR ----------- --------.
| Souvenir of China     |
| A Good Place for You  |
`--> http://www.souvenirchina.com -'
mailto:[EMAIL PROTECTED]




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

Reply via email to