From ce96ab74f8247b356616494b6ecd9bd81d3f53d7 Mon Sep 17 00:00:00 2001 From: Tom Copeland Date: Thu, 22 Aug 2002 19:48:45 +0000 Subject: [PATCH] Initial revision git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@742 51baf565-9d33-0410-a72c-fc3788e3496d --- .../net/sourceforge/pmd/dcpd/TSSWrapper.java | 37 ++++ .../src/net/sourceforge/pmd/dcpd/Test.java | 169 ++++++++++++++++++ 2 files changed, 206 insertions(+) create mode 100644 pmd-dcpd/src/net/sourceforge/pmd/dcpd/TSSWrapper.java create mode 100644 pmd-dcpd/src/net/sourceforge/pmd/dcpd/Test.java diff --git a/pmd-dcpd/src/net/sourceforge/pmd/dcpd/TSSWrapper.java b/pmd-dcpd/src/net/sourceforge/pmd/dcpd/TSSWrapper.java new file mode 100644 index 0000000000..ccf2422dd7 --- /dev/null +++ b/pmd-dcpd/src/net/sourceforge/pmd/dcpd/TSSWrapper.java @@ -0,0 +1,37 @@ +/* + * User: tom + * Date: Aug 21, 2002 + * Time: 4:36:49 PM + */ + +import net.jini.core.entry.Entry; +import net.sourceforge.pmd.cpd.TokenSets; +import net.sourceforge.pmd.cpd.TokenList; +import net.sourceforge.pmd.cpd.TokenEntry; + +import java.util.List; +import java.util.ArrayList; +import java.util.Iterator; + +public class TSSWrapper implements Entry { + + public TokenList tls[] = null; + + public TSSWrapper() { + } + + public TSSWrapper(TokenSets tss) { + tls = new TokenList[ tss.size() ]; + + int pos = 0; + for (Iterator i = tss.iterator();i.hasNext();) { + TokenList tl = (TokenList)i.next(); + tls[pos] = tl; + pos++; + } + } + + public int size() { + return tls.length; + } +} diff --git a/pmd-dcpd/src/net/sourceforge/pmd/dcpd/Test.java b/pmd-dcpd/src/net/sourceforge/pmd/dcpd/Test.java new file mode 100644 index 0000000000..5cab13ca11 --- /dev/null +++ b/pmd-dcpd/src/net/sourceforge/pmd/dcpd/Test.java @@ -0,0 +1,169 @@ +import net.jini.space.JavaSpace; +import net.jini.core.lease.Lease; +import net.jini.core.discovery.LookupLocator; +import net.jini.core.lookup.ServiceRegistrar; +import net.jini.core.lookup.ServiceMatches; +import net.jini.core.lookup.ServiceTemplate; +import net.jini.core.entry.Entry; +import net.jini.core.entry.UnusableEntryException; +import net.sourceforge.pmd.cpd.*; + +import java.rmi.*; +import java.io.*; +import java.util.List; +import java.util.ArrayList; +import java.util.Iterator; + +public class Test { + + + public static class JavaFileOrDirectoryFilter implements FilenameFilter { + public boolean accept(File dir, String filename) { + return filename.endsWith("java") || (new File(dir.getAbsolutePath() + System.getProperty("file.separator") + filename).isDirectory()); + } + } + + private List files = new ArrayList(); + private TokenSets tokenSets = new TokenSets(); + + public Test() { + try { + JavaSpace space = getSpace(); + addRecursively("C:\\j2sdk1.4.0_01\\src\\java\\lang\\ref"); + Entry wrapper = convertTSS(); + System.out.println("token count = " + tokenSets.tokenCount()); + + long start = System.currentTimeMillis(); + System.out.println("WRITING"); + space.write(wrapper, null, Lease.FOREVER); + long stop = System.currentTimeMillis(); + System.out.println("that took " + (stop - start) + " milliseconds"); + + start = System.currentTimeMillis(); + System.out.println("TAKING"); + TSSWrapper result = (TSSWrapper)space.take(new TSSWrapper(), null, Long.MAX_VALUE); + stop = System.currentTimeMillis(); + System.out.println("that took " + (stop - start) + " milliseconds"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private Entry convertTSS() { + return new TSSWrapper(tokenSets); + } + private void add(List files) throws IOException { + for (Iterator i = files.iterator(); i.hasNext();) { + add(files.size(), (File)i.next()); + } + } + + private void add(int fileCount, File file) throws IOException { + Tokenizer t = new JavaTokensTokenizer(); + TokenList ts = new TokenList(file.getAbsolutePath()); + FileReader fr = new FileReader(file); + t.tokenize(ts, fr); + fr.close(); + tokenSets.add(ts); + } + + private void add(File file) throws IOException { + add(1, file); + } + + private void addRecursively(String dir) throws IOException { + addDirectory(dir, true); + } + + private void addDirectory(String dir, boolean recurse) throws IOException { + File root = new File(dir); + List list = new ArrayList(); + scanDirectory(root, list, recurse); + add(list); + } + + private void scanDirectory(File dir, List list, boolean recurse) { + FilenameFilter filter = new JavaFileOrDirectoryFilter(); + String[] possibles = dir.list(filter); + for (int i=0; i