portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pau...@apache.org
Subject cvs commit: jakarta-jetspeed/build build.xml
Date Sun, 15 Sep 2002 16:18:18 GMT
paulsp      2002/09/15 09:18:18

  Modified:    src/java/org/apache/jetspeed/services/registry
                        CastorRegistryService.java
               build    build.xml
  Log:
  o Housekeeping directed by checkstyle.  No functional changes.
  o Noted version of checkstyle.  Currently we are using 2.3 which
     is not compatible with version 2.4 from the standpoint of ANT
  
  Revision  Changes    Path
  1.19      +180 -129  jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java
  
  Index: CastorRegistryService.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- CastorRegistryService.java	15 Sep 2002 14:26:19 -0000	1.18
  +++ CastorRegistryService.java	15 Sep 2002 16:18:17 -0000	1.19
  @@ -54,32 +54,46 @@
   
   package org.apache.jetspeed.services.registry;
   
  -import org.apache.jetspeed.om.registry.*;
  -import org.apache.jetspeed.om.registry.base.*;
  +// Jetspeed stuff
  +import org.apache.jetspeed.om.registry.Registry;
  +import org.apache.jetspeed.om.registry.RegistryEntry;
  +import org.apache.jetspeed.om.registry.RegistryException;
  +import org.apache.jetspeed.om.registry.base.BaseRegistry;
  +import org.apache.jetspeed.om.registry.base.BasePortletRegistry;
   
   //turbine stuff
   import org.apache.turbine.util.Log;
  -import org.apache.turbine.services.*;
  +import org.apache.turbine.services.InitializationException;
  +import org.apache.turbine.services.TurbineBaseService;
  +import org.apache.turbine.services.TurbineServices;
   import org.apache.turbine.services.servlet.TurbineServlet;
   import org.apache.turbine.services.resources.ResourceService;
   
   // castor marshalling
   import org.exolab.castor.mapping.Mapping;
  -import org.exolab.castor.mapping.MappingException;
   import org.exolab.castor.xml.Unmarshaller;
   import org.exolab.castor.xml.Marshaller;
   import org.xml.sax.InputSource;
   import org.apache.xml.serialize.Serializer;
   import org.apache.xml.serialize.XMLSerializer;
   import org.apache.xml.serialize.OutputFormat;
  -import org.w3c.dom.*;
  +import org.w3c.dom.Document;
  +import org.w3c.dom.Node;
   
   //java stuff
  -import java.util.*;
  -import java.io.*;
  -import java.net.*;
  +import java.io.File;
  +import java.io.FileFilter;
  +import java.io.FileReader;
  +import java.io.FileOutputStream;
  +import java.io.OutputStreamWriter;
  +import java.io.Reader;
  +import java.util.Enumeration;
  +import java.util.Hashtable;
  +import java.util.Iterator;
  +import java.util.Vector;
   import javax.servlet.ServletConfig;
  -import javax.xml.parsers.*;
  +import javax.xml.parsers.DocumentBuilder;
  +import javax.xml.parsers.DocumentBuilderFactory;
   
   /**
    * <p>This is an implementation of the <code>RegistryService</code>
  @@ -109,7 +123,8 @@
    */
   public class CastorRegistryService
       extends TurbineBaseService
  -    implements RegistryService, FileRegistry {
  +    implements RegistryService, FileRegistry 
  +{
                
       public static final int DEFAULT_REFRESH = 300;
       public static final String DEFAULT_EXTENSION = ".xreg";
  @@ -148,8 +163,9 @@
        * @param regName the name of the registry to fetch
        * @return a Registry object if found by the manager or null
        */
  -    public Registry get( String regName ) {
  -        return (Registry)registries.get( regName );       
  +    public Registry get(String regName)
  +    {
  +        return (Registry) registries.get(regName);       
       }
   
       /**
  @@ -157,7 +173,8 @@
        * 
        * @return an Enumeration of registry names.
        */
  -    public Enumeration getNames() {
  +    public Enumeration getNames()
  +    {
           return registries.keys();
       }
       
  @@ -171,14 +188,20 @@
        *                  registry
        * @return a RegistryEntry object if the key is found or null
        */
  -    public RegistryEntry getEntry( String regName, String entryName ) {
  -        try {   
  -            return ((Registry)registries.get( regName )).getEntry( entryName );
  -        } catch ( RegistryException e ) {
  -            Log.info("Failed to retrieve "+entryName+" from "+regName);
  -        } catch ( NullPointerException e ) {
  +    public RegistryEntry getEntry(String regName, String entryName)
  +    {
  +        try 
  +        {
  +            return ((Registry) registries.get(regName)).getEntry(entryName);
  +        }
  +        catch (RegistryException e)
  +        {
  +            Log.info("Failed to retrieve " + entryName + " from " + regName);
  +        }
  +        catch (NullPointerException e)
  +        {
               Log.error(regName + " registry is not known ");
  -            Log.error( e );
  +            Log.error(e);
           }
               
           return null;
  @@ -201,47 +224,51 @@
               return;
           }
           
  -        Registry registry = (Registry)registries.get( regName );
  +        Registry registry = (Registry) registries.get(regName);
           
  -        if (registry!=null)
  +        if (registry != null)
           {
  -            String fragmentName = (String)entryIndex.get( entry.getName() );
  +            String fragmentName = (String) entryIndex.get(entry.getName());
               
               if (fragmentName == null)
               {
                   // either the entry was deleted or it does not exist
                   // in both cases, use the default fragment                
  -                fragmentName = (String)defaults.get( regName );
  +                fragmentName = (String) defaults.get(regName);
               }
                   
  -            RegistryFragment fragment = (RegistryFragment)fragments.get( fragmentName );
  +            RegistryFragment fragment = (RegistryFragment) fragments.get(fragmentName);
   
               //Fragment can be (and sometimes is, but should not be) null
  -            if(fragment == null){
  +            if (fragment == null)
  +            {
                   fragment = new RegistryFragment();
  -                fragment.put(regName,new Vector());
  -                fragments.put(fragmentName,fragment);
  -            }else{
  -                Vector vectRegistry = (Vector)fragment.get(regName);
  -                if(vectRegistry == null){
  -                    fragment.put(regName,new Vector());
  +                fragment.put(regName, new Vector());
  +                fragments.put(fragmentName, fragment);
  +            }
  +            else
  +            {
  +                Vector vectRegistry = (Vector) fragment.get(regName);
  +                if (vectRegistry == null)
  +                {
  +                    fragment.put(regName, new Vector());
                   }
               }
               
               synchronized (entryIndex)
               {
  -                if ( registry.hasEntry( entry.getName() ) )
  +                if (registry.hasEntry(entry.getName()))
                   {
  -                    fragment.setEntry(regName,entry);
  +                    fragment.setEntry(regName, entry);
                       registry.setEntry(entry);
                   }
                   else
                   {
  -                    fragment.addEntry(regName,entry);
  +                    fragment.addEntry(regName, entry);
                       registry.addEntry(entry);
                   }
                   
  -                entryIndex.put(entry.getName(),fragmentName);
  +                entryIndex.put(entry.getName(), fragmentName);
               }
   
               //As it has changed...
  @@ -257,32 +284,32 @@
        * @param regName the name of the registry
        * @param entryName the name of the entry to remove
        */
  -    public void removeEntry( String regName, String entryName )
  +    public void removeEntry(String regName, String entryName)
       {
  -        if (entryName==null)
  +        if (entryName == null)
           {
               return;
           }
           
  -        Registry registry = (Registry)registries.get( regName );
  +        Registry registry = (Registry) registries.get(regName);
           
  -        if (registry!=null)
  +        if (registry != null)
           {
  -            String fragmentName = (String)entryIndex.get( entryName );
  +            String fragmentName = (String) entryIndex.get(entryName);
               
               if (fragmentName != null)
               {
  -                RegistryFragment fragment = (RegistryFragment)fragments.get( fragmentName
);
  +                RegistryFragment fragment = (RegistryFragment) fragments.get(fragmentName);
               
                   synchronized (entryIndex)
                   {
  -                    fragment.removeEntry(regName,entryName);
  -                    entryIndex.remove( entryName );
  +                    fragment.removeEntry(regName, entryName);
  +                    entryIndex.remove(entryName);
                   }
               }
               
               // the entry is physically removed, remove the dangling reference
  -            registry.removeEntry( entryName );
  +            registry.removeEntry(entryName);
   
               //As the fragment has changed...
               saveFragment(fragmentName);
  @@ -294,10 +321,10 @@
        * This is the early initialization method called by the 
        * Turbine <code>Service</code> framework
        */
  -    public void init( ServletConfig conf ) throws InitializationException
  +    public void init(ServletConfig conf) throws InitializationException
       {
   
  -        ResourceService serviceConf = ((TurbineServices)TurbineServices.getInstance())
  +        ResourceService serviceConf = ((TurbineServices) TurbineServices.getInstance())
                                                        .getResources(RegistryService.SERVICE_NAME);
           String mapFile = null;
           Vector names = new Vector();
  @@ -307,17 +334,17 @@
           try
           {
               directory = serviceConf.getString("directory");
  -            mapFile = serviceConf.getString("mapping",DEFAULT_MAPPING);
  -            extension = serviceConf.getString("extension",DEFAULT_EXTENSION);
  -            refreshRate = serviceConf.getInt("refreshRate",DEFAULT_REFRESH);
  +            mapFile = serviceConf.getString("mapping", DEFAULT_MAPPING);
  +            extension = serviceConf.getString("extension", DEFAULT_EXTENSION);
  +            refreshRate = serviceConf.getInt("refreshRate", DEFAULT_REFRESH);
   
  -            mapFile = TurbineServlet.getRealPath( mapFile );
  -            directory = TurbineServlet.getRealPath( directory );
  +            mapFile = TurbineServlet.getRealPath(mapFile);
  +            directory = TurbineServlet.getRealPath(directory);
   
           }
  -        catch ( Throwable t )
  +        catch (Throwable t)
           {
  -            throw new InitializationException( "Unable to initialize CastorRegistryService,
missing config keys");
  +            throw new InitializationException("Unable to initialize CastorRegistryService,
missing config keys");
           }
               
           // build the map of default fragments, eahc registry must be associated 
  @@ -326,23 +353,23 @@
           {
               ResourceService defaults = serviceConf.getResources("default");
               Iterator i = defaults.getKeys();
  -            while(i.hasNext())
  +            while (i.hasNext())
               {
  -                String name = (String)i.next();
  +                String name = (String) i.next();
                   String fragmentFileName = defaults.getString(name);
                   
  -                String absFileName = new File(directory,fragmentFileName+extension).getAbsolutePath();
  +                String absFileName = new File(directory, fragmentFileName + extension).getAbsolutePath();
                   // add this name in the list of available registries
                   names.add(name);
                   
                   // store the default file mapping
  -                this.defaults.put(name,absFileName);
  +                this.defaults.put(name, absFileName);
               }
           }
           catch (Exception e)
           {
               Log.error("Registry init error", e);
  -            throw new InitializationException( "Unable to initialize CastorRegistryService,
invalid registries definition");
  +            throw new InitializationException("Unable to initialize CastorRegistryService,
invalid registries definition");
           }
           
           // create the serializer output format        
  @@ -355,25 +382,25 @@
           if (mapFile != null)
           {
               File map = new File(mapFile);
  -            Log.debug("Loading mapping file "+mapFile);
  +            Log.debug("Loading mapping file " + mapFile);
               if (map.exists() && map.isFile() && map.canRead())
               {
                   try
                   {
                       mapping = new Mapping();
  -                    InputSource is = new InputSource( new FileReader(map) );
  -                    is.setSystemId( mapFile );
  -                    mapping.loadMapping( is );
  +                    InputSource is = new InputSource(new FileReader(map));
  +                    is.setSystemId(mapFile);
  +                    mapping.loadMapping(is);
                   }
                   catch (Exception e)
                   {
  -                    Log.error("Error in mapping creation",e);
  -                    throw new InitializationException("Error in mapping",e);
  +                    Log.error("Error in mapping creation", e);
  +                    throw new InitializationException("Error in mapping", e);
                   }
               }
               else
               {
  -                throw new InitializationException("Mapping not found or not a file or unreadable:
"+mapFile);
  +                throw new InitializationException("Mapping not found or not a file or unreadable:
" + mapFile);
               }
           }
   
  @@ -397,7 +424,6 @@
               }
               // changing the base will trigger a synchronous loading of the fragments
               this.watcher.changeBase(base);
  - 
           }
   
           //Mark that we are done
  @@ -406,54 +432,62 @@
           // load the registries
           Enumeration en = names.elements();        
   
  -        while(en.hasMoreElements()) {
  -            String name = (String)en.nextElement();
  -            Registry registry = (Registry)registries.get(name);
  +        while (en.hasMoreElements())
  +        {
  +            String name = (String) en.nextElement();
  +            Registry registry = (Registry) registries.get(name);
   
  -            if (registry==null)
  +            if (registry == null)
               {
                   if (name.equals(org.apache.jetspeed.services.Registry.PORTLET))
  +                {
                       registry = new BasePortletRegistry();
  +                }
                   else
  +                {
                       registry = new BaseRegistry();
  -                registries.put(name,registry);
  +                }
  +                registries.put(name, registry);
               }
                       
  -            refresh( name );
  +            refresh(name);
           }
           
           // Refresh the registry to make sure all <portlet-entry ... ref=""> are loaded.
  -        Log.info( "CasterRegistryService: Refreshing registry to insure entries are loaded");
  +        Log.info("CasterRegistryService: Refreshing registry to insure entries are loaded");
           refresh();                    
   
           //Mark that we are done
           setInit(true);
   
           // Start the directory watcher thread
  -        if (this.watcher!=null) this.watcher.start();
  +        if (this.watcher != null)
  +        {
  +            this.watcher.start();
  +        }
   
  -        Log.debug( "Registry early init()....end!, this.getInit()= " + getInit() );
  +        Log.debug("Registry early init()....end!, this.getInit()= " + getInit());
       }
   
   
       /** Late init method from Turbine Service model */
  -    public void init( ) throws InitializationException
  +    public void init() throws InitializationException
       {
  -        Log.debug( "Late init for Registry called" );
  -        while( !getInit() )
  +        Log.debug("Late init for Registry called");
  +        while (!getInit())
           {
               //Not yet...
               try
               {
  -                Thread.sleep( 500 );
  -                Log.debug( "Waiting for init of Registry..." );
  +                Thread.sleep(500);
  +                Log.debug("Waiting for init of Registry...");
               }
  -            catch (InterruptedException ie )
  +            catch (InterruptedException ie)
               {
  -                Log.error( ie );
  +                Log.error(ie);
               }
           }
  -        Log.debug( "We are done! (Registry)" );
  +        Log.debug("We are done! (Registry)");
       }
   
       
  @@ -468,7 +502,7 @@
           Iterator i = fragments.keySet().iterator();
           while (i.hasNext())
           {
  -            saveFragment((String)i.next());
  +            saveFragment((String) i.next());
           }
       }
   
  @@ -480,9 +514,9 @@
       public void refresh()
       {
           Enumeration en = getNames();
  -        while(en.hasMoreElements())
  +        while (en.hasMoreElements())
           {
  -            refresh( (String)en.nextElement() );
  +            refresh((String) en.nextElement());
           }
       }
   
  @@ -500,15 +534,15 @@
               Document d = builder.parse(file);
   
               Unmarshaller unmarshaller = new Unmarshaller(this.mapping);
  -            RegistryFragment fragment = (RegistryFragment)unmarshaller.unmarshal((Node)d);
  +            RegistryFragment fragment = (RegistryFragment) unmarshaller.unmarshal((Node)
d);
   
               // if we get here, we successfully loaded the new fragment            
               updateFragment(file, fragment);
               
           }
  -        catch ( Throwable t )
  +        catch (Throwable t)
           {
  -            Log.error( "Could not unmarshal: " + file, t );
  +            Log.error("Could not unmarshal: " + file, t);
           }
           
       }
  @@ -522,26 +556,33 @@
        */
       public void createFragment(String name, Reader reader, boolean persistent)
       {
  -        String file = new File( directory, name+extension ).getAbsolutePath();
  +        String file = new File(directory, name + extension).getAbsolutePath();
           try
           {
               Unmarshaller unmarshaller = new Unmarshaller(this.mapping);
  -            RegistryFragment fragment = (RegistryFragment)unmarshaller.unmarshal(reader);
  +            RegistryFragment fragment = (RegistryFragment) unmarshaller.unmarshal(reader);
   
  -            updateFragment(file,fragment);
  +            updateFragment(file, fragment);
   
               if (persistent)
               {
                   saveFragment(file);
               }
           }
  -        catch ( Throwable t )
  +        catch (Throwable t)
           {
  -            Log.error( "Could not create fragment: " + file, t );
  +            Log.error("Could not create fragment: " + file, t);
           }
           finally
           {
  -            try { reader.close(); } catch (Exception e) {};
  +            try
  +            {
  +                reader.close();
  +            }
  +            catch (Exception e)
  +            {
  +                Log.error(e);  // At least log the exception.
  +            }
           }
           
           // refresh all regsitries to take the new entries into account
  @@ -552,29 +593,37 @@
        * Marshal and save a RegistryFragment to disk
        * @param file the absolute file path storing this fragment
        */
  -    public void saveFragment(String file) {
  +    public void saveFragment(String file)
  +    {
           OutputStreamWriter writer = null;
           String encoding = new String("UTF-8");
  -        RegistryFragment fragment = (RegistryFragment)fragments.get(file);
  +        RegistryFragment fragment = (RegistryFragment) fragments.get(file);
           
           if (fragment != null)
           {
               try
               {
  -                writer = new OutputStreamWriter(new FileOutputStream(file),encoding);
  +                writer = new OutputStreamWriter(new FileOutputStream(file), encoding);
                   format.setEncoding(encoding);
  -                Serializer serializer = new XMLSerializer(writer, format);            
   
  +                Serializer serializer = new XMLSerializer(writer, format);
                   Marshaller marshaller = new Marshaller(serializer.asDocumentHandler());
                   marshaller.setMapping(this.mapping);
                   marshaller.marshal(fragment);
               }
  -            catch ( Throwable t )
  +            catch (Throwable t)
               {
  -                Log.error( "Could not marshal: " + file, t );
  +                Log.error("Could not marshal: " + file, t);
               }
               finally
               {
  -                try { writer.close(); } catch (Exception e) {};
  +                try
  +                {
  +                    writer.close();
  +                }
  +                catch (Exception e)
  +                {
  +                    Log.error(e);  // At least log the exception.
  +                }
               }
           }
       }    
  @@ -583,8 +632,9 @@
        * Remove a fragment from storage
        * @param file the absolute file path storing this fragment
        */
  -    public void removeFragment(String file) {
  -        RegistryFragment fragment = (RegistryFragment)fragments.get(file);
  +    public void removeFragment(String file)
  +    {
  +        RegistryFragment fragment = (RegistryFragment) fragments.get(file);
           
           if (fragment != null)
           {
  @@ -592,9 +642,9 @@
               {
                   // clear the entry index
                   Iterator i = entryIndex.keySet().iterator();
  -                while(i.hasNext())
  +                while (i.hasNext())
                   {
  -                    if (file.equals( entryIndex.get( i.next() ) ) )
  +                    if (file.equals(entryIndex.get(i.next())))
                       {
                           i.remove();
                       }
  @@ -621,28 +671,28 @@
           {
               // remove the old keys
               Iterator i = entryIndex.keySet().iterator();
  -            while(i.hasNext())
  +            while (i.hasNext())
               {
  -                if (name.equals( entryIndex.get( i.next() ) ) )
  +                if (name.equals(entryIndex.get(i.next())))
                   {
                       i.remove();
                   }
               }
               
               // store the new fragment
  -            fragments.put(name,fragment);
  +            fragments.put(name, fragment);
               
               // recreate the index entries (only this fragment)
   
               Enumeration enum = fragment.keys();
  -            while(enum.hasMoreElements() )
  +            while (enum.hasMoreElements())
               {
  -                String strReg = (String)enum.nextElement();
  +                String strReg = (String) enum.nextElement();
                   Vector v = fragment.getEntries(strReg);
                   
  -                for(int int_i=0; int_i < v.size(); int_i++)
  +                for (int counter = 0; counter < v.size(); counter++)
                   {
  -                    RegistryEntry str = (RegistryEntry)v.elementAt(int_i);
  +                    RegistryEntry str = (RegistryEntry) v.elementAt(counter);
                       entryIndex.put(str.getName(), name);
                   }
               }
  @@ -653,27 +703,28 @@
        * Scan all the registry fragments for new entries relevant to
        * this registry and update its definition.
        *
  -     * @param name the name of the Registry to refresh
  +     * @param regName the name of the Registry to refresh
        */
  -    protected void refresh( String regName )
  +    protected void refresh(String regName)
       {
   
  -        Log.debug( "Updating the "+regName+" registry" ); 
  +        Log.debug("Updating the " + regName + " registry"); 
   
           int count = 0;
           Registry registry = get(regName);
           
  -        if ( registry == null ) {
  -            Log.error( "Null " + name + " registry in refresh" );
  +        if (registry == null)
  +        {
  +            Log.error("Null " + name + " registry in refresh");
               return;
           }
   
           // for each fragment...
           Enumeration en = fragments.keys();
  -        while(en.hasMoreElements())
  +        while (en.hasMoreElements())
           {
  -            String location = (String)en.nextElement();
  -            RegistryFragment fragment = (RegistryFragment)fragments.get(location);
  +            String location = (String) en.nextElement();
  +            RegistryFragment fragment = (RegistryFragment) fragments.get(location);
               Vector entries = fragment.getEntries(regName);
   
               //... if it has entries related to this regsistry,
  @@ -681,13 +732,13 @@
               {
                   // for all these entries
                   Enumeration en2 = entries.elements();
  -                while(en2.hasMoreElements())
  +                while (en2.hasMoreElements())
                   {
  -                    RegistryEntry entry = (RegistryEntry)en2.nextElement();
  +                    RegistryEntry entry = (RegistryEntry) en2.nextElement();
                       // update or add the entry in the registry
                       try 
                       {
  -                        Log.debug("Adding entry "+entry.getName()+" of class "+entry.getClass()+"
to registry "+name);
  +                        Log.debug("Adding entry " + entry.getName() + " of class " + entry.getClass()
+ " to registry " + name);
   
                           if (registry.hasEntry(entry.getName()))
                           {
  @@ -703,20 +754,20 @@
                       }
                       catch (RegistryException e)
                       {
  -                        Log.error("RegistryException while adding "+entry.getName()+"from
"+location, e);
  +                        Log.error("RegistryException while adding " + entry.getName() +
"from " + location, e);
                       }
                   }    
               }
           }
           
  -        Log.debug( "Merged " + count + " entries into the " + name ); 
  +        Log.debug("Merged " + count + " entries into the " + name); 
       }        
   
       
       /** FileFilter implementing a file extension based filter */
       class ExtFileFilter implements FileFilter
       {
  -        String extension = null;
  +        private String extension = null;
           
           ExtFileFilter(String extension)
           {
  
  
  
  1.162     +2 -1      jakarta-jetspeed/build/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/build/build.xml,v
  retrieving revision 1.161
  retrieving revision 1.162
  diff -u -r1.161 -r1.162
  --- build.xml	5 Sep 2002 13:09:00 -0000	1.161
  +++ build.xml	15 Sep 2002 16:18:18 -0000	1.162
  @@ -186,7 +186,7 @@
               The style checker checkStyle is not present, thus no 
               style checking will be performed.
   
  -            You can get checkStyle from:
  +            You can get checkStyle Release 2.3 from:
                  &lt;http://checkstyle.sourceforge.net&gt;
           </echo>
       </target>
  @@ -250,6 +250,7 @@
                       <include name="org/apache/jetspeed/portal/security/portlets/PortletWrapper.java"/>
                       <include name="org/apache/jetspeed/services/persistence/PortalPersistenceException.java"/>
                       <include name="org/apache/jetspeed/services/psmlmanager/db/DBOperations.java"/>
  +                    <include name="org/apache/jetspeed/services/registry/CastorRegistryService.java"/>
                       <include name="org/apache/jetspeed/services/registry/TestMarshallRegistry.java"/>
                       <include name="org/apache/jetspeed/services/security/GroupManagement.java"/>
                       <include name="org/apache/jetspeed/services/security/PermissionManagement.java"/>
  
  
  

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


Mime
View raw message