tbennett 2004/04/20 20:21:04
Modified: composition/impl/src/java/org/apache/avalon/composition/model/impl
DefaultClassLoaderModel.java
DefaultFilesetModel.java DirectoryScanner.java
Log:
getting close on a final fileset implementation
Revision Changes Path
1.18 +2 -1
avalon/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultClassLoaderModel.java
Index: DefaultClassLoaderModel.java
===================================================================
RCS file:
/home/cvs/avalon/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultClassLoaderModel.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- DefaultClassLoaderModel.java 20 Apr 2004 00:03:32 -0000 1.17
+++ DefaultClassLoaderModel.java 21 Apr 2004 03:21:04 -0000 1.18
@@ -656,6 +656,7 @@
for( int i=0; i<filesets.length; i++ )
{
FilesetDirective fileset = filesets[i];
+ getLocalLogger().debug("fileset.base=[" + fileset.getBaseDirectory() +
"]");
File anchor = getDirectory( base, fileset.getBaseDirectory() );
getLocalLogger().debug("anchor=[" + anchor + "]");
1.3 +21 -5
avalon/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultFilesetModel.java
Index: DefaultFilesetModel.java
===================================================================
RCS file:
/home/cvs/avalon/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultFilesetModel.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DefaultFilesetModel.java 20 Apr 2004 00:03:32 -0000 1.2
+++ DefaultFilesetModel.java 21 Apr 2004 03:21:04 -0000 1.3
@@ -142,8 +142,9 @@
*/
public void setDefaultIncludes(String[] defaultIncludes) {
if (defaultIncludes == null) {
- m_defaultIncludes = new String[1];
- m_defaultIncludes[0] = "*.jar";
+ //m_defaultIncludes = new String[1];
+ //m_defaultIncludes[0] = "*.jar";
+ m_defaultIncludes = new String[0];
} else {
m_defaultIncludes = defaultIncludes;
}
@@ -182,10 +183,16 @@
* to include in the classpath.
*/
public void resolveFileset() throws IOException, IllegalStateException {
-/*
// New stuff...
+ if ( m_includes.length == 0 && m_defaultIncludes.length == 0 ) {
+ m_list.add( m_anchor );
+ m_logger.debug("candidates=[" + m_anchor + "]");
+ return;
+ }
+
DirectoryScanner ds = new DirectoryScanner();
+ ds.setLogger(m_logger);
// Supply the directory scanner with our base directory anchor
ds.setBasedir( m_anchor );
@@ -194,6 +201,7 @@
// Any default excludes to add?
for (int i = 0; i < m_defaultExcludes.length; i++ )
{
+ m_logger.debug("m_defaultExcludes[" + i + "]=[" + m_defaultExcludes[i]
+ "]");
ds.addDefaultExclude( m_defaultExcludes[i] );
}
@@ -207,6 +215,7 @@
for (int i = 0; i < m_defaultIncludes.length; i++)
{
includes[i] = m_defaultIncludes[i];
+ m_logger.debug("includes[" + i + "]=[" + includes[i] + "]");
}
}
else
@@ -214,6 +223,7 @@
for (int i = 0; i < m_includes.length; i++ )
{
includes[i] = m_includes[i].getPath();
+ m_logger.debug("includes[" + i + "]=[" + includes[i] + "]");
}
}
ds.setIncludes( includes );
@@ -223,6 +233,7 @@
for (int i = 0; i < m_excludes.length; i++ )
{
excludes[i] = m_excludes[i].getPath();
+ m_logger.debug("excludes[" + i + "]=[" + excludes[i] + "]");
}
ds.setExcludes( excludes );
@@ -238,20 +249,25 @@
if ( candidates.length > 0 ) {
for (int i = 0; i < candidates.length; i++) {
File file = new File( m_anchor, candidates[i] );
+ m_logger.debug("candidates[" + i + "]=[" + file.getAbsolutePath() +
"]");
m_list.add( file );
}
} else {
m_list.add( m_anchor );
+ m_logger.debug("candidates=[" + m_anchor + "]");
}
-*/
+/*
// Original stuff...
if( m_includes.length > 0 ) {
for( int j=0; j<m_includes.length; j++ ) {
File file = new File( m_anchor, m_includes[j].getPath() );
+ m_logger.debug("candidates[" + j + "]=[" + file.getAbsolutePath() +
"]");
m_list.add( file );
}
} else {
m_list.add( m_anchor );
+ m_logger.debug("candidates=[" + m_anchor + "]");
}
+*/
}
}
1.5 +49 -2
avalon/composition/impl/src/java/org/apache/avalon/composition/model/impl/DirectoryScanner.java
Index: DirectoryScanner.java
===================================================================
RCS file:
/home/cvs/avalon/composition/impl/src/java/org/apache/avalon/composition/model/impl/DirectoryScanner.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DirectoryScanner.java 20 Apr 2004 00:03:32 -0000 1.4
+++ DirectoryScanner.java 21 Apr 2004 03:21:04 -0000 1.5
@@ -31,6 +31,7 @@
import org.apache.avalon.composition.model.FileSelector;
import org.apache.avalon.composition.util.FileUtils;
import org.apache.avalon.composition.util.ScannerUtils;
+import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.util.env.Env;
/**
@@ -164,6 +165,11 @@
protected boolean everythingIncluded = true;
/**
+ * Container-supplied logger instance.
+ */
+ private Logger m_logger;
+
+ /**
* Sole constructor.
*/
public DirectoryScanner() {
@@ -523,7 +529,7 @@
if (includes == null) {
// No includes supplied, so set it to 'matches all'
includes = new String[1];
- includes[0] = "**//*.jar";
+ includes[0] = "*.jar";
}
if (excludes == null) {
excludes = new String[0];
@@ -573,6 +579,8 @@
String newpattern =
ScannerUtils.rtrimWildcardTokens(includes[icounter]);
newroots.put(newpattern, includes[icounter]);
+ getLogger().debug("newpattern=[" + newpattern + "]; " +
+ "includes[" + icounter + "]=[" + includes[icounter] + "]");
}
if (newroots.containsKey("")) {
@@ -585,11 +593,15 @@
File canonBase = null;
canonBase = basedir.getCanonicalFile();
+ getLogger().debug("canonBase=[" + canonBase + "]");
while (enum2.hasMoreElements()) {
String currentelement = (String) enum2.nextElement();
+ getLogger().debug("currentelement=[" + currentelement + "]");
String originalpattern = (String) newroots.get(currentelement);
+ getLogger().debug("originalpattern=[" + originalpattern + "]");
File myfile = new File(basedir, currentelement);
+ getLogger().debug("myfile=[" + myfile.getAbsolutePath() + "]");
if (myfile.exists()) {
// may be on a case insensitive file system. We want
@@ -626,8 +638,11 @@
}
if (myfile.isDirectory()) {
+ getLogger().debug("file is a directory!");
if (isIncluded(currentelement)
&& currentelement.length() > 0) {
+ getLogger().debug("calling accounForIncludedDir(" +
+ currentelement + "," + myfile.getAbsolutePath()
+ ")");
accountForIncludedDir(currentelement, myfile, true);
} else {
if (currentelement.length() > 0) {
@@ -638,6 +653,9 @@
currentelement + File.separatorChar;
}
}
+ getLogger().debug("calling scandir(" +
+ myfile.getAbsolutePath() + "," +
+ currentelement + ")");
scandir(myfile, currentelement, true);
}
} else {
@@ -678,6 +696,8 @@
protected void scandir(File dir, String vpath, boolean fast)
throws IOException
{
+ getLogger().debug("Inside scandir");
+
if (dir == null) {
throw new IOException("dir must not be null.");
} else if (!dir.exists()) {
@@ -734,10 +754,14 @@
for (int i = 0; i < newfiles.length; i++) {
String name = vpath + newfiles[i];
File file = new File(dir, newfiles[i]);
+ getLogger().debug("file=[" + file.getAbsolutePath() + "]");
if (file.isDirectory()) {
+ getLogger().debug("this is a directory.");
if (isIncluded(name)) {
+ getLogger().debug("and it will be included");
accountForIncludedDir(name, file, fast);
} else {
+ getLogger().debug("and it will not be included");
everythingIncluded = false;
dirsNotIncluded.addElement(name);
if (fast && couldHoldIncluded(name)) {
@@ -748,9 +772,12 @@
scandir(file, name + File.separator, fast);
}
} else if (file.isFile()) {
+ getLogger().debug("this is a file");
if (isIncluded(name)) {
+ getLogger().debug("and it will be included");
accountForIncludedFile(name, file);
} else {
+ getLogger().debug("and it will not be included");
everythingIncluded = false;
filesNotIncluded.addElement(name);
}
@@ -792,28 +819,40 @@
private void accountForIncludedDir(String name, File file, boolean fast)
throws IOException
{
+ getLogger().debug("Inside accountForIncludeDir");
+
if (!dirsIncluded.contains(name)
&& !dirsExcluded.contains(name)
&& !dirsDeselected.contains(name)) {
+ getLogger().debug("waypoint-1");
if (!isExcluded(name)) {
+ getLogger().debug("waypoint-2a");
if (isSelected(name, file)) {
+ getLogger().debug("waypoint-3a");
dirsIncluded.addElement(name);
if (fast) {
+ getLogger().debug("calling scandir(" +
+ file.getAbsolutePath() + "," +
+ name + File.separator);
scandir(file, name + File.separator, fast);
}
} else {
+ getLogger().debug("waypoint-3b");
everythingIncluded = false;
dirsDeselected.addElement(name);
if (fast && couldHoldIncluded(name)) {
+ getLogger().debug("waypoint-4b");
scandir(file, name + File.separator, fast);
}
}
} else {
+ getLogger().debug("waypoint-2b");
everythingIncluded = false;
dirsExcluded.addElement(name);
if (fast && couldHoldIncluded(name)) {
+ getLogger().debug("waypoint-3c");
scandir(file, name + File.separator, fast);
}
}
@@ -1131,6 +1170,14 @@
}
buffer.append(")}");
return buffer.toString();
+ }
+
+ public Logger getLogger() {
+ return m_logger;
+ }
+
+ public void setLogger(Logger logger) {
+ m_logger = logger;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]