container/common/src/main/java/org/mobicents/slee/container/deployment/ConcreteClassGeneratorUtils.java
static public List getJarsFileListing(File aStartingDir)
			throws FileNotFoundException {
		validateDirectory(aStartingDir);
		List result = new ArrayList();

		File[] filesAndDirs = aStartingDir.listFiles(new FileFilter() {
		
			public boolean accept(File pathname) {
				if(pathname.getName().endsWith(".jar"))
					return true;
				return false;
			}
		
		});
		List filesDirs = Arrays.asList(filesAndDirs);
		Iterator filesIter = filesDirs.iterator();
		File file = null;
		while (filesIter.hasNext()) {
			file = (File) filesIter.next();
			result.add(file); // always add, even if directory
			if (!file.isFile()) {
				// must be a directory
				// recursive call!
				List deeperList = getJarsFileListing(file);
				result.addAll(deeperList);
			}

		}
		Collections.sort(result);
		return result;
	}
static public List getJarsFileListing(File aStartingDir)
			throws FileNotFoundException {
		validateDirectory(aStartingDir);
		List result = new ArrayList();

		File[] filesAndDirs = aStartingDir.listFiles(new FileFilter() {
		
			public boolean accept(File pathname) {
				if(pathname.getName().endsWith(".jar"))
					return true;
				return false;
			}
		
		});
		List filesDirs = Arrays.asList(filesAndDirs);
		Iterator filesIter = filesDirs.iterator();
		File file = null;
		while (filesIter.hasNext()) {
			file = (File) filesIter.next();
			result.add(file); // always add, even if directory
			if (!file.isFile()) {
				// must be a directory
				// recursive call!
				List deeperList = getJarsFileListing(file);
				result.addAll(deeperList);
			}

		}
		Collections.sort(result);
		return result;
	}
Recursively walk a directory tree and return a List of all jars Files found;
the List is sorted using File.compareTo.

@param aStartingDir
is a valid directory, which can be read.