Author: sgoeschl Date: Mon Oct 10 03:40:42 2005 New Revision: 312606 URL: http://svn.apache.org/viewcvs?rev=312606&view=rev Log: +) Using the FileResourceManager as default for the configuration +) Fixed a few JavaDoc warnings +) Restricting the access of context-specific information in BaseResourceManagerImpl to protected instead of public +) In response to the suggestions of the mailing list the implementation provides a list of excluded directory names. This list is currently not configurable but hard-coded and contains "CVS" and ".svn".
Modified: jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/BaseResourceManager.java jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/FileResourceManager.java jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/ResourceManagerServiceImpl.java jakarta/turbine/fulcrum/trunk/resourcemanager/src/test/TestComponentConfig.xml jakarta/turbine/fulcrum/trunk/resourcemanager/xdocs/changes.xml Modified: jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/BaseResourceManager.java URL: http://svn.apache.org/viewcvs/jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/BaseResourceManager.java?rev=312606&r1=312605&r2=312606&view=diff ============================================================================== --- jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/BaseResourceManager.java (original) +++ jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/BaseResourceManager.java Mon Oct 10 03:40:42 2005 @@ -55,6 +55,9 @@ implements Contextualizable, Serviceable, Configurable, Initializable, Disposable, Reconfigurable, ResourceManager { + /** the buffer size for copying streams */ + private static final int BUF_SIZE = 1024; + /** The context supplied by the avalon framework */ private Context context; @@ -181,7 +184,7 @@ /** * @return Returns the applicationDir. */ - public File getApplicationDir() + protected File getApplicationDir() { return applicationDir; } @@ -189,7 +192,7 @@ /** * @return Returns the tempDir. */ - public File getTempDir() + protected File getTempDir() { return tempDir; } @@ -326,9 +329,9 @@ } /** - * Reads the given file and decrypts it if required - * @param source the source file - * @return the content of the file + * Reads the given input stream and decrypts it if required + * @param is the input stream to be read + * @return the content of the input stream */ protected byte[] read( InputStream is ) throws IOException @@ -429,10 +432,11 @@ } /** - * Write the given file and encrypts it if required - * @param target the target file - * @parwm content the content to be written - * @return + * Write the given output stream and encrypts it if required. If the + * encryption mode is "auto" we also encryt it. + * + * @param os the output stream to be written + * @param content the content to be written */ protected void write( OutputStream os, byte[] content ) throws IOException @@ -504,7 +508,7 @@ private void copy( InputStream is, OutputStream os ) throws IOException { - byte[] buf = new byte[1024]; + byte[] buf = new byte[BUF_SIZE]; int n = 0; int total = 0; Modified: jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/FileResourceManager.java URL: http://svn.apache.org/viewcvs/jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/FileResourceManager.java?rev=312606&r1=312605&r2=312606&view=diff ============================================================================== --- jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/FileResourceManager.java (original) +++ jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/FileResourceManager.java Mon Oct 10 03:40:42 2005 @@ -44,7 +44,7 @@ private String suffix; /** try to locate a resource automagically? */ - private boolean useLocator = true; + private boolean useLocator; /** the location where all resources are located */ private File resourceDir; @@ -52,8 +52,8 @@ /** the cached list of all available resources */ private String[] resourceFileNameList; - /** the name of the subversion metadata directory */ - private static final String SVN_DIRNAME = ".svn"; + /** the directory names we usually want to exclude */ + private String[] defaultDirectoryExcludes; ///////////////////////////////////////////////////////////////////////// // Avalon Service Lifecycle Implementation @@ -65,6 +65,9 @@ public FileResourceManager() { super(); + + this.useLocator = true; + this.defaultDirectoryExcludes = new String[] { "CVS", ".svn" }; } /** @@ -152,7 +155,7 @@ /** * @see org.apache.fulcrum.resourcemanager.ResourceManager#exists(java.lang.String) */ - public boolean exists(String resourceName) + public synchronized boolean exists(String resourceName) { File resourceFile = this.findResourceFile( resourceName, this.resourceFileNameList ); @@ -273,7 +276,7 @@ /** * @see org.apache.fulcrum.resourcemanager.ResourceManager#read(java.lang.String[], java.lang.String) */ - public byte [] read( String[] context, String resourceName ) + public synchronized byte[] read( String[] context, String resourceName ) throws IOException { String resourceFileName = this.createResourceFileName( context, resourceName ); @@ -283,7 +286,7 @@ /** * @see org.apache.fulcrum.resourcemanager.ResourceManager#locate(java.lang.String[], java.lang.String) */ - public String locate( String[] context, String resourceName ) + public synchronized String locate( String[] context, String resourceName ) { String result = null; String resourceDirName = this.getResourceDir().getAbsolutePath(); @@ -308,7 +311,7 @@ /** * @see org.apache.fulcrum.resourcemanager.ResourceManager#getResourceURL(java.lang.String[], java.lang.String) */ - public URL getResourceURL(String [] context, String resourceName) + public synchronized URL getResourceURL(String [] context, String resourceName) { String resourceFileName = this.createResourceFileName( context, resourceName ); File resourceFile = this.findResourceFile( resourceFileName, this.resourceFileNameList ); @@ -335,6 +338,27 @@ ///////////////////////////////////////////////////////////////////////// /** + * Check if the given directory name is excluded from the search. + * + * @param directory the directory + * @return true if the directory name is excluded + */ + private boolean isDirectoryExcluded( File directory ) + { + String directoryName = directory.getName(); + + for( int i=0; i<this.defaultDirectoryExcludes.length; i++ ) + { + if(this.defaultDirectoryExcludes[i].equals(directoryName)) + { + return true; + } + } + + return false; + } + + /** * Creates a sorted list of resource file names using the user-supplied * suffix. */ @@ -460,11 +484,16 @@ for( int i=0; i<list.length; i++ ) { - // skip the subversion directories otherwise we pick up unexpected files + // recursive search for all subdirectories - if( list[i].isDirectory() && (list[i].getName().equalsIgnoreCase(SVN_DIRNAME) == false) ) + if( list[i].isDirectory() ) { - this.findAllResources( list[i], suffix, result ); + // check that the subdirectory is not excluded from the seach + + if( !this.isDirectoryExcluded(list[i]) ) + { + this.findAllResources( list[i], suffix, result ); + } } else { Modified: jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/ResourceManagerServiceImpl.java URL: http://svn.apache.org/viewcvs/jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/ResourceManagerServiceImpl.java?rev=312606&r1=312605&r2=312606&view=diff ============================================================================== --- jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/ResourceManagerServiceImpl.java (original) +++ jakarta/turbine/fulcrum/trunk/resourcemanager/src/java/org/apache/fulcrum/resourcemanager/impl/ResourceManagerServiceImpl.java Mon Oct 10 03:40:42 2005 @@ -59,8 +59,7 @@ /** The list of registered domains */ private Hashtable domainList; - - + ///////////////////////////////////////////////////////////////////////// // Avalon Service Lifecycle Implementation ///////////////////////////////////////////////////////////////////////// @@ -268,7 +267,7 @@ /** * @return Returns the domainList. */ - public Hashtable getDomainList() + protected Hashtable getDomainList() { return domainList; } @@ -282,15 +281,11 @@ ResourceManager result = null; String domainName = domainConfiguration.getAttribute("name"); - String domainType = domainConfiguration.getAttribute("type"); - + String domainType = domainConfiguration.getAttribute("type",FileResourceManager.class.getName()); + // create an instance dynamically - this.getLogger().debug( "Creating a resource manager for " - + domainName - + "@" - + domainType - ); + this.getLogger().debug( "Creating a resource manager for " + domainName); result = this.createResourceManager( domainType, domainName ); Modified: jakarta/turbine/fulcrum/trunk/resourcemanager/src/test/TestComponentConfig.xml URL: http://svn.apache.org/viewcvs/jakarta/turbine/fulcrum/trunk/resourcemanager/src/test/TestComponentConfig.xml?rev=312606&r1=312605&r2=312606&view=diff ============================================================================== --- jakarta/turbine/fulcrum/trunk/resourcemanager/src/test/TestComponentConfig.xml (original) +++ jakarta/turbine/fulcrum/trunk/resourcemanager/src/test/TestComponentConfig.xml Mon Oct 10 03:40:42 2005 @@ -3,23 +3,23 @@ <componentConfig> <ResourceManagerService> - <domain name="groovy" type="org.apache.fulcrum.resourcemanager.impl.FileResourceManager"> + <domain name="groovy"> <suffix>groovy</suffix> <location>./src/test/resources/scripts</location> <useLocator>true</useLocator> </domain> - <domain name="xslt" type="org.apache.fulcrum.resourcemanager.impl.FileResourceManager"> + <domain name="xslt"> <suffix>xsl</suffix> <location>./src/test/resources/xslt</location> <useLocator>true</useLocator> </domain> - <domain name="test" type="org.apache.fulcrum.resourcemanager.impl.FileResourceManager"> + <domain name="test"> <suffix>txt</suffix> <location>./src/test/resources/test</location> <useLocator>false</useLocator> <useEncryption>true</useEncryption> </domain> - <domain name="crypto" type="org.apache.fulcrum.resourcemanager.impl.FileResourceManager"> + <domain name="crypto"> <suffix>txt</suffix> <location>./src/test/resources/crypto</location> <useLocator>false</useLocator> Modified: jakarta/turbine/fulcrum/trunk/resourcemanager/xdocs/changes.xml URL: http://svn.apache.org/viewcvs/jakarta/turbine/fulcrum/trunk/resourcemanager/xdocs/changes.xml?rev=312606&r1=312605&r2=312606&view=diff ============================================================================== --- jakarta/turbine/fulcrum/trunk/resourcemanager/xdocs/changes.xml (original) +++ jakarta/turbine/fulcrum/trunk/resourcemanager/xdocs/changes.xml Mon Oct 10 03:40:42 2005 @@ -2,15 +2,30 @@ <document> <properties> <title>Fulcrum ResourceManager Service</title> - <author email="[EMAIL PROTECTED]">Siegfried Goeschl</author> + <author email="[EMAIL PROTECTED]">Siegfried Goeschl</author> </properties> <body> <release version="1.0.1-dev" date="in SVN"> + <action dev="sgoeschl" type="update"> + Using the FileResourceManager as default for the configuration + </action> + <action dev="sgoeschl" type="fix"> + Fixed a few JavaDoc warnings + </action> + <action dev="sgoeschl" type="fix"> + Restricting the access of context-specific information in + BaseResourceManagerImpl to protected instead of public + </action> + <action dev="sgoeschl" type="fix"> + In response to the suggestions of the mailing list the implementation + provides a list of excluded directory names. This list is currently not + configurable but hard-coded and contains "CVS" and ".svn". + </action> <action dev="sgoeschl" type="fix"> Skipping all ".svn" directories otherwise we pick up arbitrary files </action> - </release> + </release> <release version="1.0.0" date="in CVS"> <action dev="sgoeschl" type="add"> Initial version --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]