From 0cd1c60b2e5088e190468a42a1cb567aacb62edc Mon Sep 17 00:00:00 2001 From: tama3 Date: Fri, 12 Sep 2008 04:58:42 +0000 Subject: [PATCH] jp.sourceforge.stigmata.reader package is moved to sub project, which named digger git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/stigmata/trunk@298 acee48c3-7b26-0410-bdac-b3d0e5314bbc --- pom.xml | 22 ++- .../jp/sourceforge/stigmata/BirthmarkEngine.java | 12 +- .../sourceforge/stigmata/BirthmarkEnvironment.java | 2 +- src/main/java/jp/sourceforge/stigmata/Main.java | 2 +- .../stigmata/reader/ClassFileArchive.java | 30 ---- .../stigmata/reader/ClassFileEntry.java | 35 ---- .../stigmata/reader/ClasspathContext.java | 177 --------------------- .../stigmata/reader/DefaultClassFileArchive.java | 117 -------------- .../stigmata/reader/JarClassFileArchive.java | 95 ----------- .../stigmata/reader/WarClassFileArchive.java | 74 --------- .../stigmata/ui/swing/ClasspathSettingsPane.java | 2 +- .../sourceforge/stigmata/ui/swing/ControlPane.java | 2 +- .../sourceforge/stigmata/utils/WarClassLoader.java | 71 --------- src/site/site.xml | 10 +- 14 files changed, 31 insertions(+), 620 deletions(-) delete mode 100644 src/main/java/jp/sourceforge/stigmata/reader/ClassFileArchive.java delete mode 100644 src/main/java/jp/sourceforge/stigmata/reader/ClassFileEntry.java delete mode 100644 src/main/java/jp/sourceforge/stigmata/reader/ClasspathContext.java delete mode 100644 src/main/java/jp/sourceforge/stigmata/reader/DefaultClassFileArchive.java delete mode 100644 src/main/java/jp/sourceforge/stigmata/reader/JarClassFileArchive.java delete mode 100644 src/main/java/jp/sourceforge/stigmata/reader/WarClassFileArchive.java delete mode 100755 src/main/java/jp/sourceforge/stigmata/utils/WarClassLoader.java diff --git a/pom.xml b/pom.xml index 60218c2..7016e26 100755 --- a/pom.xml +++ b/pom.xml @@ -61,7 +61,7 @@ jp.sourceforge.talisman mds - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT compile @@ -77,16 +77,23 @@ compile + jp.sourceforge.talisman + i18n + 1.0.1-SNAPSHOT + compile + + + jp.sourceforge.stigmata + digger + 1.0.0-SNAPSHOT + compile + + junit junit 4.1 test - - jp.sourceforge.talisman - i18n - 1.0.1 - @@ -214,7 +221,6 @@ - @@ -239,7 +245,7 @@ true utf-8 - 1.5 + 1.6 diff --git a/src/main/java/jp/sourceforge/stigmata/BirthmarkEngine.java b/src/main/java/jp/sourceforge/stigmata/BirthmarkEngine.java index 2869dc5..067260c 100755 --- a/src/main/java/jp/sourceforge/stigmata/BirthmarkEngine.java +++ b/src/main/java/jp/sourceforge/stigmata/BirthmarkEngine.java @@ -17,6 +17,12 @@ import java.util.Map; import java.util.Stack; import jp.sourceforge.stigmata.birthmarks.extractors.BirthmarkExtractorFactory; +import jp.sourceforge.stigmata.digger.ClassFileArchive; +import jp.sourceforge.stigmata.digger.ClassFileEntry; +import jp.sourceforge.stigmata.digger.ClasspathContext; +import jp.sourceforge.stigmata.digger.DefaultClassFileArchive; +import jp.sourceforge.stigmata.digger.JarClassFileArchive; +import jp.sourceforge.stigmata.digger.WarClassFileArchive; import jp.sourceforge.stigmata.event.BirthmarkEngineEvent; import jp.sourceforge.stigmata.event.BirthmarkEngineListener; import jp.sourceforge.stigmata.event.OperationStage; @@ -26,12 +32,6 @@ import jp.sourceforge.stigmata.filter.ComparisonPairFilterManager; import jp.sourceforge.stigmata.filter.FilteredComparisonResultSet; import jp.sourceforge.stigmata.hook.Phase; import jp.sourceforge.stigmata.hook.StigmataHookManager; -import jp.sourceforge.stigmata.reader.ClassFileArchive; -import jp.sourceforge.stigmata.reader.ClassFileEntry; -import jp.sourceforge.stigmata.reader.ClasspathContext; -import jp.sourceforge.stigmata.reader.DefaultClassFileArchive; -import jp.sourceforge.stigmata.reader.JarClassFileArchive; -import jp.sourceforge.stigmata.reader.WarClassFileArchive; import jp.sourceforge.stigmata.result.CertainPairComparisonResultSet; import jp.sourceforge.stigmata.result.RoundRobinComparisonResultSet; diff --git a/src/main/java/jp/sourceforge/stigmata/BirthmarkEnvironment.java b/src/main/java/jp/sourceforge/stigmata/BirthmarkEnvironment.java index 2144cda..4287d2b 100644 --- a/src/main/java/jp/sourceforge/stigmata/BirthmarkEnvironment.java +++ b/src/main/java/jp/sourceforge/stigmata/BirthmarkEnvironment.java @@ -18,8 +18,8 @@ import java.util.Set; import javax.imageio.spi.ServiceRegistry; +import jp.sourceforge.stigmata.digger.ClasspathContext; import jp.sourceforge.stigmata.filter.ComparisonPairFilterManager; -import jp.sourceforge.stigmata.reader.ClasspathContext; import jp.sourceforge.stigmata.result.history.ExtractedBirthmarkServiceManager; import jp.sourceforge.stigmata.spi.BirthmarkSpi; import jp.sourceforge.stigmata.utils.WellknownClassManager; diff --git a/src/main/java/jp/sourceforge/stigmata/Main.java b/src/main/java/jp/sourceforge/stigmata/Main.java index 8f54897..49198fa 100644 --- a/src/main/java/jp/sourceforge/stigmata/Main.java +++ b/src/main/java/jp/sourceforge/stigmata/Main.java @@ -18,6 +18,7 @@ import java.util.Iterator; import java.util.List; import java.util.ResourceBundle; +import jp.sourceforge.stigmata.digger.ClasspathContext; import jp.sourceforge.stigmata.event.BirthmarkEngineAdapter; import jp.sourceforge.stigmata.event.BirthmarkEngineEvent; import jp.sourceforge.stigmata.event.WarningMessages; @@ -27,7 +28,6 @@ import jp.sourceforge.stigmata.printer.BirthmarkServicePrinter; import jp.sourceforge.stigmata.printer.ComparisonResultSetPrinter; import jp.sourceforge.stigmata.printer.ExtractionResultSetPrinter; import jp.sourceforge.stigmata.printer.PrinterManager; -import jp.sourceforge.stigmata.reader.ClasspathContext; import jp.sourceforge.stigmata.spi.BirthmarkSpi; import jp.sourceforge.stigmata.spi.ResultPrinterSpi; import jp.sourceforge.stigmata.ui.swing.StigmataFrame; diff --git a/src/main/java/jp/sourceforge/stigmata/reader/ClassFileArchive.java b/src/main/java/jp/sourceforge/stigmata/reader/ClassFileArchive.java deleted file mode 100644 index 2ee54ae..0000000 --- a/src/main/java/jp/sourceforge/stigmata/reader/ClassFileArchive.java +++ /dev/null @@ -1,30 +0,0 @@ -package jp.sourceforge.stigmata.reader; - -/* - * $Id$ - */ - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Iterator; - -/** - * abstract presentation of class file archive's location. - * - * @author Haruaki TAMADA - * @version $Revision$ - */ -public interface ClassFileArchive extends Iterable{ - public URL getLocation(); - - public InputStream getInputStream(ClassFileEntry entry) throws IOException; - - public Iterator iterator(); - - public boolean hasEntry(String className); - - public ClassFileEntry getEntry(String className) throws ClassNotFoundException; - - public String getName(); -} diff --git a/src/main/java/jp/sourceforge/stigmata/reader/ClassFileEntry.java b/src/main/java/jp/sourceforge/stigmata/reader/ClassFileEntry.java deleted file mode 100644 index 6c3f7e3..0000000 --- a/src/main/java/jp/sourceforge/stigmata/reader/ClassFileEntry.java +++ /dev/null @@ -1,35 +0,0 @@ -package jp.sourceforge.stigmata.reader; - -/* - * $Id$ - */ - -import java.net.URL; - -/** - * - * - * @author Haruaki TAMADA - * @version $Revision$ - */ -public class ClassFileEntry{ - private URL location; - private String className; - - public ClassFileEntry(String className, URL location){ - this.className = className; - setLocation(location); - } - - public String getClassName(){ - return className; - } - - public void setLocation(URL location){ - this.location = location; - } - - public URL getLocation(){ - return location; - } -} diff --git a/src/main/java/jp/sourceforge/stigmata/reader/ClasspathContext.java b/src/main/java/jp/sourceforge/stigmata/reader/ClasspathContext.java deleted file mode 100644 index 6bad5a5..0000000 --- a/src/main/java/jp/sourceforge/stigmata/reader/ClasspathContext.java +++ /dev/null @@ -1,177 +0,0 @@ -package jp.sourceforge.stigmata.reader; - -/* - * $Id$ - */ - -import java.net.URL; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import jp.sourceforge.stigmata.utils.WarClassLoader; - -/** - * @author Haruaki TAMADA - * @version $Revision$ - */ -public class ClasspathContext implements Iterable{ - private static ClasspathContext DEFAULT_CONTEXT = new ClasspathContext(false); - - private ClasspathContext parent; - private List classpath = new ArrayList(); - private ClassLoader loader = null; - - /** - * private constructor for root context. - */ - private ClasspathContext(boolean flag){ - } - - public ClasspathContext(){ - this(DEFAULT_CONTEXT); - } - - /** - * constructor with parent classpath context. - */ - public ClasspathContext(ClasspathContext parent){ - this.parent = parent; - } - - /** - * returns parent classpath context. - */ - public ClasspathContext getParent(){ - return parent; - } - - /** - * returns default classpath context. - */ - public static final ClasspathContext getDefaultContext(){ - return DEFAULT_CONTEXT; - } - - /** - * adds given url to this context. If this context already has given url or - * parent context has given url, this method do nothing. - */ - public synchronized void addClasspath(URL url){ - if(!contains(url)){ - classpath.add(url); - loader = null; - } - } - - /** - * returns that this context or parent context have given url. - */ - public synchronized boolean contains(URL url){ - return (parent != null && parent.contains(url)) || classpath.contains(url); - } - - /** - * returns a size of classpath list, which this context and parent context have. - */ - public int getClasspathSize(){ - int count = classpath.size(); - if(parent != null){ - count += parent.getClasspathSize(); - } - return count; - } - - /** - * returns an array of all of classpathes include parent context. - */ - public synchronized URL[] getClasspathList(){ - List list = new ArrayList(); - for(URL url: this){ - list.add(url); - } - return list.toArray(new URL[list.size()]); - } - - /** - * clears all of classpathes of this context. not clear parent context. - * If you want to clear this context and parent context, use {@link #clearAll clearAll} method. - * @see clearAll - */ - public void clear(){ - classpath.clear(); - } - - /** - * clears all of classpathes of this context and parent context. - */ - public void clearAll(){ - clear(); - if(parent != null){ - parent.clearAll(); - } - } - - public Iterator iterator(){ - if(parent == null){ - return classpath.iterator(); - } - else{ - final Iterator parentIterator = parent.iterator(); - final Iterator thisIterator = classpath.iterator(); - return new Iterator(){ - public boolean hasNext(){ - boolean next = parentIterator.hasNext(); - if(!next){ - next = thisIterator.hasNext(); - } - return next; - } - public URL next(){ - URL nextObject = null; - if(parentIterator.hasNext()){ - nextObject = parentIterator.next(); - } - else{ - nextObject = thisIterator.next(); - } - return nextObject; - } - public void remove(){ - } - }; - } - } - - public synchronized ClassLoader createClassLoader(){ - if(loader == null){ - List list = new ArrayList(); - for(URL url: this){ - list.add(url); - } - - loader = new WarClassLoader(list.toArray(new URL[list.size()]), getClass().getClassLoader()); - } - return loader; - } - - public ClassFileEntry find(String className) throws ClassNotFoundException{ - ClassLoader loader = createClassLoader(); - - URL resource = loader.getResource(className.replace('.', '/') + ".class"); - if(resource != null){ - return new ClassFileEntry(className, resource); - } - return null; - } - - public Class findClass(String className) throws ClassNotFoundException{ - try{ - ClassLoader loader = createClassLoader(); - - return loader.loadClass(className); - } catch(NoClassDefFoundError e){ - throw new ClassNotFoundException(e.getMessage(), e); - } - } -} diff --git a/src/main/java/jp/sourceforge/stigmata/reader/DefaultClassFileArchive.java b/src/main/java/jp/sourceforge/stigmata/reader/DefaultClassFileArchive.java deleted file mode 100644 index de57c51..0000000 --- a/src/main/java/jp/sourceforge/stigmata/reader/DefaultClassFileArchive.java +++ /dev/null @@ -1,117 +0,0 @@ -package jp.sourceforge.stigmata.reader; - -/* - * $Id$ - */ - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.commons.EmptyVisitor; - -/** - * - * - * - * @author Haruaki TAMADA - * @version $Revision$ - */ -public class DefaultClassFileArchive implements ClassFileArchive{ - private File file; - private String className; - - public DefaultClassFileArchive(String file){ - this(new File(file)); - } - - public DefaultClassFileArchive(File file){ - this.file = file; - parseClassName(); - } - - public DefaultClassFileArchive(String file, String className){ - this(new File(file), className); - } - - public DefaultClassFileArchive(File file, String className){ - this.file = file; - this.className = className; - } - - public URL getLocation(){ - try { - return file.toURI().toURL(); - } catch (MalformedURLException ex) { - } - return null; - } - - public InputStream getInputStream(ClassFileEntry entry) throws IOException{ - return new FileInputStream(file); - } - - public Iterator iterator(){ - List list = new ArrayList(); - list.add(new ClassFileEntry(className, getLocation())); - - return list.iterator(); - } - - public boolean hasEntry(String className){ - return this.className.equals(className); - } - - public ClassFileEntry getEntry(String className) throws ClassNotFoundException{ - return new ClassFileEntry(className, getLocation()); - } - - public String getName(){ - return className; - } - - private void parseClassName(){ - FileInputStream in = null; - try { - in = new FileInputStream(file); - ClassReader reader = new ClassReader(in); - ClassNameExtractVisitor visitor = new ClassNameExtractVisitor(); - reader.accept(visitor, true); - - this.className = visitor.getClassName(); - } catch (FileNotFoundException ex) { - ex.printStackTrace(); - } catch (IOException ex) { - ex.printStackTrace(); - } finally{ - if(in != null){ - try{ - in.close(); - } catch(IOException e){ - } - } - } - } - - private static class ClassNameExtractVisitor extends EmptyVisitor{ - private String className; - - public String getClassName(){ - return className; - } - - @Override - public void visit(int version, int access, String name, String signature, - String superClassName, String[] interfaces){ - className = name; - } - } -} diff --git a/src/main/java/jp/sourceforge/stigmata/reader/JarClassFileArchive.java b/src/main/java/jp/sourceforge/stigmata/reader/JarClassFileArchive.java deleted file mode 100644 index 03157cc..0000000 --- a/src/main/java/jp/sourceforge/stigmata/reader/JarClassFileArchive.java +++ /dev/null @@ -1,95 +0,0 @@ -package jp.sourceforge.stigmata.reader; - -/* - * $Id$ - */ - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.Iterator; -import java.util.List; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; - -/** - * - * @author Haruaki TAMADA - * @version $Revision$ - */ -public class JarClassFileArchive implements ClassFileArchive{ - private File file; - private JarFile jarfile; - private URL jarfileLocation; - - public JarClassFileArchive(String jarfile) throws IOException{ - this.file = new File(jarfile); - this.jarfile = new JarFile(jarfile); - this.jarfileLocation = file.toURI().toURL(); - } - - public URL getLocation(){ - return jarfileLocation; - } - - public String getName(){ - return file.getName(); - } - - public InputStream getInputStream(ClassFileEntry entry) throws IOException{ - if(hasEntry(entry.getClassName())){ - return jarfile.getInputStream(jarfile.getEntry(entry.getClassName().replace('.', '/') + ".class")); - } - return null; - } - - public Iterator iterator(){ - List list = new ArrayList(); - - for(Enumeration e = jarfile.entries(); e.hasMoreElements(); ){ - JarEntry entry = e.nextElement(); - if(entry.getName().endsWith(".class")){ - URL location = null; - try { - location = new URL("jar:" + getLocation() + "!/" + entry.getName()); - String className = entry.getName(); - className = className.substring(0, className.length() - ".class".length()); - className = className.replace('/', '.'); - - list.add(new ClassFileEntry(className, location)); - } catch (MalformedURLException ex) { - } - } - } - return list.iterator(); - } - - public boolean hasEntry(String className){ - return jarfile.getEntry(className.replace('.', '/') + ".class") != null; - } - - public ClassFileEntry getEntry(String className) throws ClassNotFoundException{ - if(hasEntry(className)){ - String entryName = className.replace('.', '/') + ".class"; - try{ - URL location = new URL("jar:" + jarfile.getName() + "!/" + entryName); - - return new ClassFileEntry(className, location); - } catch(MalformedURLException e){ - } - } - return null; - } - - Enumeration jarentries(){ - return jarfile.entries(); - } - - boolean hasJarEntry(String entry){ - return jarfile.getEntry(entry) != null; - } -} diff --git a/src/main/java/jp/sourceforge/stigmata/reader/WarClassFileArchive.java b/src/main/java/jp/sourceforge/stigmata/reader/WarClassFileArchive.java deleted file mode 100644 index 2253fa9..0000000 --- a/src/main/java/jp/sourceforge/stigmata/reader/WarClassFileArchive.java +++ /dev/null @@ -1,74 +0,0 @@ -package jp.sourceforge.stigmata.reader; - -/* - * $Id$ - */ - -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.Iterator; -import java.util.List; -import java.util.jar.JarEntry; - -/** - * - * - * - * @author Haruaki TAMADA - * @version $Revision$ - */ -public class WarClassFileArchive extends JarClassFileArchive{ - public WarClassFileArchive(String jarfile) throws IOException{ - super(jarfile); - } - - public InputStream getInputStream(ClassFileEntry entry) throws IOException{ - if(hasEntry(entry.getClassName())){ - return entry.getLocation().openStream(); - } - return null; - } - - public Iterator iterator(){ - List list = new ArrayList(); - - for(Enumeration e = jarentries(); e.hasMoreElements(); ){ - JarEntry entry = e.nextElement(); - if(entry.getName().endsWith(".class")){ - URL location = null; - try { - location = new URL("jar:" + getLocation() + "!/" + entry.getName()); - String className = entry.getName(); - className = className.substring("WEB-INF/classes/".length(), className.length() - ".class".length()); - className = className.replace('/', '.'); - - list.add(new ClassFileEntry(className, location)); - } catch (MalformedURLException ex) { - ex.printStackTrace(); - } - } - } - return list.iterator(); - } - - public boolean hasEntry(String className){ - return hasJarEntry("WEB-INF/classes/" + className.replace('.', '/') + ".class"); - } - - public ClassFileEntry getEntry(String className) throws ClassNotFoundException{ - if(hasEntry(className)){ - String entryName = className.replace('.', '/') + ".class"; - try{ - URL location = new URL("jar:" + getLocation() + "!/WEB-INF/classes/" + entryName); - - return new ClassFileEntry(className, location); - } catch(MalformedURLException e){ - } - } - return null; - } -} diff --git a/src/main/java/jp/sourceforge/stigmata/ui/swing/ClasspathSettingsPane.java b/src/main/java/jp/sourceforge/stigmata/ui/swing/ClasspathSettingsPane.java index f52e052..b9ad473 100644 --- a/src/main/java/jp/sourceforge/stigmata/ui/swing/ClasspathSettingsPane.java +++ b/src/main/java/jp/sourceforge/stigmata/ui/swing/ClasspathSettingsPane.java @@ -25,7 +25,7 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import jp.sourceforge.stigmata.Stigmata; -import jp.sourceforge.stigmata.reader.ClasspathContext; +import jp.sourceforge.stigmata.digger.ClasspathContext; import jp.sourceforge.talisman.i18n.Messages; /** diff --git a/src/main/java/jp/sourceforge/stigmata/ui/swing/ControlPane.java b/src/main/java/jp/sourceforge/stigmata/ui/swing/ControlPane.java index fd036a9..51f0966 100644 --- a/src/main/java/jp/sourceforge/stigmata/ui/swing/ControlPane.java +++ b/src/main/java/jp/sourceforge/stigmata/ui/swing/ControlPane.java @@ -31,8 +31,8 @@ import jp.sourceforge.stigmata.BirthmarkStoreTarget; import jp.sourceforge.stigmata.ComparisonMethod; import jp.sourceforge.stigmata.ExtractionUnit; import jp.sourceforge.stigmata.Stigmata; +import jp.sourceforge.stigmata.digger.ClasspathContext; import jp.sourceforge.stigmata.filter.ComparisonPairFilterManager; -import jp.sourceforge.stigmata.reader.ClasspathContext; import jp.sourceforge.stigmata.utils.ConfigFileExporter; import jp.sourceforge.stigmata.utils.WellknownClassManager; diff --git a/src/main/java/jp/sourceforge/stigmata/utils/WarClassLoader.java b/src/main/java/jp/sourceforge/stigmata/utils/WarClassLoader.java deleted file mode 100755 index 8e986f6..0000000 --- a/src/main/java/jp/sourceforge/stigmata/utils/WarClassLoader.java +++ /dev/null @@ -1,71 +0,0 @@ -package jp.sourceforge.stigmata.utils; - -/* - * $Id$ - */ - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.net.URLClassLoader; -import java.net.URLStreamHandlerFactory; - -/** - * ClassLoader for war file. - * A war file layouts classes in /WEB-INF/classes directory. - * Therefore, plain jar class loader cannot load classes included in war file. - * Because plain jar class loader only loads classes in top directory. - * Then, this class loader can load classes included in a plain jar file and a war file. - * - * @author Haruaki Tamada - * @version $Revision$ - */ -public class WarClassLoader extends URLClassLoader{ - public WarClassLoader(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory){ - super(urls, parent, factory); - } - - public WarClassLoader(URL[] urls, ClassLoader parent){ - super(urls, parent); - } - - public WarClassLoader(URL[] urls){ - super(urls); - } - - @Override - protected Class findClass(String name) throws ClassNotFoundException{ - Class clazz = null; - try{ - clazz = super.findClass(name); - } catch(ClassNotFoundException e){ - String path = "WEB-INF/classes/" + name.replace('.', '/') + ".class"; - for(URL url: getURLs()){ - if(url.toString().endsWith(".war")){ - try{ - URL newurl = new URL("jar:" + url + "!/" + path); - InputStream in = newurl.openStream(); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - byte[] data = new byte[256]; - int read = 0; - while((read = in.read(data, 0, data.length)) != -1){ - out.write(data, 0, read); - } - byte[] classdata = out.toByteArray(); - in.close(); - out.close(); - - clazz = defineClass(name, classdata, 0, classdata.length); - break; - } catch(IOException exp){ - } - } - } - } - if(clazz == null){ - throw new ClassNotFoundException(name); - } - return clazz; - } -} diff --git a/src/site/site.xml b/src/site/site.xml index cc40ce3..53621da 100755 --- a/src/site/site.xml +++ b/src/site/site.xml @@ -2,15 +2,18 @@ - sourceforge.jp - http://sourceforge.jp/ - sourceforge.jp + Stigmata + http://stigmata.sourceforge.jp + images/logos/stigmata_logo.png + Stigmata: Java birthmark toolkit + Stigmata images/logos/stigmata_logo.png Stigmata: Java birthmark toolkit + + -- 2.11.0