From: <her...@us...> - 2009-02-23 18:41:42
|
Revision: 1715 http://aperture.svn.sourceforge.net/aperture/?rev=1715&view=rev Author: herko_ter_horst Date: 2009-02-23 18:41:37 +0000 (Mon, 23 Feb 2009) Log Message: ----------- Mavenized extractor implementations. Modified Paths: -------------- aperture/trunk/core/extractor/adobe/pdf/pom.xml aperture/trunk/core/extractor/adobe/pdf/src/main/java/org/semanticdesktop/aperture/extractor/pdf/PdfExtractor.java aperture/trunk/core/extractor/audio/mp3/pom.xml aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/FrameIdentifier.java aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/MP3FileExtractor.java aperture/trunk/core/extractor/corel/office/pom.xml aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/presentations/PresentationsExtractor.java aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/wordperfect/WordPerfectExtractor.java aperture/trunk/core/extractor/corel/pom.xml aperture/trunk/core/extractor/corel/util/pom.xml aperture/trunk/core/extractor/corel/util/src/main/java/org/semanticdesktop/aperture/extractor/corel/util/WPFilterInputStream.java aperture/trunk/core/extractor/corel/util/src/main/java/org/semanticdesktop/aperture/extractor/corel/util/WPStringExtractor.java aperture/trunk/core/extractor/image/jpg/pom.xml aperture/trunk/core/extractor/image/jpg/src/main/java/org/semanticdesktop/aperture/extractor/jpg/JpgHeaderExtractor.java aperture/trunk/core/extractor/message/mime/pom.xml aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/MailUtil.java aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/MimeExtractor.java aperture/trunk/core/extractor/microsoft/office/pom.xml aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/excel/ExcelExtractor.java aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/office/OfficeExtractor.java aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/powerpoint/PowerPointExtractor.java aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/publisher/PublisherExtractor.java aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/word/WordExtractor.java aperture/trunk/core/extractor/microsoft/quattro/pom.xml aperture/trunk/core/extractor/microsoft/quattro/src/main/java/org/semanticdesktop/aperture/extractor/quattro/QuattroExtractor.java aperture/trunk/core/extractor/microsoft/util/pom.xml aperture/trunk/core/extractor/microsoft/visio/pom.xml aperture/trunk/core/extractor/microsoft/visio/src/main/java/org/semanticdesktop/aperture/extractor/visio/VisioExtractor.java aperture/trunk/core/extractor/microsoft/works/pom.xml aperture/trunk/core/extractor/microsoft/works/src/main/java/org/semanticdesktop/aperture/extractor/works/WorksExtractor.java aperture/trunk/core/extractor/opendocument/pom.xml aperture/trunk/core/extractor/opendocument/src/main/java/org/semanticdesktop/aperture/extractor/opendocument/OpenDocumentExtractor.java aperture/trunk/core/extractor/openxml/pom.xml aperture/trunk/core/extractor/openxml/src/main/java/org/semanticdesktop/aperture/extractor/openxml/OpenXmlExtractor.java aperture/trunk/core/extractor/pom.xml aperture/trunk/core/extractor/text/html/pom.xml aperture/trunk/core/extractor/text/html/src/main/java/org/semanticdesktop/aperture/extractor/html/HtmlExtractor.java aperture/trunk/core/extractor/text/plain/pom.xml aperture/trunk/core/extractor/text/pom.xml aperture/trunk/core/extractor/text/rtf/pom.xml aperture/trunk/core/extractor/text/xml/pom.xml aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/core/extractor/adobe/pdf/src/main/java/org/semanticdesktop/aperture/extractor/pdf/bundle/ aperture/trunk/core/extractor/adobe/pdf/src/main/java/org/semanticdesktop/aperture/extractor/pdf/bundle/PdfExtractorActivator.java aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/bundle/ aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/bundle/Mp3ExtractorActivator.java aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/corel/ aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/corel/office/ aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/corel/office/bundle/ aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/corel/office/bundle/CorelOfficeExtractorActivator.java aperture/trunk/core/extractor/image/jpg/src/main/java/org/semanticdesktop/aperture/extractor/jpg/bundle/ aperture/trunk/core/extractor/image/jpg/src/main/java/org/semanticdesktop/aperture/extractor/jpg/bundle/JpgExtractorActivator.java aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/bundle/ aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/bundle/MimeExtractorActivator.java aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/office/bundle/ aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/office/bundle/OfficeExtractorActivator.java aperture/trunk/core/extractor/microsoft/quattro/src/main/java/org/semanticdesktop/aperture/extractor/quattro/bundle/ aperture/trunk/core/extractor/microsoft/quattro/src/main/java/org/semanticdesktop/aperture/extractor/quattro/bundle/QuattroExtractorActivator.java aperture/trunk/core/extractor/microsoft/util/src/main/java/org/semanticdesktop/aperture/extractor/ aperture/trunk/core/extractor/microsoft/util/src/main/java/org/semanticdesktop/aperture/extractor/microsoft/ aperture/trunk/core/extractor/microsoft/util/src/main/java/org/semanticdesktop/aperture/extractor/microsoft/util/ aperture/trunk/core/extractor/microsoft/util/src/main/java/org/semanticdesktop/aperture/extractor/microsoft/util/PoiUtil.java aperture/trunk/core/extractor/microsoft/visio/src/main/java/org/semanticdesktop/aperture/extractor/visio/bundle/ aperture/trunk/core/extractor/microsoft/visio/src/main/java/org/semanticdesktop/aperture/extractor/visio/bundle/VisioExtractorActivator.java aperture/trunk/core/extractor/microsoft/works/src/main/java/org/semanticdesktop/aperture/extractor/works/bundle/ aperture/trunk/core/extractor/microsoft/works/src/main/java/org/semanticdesktop/aperture/extractor/works/bundle/WorksExtractorActivator.java aperture/trunk/core/extractor/opendocument/src/main/java/org/semanticdesktop/aperture/extractor/opendocument/bundle/ aperture/trunk/core/extractor/opendocument/src/main/java/org/semanticdesktop/aperture/extractor/opendocument/bundle/OpenDocumentExtractorActivator.java aperture/trunk/core/extractor/openxml/src/main/java/org/semanticdesktop/aperture/extractor/openxml/bundle/ aperture/trunk/core/extractor/openxml/src/main/java/org/semanticdesktop/aperture/extractor/openxml/bundle/OpenXmlExtractorActivator.java aperture/trunk/core/extractor/text/html/src/main/java/org/semanticdesktop/aperture/extractor/html/bundle/ aperture/trunk/core/extractor/text/html/src/main/java/org/semanticdesktop/aperture/extractor/html/bundle/HtmlExtractorActivator.java aperture/trunk/core/extractor/text/plain/src/main/java/org/semanticdesktop/aperture/extractor/plaintext/bundle/ aperture/trunk/core/extractor/text/plain/src/main/java/org/semanticdesktop/aperture/extractor/plaintext/bundle/PlainTextExtractorActivator.java aperture/trunk/core/extractor/text/rtf/src/main/java/org/semanticdesktop/aperture/extractor/rtf/bundle/ aperture/trunk/core/extractor/text/rtf/src/main/java/org/semanticdesktop/aperture/extractor/rtf/bundle/RtfExtractorActivator.java aperture/trunk/core/extractor/text/xml/src/main/java/org/semanticdesktop/aperture/extractor/xml/bundle/ aperture/trunk/core/extractor/text/xml/src/main/java/org/semanticdesktop/aperture/extractor/xml/bundle/XmlExtractorActivator.java Removed Paths: ------------- aperture/trunk/core/extractor/microsoft/util/src/main/java/org/semanticdesktop/aperture/extractor/microsoft/util/PoiUtil.java aperture/trunk/core/extractor/microsoft/util/src/main/java/org/semanticdesktop/aperture/helper/ Property Changed: ---------------- aperture/trunk/core/extractor/adobe/pdf/ aperture/trunk/core/extractor/audio/mp3/ aperture/trunk/core/extractor/corel/office/ aperture/trunk/core/extractor/image/jpg/ aperture/trunk/core/extractor/message/mime/ aperture/trunk/core/extractor/microsoft/office/ aperture/trunk/core/extractor/microsoft/quattro/ aperture/trunk/core/extractor/microsoft/visio/ aperture/trunk/core/extractor/microsoft/works/ aperture/trunk/core/extractor/opendocument/ aperture/trunk/core/extractor/openxml/ aperture/trunk/core/extractor/text/html/ aperture/trunk/core/extractor/text/plain/ aperture/trunk/core/extractor/text/rtf/ aperture/trunk/core/extractor/text/xml/ Property changes on: aperture/trunk/core/extractor/adobe/pdf ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/extractor/adobe/pdf/pom.xml =================================================================== --- aperture/trunk/core/extractor/adobe/pdf/pom.xml 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/adobe/pdf/pom.xml 2009-02-23 18:41:37 UTC (rev 1715) @@ -21,5 +21,66 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-extractor-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-rdf</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-core</artifactId> + </dependency> + + <dependency> + <groupId>pdfbox</groupId> + <artifactId>pdfbox</artifactId> + </dependency> + <dependency> + <groupId>org.jempbox</groupId> + <artifactId>jempbox</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.extractor.pdf</Export-Package> + <Private-Package>org.semanticdesktop.aperture.extractor.pdf.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.extractor.pdf.bundle.PdfExtractorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> </project> Modified: aperture/trunk/core/extractor/adobe/pdf/src/main/java/org/semanticdesktop/aperture/extractor/pdf/PdfExtractor.java =================================================================== --- aperture/trunk/core/extractor/adobe/pdf/src/main/java/org/semanticdesktop/aperture/extractor/pdf/PdfExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/adobe/pdf/src/main/java/org/semanticdesktop/aperture/extractor/pdf/PdfExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -29,7 +29,7 @@ import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.ExtractorException; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.util.UriUtil; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.vocabulary.NCO; import org.semanticdesktop.aperture.vocabulary.NFO; import org.semanticdesktop.aperture.vocabulary.NIE; @@ -258,7 +258,7 @@ private void addContactStatement(URI uri, String fullname, RDFContainer container) { if (fullname != null) { Model model = container.getModel(); - Resource contactResource = UriUtil.generateRandomResource(model); + Resource contactResource = ModelUtil.generateRandomResource(model); model.addStatement(contactResource, RDF.type, NCO.Contact); model.addStatement(contactResource, NCO.fullname, fullname); container.add(uri, contactResource); Added: aperture/trunk/core/extractor/adobe/pdf/src/main/java/org/semanticdesktop/aperture/extractor/pdf/bundle/PdfExtractorActivator.java =================================================================== --- aperture/trunk/core/extractor/adobe/pdf/src/main/java/org/semanticdesktop/aperture/extractor/pdf/bundle/PdfExtractorActivator.java (rev 0) +++ aperture/trunk/core/extractor/adobe/pdf/src/main/java/org/semanticdesktop/aperture/extractor/pdf/bundle/PdfExtractorActivator.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.pdf.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.pdf.PdfExtractorFactory; + +public class PdfExtractorActivator implements BundleActivator { + + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + registration = context.registerService( + ExtractorFactory.class.getName(), new PdfExtractorFactory(), + new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + } +} Property changes on: aperture/trunk/core/extractor/audio/mp3 ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/extractor/audio/mp3/pom.xml =================================================================== --- aperture/trunk/core/extractor/audio/mp3/pom.xml 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/audio/mp3/pom.xml 2009-02-23 18:41:37 UTC (rev 1715) @@ -21,5 +21,62 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-extractor-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-rdf</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-core</artifactId> + </dependency> + + <dependency> + <groupId>org.jaudiotagger</groupId> + <artifactId>jaudiotagger</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.extractor.mp3</Export-Package> + <Private-Package>org.semanticdesktop.aperture.extractor.mp3.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.extractor.mp3.bundle.Mp3ExtractorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> </project> Modified: aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/FrameIdentifier.java =================================================================== --- aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/FrameIdentifier.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/FrameIdentifier.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -72,7 +72,7 @@ import org.ontoware.rdf2go.vocabulary.RDFS; import org.ontoware.rdf2go.vocabulary.XSD; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.util.UriUtil; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.vocabulary.NCO; import org.semanticdesktop.aperture.vocabulary.NFO; import org.semanticdesktop.aperture.vocabulary.NID3; @@ -94,7 +94,7 @@ public void process(AbstractTagFrameBody body, AbstractID3v2Tag id3v2, HashMap<URI, String> id3v1props, RDFContainer result) { FrameBodyAPIC apic = (FrameBodyAPIC)body; Model model = result.getModel(); - Resource resource = UriUtil.generateRandomResource(model); + Resource resource = ModelUtil.generateRandomResource(model); model.addStatement(resource, RDF.type, NFO.Attachment); model.addStatement(resource, RDF.type, NFO.Image); if (apic.getMimeType() != null && apic.getMimeType().length() > 0) { @@ -120,7 +120,7 @@ public void process(AbstractTagFrameBody body, AbstractID3v2Tag id3v2, HashMap<URI, String> id3v1props, RDFContainer result) { FrameBodyGEOB apic = (FrameBodyGEOB)body; Model model = result.getModel(); - Resource resource = UriUtil.generateRandomResource(model); + Resource resource = ModelUtil.generateRandomResource(model); model.addStatement(resource, RDF.type, NFO.Attachment); model.addStatement(resource, RDF.type, NIE.InformationElement); model.addStatement(result.getDescribedUri(), NID3.generalEncapsulatedObject, resource); @@ -308,7 +308,7 @@ String description = txxx.getDescription(); String text = txxx.getText(); Model model = result.getModel(); - Resource resource = UriUtil.generateRandomResource(model); + Resource resource = ModelUtil.generateRandomResource(model); model.addStatement(resource, RDF.type, NID3.UserDefinedFrame); model.addStatement(resource, NID3.userDefinedFrameDescription, description); model.addStatement(resource, NID3.userDefinedFrameValue, text); @@ -377,7 +377,7 @@ String description = txxx.getDescription(); String text = txxx.getUrlLink(); Model model = result.getModel(); - Resource resource = UriUtil.generateRandomResource(model); + Resource resource = ModelUtil.generateRandomResource(model); model.addStatement(resource, RDF.type, NID3.UserDefinedURLFrame); model.addStatement(resource, NID3.userDefinedFrameDescription, description); model.addStatement(resource, NID3.userDefinedFrameValue, text); @@ -568,7 +568,7 @@ protected void addSimpleContact(URI property, String fullname, RDFContainer container) { Model model = container.getModel(); - Resource resource = UriUtil.generateRandomResource(model); + Resource resource = ModelUtil.generateRandomResource(model); model.addStatement(resource, RDF.type, NCO.Contact); model.addStatement(resource, NCO.fullname, fullname); model.addStatement(container.getDescribedUri(), property, resource); Modified: aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/MP3FileExtractor.java =================================================================== --- aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/MP3FileExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/MP3FileExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -29,7 +29,7 @@ import org.semanticdesktop.aperture.extractor.AbstractFileExtractor; import org.semanticdesktop.aperture.extractor.ExtractorException; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.util.UriUtil; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.vocabulary.NCO; import org.semanticdesktop.aperture.vocabulary.NID3; import org.slf4j.Logger; @@ -173,7 +173,7 @@ } else if (uri.equals(NID3.leadArtist)) { Model model = result.getModel(); - Resource anonymousContact = UriUtil.generateRandomResource(model); + Resource anonymousContact = ModelUtil.generateRandomResource(model); model.addStatement(result.getDescribedUri(), NID3.leadArtist, anonymousContact); model.addStatement(anonymousContact, RDF.type, NCO.Contact); model.addStatement(anonymousContact, NCO.fullname, value); Added: aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/bundle/Mp3ExtractorActivator.java =================================================================== --- aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/bundle/Mp3ExtractorActivator.java (rev 0) +++ aperture/trunk/core/extractor/audio/mp3/src/main/java/org/semanticdesktop/aperture/extractor/mp3/bundle/Mp3ExtractorActivator.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.mp3.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.mp3.MP3FileExtractorFactory; + +public class Mp3ExtractorActivator implements BundleActivator { + + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + registration = context.registerService( + ExtractorFactory.class.getName(), new MP3FileExtractorFactory(), + new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + } +} Property changes on: aperture/trunk/core/extractor/corel/office ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/extractor/corel/office/pom.xml =================================================================== --- aperture/trunk/core/extractor/corel/office/pom.xml 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/corel/office/pom.xml 2009-02-23 18:41:37 UTC (rev 1715) @@ -11,15 +11,75 @@ <version>1.3.0-SNAPSHOT</version> </parent> - <artifactId>aperture-extractor-corel-util</artifactId> + <artifactId>aperture-extractor-corel-office</artifactId> - <name>Aperture Core: Extractor - Corel util</name> - <description>Utilities</description> + <name>Aperture Core: Extractor - Corel Office</name> + <description>Corel Office formats extractor</description> <dependencies> <dependency> <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-extractor-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-corel-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-microsoft-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-rdf</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-core</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.extractor.presentations,org.semanticdesktop.aperture.extractor.wordperfect</Export-Package> + <Private-Package>org.semanticdesktop.aperture.extractor.corel.office.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.extractor.corel.office.CorelOfficeExtractorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> </project> Added: aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/corel/office/bundle/CorelOfficeExtractorActivator.java =================================================================== --- aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/corel/office/bundle/CorelOfficeExtractorActivator.java (rev 0) +++ aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/corel/office/bundle/CorelOfficeExtractorActivator.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.corel.office.bundle; + +import java.util.HashSet; +import java.util.Hashtable; +import java.util.Set; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.presentations.PresentationsExtractorFactory; +import org.semanticdesktop.aperture.extractor.wordperfect.WordPerfectExtractorFactory; + +public class CorelOfficeExtractorActivator implements BundleActivator { + + private Set<ServiceRegistration> registrations = new HashSet<ServiceRegistration>(); + + public void start(BundleContext context) throws Exception { + registrations.add(context.registerService(ExtractorFactory.class + .getName(), new PresentationsExtractorFactory(), + new Hashtable())); + registrations + .add(context.registerService(ExtractorFactory.class.getName(), + new WordPerfectExtractorFactory(), new Hashtable())); + } + + public void stop(BundleContext context) throws Exception { + for (ServiceRegistration registration : registrations) { + registration.unregister(); + } + registrations.clear(); + } +} Modified: aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/presentations/PresentationsExtractor.java =================================================================== --- aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/presentations/PresentationsExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/presentations/PresentationsExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -15,8 +15,8 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.ExtractorException; -import org.semanticdesktop.aperture.extractor.util.PoiUtil; -import org.semanticdesktop.aperture.extractor.util.WPStringExtractor; +import org.semanticdesktop.aperture.extractor.corel.util.WPStringExtractor; +import org.semanticdesktop.aperture.extractor.microsoft.util.PoiUtil; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.util.IOUtil; import org.semanticdesktop.aperture.vocabulary.NFO; Modified: aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/wordperfect/WordPerfectExtractor.java =================================================================== --- aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/wordperfect/WordPerfectExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/corel/office/src/main/java/org/semanticdesktop/aperture/extractor/wordperfect/WordPerfectExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -14,7 +14,7 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.ExtractorException; -import org.semanticdesktop.aperture.extractor.util.WPStringExtractor; +import org.semanticdesktop.aperture.extractor.corel.util.WPStringExtractor; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.vocabulary.NFO; import org.semanticdesktop.aperture.vocabulary.NIE; Modified: aperture/trunk/core/extractor/corel/pom.xml =================================================================== --- aperture/trunk/core/extractor/corel/pom.xml 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/corel/pom.xml 2009-02-23 18:41:37 UTC (rev 1715) @@ -11,7 +11,7 @@ <version>1.3.0-SNAPSHOT</version> </parent> - <artifactId>aperture-extractor-adobe</artifactId> + <artifactId>aperture-extractor-corel</artifactId> <packaging>pom</packaging> <name>Aperture Core: Extractors - Corel</name> Modified: aperture/trunk/core/extractor/corel/util/pom.xml =================================================================== --- aperture/trunk/core/extractor/corel/util/pom.xml 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/corel/util/pom.xml 2009-02-23 18:41:37 UTC (rev 1715) @@ -19,7 +19,30 @@ <dependencies> <dependency> <groupId>org.semanticdesktop.aperture</groupId> - <artifactId>aperture-extractor-core</artifactId> + <artifactId>aperture-util</artifactId> </dependency> </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.extractor.corel.util</Export-Package> + </instructions> + </configuration> + </plugin> + </plugins> + </build> </project> Modified: aperture/trunk/core/extractor/corel/util/src/main/java/org/semanticdesktop/aperture/extractor/corel/util/WPFilterInputStream.java =================================================================== --- aperture/trunk/core/extractor/corel/util/src/main/java/org/semanticdesktop/aperture/extractor/corel/util/WPFilterInputStream.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/corel/util/src/main/java/org/semanticdesktop/aperture/extractor/corel/util/WPFilterInputStream.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -4,7 +4,7 @@ * * Licensed under the Aperture BSD-style license. */ -package org.semanticdesktop.aperture.extractor.util; +package org.semanticdesktop.aperture.extractor.corel.util; import java.io.FilterInputStream; import java.io.IOException; Modified: aperture/trunk/core/extractor/corel/util/src/main/java/org/semanticdesktop/aperture/extractor/corel/util/WPStringExtractor.java =================================================================== --- aperture/trunk/core/extractor/corel/util/src/main/java/org/semanticdesktop/aperture/extractor/corel/util/WPStringExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/corel/util/src/main/java/org/semanticdesktop/aperture/extractor/corel/util/WPStringExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -4,12 +4,14 @@ * * Licensed under the Aperture BSD-style license. */ -package org.semanticdesktop.aperture.extractor.util; +package org.semanticdesktop.aperture.extractor.corel.util; import java.io.IOException; import java.io.InputStream; +import org.semanticdesktop.aperture.util.StringExtractor; + /** * A StringExtractor extension optimized for processing WordPerfect document streams. * Property changes on: aperture/trunk/core/extractor/image/jpg ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/extractor/image/jpg/pom.xml =================================================================== --- aperture/trunk/core/extractor/image/jpg/pom.xml 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/image/jpg/pom.xml 2009-02-23 18:41:37 UTC (rev 1715) @@ -21,5 +21,62 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-extractor-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-rdf</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-core</artifactId> + </dependency> + + <dependency> + <groupId>com.drewnoakes</groupId> + <artifactId>metadata-extractor</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.extractor.jpg</Export-Package> + <Private-Package>org.semanticdesktop.aperture.extractor.jpg.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.extractor.jpg.bundle.JpgExtractorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> </project> Modified: aperture/trunk/core/extractor/image/jpg/src/main/java/org/semanticdesktop/aperture/extractor/jpg/JpgHeaderExtractor.java =================================================================== --- aperture/trunk/core/extractor/image/jpg/src/main/java/org/semanticdesktop/aperture/extractor/jpg/JpgHeaderExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/image/jpg/src/main/java/org/semanticdesktop/aperture/extractor/jpg/JpgHeaderExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -18,7 +18,7 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.extractor.ExtractorException; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.util.UriUtil; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.vocabulary.GEO; import org.semanticdesktop.aperture.vocabulary.NEXIF; import org.slf4j.Logger; @@ -173,7 +173,7 @@ return; } Model model = result.getModel(); - Resource point = UriUtil.generateRandomResource(model); + Resource point = ModelUtil.generateRandomResource(model); result.add(NEXIF.gps, point); model.addStatement(point,RDF.type,GEO.Point); if (altitude != null) { Added: aperture/trunk/core/extractor/image/jpg/src/main/java/org/semanticdesktop/aperture/extractor/jpg/bundle/JpgExtractorActivator.java =================================================================== --- aperture/trunk/core/extractor/image/jpg/src/main/java/org/semanticdesktop/aperture/extractor/jpg/bundle/JpgExtractorActivator.java (rev 0) +++ aperture/trunk/core/extractor/image/jpg/src/main/java/org/semanticdesktop/aperture/extractor/jpg/bundle/JpgExtractorActivator.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.jpg.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.jpg.JpgExtractorFactory; + +public class JpgExtractorActivator implements BundleActivator { + + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + registration = context.registerService( + ExtractorFactory.class.getName(), new JpgExtractorFactory(), + new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + } +} Property changes on: aperture/trunk/core/extractor/message/mime ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/extractor/message/mime/pom.xml =================================================================== --- aperture/trunk/core/extractor/message/mime/pom.xml 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/message/mime/pom.xml 2009-02-23 18:41:37 UTC (rev 1715) @@ -19,7 +19,72 @@ <dependencies> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-sub-mime</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-extractor-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-helper-html</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-rdf</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-core</artifactId> + </dependency> + + <dependency> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.extractor.mime</Export-Package> + <Private-Package>org.semanticdesktop.aperture.extractor.mime.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.extractor.mime.bundle.MimeExtractorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> </project> Modified: aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/MailUtil.java =================================================================== --- aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/MailUtil.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/MailUtil.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -19,7 +19,7 @@ import org.ontoware.rdf2go.model.node.URI; import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.util.UriUtil; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.vocabulary.NCO; import org.semanticdesktop.aperture.vocabulary.NMO; @@ -89,7 +89,7 @@ if (hasRealValue(emailAddress)) { Literal literal = metadata.getValueFactory().createLiteral(emailAddress); - Resource emailResource = UriUtil.generateRandomResource(model); + Resource emailResource = ModelUtil.generateRandomResource(model); model.addStatement(contact, NCO.hasEmailAddress, emailResource); model.addStatement(emailResource, RDF.type, NCO.EmailAddress); model.addStatement(emailResource, NCO.emailAddress, literal); Modified: aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/MimeExtractor.java =================================================================== --- aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/MimeExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/MimeExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -29,7 +29,8 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.ExtractorException; -import org.semanticdesktop.aperture.extractor.util.HtmlParserUtil; +import org.semanticdesktop.aperture.helper.html.HtmlParserException; +import org.semanticdesktop.aperture.helper.html.HtmlParserUtil; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.subcrawler.mime.MimeSubCrawler; import org.semanticdesktop.aperture.vocabulary.NMO; @@ -233,7 +234,7 @@ try { HtmlParserUtil.parse(stream, null, extractor); } - catch (ExtractorException e) { + catch (HtmlParserException e) { return ""; } Added: aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/bundle/MimeExtractorActivator.java =================================================================== --- aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/bundle/MimeExtractorActivator.java (rev 0) +++ aperture/trunk/core/extractor/message/mime/src/main/java/org/semanticdesktop/aperture/extractor/mime/bundle/MimeExtractorActivator.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.mime.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.mime.MimeExtractorFactory; + +public class MimeExtractorActivator implements BundleActivator { + + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + registration = context.registerService( + ExtractorFactory.class.getName(), new MimeExtractorFactory(), + new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + } +} Property changes on: aperture/trunk/core/extractor/microsoft/office ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/extractor/microsoft/office/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/office/pom.xml 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/microsoft/office/pom.xml 2009-02-23 18:41:37 UTC (rev 1715) @@ -21,5 +21,61 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-extractor-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-microsoft-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-rdf</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-core</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.extractor.office,org.semanticdesktop.aperture.extractor.excel,org.semanticdesktop.aperture.extractor.powerpoint,org.semanticdesktop.aperture.extractor.publisher,org.semanticdesktop.aperture.extractor.word</Export-Package> + <Private-Package>org.semanticdesktop.aperture.extractor.office.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.extractor.office.bundle.OfficeExtractorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> </project> Modified: aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/excel/ExcelExtractor.java =================================================================== --- aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/excel/ExcelExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/excel/ExcelExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -30,8 +30,8 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.ExtractorException; -import org.semanticdesktop.aperture.extractor.util.PoiUtil; -import org.semanticdesktop.aperture.extractor.util.PoiUtil.TextExtractor; +import org.semanticdesktop.aperture.extractor.microsoft.util.PoiUtil; +import org.semanticdesktop.aperture.extractor.microsoft.util.PoiUtil.TextExtractor; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.vocabulary.NFO; import org.slf4j.Logger; Modified: aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/office/OfficeExtractor.java =================================================================== --- aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/office/OfficeExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/office/OfficeExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -13,7 +13,7 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.ExtractorException; -import org.semanticdesktop.aperture.extractor.util.PoiUtil; +import org.semanticdesktop.aperture.extractor.microsoft.util.PoiUtil; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.vocabulary.NFO; import org.slf4j.Logger; Added: aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/office/bundle/OfficeExtractorActivator.java =================================================================== --- aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/office/bundle/OfficeExtractorActivator.java (rev 0) +++ aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/office/bundle/OfficeExtractorActivator.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.office.bundle; + +import java.util.HashSet; +import java.util.Hashtable; +import java.util.Set; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.excel.ExcelExtractorFactory; +import org.semanticdesktop.aperture.extractor.office.OfficeExtractorFactory; +import org.semanticdesktop.aperture.extractor.powerpoint.PowerPointExtractorFactory; +import org.semanticdesktop.aperture.extractor.publisher.PublisherExtractorFactory; +import org.semanticdesktop.aperture.extractor.word.WordExtractorFactory; + +public class OfficeExtractorActivator implements BundleActivator { + + private Set<ServiceRegistration> registrations = new HashSet<ServiceRegistration>(); + + public void start(BundleContext context) throws Exception { + registrations.add(context.registerService(ExtractorFactory.class + .getName(), new OfficeExtractorFactory(), new Hashtable())); + registrations.add(context.registerService(ExtractorFactory.class + .getName(), new ExcelExtractorFactory(), new Hashtable())); + registrations.add(context.registerService(ExtractorFactory.class + .getName(), new PowerPointExtractorFactory(), new Hashtable())); + registrations.add(context.registerService(ExtractorFactory.class + .getName(), new PublisherExtractorFactory(), new Hashtable())); + registrations.add(context.registerService(ExtractorFactory.class + .getName(), new WordExtractorFactory(), new Hashtable())); + } + + public void stop(BundleContext context) throws Exception { + for (ServiceRegistration registration : registrations) { + registration.unregister(); + } + registrations.clear(); + } +} Modified: aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/powerpoint/PowerPointExtractor.java =================================================================== --- aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/powerpoint/PowerPointExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/powerpoint/PowerPointExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -15,8 +15,8 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.ExtractorException; -import org.semanticdesktop.aperture.extractor.util.PoiUtil; -import org.semanticdesktop.aperture.extractor.util.PoiUtil.TextExtractor; +import org.semanticdesktop.aperture.extractor.microsoft.util.PoiUtil; +import org.semanticdesktop.aperture.extractor.microsoft.util.PoiUtil.TextExtractor; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.vocabulary.NFO; import org.slf4j.Logger; Modified: aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/publisher/PublisherExtractor.java =================================================================== --- aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/publisher/PublisherExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/publisher/PublisherExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -14,9 +14,9 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.ExtractorException; -import org.semanticdesktop.aperture.extractor.util.PoiUtil; -import org.semanticdesktop.aperture.extractor.util.StringExtractor; +import org.semanticdesktop.aperture.extractor.microsoft.util.PoiUtil; import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.util.StringExtractor; import org.semanticdesktop.aperture.vocabulary.NFO; import org.semanticdesktop.aperture.vocabulary.NIE; Modified: aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/word/WordExtractor.java =================================================================== --- aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/word/WordExtractor.java 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/microsoft/office/src/main/java/org/semanticdesktop/aperture/extractor/word/WordExtractor.java 2009-02-23 18:41:37 UTC (rev 1715) @@ -15,8 +15,8 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.ExtractorException; -import org.semanticdesktop.aperture.extractor.util.PoiUtil; -import org.semanticdesktop.aperture.extractor.util.PoiUtil.TextExtractor; +import org.semanticdesktop.aperture.extractor.microsoft.util.PoiUtil; +import org.semanticdesktop.aperture.extractor.microsoft.util.PoiUtil.TextExtractor; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.vocabulary.NFO; import org.slf4j.Logger; Property changes on: aperture/trunk/core/extractor/microsoft/quattro ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/extractor/microsoft/quattro/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/quattro/pom.xml 2009-02-23 18:22:38 UTC (rev 1714) +++ aperture/trunk/core/extractor/microsoft/quattro/pom.xml 2009-02-23 18:41:37 UTC (rev 1715) @@ -21,5 +21,61 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-extractor-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-microsoft-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-rdf</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-core</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.extractor.quattro</Export-Package> + <Private-Package>org.semanticdesktop.aperture.extractor.quattro.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.extractor.quattro.bundle.QuattroExtractorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> </project> Modified: aperture/trunk/core/extractor/microsoft/quattro/src/main/java/org/semanticdesktop/aperture/extractor/quattro/QuattroExtractor.java =================================================================== --... [truncated message content] |
From: <her...@us...> - 2009-02-24 14:43:38
|
Revision: 1718 http://aperture.svn.sourceforge.net/aperture/?rev=1718&view=rev Author: herko_ter_horst Date: 2009-02-24 14:43:28 +0000 (Tue, 24 Feb 2009) Log Message: ----------- Opener module skeletons. Added Paths: ----------- aperture/trunk/core/opener/ aperture/trunk/core/opener/core/ aperture/trunk/core/opener/core/pom.xml aperture/trunk/core/opener/core/src/ aperture/trunk/core/opener/core/src/main/ aperture/trunk/core/opener/core/src/main/java/ aperture/trunk/core/opener/core/src/main/java/org/ aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/ aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/ aperture/trunk/core/opener/core/src/test/ aperture/trunk/core/opener/core/src/test/java/ aperture/trunk/core/opener/core/src/test/java/org/ aperture/trunk/core/opener/core/src/test/java/org/semanticdesktop/ aperture/trunk/core/opener/core/src/test/java/org/semanticdesktop/aperture/ aperture/trunk/core/opener/email/ aperture/trunk/core/opener/email/pom.xml aperture/trunk/core/opener/email/src/ aperture/trunk/core/opener/email/src/main/ aperture/trunk/core/opener/email/src/main/java/ aperture/trunk/core/opener/email/src/main/java/org/ aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/ aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/ aperture/trunk/core/opener/email/src/test/ aperture/trunk/core/opener/email/src/test/java/ aperture/trunk/core/opener/email/src/test/java/org/ aperture/trunk/core/opener/email/src/test/java/org/semanticdesktop/ aperture/trunk/core/opener/email/src/test/java/org/semanticdesktop/aperture/ aperture/trunk/core/opener/file/ aperture/trunk/core/opener/file/pom.xml aperture/trunk/core/opener/file/src/ aperture/trunk/core/opener/file/src/main/ aperture/trunk/core/opener/file/src/main/java/ aperture/trunk/core/opener/file/src/main/java/org/ aperture/trunk/core/opener/file/src/main/java/org/semanticdesktop/ aperture/trunk/core/opener/file/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/core/opener/file/src/main/java/org/semanticdesktop/aperture/opener/ aperture/trunk/core/opener/file/src/test/ aperture/trunk/core/opener/file/src/test/java/ aperture/trunk/core/opener/file/src/test/java/org/ aperture/trunk/core/opener/file/src/test/java/org/semanticdesktop/ aperture/trunk/core/opener/file/src/test/java/org/semanticdesktop/aperture/ aperture/trunk/core/opener/http/ aperture/trunk/core/opener/http/pom.xml aperture/trunk/core/opener/http/src/ aperture/trunk/core/opener/http/src/main/ aperture/trunk/core/opener/http/src/main/java/ aperture/trunk/core/opener/http/src/main/java/org/ aperture/trunk/core/opener/http/src/main/java/org/semanticdesktop/ aperture/trunk/core/opener/http/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/core/opener/http/src/main/java/org/semanticdesktop/aperture/opener/ aperture/trunk/core/opener/http/src/test/ aperture/trunk/core/opener/http/src/test/java/ aperture/trunk/core/opener/http/src/test/java/org/ aperture/trunk/core/opener/http/src/test/java/org/semanticdesktop/ aperture/trunk/core/opener/http/src/test/java/org/semanticdesktop/aperture/ aperture/trunk/core/opener/pom.xml aperture/trunk/default/crawler/src/main/resources/org/ aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/ aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/ aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/crawler/ aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/crawler/impl/ aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/crawler/impl/defaults.xml Removed Paths: ------------- aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/impl/defaults.xml Deleted: aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/impl/defaults.xml =================================================================== --- aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/impl/defaults.xml 2009-02-23 21:29:28 UTC (rev 1717) +++ aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/impl/defaults.xml 2009-02-24 14:43:28 UTC (rev 1718) @@ -1,22 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> - -<crawlerFactories> - <crawlerFactory> - <name>org.semanticdesktop.aperture.crawler.filesystem.FileSystemCrawlerFactory</name> - </crawlerFactory> - <crawlerFactory> - <name>org.semanticdesktop.aperture.crawler.web.WebCrawlerFactory</name> - </crawlerFactory> - <crawlerFactory> - <name>org.semanticdesktop.aperture.crawler.imap.ImapCrawlerFactory</name> - </crawlerFactory> - <crawlerFactory> - <name>org.semanticdesktop.aperture.outlook.OutlookCrawlerFactory</name> - </crawlerFactory> - <crawlerFactory> - <name>org.semanticdesktop.aperture.addressbook.apple.AppleAddressbookCrawlerFactory</name> - </crawlerFactory> - <crawlerFactory> - <name>org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdAddressbookCrawlerFactory</name> - </crawlerFactory> -</crawlerFactories> \ No newline at end of file Added: aperture/trunk/core/opener/core/pom.xml =================================================================== --- aperture/trunk/core/opener/core/pom.xml (rev 0) +++ aperture/trunk/core/opener/core/pom.xml 2009-02-24 14:43:28 UTC (rev 1718) @@ -0,0 +1,65 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-opener-core</artifactId> + + <name>Aperture Core: Opener - core</name> + <description>Opener core API and registry implementation</description> + + <dependencies> + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.opener.core</Export-Package> + <Private-Package>org.semanticdesktop.aperture.opener.core.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.opener.core.bundle.FileAccessorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> +</project> Added: aperture/trunk/core/opener/email/pom.xml =================================================================== --- aperture/trunk/core/opener/email/pom.xml (rev 0) +++ aperture/trunk/core/opener/email/pom.xml 2009-02-24 14:43:28 UTC (rev 1718) @@ -0,0 +1,74 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-opener-email</artifactId> + + <name>Aperture Core: Opener - E-mail</name> + <description>E-mail opener</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.opener.email</Export-Package> + <Private-Package>org.semanticdesktop.aperture.opener.email.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.opener.email.bundle.FileAccessorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> +</project> Added: aperture/trunk/core/opener/file/pom.xml =================================================================== --- aperture/trunk/core/opener/file/pom.xml (rev 0) +++ aperture/trunk/core/opener/file/pom.xml 2009-02-24 14:43:28 UTC (rev 1718) @@ -0,0 +1,74 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-opener-file</artifactId> + + <name>Aperture Core: Opener - File</name> + <description>File opener</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.opener.file</Export-Package> + <Private-Package>org.semanticdesktop.aperture.opener.file.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.opener.file.bundle.FileAccessorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> +</project> Added: aperture/trunk/core/opener/http/pom.xml =================================================================== --- aperture/trunk/core/opener/http/pom.xml (rev 0) +++ aperture/trunk/core/opener/http/pom.xml 2009-02-24 14:43:28 UTC (rev 1718) @@ -0,0 +1,74 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-opener-http</artifactId> + + <name>Aperture Core: Opener - HTTP</name> + <description>HTTP opener</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-util</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.opener.http</Export-Package> + <Private-Package>org.semanticdesktop.aperture.opener.http.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.opener.http.bundle.FileAccessorActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> +</project> Added: aperture/trunk/core/opener/pom.xml =================================================================== --- aperture/trunk/core/opener/pom.xml (rev 0) +++ aperture/trunk/core/opener/pom.xml 2009-02-24 14:43:28 UTC (rev 1718) @@ -0,0 +1,26 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-core</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-opener</artifactId> + <packaging>pom</packaging> + + <name>Aperture Core: Accessors</name> + <description>Definition of various accessors</description> + + <modules> + <module>core</module> + <module>email</module> + <module>file</module> + <module>http</module> + </modules> +</project> \ No newline at end of file Copied: aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/crawler/impl/defaults.xml (from rev 1717, aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/impl/defaults.xml) =================================================================== --- aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/crawler/impl/defaults.xml (rev 0) +++ aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/crawler/impl/defaults.xml 2009-02-24 14:43:28 UTC (rev 1718) @@ -0,0 +1,22 @@ +<?xml version='1.0' encoding='UTF-8'?> + +<crawlerFactories> + <crawlerFactory> + <name>org.semanticdesktop.aperture.crawler.filesystem.FileSystemCrawlerFactory</name> + </crawlerFactory> + <crawlerFactory> + <name>org.semanticdesktop.aperture.crawler.web.WebCrawlerFactory</name> + </crawlerFactory> + <crawlerFactory> + <name>org.semanticdesktop.aperture.crawler.imap.ImapCrawlerFactory</name> + </crawlerFactory> + <crawlerFactory> + <name>org.semanticdesktop.aperture.outlook.OutlookCrawlerFactory</name> + </crawlerFactory> + <crawlerFactory> + <name>org.semanticdesktop.aperture.addressbook.apple.AppleAddressbookCrawlerFactory</name> + </crawlerFactory> + <crawlerFactory> + <name>org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdAddressbookCrawlerFactory</name> + </crawlerFactory> +</crawlerFactories> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <her...@us...> - 2009-02-24 16:18:56
|
Revision: 1726 http://aperture.svn.sourceforge.net/aperture/?rev=1726&view=rev Author: herko_ter_horst Date: 2009-02-24 16:18:53 +0000 (Tue, 24 Feb 2009) Log Message: ----------- Mavenized opener modules. Modified Paths: -------------- aperture/trunk/core/opener/core/pom.xml aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/email/EmailOpener.java aperture/trunk/core/opener/pom.xml aperture/trunk/core/pom.xml aperture/trunk/default/pom.xml aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/default/extractor/ aperture/trunk/default/extractor/pom.xml aperture/trunk/default/extractor/src/ aperture/trunk/default/extractor/src/main/ aperture/trunk/default/extractor/src/main/java/ aperture/trunk/default/extractor/src/main/java/org/ aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/ aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/ aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/impl/ aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/impl/DefaultExtractorRegistry.java aperture/trunk/default/extractor/src/main/resources/ aperture/trunk/default/extractor/src/main/resources/org/ aperture/trunk/default/extractor/src/main/resources/org/semanticdesktop/ aperture/trunk/default/extractor/src/main/resources/org/semanticdesktop/aperture/ aperture/trunk/default/extractor/src/main/resources/org/semanticdesktop/aperture/extractor/ aperture/trunk/default/extractor/src/main/resources/org/semanticdesktop/aperture/extractor/impl/ aperture/trunk/default/extractor/src/main/resources/org/semanticdesktop/aperture/extractor/impl/defaults.xml aperture/trunk/default/extractor/src/test/ aperture/trunk/default/extractor/src/test/java/ aperture/trunk/default/extractor/src/test/java/org/ aperture/trunk/default/extractor/src/test/java/org/semanticdesktop/ aperture/trunk/default/extractor/src/test/java/org/semanticdesktop/aperture/ aperture/trunk/default/opener/ aperture/trunk/default/opener/pom.xml aperture/trunk/default/opener/src/ aperture/trunk/default/opener/src/main/ aperture/trunk/default/opener/src/main/java/ aperture/trunk/default/opener/src/main/java/org/ aperture/trunk/default/opener/src/main/java/org/semanticdesktop/ aperture/trunk/default/opener/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/default/opener/src/main/java/org/semanticdesktop/aperture/opener/ aperture/trunk/default/opener/src/main/java/org/semanticdesktop/aperture/opener/impl/ aperture/trunk/default/opener/src/main/java/org/semanticdesktop/aperture/opener/impl/DefaultDataOpenerRegistry.java aperture/trunk/default/opener/src/test/ aperture/trunk/default/opener/src/test/java/ aperture/trunk/default/opener/src/test/java/org/ aperture/trunk/default/opener/src/test/java/org/semanticdesktop/ aperture/trunk/default/opener/src/test/java/org/semanticdesktop/aperture/ Removed Paths: ------------- aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/impl/DefaultDataOpenerRegistry.java Property Changed: ---------------- aperture/trunk/core/opener/core/ aperture/trunk/core/opener/email/ aperture/trunk/core/opener/file/ aperture/trunk/core/opener/http/ Property changes on: aperture/trunk/core/opener/core ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/opener/core/pom.xml =================================================================== --- aperture/trunk/core/opener/core/pom.xml 2009-02-24 15:45:54 UTC (rev 1725) +++ aperture/trunk/core/opener/core/pom.xml 2009-02-24 16:18:53 UTC (rev 1726) @@ -54,8 +54,8 @@ <extensions>true</extensions> <configuration> <instructions> - <Export-Package>org.semanticdesktop.aperture.opener.core</Export-Package> - <Private-Package>org.semanticdesktop.aperture.opener.core.bundle</Private-Package> + <Export-Package>org.semanticdesktop.aperture.opener</Export-Package> + <Private-Package>org.semanticdesktop.aperture.opener.core.bundle,org.semanticdesktop.aperture.opener.core.impl</Private-Package> <Bundle-Activator>org.semanticdesktop.aperture.opener.core.bundle.FileAccessorActivator</Bundle-Activator> </instructions> </configuration> Deleted: aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/impl/DefaultDataOpenerRegistry.java =================================================================== --- aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/impl/DefaultDataOpenerRegistry.java 2009-02-24 15:45:54 UTC (rev 1725) +++ aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/impl/DefaultDataOpenerRegistry.java 2009-02-24 16:18:53 UTC (rev 1726) @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.opener.impl; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -import org.semanticdesktop.aperture.opener.DataOpenerFactory; -import org.semanticdesktop.aperture.opener.DataOpenerRegistry; -import org.semanticdesktop.aperture.opener.email.EmailOpenerFactory; -import org.semanticdesktop.aperture.opener.file.FileOpenerFactory; -import org.semanticdesktop.aperture.opener.http.HttpOpenerFactory; - - -public class DefaultDataOpenerRegistry implements DataOpenerRegistry { - - Set openers; - - public DefaultDataOpenerRegistry() { - openers=new HashSet(); - openers.add(new FileOpenerFactory()); - openers.add(new HttpOpenerFactory()); - openers.add(new EmailOpenerFactory()); - } - - public void add(DataOpenerFactory factory) { - openers.add(factory); - } - - public void remove(DataOpenerFactory factory) { - openers.remove(factory); - } - - public Set getAll() { - return openers; - } - - public Set get(String scheme) { - Set res=new HashSet(); - for (Iterator i=openers.iterator();i.hasNext();) { - DataOpenerFactory dof=(DataOpenerFactory) i.next(); - if (dof.getSupportedSchemes().contains(scheme)) - res.add(dof); - } - return res; - } - -} - Property changes on: aperture/trunk/core/opener/email ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/email/EmailOpener.java =================================================================== --- aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/email/EmailOpener.java 2009-02-24 15:45:54 UTC (rev 1725) +++ aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/email/EmailOpener.java 2009-02-24 16:18:53 UTC (rev 1726) @@ -15,8 +15,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.jacob.com.NotImplementedException; - /** * Supported URI's: * @@ -57,7 +55,7 @@ } if(url.startsWith("imap://")){ - throw new NotImplementedException("Imap URI not implemented in Aperture EmailOpener"); + throw new UnsupportedOperationException("Imap URI not implemented in Aperture EmailOpener"); } openCommand(correctURI); } Property changes on: aperture/trunk/core/opener/file ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Property changes on: aperture/trunk/core/opener/http ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/opener/pom.xml =================================================================== --- aperture/trunk/core/opener/pom.xml 2009-02-24 15:45:54 UTC (rev 1725) +++ aperture/trunk/core/opener/pom.xml 2009-02-24 16:18:53 UTC (rev 1726) @@ -14,8 +14,8 @@ <artifactId>aperture-opener</artifactId> <packaging>pom</packaging> - <name>Aperture Core: Accessors</name> - <description>Definition of various accessors</description> + <name>Aperture Core: Openers</name> + <description>Definition of various openers</description> <modules> <module>core</module> Modified: aperture/trunk/core/pom.xml =================================================================== --- aperture/trunk/core/pom.xml 2009-02-24 15:45:54 UTC (rev 1725) +++ aperture/trunk/core/pom.xml 2009-02-24 16:18:53 UTC (rev 1726) @@ -25,6 +25,7 @@ <module>helper</module> <module>linkextractor</module> <module>mime-identifier</module> + <module>opener</module> <module>rdf</module> <module>security</module> <module>util</module> Property changes on: aperture/trunk/default/extractor ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Added: aperture/trunk/default/extractor/pom.xml =================================================================== --- aperture/trunk/default/extractor/pom.xml (rev 0) +++ aperture/trunk/default/extractor/pom.xml 2009-02-24 16:18:53 UTC (rev 1726) @@ -0,0 +1,132 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-default-extractor</artifactId> + + <name>Aperture Default: Extractors</name> + <description>Extractor API and default implementations</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-core</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-adobe-pdf</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-audio-mp3</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-corel-office</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-image-jpg</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-message-mime</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-microsoft-office</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-microsoft-quattro</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-microsoft-visio</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-microsoft-works</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-opendocument</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-openxml</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-text-html</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-text-plain</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-text-rtf</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-text-xml</artifactId> + <version>${aperture.version}</version> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>!org.semanticdesktop.aperture.extractor.bundle,!org.semanticdesktop.aperture.extractor.*.bundle,!org.semanticdesktop.aperture.extractor.impl,org.semanticdesktop.aperture.extractor.*</Export-Package> + <Private-Package>org.semanticdesktop.aperture.extractor.bundle;-split-package:=first,org.semanticdesktop.aperture.extractor.*.bundle,org.semanticdesktop.aperture.extractor.impl;-split-package:=merge-first</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.extractor.bundle.DefaultExtractorServiceActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> Added: aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/impl/DefaultExtractorRegistry.java =================================================================== --- aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/impl/DefaultExtractorRegistry.java (rev 0) +++ aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/impl/DefaultExtractorRegistry.java 2009-02-24 16:18:53 UTC (rev 1726) @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2005 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.impl; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Map; + +import javax.xml.parsers.ParserConfigurationException; + +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.FileExtractorFactory; +import org.semanticdesktop.aperture.util.ResourceUtil; +import org.semanticdesktop.aperture.util.SimpleSAXAdapter; +import org.semanticdesktop.aperture.util.SimpleSAXParser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.SAXException; + +/** + * DefaultExtractorRegistry provides the complete set of ExtractorFactories available in Aperture. + * + * <p> + * The main purpose of this class is to be able to conveniently access the set of ExtractorFactories in + * non-OSGi applications, which take care of this initialization in a different way. A single line of code + * gives you the entire set without requiring further setup. + * + * <p> + * The set of factory class names are loaded from an XML file which can optionally be specified to the + * constructor. This class requires all the listed classes to have a no-argument constructor. + */ +public class DefaultExtractorRegistry extends ExtractorRegistryImpl { + + private static final String DEFAULT_FILE = "org/semanticdesktop/aperture/extractor/impl/defaults.xml"; + + private static final String EXTRACTOR_FACTORY_TAG = "extractorFactory"; + + private static final String NAME_TAG = "name"; + + public DefaultExtractorRegistry() { + try { + InputStream stream = ResourceUtil.getInputStream(DEFAULT_FILE, DefaultExtractorRegistry.class); + BufferedInputStream buffer = new BufferedInputStream(stream); + parse(buffer); + buffer.close(); + } + catch (IOException e) { + throw new RuntimeException("unable to parse " + DEFAULT_FILE, e); + } + } + + public DefaultExtractorRegistry(InputStream stream) throws IOException { + parse(stream); + } + + private void parse(InputStream stream) throws IOException { + try { + // Parse the document + SimpleSAXParser parser = new SimpleSAXParser(); + parser.setListener(new ExtractorParser()); + parser.parse(stream); + } + catch (ParserConfigurationException e) { + IOException ie = new IOException(e.getMessage()); + ie.initCause(e); + throw ie; + } + catch (SAXException e) { + IOException ie = new IOException(e.getMessage()); + ie.initCause(e); + throw ie; + } + } + + private class ExtractorParser extends SimpleSAXAdapter { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + private boolean insideFactoryElement = false; + + public void startTag(String tagName, Map atts, String text) throws SAXException { + if (EXTRACTOR_FACTORY_TAG.equals(tagName)) { + insideFactoryElement = true; + } + else if (NAME_TAG.equals(tagName) && insideFactoryElement && text != null) { + processClassName(text); + } + } + + public void endTag(String tagName) { + if (EXTRACTOR_FACTORY_TAG.equals(tagName)) { + insideFactoryElement = false; + } + } + + private void processClassName(String className) { + className = className.trim(); + if (!className.equals("")) { + try { + Class clazz = Class.forName(className); + Object instance = clazz.newInstance(); + if (instance instanceof ExtractorFactory) { + ExtractorFactory factory = (ExtractorFactory) instance; + add(factory); + } else if (instance instanceof FileExtractorFactory) { + FileExtractorFactory factory = (FileExtractorFactory) instance; + add(factory); + } + } + catch (ClassNotFoundException e) { + logger.warn("unable to find class " + className + ", ignoring", e); + } + catch (InstantiationException e) { + logger.warn("unable to instantiate class " + className + ", ignoring", e); + } + catch (IllegalAccessException e) { + logger.warn("unable to access class " + className + ", ignoring", e); + } + catch (ClassCastException e) { + logger.warn("unable to cast instance to " + ExtractorFactory.class.getName() + + ", ignoring", e); + } + } + } + } +} Added: aperture/trunk/default/extractor/src/main/resources/org/semanticdesktop/aperture/extractor/impl/defaults.xml =================================================================== --- aperture/trunk/default/extractor/src/main/resources/org/semanticdesktop/aperture/extractor/impl/defaults.xml (rev 0) +++ aperture/trunk/default/extractor/src/main/resources/org/semanticdesktop/aperture/extractor/impl/defaults.xml 2009-02-24 16:18:53 UTC (rev 1726) @@ -0,0 +1,64 @@ +<?xml version='1.0' encoding='UTF-8'?> + +<extractorFactories> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.excel.ExcelExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.html.HtmlExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.jpg.JpgExtractorFactory</name> + </extractorFactory> + <!-- <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.mime.MimeExtractorFactory</name> + </extractorFactory> --> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.office.OfficeExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.opendocument.OpenDocumentExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.openxml.OpenXmlExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.pdf.PdfExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.plaintext.PlainTextExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.powerpoint.PowerPointExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.presentations.PresentationsExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.publisher.PublisherExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.quattro.QuattroExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.rtf.RtfExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.visio.VisioExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.word.WordExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.wordperfect.WordPerfectExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.works.WorksExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.xml.XmlExtractorFactory</name> + </extractorFactory> + <extractorFactory> + <name>org.semanticdesktop.aperture.extractor.mp3.MP3FileExtractorFactory</name> + </extractorFactory> +</extractorFactories> \ No newline at end of file Property changes on: aperture/trunk/default/opener ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Added: aperture/trunk/default/opener/pom.xml =================================================================== --- aperture/trunk/default/opener/pom.xml (rev 0) +++ aperture/trunk/default/opener/pom.xml 2009-02-24 16:18:53 UTC (rev 1726) @@ -0,0 +1,72 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-default-opener</artifactId> + + <name>Aperture Default: Openers</name> + <description>Opener API and default implementations</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener-core</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener-email</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener-file</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener-http</artifactId> + <version>${aperture.version}</version> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>!org.semanticdesktop.aperture.opener.bundle,!org.semanticdesktop.aperture.opener.*.bundle,!org.semanticdesktop.aperture.opener.impl,org.semanticdesktop.aperture.opener.*</Export-Package> + <Private-Package>org.semanticdesktop.aperture.opener.bundle;-split-package:=first,org.semanticdesktop.aperture.opener.*.bundle,org.semanticdesktop.aperture.opener.impl;-split-package:=merge-first</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.opener.bundle.DefaultAccessorServiceActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> Copied: aperture/trunk/default/opener/src/main/java/org/semanticdesktop/aperture/opener/impl/DefaultDataOpenerRegistry.java (from rev 1725, aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/impl/DefaultDataOpenerRegistry.java) =================================================================== --- aperture/trunk/default/opener/src/main/java/org/semanticdesktop/aperture/opener/impl/DefaultDataOpenerRegistry.java (rev 0) +++ aperture/trunk/default/opener/src/main/java/org/semanticdesktop/aperture/opener/impl/DefaultDataOpenerRegistry.java 2009-02-24 16:18:53 UTC (rev 1726) @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.opener.impl; + +import org.semanticdesktop.aperture.opener.email.EmailOpenerFactory; +import org.semanticdesktop.aperture.opener.file.FileOpenerFactory; +import org.semanticdesktop.aperture.opener.http.HttpOpenerFactory; + +public class DefaultDataOpenerRegistry extends DataOpenerRegistryImpl { + + public DefaultDataOpenerRegistry() { + super(); + add(new FileOpenerFactory()); + add(new HttpOpenerFactory()); + add(new EmailOpenerFactory()); + } +} Modified: aperture/trunk/default/pom.xml =================================================================== --- aperture/trunk/default/pom.xml 2009-02-24 15:45:54 UTC (rev 1725) +++ aperture/trunk/default/pom.xml 2009-02-24 16:18:53 UTC (rev 1726) @@ -21,10 +21,9 @@ <module>accessor</module> <module>crawler</module> <module>datasource</module> + <module>extractor</module> <module>linkextractor</module> <module>mime-identifier</module> -<!-- - <module>extractor</module> ---> + <module>opener</module> </modules> </project> Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-02-24 15:45:54 UTC (rev 1725) +++ aperture/trunk/pom.xml 2009-02-24 16:18:53 UTC (rev 1726) @@ -122,6 +122,11 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener-core</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-rdf</artifactId> <version>${aperture.version}</version> </dependency> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <her...@us...> - 2009-02-25 09:59:32
|
Revision: 1735 http://aperture.svn.sourceforge.net/aperture/?rev=1735&view=rev Author: herko_ter_horst Date: 2009-02-25 09:59:21 +0000 (Wed, 25 Feb 2009) Log Message: ----------- Mavenized detector modules. Fixed OSGi-ification for a couple of other modules. Modified Paths: -------------- aperture/trunk/core/detector/core/pom.xml aperture/trunk/core/detector/filesystem/pom.xml aperture/trunk/core/detector/filesystem/src/main/java/org/semanticdesktop/aperture/detector/filesystem/HomeFolderDetector.java aperture/trunk/core/extractor/core/pom.xml aperture/trunk/core/linkextractor/core/pom.xml aperture/trunk/core/linkextractor/html/pom.xml aperture/trunk/core/opener/core/pom.xml aperture/trunk/core/opener/email/pom.xml aperture/trunk/core/opener/file/pom.xml aperture/trunk/core/opener/http/pom.xml aperture/trunk/core/pom.xml aperture/trunk/default/linkextractor/pom.xml aperture/trunk/default/opener/pom.xml aperture/trunk/default/pom.xml aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/bundle/ aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/bundle/DataSourceDetectorServiceActivator.java aperture/trunk/core/detector/filesystem/src/main/java/org/semanticdesktop/aperture/detector/filesystem/bundle/ aperture/trunk/core/detector/filesystem/src/main/java/org/semanticdesktop/aperture/detector/filesystem/bundle/FileSystemDetectorActivator.java aperture/trunk/core/linkextractor/core/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/bundle/ aperture/trunk/core/linkextractor/core/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/bundle/LinkExtractorServiceActivator.java aperture/trunk/core/linkextractor/html/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/bundle/ aperture/trunk/core/linkextractor/html/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/bundle/HtmlLinkExtractorActivator.java aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/bundle/ aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/bundle/DataOpenerServiceActivator.java aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/email/bundle/ aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/email/bundle/EmailOpenerActivator.java aperture/trunk/core/opener/file/src/main/java/org/semanticdesktop/aperture/opener/file/bundle/ aperture/trunk/core/opener/file/src/main/java/org/semanticdesktop/aperture/opener/file/bundle/FileOpenerActivator.java aperture/trunk/core/opener/http/src/main/java/org/semanticdesktop/aperture/opener/http/bundle/ aperture/trunk/core/opener/http/src/main/java/org/semanticdesktop/aperture/opener/http/bundle/HttpOpenerActivator.java aperture/trunk/default/detector/ aperture/trunk/default/detector/pom.xml aperture/trunk/default/detector/src/ aperture/trunk/default/detector/src/main/ aperture/trunk/default/detector/src/main/java/ aperture/trunk/default/detector/src/main/java/org/ aperture/trunk/default/detector/src/main/java/org/semanticdesktop/ aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/ aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/bundle/ aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/bundle/DefaultDataSourceDetectorServiceActivator.java aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/impl/ aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/impl/DefaultDataSourceDetectorRegistry.java aperture/trunk/default/detector/src/main/resources/ aperture/trunk/default/detector/src/main/resources/org/ aperture/trunk/default/detector/src/main/resources/org/semanticdesktop/ aperture/trunk/default/detector/src/main/resources/org/semanticdesktop/aperture/ aperture/trunk/default/detector/src/main/resources/org/semanticdesktop/aperture/detector/ aperture/trunk/default/detector/src/main/resources/org/semanticdesktop/aperture/detector/impl/ aperture/trunk/default/detector/src/main/resources/org/semanticdesktop/aperture/detector/impl/defaults.xml aperture/trunk/default/detector/src/test/ aperture/trunk/default/detector/src/test/java/ aperture/trunk/default/detector/src/test/java/org/ aperture/trunk/default/detector/src/test/java/org/semanticdesktop/ aperture/trunk/default/detector/src/test/java/org/semanticdesktop/aperture/ aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/bundle/ aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/bundle/DefaultExtractorServiceActivator.java aperture/trunk/default/linkextractor/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/bundle/DefaultLinkExtractorServiceActivator.java aperture/trunk/default/opener/src/main/java/org/semanticdesktop/aperture/opener/bundle/ aperture/trunk/default/opener/src/main/java/org/semanticdesktop/aperture/opener/bundle/DefaultDataOpenerServiceActivator.java Removed Paths: ------------- aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/DefaultDataSourceDetectorRegistry.java aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/defaults.xml Property Changed: ---------------- aperture/trunk/core/detector/core/ aperture/trunk/core/detector/filesystem/ Property changes on: aperture/trunk/core/detector/core ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/detector/core/pom.xml =================================================================== --- aperture/trunk/core/detector/core/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/detector/core/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -60,7 +60,8 @@ <configuration> <instructions> <Export-Package>org.semanticdesktop.aperture.detector</Export-Package> - <Private-Package>org.semanticdesktop.aperture.detector.impl</Private-Package> + <Private-Package>org.semanticdesktop.aperture.detector.bundle,org.semanticdesktop.aperture.detector.impl</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.detector.bundle.DataSourceDetectorServiceActivator</Bundle-Activator> </instructions> </configuration> </plugin> Added: aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/bundle/DataSourceDetectorServiceActivator.java =================================================================== --- aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/bundle/DataSourceDetectorServiceActivator.java (rev 0) +++ aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/bundle/DataSourceDetectorServiceActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.detector.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceEvent; +import org.osgi.framework.ServiceListener; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.detector.DataSourceDetector; +import org.semanticdesktop.aperture.detector.DataSourceDetectorRegistry; +import org.semanticdesktop.aperture.detector.impl.DataSourceDetectorRegistryImpl; + +/** + * registers a DataSourceDetectorRegistry with OSGi. listens if + * DataSourceDetectors are registered with OSGi and collects them. + */ +public class DataSourceDetectorServiceActivator implements BundleActivator, + ServiceListener { + + private BundleContext bc = null; + + private ServiceRegistration registration; + + private DataSourceDetectorRegistry registry; + + public void start(BundleContext context) throws Exception { + + bc = context; + registry = new DataSourceDetectorRegistryImpl(); + registration = bc.registerService(DataSourceDetectorRegistry.class + .getName(), registry, new Hashtable()); + + String filter = "(objectclass=" + DataSourceDetector.class.getName() + + ")"; + bc.addServiceListener(this, filter); + + ServiceReference references[] = bc.getServiceReferences(null, filter); + + for (int i = 0; references != null && i < references.length; i++) { + this.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, + references[i])); + } + + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + bc = null; + } + + public void serviceChanged(ServiceEvent event) { + DataSourceDetector detector; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + detector = (DataSourceDetector) bc.getService(event + .getServiceReference()); + registry.add(detector); + break; + case ServiceEvent.MODIFIED: + detector = (DataSourceDetector) bc.getService(event + .getServiceReference()); + registry.remove(detector); + registry.add(detector); + break; + case ServiceEvent.UNREGISTERING: + detector = (DataSourceDetector) bc.getService(event + .getServiceReference()); + registry.remove(detector); + break; + } + } + +} Deleted: aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/DefaultDataSourceDetectorRegistry.java =================================================================== --- aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/DefaultDataSourceDetectorRegistry.java 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/DefaultDataSourceDetectorRegistry.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -1,125 +0,0 @@ -/* - * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.detector.impl; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.Map; - -import javax.xml.parsers.ParserConfigurationException; - -import org.semanticdesktop.aperture.detector.DataSourceDetector; -import org.semanticdesktop.aperture.util.ResourceUtil; -import org.semanticdesktop.aperture.util.SimpleSAXAdapter; -import org.semanticdesktop.aperture.util.SimpleSAXParser; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xml.sax.SAXException; - -/** - * DefaultDataSourceDetectorRegistry provides the complete set of DataSourceDetector available in Aperture. - * - * <p> - * The main purpose of this class is to be able to conveniently access the set of DataSourceDetectors in - * non-OSGi applications, which take care of this initialization in a different way. A single line of code - * gives you the entire set without requiring further setup. - * - * <p> - * The set of factory class names are loaded from an XML file which can optionally be specified to the - * constructor. This class requires all the listed classes to have a no-argument constructor. - */ -public class DefaultDataSourceDetectorRegistry extends DataSourceDetectorRegistryImpl { - - private static final String DEFAULT_FILE = "org/semanticdesktop/aperture/detector/impl/defaults.xml"; - - private static final String TAG = "dataSourceDetector"; - - private static final String NAME_TAG = "name"; - - public DefaultDataSourceDetectorRegistry() { - try { - InputStream stream = ResourceUtil.getInputStream(DEFAULT_FILE, DefaultDataSourceDetectorRegistry.class); - BufferedInputStream buffer = new BufferedInputStream(stream); - parse(buffer); - buffer.close(); - } - catch (IOException e) { - throw new RuntimeException("unable to parse " + DEFAULT_FILE, e); - } - } - - public DefaultDataSourceDetectorRegistry(InputStream stream) throws IOException { - parse(stream); - } - - private void parse(InputStream stream) throws IOException { - try { - // Parse the document - SimpleSAXParser parser = new SimpleSAXParser(); - parser.setListener(new DataSourceDetectorParser()); - parser.parse(stream); - } - catch (ParserConfigurationException e) { - IOException ie = new IOException(e.getMessage()); - ie.initCause(e); - throw ie; - } - catch (SAXException e) { - IOException ie = new IOException(e.getMessage()); - ie.initCause(e); - throw ie; - } - } - - private class DataSourceDetectorParser extends SimpleSAXAdapter { - - private Logger logger = LoggerFactory.getLogger(getClass()); - - private boolean insideFactoryElement = false; - - public void startTag(String tagName, Map atts, String text) throws SAXException { - if (TAG.equals(tagName)) { - insideFactoryElement = true; - } - else if (NAME_TAG.equals(tagName) && insideFactoryElement && text != null) { - processClassName(text); - } - } - - public void endTag(String tagName) { - if (TAG.equals(tagName)) { - insideFactoryElement = false; - } - } - - private void processClassName(String className) { - className = className.trim(); - if (!className.equals("")) { - try { - Class clazz = Class.forName(className); - Object instance = clazz.newInstance(); - DataSourceDetector detector = (DataSourceDetector) instance; - add(detector); - } - catch (ClassNotFoundException e) { - logger.warn("unable to find class " + className + ", ignoring", e); - } - catch (InstantiationException e) { - logger.warn("unable to instantiate class " + className + ", ignoring", e); - } - catch (IllegalAccessException e) { - logger.warn("unable to access class " + className + ", ignoring", e); - } - catch (ClassCastException e) { - logger.warn("unable to cast instance to " + DataSourceDetector.class.getName() - + ", ignoring", e); - } - } - } - } -} Deleted: aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/defaults.xml =================================================================== --- aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/defaults.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/defaults.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -1,16 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> - -<dataSourceDetectors> - <dataSourceDetector> - <name>org.semanticdesktop.aperture.addressbook.apple.AppleAddressbookDetector</name> - </dataSourceDetector> - <dataSourceDetector> - <name>org.semanticdesktop.aperture.detector.filesystem.HomeFolderDetector</name> - </dataSourceDetector> - <dataSourceDetector> - <name>org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdAddressbookDetector</name> - </dataSourceDetector> - <dataSourceDetector> - <name>org.semanticdesktop.aperture.outlook.OutlookDataSourceDetector</name> - </dataSourceDetector> -</dataSourceDetectors> \ No newline at end of file Property changes on: aperture/trunk/core/detector/filesystem ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/detector/filesystem/pom.xml =================================================================== --- aperture/trunk/core/detector/filesystem/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/detector/filesystem/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -64,7 +64,7 @@ <configuration> <instructions> <Export-Package>org.semanticdesktop.aperture.detector.filesystem</Export-Package> - <Private-Package>org.semanticdesktop.aperture.detector.filesystem.bundle,org.semanticdesktop.aperture.detector.filesystem.impl</Private-Package> + <Private-Package>org.semanticdesktop.aperture.detector.filesystem.bundle</Private-Package> <Bundle-Activator>org.semanticdesktop.aperture.detector.filesystem.bundle.FileSystemDetectorActivator</Bundle-Activator> </instructions> </configuration> Modified: aperture/trunk/core/detector/filesystem/src/main/java/org/semanticdesktop/aperture/detector/filesystem/HomeFolderDetector.java =================================================================== --- aperture/trunk/core/detector/filesystem/src/main/java/org/semanticdesktop/aperture/detector/filesystem/HomeFolderDetector.java 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/detector/filesystem/src/main/java/org/semanticdesktop/aperture/detector/filesystem/HomeFolderDetector.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -23,9 +23,9 @@ import org.semanticdesktop.aperture.detector.DataSourceDescription; import org.semanticdesktop.aperture.detector.DataSourceDetector; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.util.OSUtils; import org.semanticdesktop.aperture.util.RegistryReader; -import org.semanticdesktop.aperture.util.UriUtil; /** * Detect the "my documents" folder of the user. @@ -85,7 +85,7 @@ FileSystemDataSource ds = new FileSystemDataSource(); Model m=RDF2Go.getModelFactory().createModel(); m.open(); - URI id = UriUtil.generateRandomURI(m); + URI id = ModelUtil.generateRandomURI(m); ds.setConfiguration(new RDFContainerImpl(m, id)); ds.setName("My Documents"); ds.setComment("This datasource will crawl your files from the folder "+path); Added: aperture/trunk/core/detector/filesystem/src/main/java/org/semanticdesktop/aperture/detector/filesystem/bundle/FileSystemDetectorActivator.java =================================================================== --- aperture/trunk/core/detector/filesystem/src/main/java/org/semanticdesktop/aperture/detector/filesystem/bundle/FileSystemDetectorActivator.java (rev 0) +++ aperture/trunk/core/detector/filesystem/src/main/java/org/semanticdesktop/aperture/detector/filesystem/bundle/FileSystemDetectorActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.detector.filesystem.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.detector.DataSourceDetector; +import org.semanticdesktop.aperture.detector.filesystem.HomeFolderDetector; + +public class FileSystemDetectorActivator implements BundleActivator { + + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + registration = context.registerService(DataSourceDetector.class + .getName(), new HomeFolderDetector(), new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + } +} Modified: aperture/trunk/core/extractor/core/pom.xml =================================================================== --- aperture/trunk/core/extractor/core/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/extractor/core/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -73,7 +73,7 @@ <configuration> <instructions> <Export-Package>org.semanticdesktop.aperture.extractor</Export-Package> - <Private-Package>org.semanticdesktop.aperture.extractor.impl,org.semanticdesktop.aperture.extractor.impl</Private-Package> + <Private-Package>org.semanticdesktop.aperture.extractor.bundle,org.semanticdesktop.aperture.extractor.impl</Private-Package> <Bundle-Activator>org.semanticdesktop.aperture.extractor.bundle.ExtractorServiceActivator</Bundle-Activator> </instructions> </configuration> Modified: aperture/trunk/core/linkextractor/core/pom.xml =================================================================== --- aperture/trunk/core/linkextractor/core/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/linkextractor/core/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -18,6 +18,11 @@ <dependencies> <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> Added: aperture/trunk/core/linkextractor/core/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/bundle/LinkExtractorServiceActivator.java =================================================================== --- aperture/trunk/core/linkextractor/core/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/bundle/LinkExtractorServiceActivator.java (rev 0) +++ aperture/trunk/core/linkextractor/core/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/bundle/LinkExtractorServiceActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.hypertext.linkextractor.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceEvent; +import org.osgi.framework.ServiceListener; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.hypertext.linkextractor.LinkExtractorFactory; +import org.semanticdesktop.aperture.hypertext.linkextractor.LinkExtractorRegistry; +import org.semanticdesktop.aperture.hypertext.linkextractor.impl.LinkExtractorRegistryImpl; + +public class LinkExtractorServiceActivator implements BundleActivator, ServiceListener { + + private BundleContext bc = null; + + private ServiceRegistration registration; + + private LinkExtractorRegistry registry; + + public void start(BundleContext context) throws Exception { + + bc = context; + registry = new LinkExtractorRegistryImpl(); + registration = bc.registerService(LinkExtractorRegistry.class.getName(), registry, + new Hashtable()); + + + String filter = "(objectclass=" + LinkExtractorFactory.class.getName() + ")"; + bc.addServiceListener(this, filter); + + ServiceReference references[] = bc.getServiceReferences(null, filter); + + for (int i = 0; references != null && i < references.length; i++) { + this.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, references[i])); + } + + + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + bc = null; + } + + public void serviceChanged(ServiceEvent event) { + LinkExtractorFactory factory; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + factory = (LinkExtractorFactory) bc.getService(event + .getServiceReference()); + registry.add(factory); + break; + case ServiceEvent.MODIFIED: + factory = (LinkExtractorFactory) bc.getService(event + .getServiceReference()); + registry.remove(factory); + registry.add(factory); + break; + case ServiceEvent.UNREGISTERING: + factory = (LinkExtractorFactory) bc.getService(event + .getServiceReference()); + registry.remove(factory); + break; + } + } + +} Modified: aperture/trunk/core/linkextractor/html/pom.xml =================================================================== --- aperture/trunk/core/linkextractor/html/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/linkextractor/html/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -21,7 +21,13 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-linkextractor-core</artifactId> </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> @@ -44,8 +50,8 @@ <configuration> <instructions> <Export-Package>org.semanticdesktop.aperture.hypertext.linkextractor.html</Export-Package> - <Private-Package>org.semanticdesktop.aperture.hypertext.linkextractor.bundle</Private-Package> - <Bundle-Activator>org.semanticdesktop.aperture.hypertext.linkextractor.bundle.HtmlLinkExtractorActivator</Bundle-Activator> + <Private-Package>org.semanticdesktop.aperture.hypertext.linkextractor.html.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.hypertext.linkextractor.html.bundle.HtmlLinkExtractorActivator</Bundle-Activator> </instructions> </configuration> </plugin> Added: aperture/trunk/core/linkextractor/html/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/bundle/HtmlLinkExtractorActivator.java =================================================================== --- aperture/trunk/core/linkextractor/html/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/bundle/HtmlLinkExtractorActivator.java (rev 0) +++ aperture/trunk/core/linkextractor/html/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/bundle/HtmlLinkExtractorActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.hypertext.linkextractor.html.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.hypertext.linkextractor.LinkExtractorFactory; +import org.semanticdesktop.aperture.hypertext.linkextractor.html.HtmlLinkExtractorFactory; + +public class HtmlLinkExtractorActivator implements BundleActivator { + + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + registration = context.registerService(LinkExtractorFactory.class + .getName(), new HtmlLinkExtractorFactory(), new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + } +} Modified: aperture/trunk/core/opener/core/pom.xml =================================================================== --- aperture/trunk/core/opener/core/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/opener/core/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -55,8 +55,8 @@ <configuration> <instructions> <Export-Package>org.semanticdesktop.aperture.opener</Export-Package> - <Private-Package>org.semanticdesktop.aperture.opener.core.bundle,org.semanticdesktop.aperture.opener.core.impl</Private-Package> - <Bundle-Activator>org.semanticdesktop.aperture.opener.core.bundle.FileAccessorActivator</Bundle-Activator> + <Private-Package>org.semanticdesktop.aperture.opener.bundle,org.semanticdesktop.aperture.opener.impl</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.opener.bundle.DataOpenerServiceActivator</Bundle-Activator> </instructions> </configuration> </plugin> Added: aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/bundle/DataOpenerServiceActivator.java =================================================================== --- aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/bundle/DataOpenerServiceActivator.java (rev 0) +++ aperture/trunk/core/opener/core/src/main/java/org/semanticdesktop/aperture/opener/bundle/DataOpenerServiceActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.opener.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceEvent; +import org.osgi.framework.ServiceListener; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.opener.DataOpenerFactory; +import org.semanticdesktop.aperture.opener.DataOpenerRegistry; +import org.semanticdesktop.aperture.opener.impl.DataOpenerRegistryImpl; + +public class DataOpenerServiceActivator implements BundleActivator, + ServiceListener { + + private BundleContext bc = null; + + private ServiceRegistration registration; + + private DataOpenerRegistry registry; + + public void start(BundleContext context) throws Exception { + + bc = context; + registry = new DataOpenerRegistryImpl(); + registration = bc.registerService(DataOpenerRegistry.class.getName(), + registry, new Hashtable()); + + String filter = "(objectclass=" + DataOpenerFactory.class.getName() + + ")"; + bc.addServiceListener(this, filter); + + ServiceReference references[] = bc.getServiceReferences(null, filter); + + for (int i = 0; references != null && i < references.length; i++) { + this.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, + references[i])); + } + + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + bc = null; + } + + public void serviceChanged(ServiceEvent event) { + DataOpenerFactory factory; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + factory = (DataOpenerFactory) bc.getService(event + .getServiceReference()); + registry.add(factory); + break; + case ServiceEvent.MODIFIED: + factory = (DataOpenerFactory) bc.getService(event + .getServiceReference()); + registry.remove(factory); + registry.add(factory); + break; + case ServiceEvent.UNREGISTERING: + factory = (DataOpenerFactory) bc.getService(event + .getServiceReference()); + registry.remove(factory); + break; + } + } +} Modified: aperture/trunk/core/opener/email/pom.xml =================================================================== --- aperture/trunk/core/opener/email/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/opener/email/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -65,7 +65,7 @@ <instructions> <Export-Package>org.semanticdesktop.aperture.opener.email</Export-Package> <Private-Package>org.semanticdesktop.aperture.opener.email.bundle</Private-Package> - <Bundle-Activator>org.semanticdesktop.aperture.opener.email.bundle.FileAccessorActivator</Bundle-Activator> + <Bundle-Activator>org.semanticdesktop.aperture.opener.email.bundle.EmailOpenerActivator</Bundle-Activator> </instructions> </configuration> </plugin> Added: aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/email/bundle/EmailOpenerActivator.java =================================================================== --- aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/email/bundle/EmailOpenerActivator.java (rev 0) +++ aperture/trunk/core/opener/email/src/main/java/org/semanticdesktop/aperture/opener/email/bundle/EmailOpenerActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.opener.email.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.opener.DataOpenerFactory; +import org.semanticdesktop.aperture.opener.email.EmailOpenerFactory; + +public class EmailOpenerActivator implements BundleActivator { + + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + registration = context.registerService(DataOpenerFactory.class + .getName(), new EmailOpenerFactory(), new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + } +} Modified: aperture/trunk/core/opener/file/pom.xml =================================================================== --- aperture/trunk/core/opener/file/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/opener/file/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -65,7 +65,7 @@ <instructions> <Export-Package>org.semanticdesktop.aperture.opener.file</Export-Package> <Private-Package>org.semanticdesktop.aperture.opener.file.bundle</Private-Package> - <Bundle-Activator>org.semanticdesktop.aperture.opener.file.bundle.FileAccessorActivator</Bundle-Activator> + <Bundle-Activator>org.semanticdesktop.aperture.opener.file.bundle.FileOpenerActivator</Bundle-Activator> </instructions> </configuration> </plugin> Added: aperture/trunk/core/opener/file/src/main/java/org/semanticdesktop/aperture/opener/file/bundle/FileOpenerActivator.java =================================================================== --- aperture/trunk/core/opener/file/src/main/java/org/semanticdesktop/aperture/opener/file/bundle/FileOpenerActivator.java (rev 0) +++ aperture/trunk/core/opener/file/src/main/java/org/semanticdesktop/aperture/opener/file/bundle/FileOpenerActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.opener.file.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.opener.DataOpenerFactory; +import org.semanticdesktop.aperture.opener.file.FileOpenerFactory; + +public class FileOpenerActivator implements BundleActivator { + + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + registration = context.registerService(DataOpenerFactory.class + .getName(), new FileOpenerFactory(), new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + } +} Modified: aperture/trunk/core/opener/http/pom.xml =================================================================== --- aperture/trunk/core/opener/http/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/opener/http/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -65,7 +65,7 @@ <instructions> <Export-Package>org.semanticdesktop.aperture.opener.http</Export-Package> <Private-Package>org.semanticdesktop.aperture.opener.http.bundle</Private-Package> - <Bundle-Activator>org.semanticdesktop.aperture.opener.http.bundle.FileAccessorActivator</Bundle-Activator> + <Bundle-Activator>org.semanticdesktop.aperture.opener.http.bundle.HttpOpenerActivator</Bundle-Activator> </instructions> </configuration> </plugin> Added: aperture/trunk/core/opener/http/src/main/java/org/semanticdesktop/aperture/opener/http/bundle/HttpOpenerActivator.java =================================================================== --- aperture/trunk/core/opener/http/src/main/java/org/semanticdesktop/aperture/opener/http/bundle/HttpOpenerActivator.java (rev 0) +++ aperture/trunk/core/opener/http/src/main/java/org/semanticdesktop/aperture/opener/http/bundle/HttpOpenerActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.opener.http.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.opener.DataOpenerFactory; +import org.semanticdesktop.aperture.opener.http.HttpOpenerFactory; + +public class HttpOpenerActivator implements BundleActivator { + + private ServiceRegistration registration; + + public void start(BundleContext context) throws Exception { + registration = context.registerService(DataOpenerFactory.class + .getName(), new HttpOpenerFactory(), new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + } +} Modified: aperture/trunk/core/pom.xml =================================================================== --- aperture/trunk/core/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/core/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -21,6 +21,7 @@ <module>accessor</module> <module>crawler</module> <module>datasource</module> + <module>detector</module> <module>extractor</module> <module>helper</module> <module>linkextractor</module> Property changes on: aperture/trunk/default/detector ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Added: aperture/trunk/default/detector/pom.xml =================================================================== --- aperture/trunk/default/detector/pom.xml (rev 0) +++ aperture/trunk/default/detector/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,62 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-default-detector</artifactId> + + <name>Aperture Default: Detectors</name> + <description>Detector API and default implementations</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-detector-core</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-detector-filesystem</artifactId> + <version>${aperture.version}</version> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>!org.semanticdesktop.aperture.detector.bundle,!org.semanticdesktop.aperture.detector.*.bundle,!org.semanticdesktop.aperture.detector.impl,org.semanticdesktop.aperture.detector.*</Export-Package> + <Private-Package>org.semanticdesktop.aperture.detector.bundle;-split-package:=first,org.semanticdesktop.aperture.detector.*.bundle,org.semanticdesktop.aperture.detector.impl;-split-package:=merge-first</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.detector.bundle.DefaultDataSourceDetectorServiceActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> Added: aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/bundle/DefaultDataSourceDetectorServiceActivator.java =================================================================== --- aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/bundle/DefaultDataSourceDetectorServiceActivator.java (rev 0) +++ aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/bundle/DefaultDataSourceDetectorServiceActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.detector.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceEvent; +import org.osgi.framework.ServiceListener; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.detector.DataSourceDetector; +import org.semanticdesktop.aperture.detector.DataSourceDetectorRegistry; +import org.semanticdesktop.aperture.detector.impl.DefaultDataSourceDetectorRegistry; + +/** + * registers a DataSourceDetectorRegistry with OSGi. listens if + * DataSourceDetectors are registered with OSGi and collects them. + */ +public class DefaultDataSourceDetectorServiceActivator implements BundleActivator, + ServiceListener { + + private BundleContext bc = null; + + private ServiceRegistration registration; + + private DataSourceDetectorRegistry registry; + + public void start(BundleContext context) throws Exception { + + bc = context; + registry = new DefaultDataSourceDetectorRegistry(); + registration = bc.registerService(DataSourceDetectorRegistry.class + .getName(), registry, new Hashtable()); + + String filter = "(objectclass=" + DataSourceDetector.class.getName() + + ")"; + bc.addServiceListener(this, filter); + + ServiceReference references[] = bc.getServiceReferences(null, filter); + + for (int i = 0; references != null && i < references.length; i++) { + this.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, + references[i])); + } + + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + bc = null; + } + + public void serviceChanged(ServiceEvent event) { + DataSourceDetector detector; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + detector = (DataSourceDetector) bc.getService(event + .getServiceReference()); + registry.add(detector); + break; + case ServiceEvent.MODIFIED: + detector = (DataSourceDetector) bc.getService(event + .getServiceReference()); + registry.remove(detector); + registry.add(detector); + break; + case ServiceEvent.UNREGISTERING: + detector = (DataSourceDetector) bc.getService(event + .getServiceReference()); + registry.remove(detector); + break; + } + } + +} Copied: aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/impl/DefaultDataSourceDetectorRegistry.java (from rev 1734, aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/DefaultDataSourceDetectorRegistry.java) =================================================================== --- aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/impl/DefaultDataSourceDetectorRegistry.java (rev 0) +++ aperture/trunk/default/detector/src/main/java/org/semanticdesktop/aperture/detector/impl/DefaultDataSourceDetectorRegistry.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.detector.impl; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Map; + +import javax.xml.parsers.ParserConfigurationException; + +import org.semanticdesktop.aperture.detector.DataSourceDetector; +import org.semanticdesktop.aperture.util.ResourceUtil; +import org.semanticdesktop.aperture.util.SimpleSAXAdapter; +import org.semanticdesktop.aperture.util.SimpleSAXParser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.SAXException; + +/** + * DefaultDataSourceDetectorRegistry provides the complete set of DataSourceDetector available in Aperture. + * + * <p> + * The main purpose of this class is to be able to conveniently access the set of DataSourceDetectors in + * non-OSGi applications, which take care of this initialization in a different way. A single line of code + * gives you the entire set without requiring further setup. + * + * <p> + * The set of factory class names are loaded from an XML file which can optionally be specified to the + * constructor. This class requires all the listed classes to have a no-argument constructor. + */ +public class DefaultDataSourceDetectorRegistry extends DataSourceDetectorRegistryImpl { + + private static final String DEFAULT_FILE = "org/semanticdesktop/aperture/detector/impl/defaults.xml"; + + private static final String TAG = "dataSourceDetector"; + + private static final String NAME_TAG = "name"; + + public DefaultDataSourceDetectorRegistry() { + try { + InputStream stream = ResourceUtil.getInputStream(DEFAULT_FILE, DefaultDataSourceDetectorRegistry.class); + BufferedInputStream buffer = new BufferedInputStream(stream); + parse(buffer); + buffer.close(); + } + catch (IOException e) { + throw new RuntimeException("unable to parse " + DEFAULT_FILE, e); + } + } + + public DefaultDataSourceDetectorRegistry(InputStream stream) throws IOException { + parse(stream); + } + + private void parse(InputStream stream) throws IOException { + try { + // Parse the document + SimpleSAXParser parser = new SimpleSAXParser(); + parser.setListener(new DataSourceDetectorParser()); + parser.parse(stream); + } + catch (ParserConfigurationException e) { + IOException ie = new IOException(e.getMessage()); + ie.initCause(e); + throw ie; + } + catch (SAXException e) { + IOException ie = new IOException(e.getMessage()); + ie.initCause(e); + throw ie; + } + } + + private class DataSourceDetectorParser extends SimpleSAXAdapter { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + private boolean insideFactoryElement = false; + + public void startTag(String tagName, Map atts, String text) throws SAXException { + if (TAG.equals(tagName)) { + insideFactoryElement = true; + } + else if (NAME_TAG.equals(tagName) && insideFactoryElement && text != null) { + processClassName(text); + } + } + + public void endTag(String tagName) { + if (TAG.equals(tagName)) { + insideFactoryElement = false; + } + } + + private void processClassName(String className) { + className = className.trim(); + if (!className.equals("")) { + try { + Class clazz = Class.forName(className); + Object instance = clazz.newInstance(); + DataSourceDetector detector = (DataSourceDetector) instance; + add(detector); + } + catch (ClassNotFoundException e) { + logger.warn("unable to find class " + className + ", ignoring", e); + } + catch (InstantiationException e) { + logger.warn("unable to instantiate class " + className + ", ignoring", e); + } + catch (IllegalAccessException e) { + logger.warn("unable to access class " + className + ", ignoring", e); + } + catch (ClassCastException e) { + logger.warn("unable to cast instance to " + DataSourceDetector.class.getName() + + ", ignoring", e); + } + } + } + } +} Copied: aperture/trunk/default/detector/src/main/resources/org/semanticdesktop/aperture/detector/impl/defaults.xml (from rev 1734, aperture/trunk/core/detector/core/src/main/java/org/semanticdesktop/aperture/detector/impl/defaults.xml) =================================================================== --- aperture/trunk/default/detector/src/main/resources/org/semanticdesktop/aperture/detector/impl/defaults.xml (rev 0) +++ aperture/trunk/default/detector/src/main/resources/org/semanticdesktop/aperture/detector/impl/defaults.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,16 @@ +<?xml version='1.0' encoding='UTF-8'?> + +<dataSourceDetectors> + <dataSourceDetector> + <name>org.semanticdesktop.aperture.addressbook.apple.AppleAddressbookDetector</name> + </dataSourceDetector> + <dataSourceDetector> + <name>org.semanticdesktop.aperture.detector.filesystem.HomeFolderDetector</name> + </dataSourceDetector> + <dataSourceDetector> + <name>org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdAddressbookDetector</name> + </dataSourceDetector> + <dataSourceDetector> + <name>org.semanticdesktop.aperture.outlook.OutlookDataSourceDetector</name> + </dataSourceDetector> +</dataSourceDetectors> \ No newline at end of file Added: aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/bundle/DefaultExtractorServiceActivator.java =================================================================== --- aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/bundle/DefaultExtractorServiceActivator.java (rev 0) +++ aperture/trunk/default/extractor/src/main/java/org/semanticdesktop/aperture/extractor/bundle/DefaultExtractorServiceActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceEvent; +import org.osgi.framework.ServiceListener; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.ExtractorRegistry; +import org.semanticdesktop.aperture.extractor.FileExtractorFactory; +import org.semanticdesktop.aperture.extractor.impl.DefaultExtractorRegistry; + +/** + * Listens for changes in registered ExtractorFactories and FileExtractorFactories. + * Needs two listeners for this (listeners are replaced) + */ +public class DefaultExtractorServiceActivator implements BundleActivator, ServiceListener { + + public static BundleContext bc = null; + + private ServiceRegistration registration; + + private ExtractorRegistry registry; + + public void start(BundleContext context) throws Exception { + + bc = context; + registry = new DefaultExtractorRegistry(); + registration = bc.registerService(ExtractorRegistry.class.getName(), registry, + new Hashtable()); + + + String filter = "(objectclass=" + ExtractorFactory.class.getName() + ")"; + // ATTENTION: here we register THIS + bc.addServiceListener(this, filter); + + ServiceReference references[] = bc.getServiceReferences(null, filter); + + for (int i = 0; references != null && i < references.length; i++) { + this.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, references[i])); + } + + filter = "(objectclass=" + FileExtractorFactory.class.getName() + ")"; + // ATTENTION: here we register another object, otherwise this overrides above listener + bc.addServiceListener(new ServiceListener() { + public void serviceChanged(ServiceEvent event) { + DefaultExtractorServiceActivator.this.serviceChanged(event); + } + }, filter); + + references = bc.getServiceReferences(null, filter); + + for (int i = 0; references != null && i < references.length; i++) { + this.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, references[i])); + } + + + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + bc = null; + } + + public void serviceChanged(ServiceEvent event) { + Object instance = null; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + instance = DefaultExtractorServiceActivator.bc.getService(event.getServiceReference()); + if (instance instanceof ExtractorFactory) { + registry.add((ExtractorFactory)instance); + } else if (instance instanceof FileExtractorFactory) { + registry.add((FileExtractorFactory)instance); + } + break; + case ServiceEvent.MODIFIED: + instance = DefaultExtractorServiceActivator.bc.getService(event.getServiceReference()); + if (instance instanceof ExtractorFactory) { + registry.remove((ExtractorFactory)instance); + registry.add((ExtractorFactory)instance); + } else if (instance instanceof FileExtractorFactory) { + registry.remove((FileExtractorFactory)instance); + registry.add((FileExtractorFactory)instance); + } + break; + case ServiceEvent.UNREGISTERING: + instance = DefaultExtractorServiceActivator.bc.getService(event.getServiceReference()); + if (instance instanceof ExtractorFactory) { + registry.remove((ExtractorFactory)instance); + } else if (instance instanceof FileExtractorFactory) { + registry.remove((FileExtractorFactory)instance); + } + break; + } + } +} Modified: aperture/trunk/default/linkextractor/pom.xml =================================================================== --- aperture/trunk/default/linkextractor/pom.xml 2009-02-25 09:10:39 UTC (rev 1734) +++ aperture/trunk/default/linkextractor/pom.xml 2009-02-25 09:59:21 UTC (rev 1735) @@ -60,9 +60,9 @@ <extensions>true</extensions> <configuration> <instructions> - <Export-Package>!org.semanticdesktop.aperture.linkextractor.bundle,!org.semanticdesktop.aperture.linkextractor.*.bundle,!org.semanticdesktop.aperture.linkextractor.impl,org.semanticdesktop.aperture.linkextractor.*</Export-Package> - <Private-Package>org.semanticdesktop.aperture.linkextractor.bundle;-split-package:=first,org.semanticdesktop.aperture.linkextractor.*.bundle,org.semanticdesktop.aperture.linkextractor.impl;-split-package:=merge-first</Private-Package> - <Bundle-Activator>org.semanticdesktop.aperture.linkextractor.bundle.DefaultLinkExtractorServiceActivator</Bundle-Activator> + <Export-Package>!org.semanticdesktop.aperture.hypertext.linkextractor.bundle,!org.semanticdesktop.aperture.hypertext.linkextractor.*.bundle,!org.semanticdesktop.aperture.hypertext.linkextractor.impl,org.semanticdesktop.aperture.hypertext.linkextractor.*</Export-Package> + <Private-Package>org.semanticdesktop.aperture.hypertext.linkextractor.bundle;-split-package:=first,org.semanticdesktop.aperture.hypertext.linkextractor.*.bundle,org.semanticdesktop.aperture.hypertext.linkextractor.impl;-split-package:=merge-first</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.hypertext.linkextractor.bundle.DefaultLinkExtractorServiceActivator</Bundle-Activator> </instructions> </configuration> </plugin> Added: aperture/trunk/default/linkextractor/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/bundle/DefaultLinkExtractorServiceActivator.java =================================================================== --- aperture/trunk/default/linkextractor/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/bundle/DefaultLinkExtractorServiceActivator.java (rev 0) +++ aperture/trunk/default/linkextractor/src/main/java/org/semanticdesktop/aperture/hypertext/linkextractor/bundle/DefaultLinkExtractorServiceActivator.java 2009-02-25 09:59:21 UTC (rev 1735) @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.hypertext.linkextractor.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceEvent; +import org.osgi.framework.ServiceListener; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.hypertext.linkextractor.LinkExtractorFactory; +import org.semanticdesktop.aperture.hypertext.linkextractor.LinkExtractorRegistry; +import org.semanticdesktop.aperture.hypertext.linkextractor.impl.DefaultLinkExtractorRegistry; + +public class DefaultLinkExtractorServiceActivator implements BundleActivator, ServiceListener { + + private BundleContext bc = null; + + private ServiceRegistration registration; + + private LinkExtractorRegistry registry; + + public void start(BundleContext context) throws Exception { + + bc = context; + registry = new DefaultLinkExtractorRegistry(); + registration = bc.registerService(LinkExtractorRegistry.class.getName(), registry, + new Hashtable()); + + + String filter = "(objectclass=" + LinkExtractorFactory.class.getName() + ")"; + bc.addServiceListener(this, filter); + + ServiceReference references[] = bc.getServiceReferences(null, filter); + + for (int i = 0; references != null && i < references.length; i++) { + this.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, references[i])); + } + + + } + + public void stop(BundleContext context) throws Exception { + registration.unregister(); + bc = null; + } + + public void serviceChanged(ServiceEvent event) { + LinkExtractorFactory factory; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + factory = (LinkExtractorFactory) bc.getService(event + .getServiceReference()); + re... [truncated message content] |
From: <her...@us...> - 2009-02-26 13:01:12
|
Revision: 1752 http://aperture.svn.sourceforge.net/aperture/?rev=1752&view=rev Author: herko_ter_horst Date: 2009-02-26 12:43:55 +0000 (Thu, 26 Feb 2009) Log Message: ----------- Mavenized addressbook modules. Updated vcard subcrawler dependencies. Modified Paths: -------------- aperture/trunk/core/addressbook/apple/pom.xml aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookCrawler.java aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDetector.java aperture/trunk/core/addressbook/thunderbird/pom.xml aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDetector.java aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdCrawler.java aperture/trunk/core/crawler/ical/pom.xml aperture/trunk/core/crawler/mbox/pom.xml aperture/trunk/core/crawler/pom.xml aperture/trunk/core/crawler/vcard/pom.xml aperture/trunk/core/crawler/vcard/src/main/java/org/semanticdesktop/aperture/subcrawler/vcard/VcardSubCrawler.java aperture/trunk/core/pom.xml aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/bundle/ aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/bundle/AppleAddressbookActivator.java aperture/trunk/core/addressbook/apple/src/main/resources/ aperture/trunk/core/addressbook/apple/src/main/resources/org/ aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/ aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/ aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/ aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/apple/ aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/apple/addressbook.applescript aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/bundle/ aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/bundle/ThunderbirdAddressbookActivator.java aperture/trunk/core/addressbook/thunderbird/src/main/resources/ aperture/trunk/core/addressbook/thunderbird/src/main/resources/org/ aperture/trunk/core/addressbook/thunderbird/src/main/resources/org/semanticdesktop/ aperture/trunk/core/addressbook/thunderbird/src/main/resources/org/semanticdesktop/aperture/ aperture/trunk/core/addressbook/thunderbird/src/main/resources/org/semanticdesktop/aperture/addressbook/ aperture/trunk/core/addressbook/thunderbird/src/main/resources/org/semanticdesktop/aperture/addressbook/thunderbird/ aperture/trunk/core/addressbook/thunderbird/src/main/resources/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl Removed Paths: ------------- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/APPLEADDRESSBOOKDS.java aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.java aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/addressbook.applescript aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/THUNDERBIRDADDRESSBOOKDS.java aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.java aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl Property Changed: ---------------- aperture/trunk/core/addressbook/apple/ aperture/trunk/core/addressbook/core/ aperture/trunk/core/addressbook/thunderbird/ Property changes on: aperture/trunk/core/addressbook/apple ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/addressbook/apple/pom.xml =================================================================== --- aperture/trunk/core/addressbook/apple/pom.xml 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/apple/pom.xml 2009-02-26 12:43:55 UTC (rev 1752) @@ -16,6 +16,15 @@ <name>Aperture Core: Addressbook - Apple</name> <description>Apple addressbook implementation</description> + <properties> + <ontology.input>src/main/resources/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl</ontology.input> + <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/12/appleaddresbookds#</ontology.namespace> + <ontology.class>APPLEADDRESSBOOKDS</ontology.class> + <generator.output.package>org.semanticdesktop.aperture.addressbook.apple</generator.output.package> + <generator.output.class>AppleAddressbookDataSource</generator.output.class> + <generator.output.dir>src/main/java</generator.output.dir> + </properties> + <dependencies> <dependency> <groupId>org.semanticdesktop.aperture</groupId> @@ -31,6 +40,10 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-detector-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-rdf</artifactId> </dependency> <dependency> @@ -64,6 +77,60 @@ </dependency> </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-maven-plugin</artifactId> + <configuration> + <vocabularies> + <vocabulary> + <ontology>${ontology.input}</ontology> + <namespace>${ontology.namespace}</namespace> + <javaClass>${generator.output.package}.${ontology.class}</javaClass> + <outputDir>${generator.output.dir}</outputDir> + </vocabulary> + </vocabularies> + </configuration> + </plugin> + <plugin> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-datasource-maven-plugin</artifactId> + <configuration> + <dataSources> + <dataSource> + <ontology>${ontology.input}</ontology> + <namespace>${ontology.namespace}</namespace> + <ontologyClass>${ontology.class}</ontologyClass> + <javaClass>${generator.output.package}.${generator.output.class}</javaClass> + <outputDir>${generator.output.dir}</outputDir> + </dataSource> + </dataSources> + </configuration> + </plugin> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.addressbook.apple</Export-Package> + <Private-Package>org.semanticdesktop.aperture.addressbook.apple.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.addressbook.apple.bundle.AppleAddressbookActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + <profiles> <profile> <id>on-mac</id> @@ -74,35 +141,11 @@ </activation> <dependencies> <dependency> - <groupId>org.semanticdesktop.aperture</groupId> + <groupId>org.semanticdesktop.nepomuk</groupId> <artifactId>aperture-tools-applewrapper</artifactId> <scope>runtime</scope> </dependency> </dependencies> - <build> - <plugins> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <extensions>true</extensions> - <configuration> - <instructions> - <Export-Package>org.semanticdesktop.aperture.addressbook.apple</Export-Package> - <Private-Package>org.semanticdesktop.aperture.addressbook.apple.bundle</Export-Package> - <Bundle-Activator>org.semanticdesktop.aperture.addressbook.apple.bundle.AppleAddressbookActivator</Bundle-Activator> - </instructions> - </configuration> - </plugin> - </plugins> - </build> </profile> <profile> <!-- Make sure the build doesn't fail when not on a Mac --> @@ -116,20 +159,6 @@ <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <failOnError>false</failOnError> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-deploy-plugin</artifactId> - <configuration> - <skip>true</skip> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> Deleted: aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/APPLEADDRESSBOOKDS.java =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/APPLEADDRESSBOOKDS.java 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/APPLEADDRESSBOOKDS.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.addressbook.apple; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import org.ontoware.rdf2go.model.Model; -import org.ontoware.rdf2go.model.Syntax; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.util.ResourceUtil; -/** - * Vocabulary File. Created by org.semanticdesktop.aperture.util.VocabularyWriter on Tue Jul 15 22:55:55 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl - * namespace: http://aperture.semanticdesktop.org/ontology/2007/08/12/appleaddresbookds# - */ -public class APPLEADDRESSBOOKDS { - - /** Path to the ontology resource */ - public static final String APPLEADDRESSBOOKDS_RESOURCE_PATH = - "org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl"; - - /** - * Puts the APPLEADDRESSBOOKDS ontology into the given model. - * @param model The model for the source ontology to be put into. - * @throws Exception if something goes wrong. - */ - public static void getAPPLEADDRESSBOOKDSOntology(Model model) { - try { - InputStream stream = ResourceUtil.getInputStream(APPLEADDRESSBOOKDS_RESOURCE_PATH, APPLEADDRESSBOOKDS.class); - if (stream == null) { - throw new FileNotFoundException("couldn't find resource " + APPLEADDRESSBOOKDS_RESOURCE_PATH); - } - model.readFrom(stream, Syntax.Turtle); - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - /** The namespace for APPLEADDRESSBOOKDS */ - public static final URI NS_APPLEADDRESSBOOKDS = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/12/appleaddresbookds#"); - /** - * Type: Class <br/> - * Label: Apple Addresbook Data Source <br/> - * Comment: Describes an apple addresbook <br/> - */ - public static final URI AppleAddressbookDataSource = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/12/appleaddresbookds#AppleAddressbookDataSource"); -} Modified: aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookCrawler.java =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookCrawler.java 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookCrawler.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -27,8 +27,8 @@ import org.semanticdesktop.aperture.addressbook.AddressbookCrawler; import org.semanticdesktop.aperture.datasource.DataSource; import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.util.FileUtil; -import org.semanticdesktop.aperture.util.ModelUtil; import org.semanticdesktop.aperture.vocabulary.NCO; import org.semanticdesktop.aperture.vocabulary.NIE; import org.slf4j.Logger; Deleted: aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.java =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.java 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.addressbook.apple; -import org.ontoware.rdf2go.model.node.URI; -import org.semanticdesktop.aperture.datasource.DataSource; -import org.semanticdesktop.aperture.datasource.base.DataSourceBase; - -/** - * Data source class file. Created by org.semanticdesktop.aperture.util.DataSourceClassGenerator on Tue Jul 15 22:55:59 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl - * class uri: http://aperture.semanticdesktop.org/ontology/2007/08/12/appleaddresbookds#AppleAddressbookDataSource - */ -public class AppleAddressbookDataSource extends DataSourceBase { - - /** - * @see DataSource#getType() - */ - public URI getType() { - return APPLEADDRESSBOOKDS.AppleAddressbookDataSource; - } -} Deleted: aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl 2009-02-26 12:43:55 UTC (rev 1752) @@ -1,18 +0,0 @@ -@prefix fresnel: <http://www.w3.org/2004/09/fresnel#> . -@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . -@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . -@prefix sourceformat: <http://aperture.semanticdesktop.org/ontology/sourceformat#> . -@prefix source: <http://aperture.semanticdesktop.org/ontology/2007/08/12/source#> . -@prefix nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> . -@prefix : <http://aperture.semanticdesktop.org/ontology/2007/08/12/appleaddresbookds#> . - -:AppleAddressbookDataSource a rdfs:Class ; - rdfs:subClassOf nie:DataSource ; - rdfs:label "Apple Addresbook Data Source" ; - rdfs:comment "Describes an apple addresbook" . - -:AppleDataSourceLens rdf:type fresnel:Lens ; - fresnel:purpose fresnel:defaultLens ; - fresnel:classLensDomain :AppleAddressbookDataSource ; - fresnel:showProperties ( ) . \ No newline at end of file Modified: aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDetector.java =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDetector.java 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDetector.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -16,8 +16,8 @@ import org.semanticdesktop.aperture.detector.DataSourceDescription; import org.semanticdesktop.aperture.detector.DataSourceDetector; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.util.OSUtils; -import org.semanticdesktop.aperture.util.UriUtil; /** * Detects the apple addressbook datasource. @@ -35,7 +35,7 @@ AppleAddressbookDataSource ds = new AppleAddressbookDataSource(); Model m=RDF2Go.getModelFactory().createModel(); m.open(); - ds.setConfiguration(new RDFContainerImpl(m, UriUtil.generateRandomURI(m))); + ds.setConfiguration(new RDFContainerImpl(m, ModelUtil.generateRandomURI(m))); ds.setName("Apple Addressbook"); ds.setComment("Your contacts from the Apple Addressbook"); ArrayList<DataSourceDescription> result = new ArrayList<DataSourceDescription>(1); Deleted: aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/addressbook.applescript =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/addressbook.applescript 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/addressbook.applescript 2009-02-26 12:43:55 UTC (rev 1752) @@ -1,123 +0,0 @@ --- Really crappy Aperture Crawler for the MacOSX Address Book --- This version by Gunnar Grimnes, standing on the shoulder of giants (well, midgets?) --- See http://gnowsis.opendfki.de/wiki/AppleAddressBookDatasource, which in turn has more references - --- Find/change routine from Apple's AppleScript Guidebook --- module "Essential sub-routines." -on replace_chars(this_text, search_string, replacement_string) - set AppleScript's text item delimiters to the search_string - set the item_list to every text item of this_text - set AppleScript's text item delimiters to the replacement_string - set this_text to the item_list as string - set AppleScript's text item delimiters to "" - return this_text -end replace_chars - - -on trim_line(this_text, trim_chars, trim_indicator) - -- 0 = beginning, 1 = end, 2 = both - set x to the length of the trim_chars - -- TRIM BEGINNING - if the trim_indicator is in {0, 2} then - repeat while this_text begins with the trim_chars - try - set this_text to characters (x + 1) thru -1 of this_text as string - on error - -- the text contains nothing but the trim characters - return "" - end try - end repeat - end if - -- TRIM ENDING - if the trim_indicator is in {1, 2} then - repeat while this_text ends with the trim_chars - try - set this_text to characters 1 thru -(x + 1) of this_text as string - on error - -- the text contains nothing but the trim characters - return "" - end try - end repeat - end if - return this_text -end trim_line - --- my own -on xmlescape(txt) - set txt to replace_chars(txt,"&","&") - set txt to replace_chars(txt,"<","<") - set txt to replace_chars(txt,">",">") - return txt -end myxmlescape - --- urlencode is from: --- http://harvey.nu/applescript_url_encode_routine.html --- This safely encodes text so it can be used in a URL -on urlencode(theText) - set theTextEnc to "" - repeat with eachChar in characters of theText - set useChar to eachChar - set eachCharNum to ASCII number of eachChar - if eachCharNum = 38 then - set useChar to "_" - else if eachCharNum = 32 then - set useChar to "+" - else if (eachCharNum < 42) and (eachCharNum > 95) and (eachCharNum < 45 or eachCharNum > 46) and (eachCharNum < 48 or eachCharNum > 57) and (eachCharNum < 65 or eachCharNum > 90) and (eachCharNum < 97 or eachCharNum > 122) then - set firstDig to round (eachCharNum / 16) rounding down - set secondDig to eachCharNum mod 16 - if firstDig > 9 then - set aNum to firstDig + 55 - set firstDig to ASCII character aNum - end if - if secondDig > 9 then - set aNum to secondDig + 55 - set secondDig to ASCII character aNum - end if - set numHex to ("%" & (firstDig as string) & (secondDig as string)) as string - set useChar to numHex - end if - set theTextEnc to theTextEnc & useChar as string - end repeat - return theTextEnc -end urlencode - -set quitonfinish to true -tell application "Finder" - if exists process "Address Book" then - set quitonfinish to false - end if -end tell - -tell application "Address Book" - set out to "<rdf:RDF xmlns:foaf='http://xmlns.com/foaf/0.1/' xmlns:nco='http://www.semanticdesktop.org/ontologies/2007/03/22/nco#' xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>" & return - repeat with p in people - set out to out & "<nco:Contact rdf:about='urn:mac:addressbook:" & my urlencode(name of p) & "'>" & return - set person_name to my xmlescape(name of p) - set out to out & " <nco:fullname>" & (person_name) & "</nco:fullname>" & return - set out to out & " <rdfs:label>" & (person_name) & "</rdfs:label>" & return - - repeat with e in emails of p - set em to my trim_line(my xmlescape(value of e)," ",2) - set out to out & " <nco:hasEmailAddress rdf:parseType='Resource'>" & return - set out to out & " <nco:emailAddress>" & em & "</nco:emailAddress>" & return - set out to out & " <rdf:type rdf:resource='http://www.semanticdesktop.org/ontologies/2007/03/22/nco#EmailAddress' />" & return - set out to out & " </nco:hasEmailAddress>" & return - end repeat - repeat with g in groups of p - set gt to my trim_line(my xmlescape(name of g), " ", 2) - set out to out & " <nco:belongsToGroup rdf:parseType='Resource'>" & gt & "</nco:belongsToGroup>" & return - set out to out & " <rdf:type rdf:resource='http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactGroup' />" & return - set out to out & " <nco:contactGroupName>" & gt & "</nco:contactGroupName>" & return - set out to out & " </nco:belongsToGroup>" & return - end repeat - set out to out & "</nco:Contact>" & return - end repeat - set out to out & "</rdf:RDF>" - - if quitonfinish is true then - quit - end if - - return out - -end tell \ No newline at end of file Added: aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/bundle/AppleAddressbookActivator.java =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/bundle/AppleAddressbookActivator.java (rev 0) +++ aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/bundle/AppleAddressbookActivator.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.addressbook.apple.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.addressbook.apple.AppleAddressbookCrawlerFactory; +import org.semanticdesktop.aperture.addressbook.apple.AppleAddressbookDataSourceFactory; +import org.semanticdesktop.aperture.datasource.DataSourceFactory; + +public class AppleAddressbookActivator implements BundleActivator { + + private ServiceRegistration dataSourceRegistration; + + private ServiceRegistration crawlerRegistration; + + public void start(BundleContext context) throws Exception { + crawlerRegistration = context.registerService(DataSourceFactory.class + .getName(), new AppleAddressbookCrawlerFactory(), + new Hashtable()); + + crawlerRegistration = context.registerService(DataSourceFactory.class + .getName(), new AppleAddressbookDataSourceFactory(), + new Hashtable()); + + } + + public void stop(BundleContext context) throws Exception { + if (crawlerRegistration != null) { + crawlerRegistration.unregister(); + crawlerRegistration = null; + } + + if (dataSourceRegistration != null) { + dataSourceRegistration.unregister(); + dataSourceRegistration = null; + } + } +} Copied: aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl (from rev 1750, aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl) =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl (rev 0) +++ aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/apple/AppleAddressbookDataSource.ttl 2009-02-26 12:43:55 UTC (rev 1752) @@ -0,0 +1,18 @@ +@prefix fresnel: <http://www.w3.org/2004/09/fresnel#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix sourceformat: <http://aperture.semanticdesktop.org/ontology/sourceformat#> . +@prefix source: <http://aperture.semanticdesktop.org/ontology/2007/08/12/source#> . +@prefix nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> . +@prefix : <http://aperture.semanticdesktop.org/ontology/2007/08/12/appleaddresbookds#> . + +:AppleAddressbookDataSource a rdfs:Class ; + rdfs:subClassOf nie:DataSource ; + rdfs:label "Apple Addresbook Data Source" ; + rdfs:comment "Describes an apple addresbook" . + +:AppleDataSourceLens rdf:type fresnel:Lens ; + fresnel:purpose fresnel:defaultLens ; + fresnel:classLensDomain :AppleAddressbookDataSource ; + fresnel:showProperties ( ) . \ No newline at end of file Copied: aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/apple/addressbook.applescript (from rev 1750, aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/addressbook.applescript) =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/apple/addressbook.applescript (rev 0) +++ aperture/trunk/core/addressbook/apple/src/main/resources/org/semanticdesktop/aperture/addressbook/apple/addressbook.applescript 2009-02-26 12:43:55 UTC (rev 1752) @@ -0,0 +1,123 @@ +-- Really crappy Aperture Crawler for the MacOSX Address Book +-- This version by Gunnar Grimnes, standing on the shoulder of giants (well, midgets?) +-- See http://gnowsis.opendfki.de/wiki/AppleAddressBookDatasource, which in turn has more references + +-- Find/change routine from Apple's AppleScript Guidebook +-- module "Essential sub-routines." +on replace_chars(this_text, search_string, replacement_string) + set AppleScript's text item delimiters to the search_string + set the item_list to every text item of this_text + set AppleScript's text item delimiters to the replacement_string + set this_text to the item_list as string + set AppleScript's text item delimiters to "" + return this_text +end replace_chars + + +on trim_line(this_text, trim_chars, trim_indicator) + -- 0 = beginning, 1 = end, 2 = both + set x to the length of the trim_chars + -- TRIM BEGINNING + if the trim_indicator is in {0, 2} then + repeat while this_text begins with the trim_chars + try + set this_text to characters (x + 1) thru -1 of this_text as string + on error + -- the text contains nothing but the trim characters + return "" + end try + end repeat + end if + -- TRIM ENDING + if the trim_indicator is in {1, 2} then + repeat while this_text ends with the trim_chars + try + set this_text to characters 1 thru -(x + 1) of this_text as string + on error + -- the text contains nothing but the trim characters + return "" + end try + end repeat + end if + return this_text +end trim_line + +-- my own +on xmlescape(txt) + set txt to replace_chars(txt,"&","&") + set txt to replace_chars(txt,"<","<") + set txt to replace_chars(txt,">",">") + return txt +end myxmlescape + +-- urlencode is from: +-- http://harvey.nu/applescript_url_encode_routine.html +-- This safely encodes text so it can be used in a URL +on urlencode(theText) + set theTextEnc to "" + repeat with eachChar in characters of theText + set useChar to eachChar + set eachCharNum to ASCII number of eachChar + if eachCharNum = 38 then + set useChar to "_" + else if eachCharNum = 32 then + set useChar to "+" + else if (eachCharNum < 42) and (eachCharNum > 95) and (eachCharNum < 45 or eachCharNum > 46) and (eachCharNum < 48 or eachCharNum > 57) and (eachCharNum < 65 or eachCharNum > 90) and (eachCharNum < 97 or eachCharNum > 122) then + set firstDig to round (eachCharNum / 16) rounding down + set secondDig to eachCharNum mod 16 + if firstDig > 9 then + set aNum to firstDig + 55 + set firstDig to ASCII character aNum + end if + if secondDig > 9 then + set aNum to secondDig + 55 + set secondDig to ASCII character aNum + end if + set numHex to ("%" & (firstDig as string) & (secondDig as string)) as string + set useChar to numHex + end if + set theTextEnc to theTextEnc & useChar as string + end repeat + return theTextEnc +end urlencode + +set quitonfinish to true +tell application "Finder" + if exists process "Address Book" then + set quitonfinish to false + end if +end tell + +tell application "Address Book" + set out to "<rdf:RDF xmlns:foaf='http://xmlns.com/foaf/0.1/' xmlns:nco='http://www.semanticdesktop.org/ontologies/2007/03/22/nco#' xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>" & return + repeat with p in people + set out to out & "<nco:Contact rdf:about='urn:mac:addressbook:" & my urlencode(name of p) & "'>" & return + set person_name to my xmlescape(name of p) + set out to out & " <nco:fullname>" & (person_name) & "</nco:fullname>" & return + set out to out & " <rdfs:label>" & (person_name) & "</rdfs:label>" & return + + repeat with e in emails of p + set em to my trim_line(my xmlescape(value of e)," ",2) + set out to out & " <nco:hasEmailAddress rdf:parseType='Resource'>" & return + set out to out & " <nco:emailAddress>" & em & "</nco:emailAddress>" & return + set out to out & " <rdf:type rdf:resource='http://www.semanticdesktop.org/ontologies/2007/03/22/nco#EmailAddress' />" & return + set out to out & " </nco:hasEmailAddress>" & return + end repeat + repeat with g in groups of p + set gt to my trim_line(my xmlescape(name of g), " ", 2) + set out to out & " <nco:belongsToGroup rdf:parseType='Resource'>" & gt & "</nco:belongsToGroup>" & return + set out to out & " <rdf:type rdf:resource='http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactGroup' />" & return + set out to out & " <nco:contactGroupName>" & gt & "</nco:contactGroupName>" & return + set out to out & " </nco:belongsToGroup>" & return + end repeat + set out to out & "</nco:Contact>" & return + end repeat + set out to out & "</rdf:RDF>" + + if quitonfinish is true then + quit + end if + + return out + +end tell \ No newline at end of file Property changes on: aperture/trunk/core/addressbook/core ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Property changes on: aperture/trunk/core/addressbook/thunderbird ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/addressbook/thunderbird/pom.xml =================================================================== --- aperture/trunk/core/addressbook/thunderbird/pom.xml 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/thunderbird/pom.xml 2009-02-26 12:43:55 UTC (rev 1752) @@ -16,6 +16,15 @@ <name>Aperture Core: Addressbook - Thunderbird</name> <description>Thunderbird addressbook implementation</description> + <properties> + <ontology.input>src/main/resources/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl</ontology.input> + <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/12/thunderbirdaddresbookds#</ontology.namespace> + <ontology.class>THUNDERBIRDADDRESSBOOKDS</ontology.class> + <generator.output.package>org.semanticdesktop.aperture.addressbook.thunderbird</generator.output.package> + <generator.output.class>ThunderbirdAddressbookDataSource</generator.output.class> + <generator.output.dir>src/main/java</generator.output.dir> + </properties> + <dependencies> <dependency> <groupId>org.semanticdesktop.aperture</groupId> @@ -31,6 +40,10 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-detector-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-rdf</artifactId> </dependency> <dependency> @@ -39,6 +52,11 @@ </dependency> <dependency> + <groupId>org.semanticdesktop.nepomuk</groupId> + <artifactId>aperture-tools-demork</artifactId> + </dependency> + + <dependency> <groupId>org.semweb4j</groupId> <artifactId>rdf2go.api</artifactId> </dependency> @@ -67,6 +85,35 @@ <build> <plugins> <plugin> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-maven-plugin</artifactId> + <configuration> + <vocabularies> + <vocabulary> + <ontology>${ontology.input}</ontology> + <namespace>${ontology.namespace}</namespace> + <javaClass>${generator.output.package}.${ontology.class}</javaClass> + <outputDir>${generator.output.dir}</outputDir> + </vocabulary> + </vocabularies> + </configuration> + </plugin> + <plugin> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-datasource-maven-plugin</artifactId> + <configuration> + <dataSources> + <dataSource> + <ontology>${ontology.input}</ontology> + <namespace>${ontology.namespace}</namespace> + <ontologyClass>${ontology.class}</ontologyClass> + <javaClass>${generator.output.package}.${generator.output.class}</javaClass> + <outputDir>${generator.output.dir}</outputDir> + </dataSource> + </dataSources> + </configuration> + </plugin> + <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> @@ -81,7 +128,7 @@ <configuration> <instructions> <Export-Package>org.semanticdesktop.aperture.addressbook.thunderbird</Export-Package> - <Private-Package>org.semanticdesktop.aperture.addressbook.thunderbird.bundle</Export-Package> + <Private-Package>org.semanticdesktop.aperture.addressbook.thunderbird.bundle</Private-Package> <Bundle-Activator>org.semanticdesktop.aperture.addressbook.thunderbird.bundle.ThunderbirdAddressbookActivator</Bundle-Activator> </instructions> </configuration> Deleted: aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/THUNDERBIRDADDRESSBOOKDS.java =================================================================== --- aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/THUNDERBIRDADDRESSBOOKDS.java 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/THUNDERBIRDADDRESSBOOKDS.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.addressbook.thunderbird; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import org.ontoware.rdf2go.model.Model; -import org.ontoware.rdf2go.model.Syntax; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.util.ResourceUtil; -/** - * Vocabulary File. Created by org.semanticdesktop.aperture.util.VocabularyWriter on Tue Jul 15 22:56:02 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl - * namespace: http://aperture.semanticdesktop.org/ontology/2007/08/12/thunderbirdaddresbookds# - */ -public class THUNDERBIRDADDRESSBOOKDS { - - /** Path to the ontology resource */ - public static final String THUNDERBIRDADDRESSBOOKDS_RESOURCE_PATH = - "org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl"; - - /** - * Puts the THUNDERBIRDADDRESSBOOKDS ontology into the given model. - * @param model The model for the source ontology to be put into. - * @throws Exception if something goes wrong. - */ - public static void getTHUNDERBIRDADDRESSBOOKDSOntology(Model model) { - try { - InputStream stream = ResourceUtil.getInputStream(THUNDERBIRDADDRESSBOOKDS_RESOURCE_PATH, THUNDERBIRDADDRESSBOOKDS.class); - if (stream == null) { - throw new FileNotFoundException("couldn't find resource " + THUNDERBIRDADDRESSBOOKDS_RESOURCE_PATH); - } - model.readFrom(stream, Syntax.Turtle); - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - /** The namespace for THUNDERBIRDADDRESSBOOKDS */ - public static final URI NS_THUNDERBIRDADDRESSBOOKDS = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/12/thunderbirdaddresbookds#"); - /** - * Type: Class <br/> - * Label: Thunderbird Addresbook Data Source <br/> - * Comment: Describes an addresbook maintained by Mozilla Thunderbird <br/> - */ - public static final URI ThunderbirdAddressbookDataSource = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/12/thunderbirdaddresbookds#ThunderbirdAddressbookDataSource"); - /** - * Type: Instance of http://www.w3.org/2004/09/fresnel#Format <br/> - * Label: Addresbook Path <br/> - * Comment: Path to the file where the addresbook is stored. <br/> - * Domain: http://aperture.semanticdesktop.org/ontology/2007/08/12/thunderbirdaddresbookds#ThunderbirdAddressbookDataSource <br/> - * Range: http://www.w3.org/2001/XMLSchema#string <br/> - */ - public static final URI thunderbirdAddressbookPath = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/12/thunderbirdaddresbookds#thunderbirdAddressbookPath"); -} Deleted: aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.java =================================================================== --- aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.java 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.addressbook.thunderbird; -import org.ontoware.rdf2go.model.node.URI; -import org.semanticdesktop.aperture.datasource.DataSource; -import org.semanticdesktop.aperture.datasource.base.DataSourceBase; -import org.semanticdesktop.aperture.rdf.RDFContainer; - -/** - * Data source class file. Created by org.semanticdesktop.aperture.util.DataSourceClassGenerator on Tue Jul 15 22:56:06 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl - * class uri: http://aperture.semanticdesktop.org/ontology/2007/08/12/thunderbirdaddresbookds#ThunderbirdAddressbookDataSource - */ -public class ThunderbirdAddressbookDataSource extends DataSourceBase { - - /** - * @see DataSource#getType() - */ - public URI getType() { - return THUNDERBIRDADDRESSBOOKDS.ThunderbirdAddressbookDataSource; - } - - /** - * Returns the Path to the file where the addresbook is stored. - * - * @return the Path to the file where the addresbook is stored. or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public String getThunderbirdAddressbookPath() { - return getConfiguration().getString(THUNDERBIRDADDRESSBOOKDS.thunderbirdAddressbookPath); - } - - /** - * Sets the Path to the file where the addresbook is stored. - * - * @param thunderbirdAddressbookPath Path to the file where the addresbook is stored., can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setThunderbirdAddressbookPath(String thunderbirdAddressbookPath) { - if ( thunderbirdAddressbookPath == null) { - getConfiguration().remove(THUNDERBIRDADDRESSBOOKDS.thunderbirdAddressbookPath); - } else { - getConfiguration().put(THUNDERBIRDADDRESSBOOKDS.thunderbirdAddressbookPath,thunderbirdAddressbookPath); - } - } -} Deleted: aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl =================================================================== --- aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl 2009-02-26 12:43:55 UTC (rev 1752) @@ -1,30 +0,0 @@ -@prefix fresnel: <http://www.w3.org/2004/09/fresnel#> . -@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . -@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . -@prefix sourceformat: <http://aperture.semanticdesktop.org/ontology/sourceformat#> . -@prefix source: <http://aperture.semanticdesktop.org/ontology/2007/08/12/source#> . -@prefix nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> . -@prefix : <http://aperture.semanticdesktop.org/ontology/2007/08/12/thunderbirdaddresbookds#> . - -:ThunderbirdAddressbookDataSource a rdfs:Class ; - rdfs:subClassOf nie:DataSource ; - rdfs:label "Thunderbird Addresbook Data Source" ; - rdfs:comment "Describes an addresbook maintained by Mozilla Thunderbird" . - -:ThunderbirdDataSourceLens rdf:type fresnel:Lens ; - fresnel:purpose fresnel:defaultLens ; - fresnel:classLensDomain :ThunderbirdAddressbookDataSource ; - fresnel:showProperties ( :thunderbirdAddressbookPath ) . - -:thunderbirdAddressbookPath a rdf:Property ; - rdfs:label "Addresbook Path" ; - rdfs:comment "Path to the file where the addresbook is stored." ; - rdfs:domain :ThunderbirdAddressbookDataSource ; - rdfs:range xsd:string . - -:thunderbirdAddressbookPath a fresnel:Format ; - sourceformat:valueWidget [ - a sourceformat:TextFieldWidget - ] ; - fresnel:propertyFormatDomain :thunderbirdAddressbookPath . Modified: aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDetector.java =================================================================== --- aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDetector.java 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDetector.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -21,9 +21,9 @@ import org.semanticdesktop.aperture.detector.DataSourceDescription; import org.semanticdesktop.aperture.detector.DataSourceDetector; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.util.OSUtils; import org.semanticdesktop.aperture.util.RegistryReader; -import org.semanticdesktop.aperture.util.UriUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -184,7 +184,7 @@ ThunderbirdAddressbookDataSource ds = new ThunderbirdAddressbookDataSource(); Model m=RDF2Go.getModelFactory().createModel(); m.open(); - ds.setConfiguration(new RDFContainerImpl(m, UriUtil.generateRandomURI(m))); + ds.setConfiguration(new RDFContainerImpl(m, ModelUtil.generateRandomURI(m))); ds.setName("Thunderbird Addressbook"); ds.setComment("Contacts from your Thunderbird Addressbook."); ds.setThunderbirdAddressbookPath(thunderbird.getAbsolutePath()+File.separator+defaultProfile+File.separator+"abook.mab"); Modified: aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdCrawler.java =================================================================== --- aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdCrawler.java 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdCrawler.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -27,7 +27,7 @@ import org.semanticdesktop.aperture.addressbook.AddressbookCrawler; import org.semanticdesktop.aperture.datasource.DataSource; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.util.UriUtil; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.vocabulary.NCO; import org.semanticdesktop.demork.Demork; import org.semanticdesktop.demork.Utils; @@ -130,8 +130,8 @@ private void addAffiliation(Resource contactResource, Model model) { if (affiliationResource == null && organizationResource == null) { - affiliationResource = UriUtil.generateRandomResource(model); - organizationResource = UriUtil.generateRandomResource(model); + affiliationResource = ModelUtil.generateRandomResource(model); + organizationResource = ModelUtil.generateRandomResource(model); model.addStatement(affiliationResource,RDF.type,NCO.Affiliation); model.addStatement(organizationResource,RDF.type,NCO.OrganizationContact); model.addStatement(contactResource,NCO.hasAffiliation,affiliationResource); @@ -170,7 +170,7 @@ try { if (key.equals("PrimaryEmail")) { // TODO: Which email? - Resource emailResource = UriUtil.generateRandomResource(model); + Resource emailResource = ModelUtil.generateRandomResource(model); model.addStatement(emailResource, RDF.type, NCO.EmailAddress); model.addStatement(emailResource, NCO.emailAddress, value); // TODO get back to it when hasPreferredContactMedium is introduced @@ -178,7 +178,7 @@ } else if (key.equals("SecondEmail")) { // TODO: Which email? - Resource emailResource = UriUtil.generateRandomResource(model); + Resource emailResource = ModelUtil.generateRandomResource(model); model.addStatement(emailResource, RDF.type, NCO.EmailAddress); model.addStatement(emailResource, NCO.emailAddress, value); // TODO get back to it when hasPreferredContactMedium is introduced @@ -230,7 +230,7 @@ model.addStatement(organizationResource,NCO.fullname,value); } else if (key.equals("_AimScreenName")) { - Resource aimResource = UriUtil.generateRandomResource(model); + Resource aimResource = ModelUtil.generateRandomResource(model); model.addStatement(aimResource,RDF.type,NCO.IMAccount); model.addStatement(aimResource,NCO.imAccountType,"AIM"); model.addStatement(aimResource,NCO.imNickname,value); @@ -274,7 +274,7 @@ } private void addEmailAddress(Resource contactResource, Model model, String value, URI type, String comment) { - Resource emailAddressResource = UriUtil.generateRandomResource(model); + Resource emailAddressResource = ModelUtil.generateRandomResource(model); if (type == null) { model.addStatement(emailAddressResource,RDF.type,NCO.EmailAddress); } else { @@ -288,7 +288,7 @@ } private void addPhoneNumber(Resource contactResource, Model model, String value, URI type) { - Resource numberResource = UriUtil.generateRandomResource(model); + Resource numberResource = ModelUtil.generateRandomResource(model); if (type == null) { model.addStatement(numberResource,RDF.type,NCO.PhoneNumber); } else { Added: aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/bundle/ThunderbirdAddressbookActivator.java =================================================================== --- aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/bundle/ThunderbirdAddressbookActivator.java (rev 0) +++ aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/bundle/ThunderbirdAddressbookActivator.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.addressbook.thunderbird.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdAddressbookCrawlerFactory; +import org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdAddressbookDataSourceFactory; +import org.semanticdesktop.aperture.datasource.DataSourceFactory; + +public class ThunderbirdAddressbookActivator implements BundleActivator { + + private ServiceRegistration dataSourceRegistration; + + private ServiceRegistration crawlerRegistration; + + public void start(BundleContext context) throws Exception { + crawlerRegistration = context.registerService(DataSourceFactory.class + .getName(), new ThunderbirdAddressbookCrawlerFactory(), + new Hashtable()); + + crawlerRegistration = context.registerService(DataSourceFactory.class + .getName(), new ThunderbirdAddressbookDataSourceFactory(), + new Hashtable()); + + } + + public void stop(BundleContext context) throws Exception { + if (crawlerRegistration != null) { + crawlerRegistration.unregister(); + crawlerRegistration = null; + } + + if (dataSourceRegistration != null) { + dataSourceRegistration.unregister(); + dataSourceRegistration = null; + } + } +} Copied: aperture/trunk/core/addressbook/thunderbird/src/main/resources/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl (from rev 1750, aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl) =================================================================== --- aperture/trunk/core/addressbook/thunderbird/src/main/resources/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl (rev 0) +++ aperture/trunk/core/addressbook/thunderbird/src/main/resources/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdAddressbookDataSource.ttl 2009-02-26 12:43:55 UTC (rev 1752) @@ -0,0 +1,30 @@ +@prefix fresnel: <http://www.w3.org/2004/09/fresnel#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix sourceformat: <http://aperture.semanticdesktop.org/ontology/sourceformat#> . +@prefix source: <http://aperture.semanticdesktop.org/ontology/2007/08/12/source#> . +@prefix nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> . +@prefix : <http://aperture.semanticdesktop.org/ontology/2007/08/12/thunderbirdaddresbookds#> . + +:ThunderbirdAddressbookDataSource a rdfs:Class ; + rdfs:subClassOf nie:DataSource ; + rdfs:label "Thunderbird Addresbook Data Source" ; + rdfs:comment "Describes an addresbook maintained by Mozilla Thunderbird" . + +:ThunderbirdDataSourceLens rdf:type fresnel:Lens ; + fresnel:purpose fresnel:defaultLens ; + fresnel:classLensDomain :ThunderbirdAddressbookDataSource ; + fresnel:showProperties ( :thunderbirdAddressbookPath ) . + +:thunderbirdAddressbookPath a rdf:Property ; + rdfs:label "Addresbook Path" ; + rdfs:comment "Path to the file where the addresbook is stored." ; + rdfs:domain :ThunderbirdAddressbookDataSource ; + rdfs:range xsd:string . + +:thunderbirdAddressbookPath a fresnel:Format ; + sourceformat:valueWidget [ + a sourceformat:TextFieldWidget + ] ; + fresnel:propertyFormatDomain :thunderbirdAddressbookPath . Modified: aperture/trunk/core/crawler/ical/pom.xml =================================================================== --- aperture/trunk/core/crawler/ical/pom.xml 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/crawler/ical/pom.xml 2009-02-26 12:43:55 UTC (rev 1752) @@ -39,7 +39,7 @@ </dependency> <dependency> - <groupId>ical4j</groupId> + <groupId>net.fortuna.ical4j</groupId> <artifactId>ical4j</artifactId> </dependency> Modified: aperture/trunk/core/crawler/mbox/pom.xml =================================================================== --- aperture/trunk/core/crawler/mbox/pom.xml 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/crawler/mbox/pom.xml 2009-02-26 12:43:55 UTC (rev 1752) @@ -43,7 +43,7 @@ </dependency> <dependency> - <groupId>mstor</groupId> + <groupId>net.fortuna.mstor</groupId> <artifactId>mstor</artifactId> </dependency> Modified: aperture/trunk/core/crawler/pom.xml =================================================================== --- aperture/trunk/core/crawler/pom.xml 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/crawler/pom.xml 2009-02-26 12:43:55 UTC (rev 1752) @@ -26,7 +26,7 @@ <module>mail</module> <module>mime</module> <module>mbox</module> -<!-- <module>vcard</module> --> + <module>vcard</module> <module>web</module> </modules> </project> \ No newline at end of file Modified: aperture/trunk/core/crawler/vcard/pom.xml =================================================================== --- aperture/trunk/core/crawler/vcard/pom.xml 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/crawler/vcard/pom.xml 2009-02-26 12:43:55 UTC (rev 1752) @@ -19,6 +19,10 @@ <dependencies> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-accessor-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-crawler-core</artifactId> </dependency> <dependency> @@ -31,6 +35,16 @@ </dependency> <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + </dependency> + + <dependency> + <groupId>net.fortuna.ical4j</groupId> + <artifactId>ical4j-vcard</artifactId> + </dependency> + + <dependency> <groupId>org.semweb4j</groupId> <artifactId>rdf2go.api</artifactId> </dependency> Modified: aperture/trunk/core/crawler/vcard/src/main/java/org/semanticdesktop/aperture/subcrawler/vcard/VcardSubCrawler.java =================================================================== --- aperture/trunk/core/crawler/vcard/src/main/java/org/semanticdesktop/aperture/subcrawler/vcard/VcardSubCrawler.java 2009-02-26 12:42:56 UTC (rev 1751) +++ aperture/trunk/core/crawler/vcard/src/main/java/org/semanticdesktop/aperture/subcrawler/vcard/VcardSubCrawler.java 2009-02-26 12:43:55 UTC (rev 1752) @@ -7,28 +7,41 @@ package org.semanticdesktop.aperture.subcrawler.vcard; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; import java.nio.charset.Charset; -import java.text.ParseException; import java.util.Date; +import java.util.List; -import net.wimpi.pim.Pim; -import net.wimpi.pim.contact.io.ContactMarshaller; -import net.wimpi.pim.contact.io.ContactUnmarshaller; -import net.wimpi.pim.contact.model.Address; -import net.wimpi.pim.contact.model.Communications; -import net.wimpi.pim.contact.model.Contact; -import net.wimpi.pim.contact.model.EmailAddress; -import net.wimpi.pim.contact.model.GeographicalInformation; -import net.wimpi.pim.contact.model.Image; -import net... [truncated message content] |
From: <her...@us...> - 2009-02-26 15:19:26
|
Revision: 1756 http://aperture.svn.sourceforge.net/aperture/?rev=1756&view=rev Author: herko_ter_horst Date: 2009-02-26 15:19:21 +0000 (Thu, 26 Feb 2009) Log Message: ----------- Mavenized Outlook module. Modified Paths: -------------- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/bundle/AppleAddressbookActivator.java aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/bundle/ThunderbirdAddressbookActivator.java aperture/trunk/core/outlook/pom.xml aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookDataSourceDetector.java aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookResource.java aperture/trunk/core/pom.xml aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/bundle/ aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/bundle/OutlookActivator.java aperture/trunk/core/outlook/src/main/resources/ aperture/trunk/core/outlook/src/main/resources/org/ aperture/trunk/core/outlook/src/main/resources/org/semanticdesktop/ aperture/trunk/core/outlook/src/main/resources/org/semanticdesktop/aperture/ aperture/trunk/core/outlook/src/main/resources/org/semanticdesktop/aperture/outlook/ aperture/trunk/core/outlook/src/main/resources/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl Removed Paths: ------------- aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OUTLOOKDS.java aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookDataSource.java aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl Property Changed: ---------------- aperture/trunk/core/outlook/ Modified: aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/bundle/AppleAddressbookActivator.java =================================================================== --- aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/bundle/AppleAddressbookActivator.java 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/core/addressbook/apple/src/main/java/org/semanticdesktop/aperture/addressbook/apple/bundle/AppleAddressbookActivator.java 2009-02-26 15:19:21 UTC (rev 1756) @@ -13,23 +13,23 @@ import org.osgi.framework.ServiceRegistration; import org.semanticdesktop.aperture.addressbook.apple.AppleAddressbookCrawlerFactory; import org.semanticdesktop.aperture.addressbook.apple.AppleAddressbookDataSourceFactory; +import org.semanticdesktop.aperture.crawler.CrawlerFactory; import org.semanticdesktop.aperture.datasource.DataSourceFactory; public class AppleAddressbookActivator implements BundleActivator { + private ServiceRegistration crawlerRegistration; + private ServiceRegistration dataSourceRegistration; - private ServiceRegistration crawlerRegistration; - public void start(BundleContext context) throws Exception { - crawlerRegistration = context.registerService(DataSourceFactory.class + crawlerRegistration = context.registerService(CrawlerFactory.class .getName(), new AppleAddressbookCrawlerFactory(), new Hashtable()); - crawlerRegistration = context.registerService(DataSourceFactory.class - .getName(), new AppleAddressbookDataSourceFactory(), - new Hashtable()); - + dataSourceRegistration = context.registerService( + DataSourceFactory.class.getName(), + new AppleAddressbookDataSourceFactory(), new Hashtable()); } public void stop(BundleContext context) throws Exception { Modified: aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/bundle/ThunderbirdAddressbookActivator.java =================================================================== --- aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/bundle/ThunderbirdAddressbookActivator.java 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/core/addressbook/thunderbird/src/main/java/org/semanticdesktop/aperture/addressbook/thunderbird/bundle/ThunderbirdAddressbookActivator.java 2009-02-26 15:19:21 UTC (rev 1756) @@ -13,22 +13,23 @@ import org.osgi.framework.ServiceRegistration; import org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdAddressbookCrawlerFactory; import org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdAddressbookDataSourceFactory; +import org.semanticdesktop.aperture.crawler.CrawlerFactory; import org.semanticdesktop.aperture.datasource.DataSourceFactory; public class ThunderbirdAddressbookActivator implements BundleActivator { + private ServiceRegistration crawlerRegistration; + private ServiceRegistration dataSourceRegistration; - private ServiceRegistration crawlerRegistration; - public void start(BundleContext context) throws Exception { - crawlerRegistration = context.registerService(DataSourceFactory.class + crawlerRegistration = context.registerService(CrawlerFactory.class .getName(), new ThunderbirdAddressbookCrawlerFactory(), new Hashtable()); - crawlerRegistration = context.registerService(DataSourceFactory.class - .getName(), new ThunderbirdAddressbookDataSourceFactory(), - new Hashtable()); + dataSourceRegistration = context.registerService( + DataSourceFactory.class.getName(), + new ThunderbirdAddressbookDataSourceFactory(), new Hashtable()); } Property changes on: aperture/trunk/core/outlook ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/outlook/pom.xml =================================================================== --- aperture/trunk/core/outlook/pom.xml 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/core/outlook/pom.xml 2009-02-26 15:19:21 UTC (rev 1756) @@ -14,5 +14,181 @@ <artifactId>aperture-outlook</artifactId> <name>Aperture Core: Outlook</name> - <description>Support for Microsoft Outlook</description> + <description>Support for Microsoft Outlook</description> + + <properties> + <ontology.input>src/main/resources/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl</ontology.input> + <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/12/outlookds#</ontology.namespace> + <ontology.class>OUTLOOKDS</ontology.class> + <generator.output.package>org.semanticdesktop.aperture.outlook</generator.output.package> + <generator.output.class>OutlookDataSource</generator.output.class> + <generator.output.dir>src/main/java</generator.output.dir> + </properties> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-accessor-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-datasource-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-detector-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-opener-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-rdf</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-core</artifactId> + </dependency> + + <dependency> + <groupId>net.sf.jacob-project</groupId> + <artifactId>jacob</artifactId> + </dependency> + + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.api</artifactId> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-vocabulary-maven-plugin</artifactId> + <configuration> + <vocabularies> + <vocabulary> + <ontology>${ontology.input}</ontology> + <namespace>${ontology.namespace}</namespace> + <javaClass>${generator.output.package}.${ontology.class}</javaClass> + <outputDir>${generator.output.dir}</outputDir> + </vocabulary> + </vocabularies> + </configuration> + </plugin> + <plugin> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-datasource-maven-plugin</artifactId> + <configuration> + <dataSources> + <dataSource> + <ontology>${ontology.input}</ontology> + <namespace>${ontology.namespace}</namespace> + <ontologyClass>${ontology.class}</ontologyClass> + <javaClass>${generator.output.package}.${generator.output.class}</javaClass> + <outputDir>${generator.output.dir}</outputDir> + </dataSource> + </dataSources> + </configuration> + </plugin> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>org.semanticdesktop.aperture.outlook</Export-Package> + <Private-Package>org.semanticdesktop.aperture.outlook.bundle</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.outlook.bundle.OutlookActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + + <profiles> + <profile> + <id>win-32</id> + <activation> + <os> + <family>windows</family> + <arch>x86</arch> + </os> + </activation> + <dependencies> + <dependency> + <groupId>net.sf.jacob-project</groupId> + <artifactId>jacob</artifactId> + <type>dll</type> + <classifier>x86</classifier> + </dependency> + </dependencies> + </profile> + <profile> + <id>win-64</id> + <activation> + <os> + <family>windows</family> + <arch>amd64</arch> + </os> + </activation> + <dependencies> + <dependency> + <groupId>net.sf.jacob-project</groupId> + <artifactId>jacob</artifactId> + <type>dll</type> + <classifier>x64</classifier> + </dependency> + </dependencies> + </profile> + <profile> + <!-- Make sure the build doesn't fail when not on Windows --> + <id>not-on-windows</id> + <activation> + <os> + <family>!windows</family> + </os> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + </plugins> + </build> + </profile> + </profiles> </project> Deleted: aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OUTLOOKDS.java =================================================================== --- aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OUTLOOKDS.java 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OUTLOOKDS.java 2009-02-26 15:19:21 UTC (rev 1756) @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.outlook; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import org.ontoware.rdf2go.model.Model; -import org.ontoware.rdf2go.model.Syntax; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.util.ResourceUtil; -/** - * Vocabulary File. Created by org.semanticdesktop.aperture.util.VocabularyWriter on Tue Jul 15 22:55:45 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl - * namespace: http://aperture.semanticdesktop.org/ontology/2007/08/12/outlookds# - */ -public class OUTLOOKDS { - - /** Path to the ontology resource */ - public static final String OUTLOOKDS_RESOURCE_PATH = - "org/semanticdesktop/aperture/outlook/outlookDataSource.ttl"; - - /** - * Puts the OUTLOOKDS ontology into the given model. - * @param model The model for the source ontology to be put into. - * @throws Exception if something goes wrong. - */ - public static void getOUTLOOKDSOntology(Model model) { - try { - InputStream stream = ResourceUtil.getInputStream(OUTLOOKDS_RESOURCE_PATH, OUTLOOKDS.class); - if (stream == null) { - throw new FileNotFoundException("couldn't find resource " + OUTLOOKDS_RESOURCE_PATH); - } - model.readFrom(stream, Syntax.Turtle); - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - /** The namespace for OUTLOOKDS */ - public static final URI NS_OUTLOOKDS = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/12/outlookds#"); - /** - * Type: Class <br/> - * Label: Outlook Data Source <br/> - * Comment: Configures a data source for extracting mails, contacts and calendar information from a running Outlook instance <br/> - */ - public static final URI OutlookDataSource = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/12/outlookds#OutlookDataSource"); - /** - * Type: Property <br/> - * Label: Root URL <br/> - * Comment: URL used as a prefix for URIs of all outlook resources. It should begin with outlook:// <br/> - * Domain: http://aperture.semanticdesktop.org/ontology/2007/08/12/outlookds#OutlookDataSource <br/> - * Range: http://www.w3.org/2001/XMLSchema#string <br/> - */ - public static final URI rootUrl = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/12/outlookds#rootUrl"); -} Deleted: aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookDataSource.java =================================================================== --- aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookDataSource.java 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookDataSource.java 2009-02-26 15:19:21 UTC (rev 1756) @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.outlook; -import org.ontoware.rdf2go.model.node.URI; -import org.semanticdesktop.aperture.datasource.DataSource; -import org.semanticdesktop.aperture.datasource.base.DataSourceBase; -import org.semanticdesktop.aperture.rdf.RDFContainer; - -/** - * Data source class file. Created by org.semanticdesktop.aperture.util.DataSourceClassGenerator on Tue Jul 15 22:55:49 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl - * class uri: http://aperture.semanticdesktop.org/ontology/2007/08/12/outlookds#OutlookDataSource - */ -public class OutlookDataSource extends DataSourceBase { - - /** - * @see DataSource#getType() - */ - public URI getType() { - return OUTLOOKDS.OutlookDataSource; - } - - /** - * Returns the URL used as a prefix for URIs of all outlook resources. It should begin with outlook:// - * - * @return the URL used as a prefix for URIs of all outlook resources. It should begin with outlook:// or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public String getRootUrl() { - return getConfiguration().getString(OUTLOOKDS.rootUrl); - } - - /** - * Sets the URL used as a prefix for URIs of all outlook resources. It should begin with outlook:// - * - * @param rootUrl URL used as a prefix for URIs of all outlook resources. It should begin with outlook://, can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setRootUrl(String rootUrl) { - if ( rootUrl == null) { - getConfiguration().remove(OUTLOOKDS.rootUrl); - } else { - getConfiguration().put(OUTLOOKDS.rootUrl,rootUrl); - } - } -} Modified: aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookDataSourceDetector.java =================================================================== --- aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookDataSourceDetector.java 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookDataSourceDetector.java 2009-02-26 15:19:21 UTC (rev 1756) @@ -16,8 +16,8 @@ import org.semanticdesktop.aperture.detector.DataSourceDescription; import org.semanticdesktop.aperture.detector.DataSourceDetector; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.util.OSUtils; -import org.semanticdesktop.aperture.util.UriUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,7 +44,7 @@ OutlookDataSource ds = new OutlookDataSource(); Model m=RDF2Go.getModelFactory().createModel(); m.open(); - URI id = UriUtil.generateRandomURI(m); + URI id = ModelUtil.generateRandomURI(m); ds.setConfiguration(new RDFContainerImpl(m, id)); ds.setName("Microsoft Outlook"); ds.setComment("Your emails, appointments, contacts and other elements from Outlook."); Modified: aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookResource.java =================================================================== --- aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookResource.java 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/OutlookResource.java 2009-02-26 15:19:21 UTC (rev 1756) @@ -26,8 +26,8 @@ import org.semanticdesktop.aperture.datasource.DataSource; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.rdf.ValueFactory; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.util.DateUtil; -import org.semanticdesktop.aperture.util.UriUtil; import org.semanticdesktop.aperture.vocabulary.NAO; import org.semanticdesktop.aperture.vocabulary.NCAL; import org.semanticdesktop.aperture.vocabulary.NCO; @@ -427,7 +427,7 @@ if (name != null) rdf.add(vf.createStatement(from, NCO.fullname, vf.createLiteral(name))); if (mailbox != null) { - Resource emailAddressResource = UriUtil.generateRandomResource(rdf.getModel()); + Resource emailAddressResource = ModelUtil.generateRandomResource(rdf.getModel()); addStatement(rdf, from, NCO.hasEmailAddress, emailAddressResource); addStatement(rdf, emailAddressResource, RDF.type, NCO.EmailAddress); addStatement(rdf, emailAddressResource, NCO.emailAddress, vf.createLiteral(mailbox)); @@ -850,7 +850,7 @@ protected void addNcalDateTimeIfNotNull(RDFContainer rdf, URI property, Dispatch resource, String dispName) { Date date = getDateOf(resource, dispName); if (date != null) { - Resource ncalDateTimeResource = UriUtil.generateRandomResource(rdf.getModel()); + Resource ncalDateTimeResource = ModelUtil.generateRandomResource(rdf.getModel()); rdf.add(property, ncalDateTimeResource); addStatement(rdf, ncalDateTimeResource, RDF.type, NCAL.NcalDateTime); addStatement(rdf, ncalDateTimeResource, NCAL.dateTime, DateUtil.dateTime2String(date), XSD._dateTime); @@ -861,7 +861,7 @@ String addressString = getLiteralOf(resource, dispName); if (addressString != null) { - Resource emailAddressNode = UriUtil.generateRandomResource(model); + Resource emailAddressNode = ModelUtil.generateRandomResource(model); model.addStatement(parentNode,NCO.hasEmailAddress,emailAddressNode); model.addStatement(emailAddressNode, RDF.type, NCO.EmailAddress); model.addStatement(emailAddressNode, NCO.emailAddress, addressString); @@ -872,7 +872,7 @@ String telephoneString = getLiteralOf(resource, dispName); if (telephoneString != null) { - Resource telephoneNumberNode = UriUtil.generateRandomResource(model); + Resource telephoneNumberNode = ModelUtil.generateRandomResource(model); model.addStatement(parentNode,NCO.hasPhoneNumber,telephoneNumberNode); model.addStatement(telephoneNumberNode, RDF.type, type); model.addStatement(telephoneNumberNode, NCO.phoneNumber, telephoneString); @@ -936,7 +936,7 @@ if (name != null) rdf.add(vf.createStatement(rec, NCO.fullname, vf.createLiteral(name))); if (mailbox != null) { - Resource emailAddressResource = UriUtil.generateRandomResource(rdf.getModel()); + Resource emailAddressResource = ModelUtil.generateRandomResource(rdf.getModel()); addStatement(rdf, rec, NCO.hasEmailAddress, emailAddressResource); addStatement(rdf, emailAddressResource, RDF.type, NCO.EmailAddress); addStatement(rdf, emailAddressResource, NCO.emailAddress, vf.createLiteral(mailbox)); Added: aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/bundle/OutlookActivator.java =================================================================== --- aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/bundle/OutlookActivator.java (rev 0) +++ aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/bundle/OutlookActivator.java 2009-02-26 15:19:21 UTC (rev 1756) @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.outlook.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.crawler.CrawlerFactory; +import org.semanticdesktop.aperture.datasource.DataSourceFactory; +import org.semanticdesktop.aperture.detector.DataSourceDetector; +import org.semanticdesktop.aperture.opener.DataOpenerFactory; +import org.semanticdesktop.aperture.outlook.OutlookCrawlerFactory; +import org.semanticdesktop.aperture.outlook.OutlookDataSourceDetector; +import org.semanticdesktop.aperture.outlook.OutlookDataSourceFactory; +import org.semanticdesktop.aperture.outlook.OutlookOpenerFactory; + +public class OutlookActivator implements BundleActivator { + + private ServiceRegistration crawlerRegistration; + + private ServiceRegistration dataSourceRegistration; + + private ServiceRegistration detectorRegistration; + + private ServiceRegistration openerRegistration; + + public void start(BundleContext context) throws Exception { + crawlerRegistration = context.registerService(CrawlerFactory.class + .getName(), new OutlookCrawlerFactory(), new Hashtable()); + + dataSourceRegistration = context.registerService( + DataSourceFactory.class.getName(), + new OutlookDataSourceFactory(), new Hashtable()); + + detectorRegistration = context.registerService(DataSourceDetector.class + .getName(), new OutlookDataSourceDetector(), new Hashtable()); + + openerRegistration = context.registerService(DataOpenerFactory.class + .getName(), new OutlookOpenerFactory(), new Hashtable()); + } + + public void stop(BundleContext context) throws Exception { + if (crawlerRegistration != null) { + crawlerRegistration.unregister(); + crawlerRegistration = null; + } + + if (dataSourceRegistration != null) { + dataSourceRegistration.unregister(); + dataSourceRegistration = null; + } + + if (detectorRegistration != null) { + detectorRegistration.unregister(); + detectorRegistration = null; + } + + if (openerRegistration != null) { + openerRegistration.unregister(); + openerRegistration = null; + } + } +} Deleted: aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl =================================================================== --- aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl 2009-02-26 15:19:21 UTC (rev 1756) @@ -1,30 +0,0 @@ -@prefix fresnel: <http://www.w3.org/2004/09/fresnel#> . -@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . -@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . -@prefix sourceformat: <http://aperture.semanticdesktop.org/ontology/sourceformat#> . -@prefix source: <http://aperture.semanticdesktop.org/ontology/2007/08/12/source#> . -@prefix nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> . -@prefix : <http://aperture.semanticdesktop.org/ontology/2007/08/12/outlookds#> . - -:OutlookDataSource a rdfs:Class ; - rdfs:subClassOf nie:DataSource ; - rdfs:label " Outlook Data Source" ; - rdfs:comment "Configures a data source for extracting mails, contacts and calendar information from a running Outlook instance" . - -:OutlookDataSourceLens rdf:type fresnel:Lens ; - fresnel:purpose fresnel:defaultLens ; - fresnel:classLensDomain :OutlookDataSource ; - fresnel:showProperties ( :rootUrl ) . - -:rootUrl a rdf:Property ; - rdfs:label "Root URL" ; - rdfs:comment "URL used as a prefix for URIs of all outlook resources. It should begin with outlook://" ; - rdfs:domain :OutlookDataSource ; - rdfs:range xsd:string . - -:rootUrlFormat a fresnel:Format ; - sourceformat:valueWidget [ - a sourceformat:TextFieldWidget - ] ; - fresnel:propertyFormatDomain :rootUrl . \ No newline at end of file Copied: aperture/trunk/core/outlook/src/main/resources/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl (from rev 1755, aperture/trunk/core/outlook/src/main/java/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl) =================================================================== --- aperture/trunk/core/outlook/src/main/resources/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl (rev 0) +++ aperture/trunk/core/outlook/src/main/resources/org/semanticdesktop/aperture/outlook/outlookDataSource.ttl 2009-02-26 15:19:21 UTC (rev 1756) @@ -0,0 +1,30 @@ +@prefix fresnel: <http://www.w3.org/2004/09/fresnel#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix sourceformat: <http://aperture.semanticdesktop.org/ontology/sourceformat#> . +@prefix source: <http://aperture.semanticdesktop.org/ontology/2007/08/12/source#> . +@prefix nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> . +@prefix : <http://aperture.semanticdesktop.org/ontology/2007/08/12/outlookds#> . + +:OutlookDataSource a rdfs:Class ; + rdfs:subClassOf nie:DataSource ; + rdfs:label " Outlook Data Source" ; + rdfs:comment "Configures a data source for extracting mails, contacts and calendar information from a running Outlook instance" . + +:OutlookDataSourceLens rdf:type fresnel:Lens ; + fresnel:purpose fresnel:defaultLens ; + fresnel:classLensDomain :OutlookDataSource ; + fresnel:showProperties ( :rootUrl ) . + +:rootUrl a rdf:Property ; + rdfs:label "Root URL" ; + rdfs:comment "URL used as a prefix for URIs of all outlook resources. It should begin with outlook://" ; + rdfs:domain :OutlookDataSource ; + rdfs:range xsd:string . + +:rootUrlFormat a fresnel:Format ; + sourceformat:valueWidget [ + a sourceformat:TextFieldWidget + ] ; + fresnel:propertyFormatDomain :rootUrl . \ No newline at end of file Modified: aperture/trunk/core/pom.xml =================================================================== --- aperture/trunk/core/pom.xml 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/core/pom.xml 2009-02-26 15:19:21 UTC (rev 1756) @@ -28,6 +28,7 @@ <module>linkextractor</module> <module>mime-identifier</module> <module>opener</module> + <module>outlook</module> <module>rdf</module> <module>security</module> <module>util</module> Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-02-26 14:36:12 UTC (rev 1755) +++ aperture/trunk/pom.xml 2009-02-26 15:19:21 UTC (rev 1756) @@ -370,6 +370,29 @@ <version>0.9.0</version> </dependency> + <!-- Jacob --> + <dependency> + <groupId>net.sf.jacob-project</groupId> + <artifactId>jacob</artifactId> + <version>1.14.3</version> + </dependency> + <dependency> + <groupId>net.sf.jacob-project</groupId> + <artifactId>jacob</artifactId> + <version>1.14.3</version> + <type>dll</type> + <classifier>x86</classifier> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>net.sf.jacob-project</groupId> + <artifactId>jacob</artifactId> + <version>1.14.3</version> + <type>dll</type> + <classifier>x64</classifier> + <scope>runtime</scope> + </dependency> + <!-- Testing --> <dependency> <groupId>junit</groupId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <her...@us...> - 2009-02-27 10:27:36
|
Revision: 1772 http://aperture.svn.sourceforge.net/aperture/?rev=1772&view=rev Author: herko_ter_horst Date: 2009-02-27 10:27:32 +0000 (Fri, 27 Feb 2009) Log Message: ----------- Mavenized website modules. Modified Paths: -------------- aperture/trunk/core/pom.xml aperture/trunk/core/websites/bibsonomy/pom.xml aperture/trunk/core/websites/delicious/pom.xml aperture/trunk/core/websites/flickr/pom.xml aperture/trunk/core/websites/iphoto/pom.xml aperture/trunk/pom.xml Removed Paths: ------------- aperture/trunk/core/websites/bibsonomy/src/main/java/org/semanticdesktop/aperture/websites/bibsonomy/BIBSONOMYDS.java aperture/trunk/core/websites/bibsonomy/src/main/java/org/semanticdesktop/aperture/websites/bibsonomy/BibsonomyDataSource.java aperture/trunk/core/websites/delicious/src/main/java/org/semanticdesktop/aperture/websites/delicious/DELICIOUSDS.java aperture/trunk/core/websites/delicious/src/main/java/org/semanticdesktop/aperture/websites/delicious/DeliciousDataSource.java aperture/trunk/core/websites/flickr/src/main/java/org/semanticdesktop/aperture/websites/flickr/FLICKRDS.java aperture/trunk/core/websites/flickr/src/main/java/org/semanticdesktop/aperture/websites/flickr/FlickrDataSource.java aperture/trunk/core/websites/iphoto/src/main/java/org/semanticdesktop/aperture/websites/iphoto/IPHOTODS.java aperture/trunk/core/websites/iphoto/src/main/java/org/semanticdesktop/aperture/websites/iphoto/IPhotoKeywordDataSource.java Property Changed: ---------------- aperture/trunk/core/websites/bibsonomy/ aperture/trunk/core/websites/core/ aperture/trunk/core/websites/delicious/ aperture/trunk/core/websites/flickr/ aperture/trunk/core/websites/iphoto/ Modified: aperture/trunk/core/pom.xml =================================================================== --- aperture/trunk/core/pom.xml 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/pom.xml 2009-02-27 10:27:32 UTC (rev 1772) @@ -33,5 +33,6 @@ <module>security</module> <module>util</module> <module>vocabulary</module> + <module>websites</module> </modules> </project> Property changes on: aperture/trunk/core/websites/bibsonomy ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/websites/bibsonomy/pom.xml =================================================================== --- aperture/trunk/core/websites/bibsonomy/pom.xml 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/bibsonomy/pom.xml 2009-02-27 10:27:32 UTC (rev 1772) @@ -17,8 +17,8 @@ <description>Bibsonomy website implementation</description> <properties> - <ontology.input>src/main/resources/org/semanticdesktop/aperture/websites/bibsonomy/BibsonomyDataSource.ttl</ontology.input> - <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/12/bibsonomyds#</ontology.namespace> + <ontology.input>src/main/resources/org/semanticdesktop/aperture/websites/bibsonomy/bibsonomyDataSource.ttl</ontology.input> + <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#</ontology.namespace> <ontology.class>BIBSONOMYDS</ontology.class> <generator.output.package>org.semanticdesktop.aperture.websites.bibsonomy</generator.output.package> <generator.output.class>BibsonomyDataSource</generator.output.class> Deleted: aperture/trunk/core/websites/bibsonomy/src/main/java/org/semanticdesktop/aperture/websites/bibsonomy/BIBSONOMYDS.java =================================================================== --- aperture/trunk/core/websites/bibsonomy/src/main/java/org/semanticdesktop/aperture/websites/bibsonomy/BIBSONOMYDS.java 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/bibsonomy/src/main/java/org/semanticdesktop/aperture/websites/bibsonomy/BIBSONOMYDS.java 2009-02-27 10:27:32 UTC (rev 1772) @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.websites.bibsonomy; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import org.ontoware.rdf2go.model.Model; -import org.ontoware.rdf2go.model.Syntax; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.util.ResourceUtil; -/** - * Vocabulary File. Created by org.semanticdesktop.aperture.util.VocabularyWriter on Mon Jul 21 14:59:21 CEST 2008 - * input file: /Users/pikson/DFKI/psew_workspace/aperture/src/java/org/semanticdesktop/aperture/websites/bibsonomy/bibsonomyDataSource.ttl - * namespace: http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds# - */ -public class BIBSONOMYDS { - - /** Path to the ontology resource */ - public static final String BIBSONOMYDS_RESOURCE_PATH = - "org/semanticdesktop/aperture/websites/bibsonomy/bibsonomyDataSource.ttl"; - - /** - * Puts the BIBSONOMYDS ontology into the given model. - * @param model The model for the source ontology to be put into. - * @throws Exception if something goes wrong. - */ - public static void getBIBSONOMYDSOntology(Model model) { - try { - InputStream stream = ResourceUtil.getInputStream(BIBSONOMYDS_RESOURCE_PATH, BIBSONOMYDS.class); - if (stream == null) { - throw new FileNotFoundException("couldn't find resource " + BIBSONOMYDS_RESOURCE_PATH); - } - model.readFrom(stream, Syntax.Turtle); - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - /** The namespace for BIBSONOMYDS */ - public static final URI NS_BIBSONOMYDS = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#"); - /** - * Type: Class <br/> - * Label: Bibsonomy Data Source <br/> - * Comment: Describes a bibsonomy account <br/> - */ - public static final URI BibsonomyDataSource = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#BibsonomyDataSource"); - /** - * Type: Class <br/> - */ - public static final URI CrawlType = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#CrawlType"); - /** - * Type: Instance of http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#CrawlType <br/> - */ - public static final URI TagsAndItemsCrawlType = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#TagsAndItemsCrawlType"); - /** - * Type: Instance of http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#CrawlType <br/> - */ - public static final URI TagsOnlyCrawlType = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#TagsOnlyCrawlType"); - /** - * Type: Property <br/> - * Label: Crawl type <br/> - * Comment: Type of crawl <br/> - * Domain: http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#BibsonomyDataSource <br/> - * Range: http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#CrawlType <br/> - */ - public static final URI crawlType = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#crawlType"); -} Deleted: aperture/trunk/core/websites/bibsonomy/src/main/java/org/semanticdesktop/aperture/websites/bibsonomy/BibsonomyDataSource.java =================================================================== --- aperture/trunk/core/websites/bibsonomy/src/main/java/org/semanticdesktop/aperture/websites/bibsonomy/BibsonomyDataSource.java 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/bibsonomy/src/main/java/org/semanticdesktop/aperture/websites/bibsonomy/BibsonomyDataSource.java 2009-02-27 10:27:32 UTC (rev 1772) @@ -1,115 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.websites.bibsonomy; -import org.ontoware.rdf2go.model.node.URI; -import org.semanticdesktop.aperture.datasource.DataSource; -import org.semanticdesktop.aperture.datasource.base.DataSourceBase; -import org.semanticdesktop.aperture.rdf.RDFContainer; - -/** - * Data source class file. Created by org.semanticdesktop.aperture.util.DataSourceClassGenerator on Mon Jul 21 14:59:21 CEST 2008 - * input file: /Users/pikson/DFKI/psew_workspace/aperture/src/java/org/semanticdesktop/aperture/websites/bibsonomy/bibsonomyDataSource.ttl - * class uri: http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#BibsonomyDataSource - */ -public class BibsonomyDataSource extends DataSourceBase { - - /** - * @see DataSource#getType() - */ - public URI getType() { - return BIBSONOMYDS.BibsonomyDataSource; - } - - /** - * Returns the Username used for authentication in a data source - * - * @return the Username used for authentication in a data source or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public String getUsername() { - return getConfiguration().getString(org.semanticdesktop.aperture.vocabulary.DATASOURCE.username); - } - - /** - * Sets the Username used for authentication in a data source - * - * @param username Username used for authentication in a data source, can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setUsername(String username) { - if ( username == null) { - getConfiguration().remove(org.semanticdesktop.aperture.vocabulary.DATASOURCE.username); - } else { - getConfiguration().put(org.semanticdesktop.aperture.vocabulary.DATASOURCE.username,username); - } - } - - /** - * Enum of possible values of the crawlType property - */ - public static enum CrawlType { - /** Constant representing http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#TagsAndItemsCrawlType*/ - TagsAndItemsCrawlType, - /** Constant representing http://aperture.semanticdesktop.org/ontology/2007/08/11/bibsonomyds#TagsOnlyCrawlType*/ - TagsOnlyCrawlType; - - public static CrawlType fromUri(URI uri) { - if (uri == null) { - return null; - } - else if (uri.equals(BIBSONOMYDS.TagsAndItemsCrawlType)) { - return TagsAndItemsCrawlType; - } - else if (uri.equals(BIBSONOMYDS.TagsOnlyCrawlType)) { - return TagsOnlyCrawlType; - } - else { - return null; - } - } - public URI toUri() { - if (this.equals(TagsAndItemsCrawlType)) { - return BIBSONOMYDS.TagsAndItemsCrawlType; - } - else if (this.equals(TagsOnlyCrawlType)) { - return BIBSONOMYDS.TagsOnlyCrawlType; - } - else { - return null; - } - } - } - - /** - * Returns the Type of crawl - * - * @return the Type of crawl or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public CrawlType getCrawlType() { - return CrawlType.fromUri(getConfiguration().getURI(BIBSONOMYDS.crawlType)); - } - - - /** - * Sets the Type of crawl - * - * @param crawlType Type of crawl, can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setCrawlType(CrawlType crawlType) { - if ( crawlType == null) { - getConfiguration().remove(BIBSONOMYDS.crawlType); - } else { - getConfiguration().put(BIBSONOMYDS.crawlType,crawlType.toUri()); - } - } -} Property changes on: aperture/trunk/core/websites/core ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Property changes on: aperture/trunk/core/websites/delicious ___________________________________________________________________ Added: svn:ignore + *.classpath .project .settings target Modified: aperture/trunk/core/websites/delicious/pom.xml =================================================================== --- aperture/trunk/core/websites/delicious/pom.xml 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/delicious/pom.xml 2009-02-27 10:27:32 UTC (rev 1772) @@ -17,8 +17,8 @@ <description>del.icio.us website implementation</description> <properties> - <ontology.input>src/main/resources/org/semanticdesktop/aperture/websites/delicious/DeliciousDataSource.ttl</ontology.input> - <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/12/deliciousds#</ontology.namespace> + <ontology.input>src/main/resources/org/semanticdesktop/aperture/websites/delicious/deliciousDataSource.ttl</ontology.input> + <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/11/deliciousds#</ontology.namespace> <ontology.class>DELICIOUSDS</ontology.class> <generator.output.package>org.semanticdesktop.aperture.websites.delicious</generator.output.package> <generator.output.class>DeliciousDataSource</generator.output.class> @@ -36,6 +36,10 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-web</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-detector-core</artifactId> </dependency> <dependency> @@ -52,6 +56,11 @@ </dependency> <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + </dependency> + + <dependency> <groupId>org.semweb4j</groupId> <artifactId>rdf2go.api</artifactId> </dependency> Deleted: aperture/trunk/core/websites/delicious/src/main/java/org/semanticdesktop/aperture/websites/delicious/DELICIOUSDS.java =================================================================== --- aperture/trunk/core/websites/delicious/src/main/java/org/semanticdesktop/aperture/websites/delicious/DELICIOUSDS.java 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/delicious/src/main/java/org/semanticdesktop/aperture/websites/delicious/DELICIOUSDS.java 2009-02-27 10:27:32 UTC (rev 1772) @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.websites.delicious; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import org.ontoware.rdf2go.model.Model; -import org.ontoware.rdf2go.model.Syntax; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.util.ResourceUtil; -/** - * Vocabulary File. Created by org.semanticdesktop.aperture.util.VocabularyWriter on Tue Jul 15 22:54:55 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/websites/delicious/deliciousDataSource.ttl - * namespace: http://aperture.semanticdesktop.org/ontology/2007/08/11/deliciousds# - */ -public class DELICIOUSDS { - - /** Path to the ontology resource */ - public static final String DELICIOUSDS_RESOURCE_PATH = - "org/semanticdesktop/aperture/websites/delicious/deliciousDataSource.ttl"; - - /** - * Puts the DELICIOUSDS ontology into the given model. - * @param model The model for the source ontology to be put into. - * @throws Exception if something goes wrong. - */ - public static void getDELICIOUSDSOntology(Model model) { - try { - InputStream stream = ResourceUtil.getInputStream(DELICIOUSDS_RESOURCE_PATH, DELICIOUSDS.class); - if (stream == null) { - throw new FileNotFoundException("couldn't find resource " + DELICIOUSDS_RESOURCE_PATH); - } - model.readFrom(stream, Syntax.Turtle); - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - /** The namespace for DELICIOUSDS */ - public static final URI NS_DELICIOUSDS = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/deliciousds#"); - /** - * Type: Class <br/> - * Label: del.icio.us Data Source <br/> - * Comment: Describes a del.icio.us account <br/> - */ - public static final URI DeliciousDataSource = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/deliciousds#DeliciousDataSource"); -} Deleted: aperture/trunk/core/websites/delicious/src/main/java/org/semanticdesktop/aperture/websites/delicious/DeliciousDataSource.java =================================================================== --- aperture/trunk/core/websites/delicious/src/main/java/org/semanticdesktop/aperture/websites/delicious/DeliciousDataSource.java 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/delicious/src/main/java/org/semanticdesktop/aperture/websites/delicious/DeliciousDataSource.java 2009-02-27 10:27:32 UTC (rev 1772) @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.websites.delicious; -import org.ontoware.rdf2go.model.node.URI; -import org.semanticdesktop.aperture.datasource.DataSource; -import org.semanticdesktop.aperture.datasource.base.DataSourceBase; -import org.semanticdesktop.aperture.rdf.RDFContainer; - -/** - * Data source class file. Created by org.semanticdesktop.aperture.util.DataSourceClassGenerator on Tue Jul 15 22:54:59 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/websites/delicious/deliciousDataSource.ttl - * class uri: http://aperture.semanticdesktop.org/ontology/2007/08/11/deliciousds#DeliciousDataSource - */ -public class DeliciousDataSource extends DataSourceBase { - - /** - * @see DataSource#getType() - */ - public URI getType() { - return DELICIOUSDS.DeliciousDataSource; - } - - /** - * Returns the Username used for authentication in a data source - * - * @return the Username used for authentication in a data source or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public String getUsername() { - return getConfiguration().getString(org.semanticdesktop.aperture.vocabulary.DATASOURCE.username); - } - - /** - * Sets the Username used for authentication in a data source - * - * @param username Username used for authentication in a data source, can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setUsername(String username) { - if ( username == null) { - getConfiguration().remove(org.semanticdesktop.aperture.vocabulary.DATASOURCE.username); - } else { - getConfiguration().put(org.semanticdesktop.aperture.vocabulary.DATASOURCE.username,username); - } - } - - /** - * Returns the The Password used to access this datasource. - * - * @return the The Password used to access this datasource. or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public String getPassword() { - return getConfiguration().getString(org.semanticdesktop.aperture.vocabulary.DATASOURCE.password); - } - - /** - * Sets the The Password used to access this datasource. - * - * @param password The Password used to access this datasource., can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setPassword(String password) { - if ( password == null) { - getConfiguration().remove(org.semanticdesktop.aperture.vocabulary.DATASOURCE.password); - } else { - getConfiguration().put(org.semanticdesktop.aperture.vocabulary.DATASOURCE.password,password); - } - } -} Property changes on: aperture/trunk/core/websites/flickr ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/websites/flickr/pom.xml =================================================================== --- aperture/trunk/core/websites/flickr/pom.xml 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/flickr/pom.xml 2009-02-27 10:27:32 UTC (rev 1772) @@ -17,8 +17,8 @@ <description>Flickr website implementation</description> <properties> - <ontology.input>src/main/resources/org/semanticdesktop/aperture/websites/flickr/FlickrDataSource.ttl</ontology.input> - <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/12/flickrds#</ontology.namespace> + <ontology.input>src/main/resources/org/semanticdesktop/aperture/websites/flickr/flickrDataSource.ttl</ontology.input> + <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#</ontology.namespace> <ontology.class>FLICKRDS</ontology.class> <generator.output.package>org.semanticdesktop.aperture.websites.flickr</generator.output.package> <generator.output.class>FlickrDataSource</generator.output.class> @@ -52,6 +52,11 @@ </dependency> <dependency> + <groupId>com.aetrion.flickr</groupId> + <artifactId>flickrapi</artifactId> + </dependency> + + <dependency> <groupId>org.semweb4j</groupId> <artifactId>rdf2go.api</artifactId> </dependency> Deleted: aperture/trunk/core/websites/flickr/src/main/java/org/semanticdesktop/aperture/websites/flickr/FLICKRDS.java =================================================================== --- aperture/trunk/core/websites/flickr/src/main/java/org/semanticdesktop/aperture/websites/flickr/FLICKRDS.java 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/flickr/src/main/java/org/semanticdesktop/aperture/websites/flickr/FLICKRDS.java 2009-02-27 10:27:32 UTC (rev 1772) @@ -1,103 +0,0 @@ -/* - * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.websites.flickr; -import java.io.InputStream; -import java.io.FileNotFoundException; -import org.ontoware.rdf2go.model.Model; -import org.ontoware.rdf2go.model.Syntax; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.util.ResourceUtil; -/** - * Vocabulary File. Created by org.semanticdesktop.aperture.util.VocabularyWriter on Wed Dec 03 00:32:23 CET 2008 - * input file: D:\ganymedeworkspace\aperture-trunk/src/java/org/semanticdesktop/aperture/websites/flickr/flickrDataSource.ttl - * namespace: http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds# - */ -public class FLICKRDS { - - /** Path to the ontology resource */ - public static final String FLICKRDS_RESOURCE_PATH = - "org/semanticdesktop/aperture/websites/flickr/flickrDataSource.ttl"; - - /** - * Puts the FLICKRDS ontology into the given model. - * @param model The model for the source ontology to be put into. - * @throws Exception if something goes wrong. - */ - public static void getFLICKRDSOntology(Model model) { - try { - InputStream stream = ResourceUtil.getInputStream(FLICKRDS_RESOURCE_PATH, FLICKRDS.class); - if (stream == null) { - throw new FileNotFoundException("couldn't find resource " + FLICKRDS_RESOURCE_PATH); - } - model.readFrom(stream, Syntax.Turtle); - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - /** The namespace for FLICKRDS */ - public static final URI NS_FLICKRDS = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#"); - /** - * Type: Class <br/> - * Label: Flickr Data Source <br/> - * Comment: Describes a Flickr account <br/> - */ - public static final URI FlickrDataSource = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#FlickrDataSource"); - /** - * Type: Class <br/> - */ - public static final URI CrawlType = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#CrawlType"); - /** - * Type: Instance of http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#CrawlType <br/> - */ - public static final URI MetadataAndPicturesCrawlType = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#MetadataAndPicturesCrawlType"); - /** - * Type: Instance of http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#CrawlType <br/> - */ - public static final URI MetadataOnlyCrawlType = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#MetadataOnlyCrawlType"); - /** - * Type: Property <br/> - * Label: Crawl type <br/> - * Comment: Type of crawl <br/> - * Domain: http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#FlickrDataSource <br/> - * Range: http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#CrawlType <br/> - */ - public static final URI crawlType = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#crawlType"); - /** - * Type: Property <br/> - * Label: Photo Folder <br/> - * Comment: Path to the folder where local copies of your photos will be stored <br/> - * Domain: http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#FlickrDataSource <br/> - * Range: http://www.w3.org/2001/XMLSchema#string <br/> - */ - public static final URI targetFolder = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#targetFolder"); - /** - * Type: Property <br/> - * Label: Account the crawl <br/> - * Comment: The Flickr account that should be crawled <br/> - * Domain: http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#FlickrDataSource <br/> - * Range: http://www.w3.org/2001/XMLSchema#string <br/> - */ - public static final URI accountToCrawl = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#accountToCrawl"); - /** - * Type: Property <br/> - * Label: API Key <br/> - * Comment: The Flickr API key <br/> - * Domain: http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#FlickrDataSource <br/> - * Range: http://www.w3.org/2001/XMLSchema#string <br/> - */ - public static final URI apikey = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#apikey"); - /** - * Type: Property <br/> - * Label: Shared secret <br/> - * Comment: The shared secret associated with your Flicckr API key <br/> - * Domain: http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#FlickrDataSource <br/> - * Range: http://www.w3.org/2001/XMLSchema#string <br/> - */ - public static final URI sharedSecret = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#sharedSecret"); -} Deleted: aperture/trunk/core/websites/flickr/src/main/java/org/semanticdesktop/aperture/websites/flickr/FlickrDataSource.java =================================================================== --- aperture/trunk/core/websites/flickr/src/main/java/org/semanticdesktop/aperture/websites/flickr/FlickrDataSource.java 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/flickr/src/main/java/org/semanticdesktop/aperture/websites/flickr/FlickrDataSource.java 2009-02-27 10:27:32 UTC (rev 1772) @@ -1,199 +0,0 @@ -/* - * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.websites.flickr; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.model.node.Node; -import org.semanticdesktop.aperture.util.ModelUtil; -import org.semanticdesktop.aperture.datasource.DataSource; -import org.semanticdesktop.aperture.datasource.base.DataSourceBase; -import org.semanticdesktop.aperture.datasource.config.ConfigurationUtil; -import org.semanticdesktop.aperture.util.ModelUtil; -import java.util.Collection; -import java.util.List; -import java.util.LinkedList; - -/** - * Data source class file. Created by org.semanticdesktop.aperture.util.DataSourceClassGenerator on Wed Dec 03 00:32:23 CET 2008 - * input file: D:\ganymedeworkspace\aperture-trunk/src/java/org/semanticdesktop/aperture/websites/flickr/flickrDataSource.ttl - * class uri: http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#FlickrDataSource - */ -public class FlickrDataSource extends DataSourceBase { - - /** - * @see DataSource#getType() - */ - public URI getType() { - return FLICKRDS.FlickrDataSource; - } - - /** - * Returns the The Flickr account that should be crawled - * - * @return the The Flickr account that should be crawled or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public String getAccountToCrawl() { - return getConfiguration().getString(FLICKRDS.accountToCrawl); - } - - /** - * Sets the The Flickr account that should be crawled - * - * @param accountToCrawl The Flickr account that should be crawled, can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setAccountToCrawl(String accountToCrawl) { - if ( accountToCrawl == null) { - getConfiguration().remove(FLICKRDS.accountToCrawl); - } else { - getConfiguration().put(FLICKRDS.accountToCrawl,accountToCrawl); - } - } - - /** - * Returns the The Flickr API key - * - * @return the The Flickr API key or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public String getApikey() { - return getConfiguration().getString(FLICKRDS.apikey); - } - - /** - * Sets the The Flickr API key - * - * @param apikey The Flickr API key, can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setApikey(String apikey) { - if ( apikey == null) { - getConfiguration().remove(FLICKRDS.apikey); - } else { - getConfiguration().put(FLICKRDS.apikey,apikey); - } - } - - /** - * Returns the The shared secret associated with your Flicckr API key - * - * @return the The shared secret associated with your Flicckr API key or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public String getSharedSecret() { - return getConfiguration().getString(FLICKRDS.sharedSecret); - } - - /** - * Sets the The shared secret associated with your Flicckr API key - * - * @param sharedSecret The shared secret associated with your Flicckr API key, can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setSharedSecret(String sharedSecret) { - if ( sharedSecret == null) { - getConfiguration().remove(FLICKRDS.sharedSecret); - } else { - getConfiguration().put(FLICKRDS.sharedSecret,sharedSecret); - } - } - - /** - * Returns the Path to the folder where local copies of your photos will be stored - * - * @return the Path to the folder where local copies of your photos will be stored or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public String getTargetFolder() { - return getConfiguration().getString(FLICKRDS.targetFolder); - } - - /** - * Sets the Path to the folder where local copies of your photos will be stored - * - * @param targetFolder Path to the folder where local copies of your photos will be stored, can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setTargetFolder(String targetFolder) { - if ( targetFolder == null) { - getConfiguration().remove(FLICKRDS.targetFolder); - } else { - getConfiguration().put(FLICKRDS.targetFolder,targetFolder); - } - } - - /** - * Enum of possible values of the crawlType property - */ - public static enum CrawlType { - /** Constant representing http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#MetadataAndPicturesCrawlType*/ - MetadataAndPicturesCrawlType, - /** Constant representing http://aperture.semanticdesktop.org/ontology/2007/08/11/flickrds#MetadataOnlyCrawlType*/ - MetadataOnlyCrawlType; - - public static CrawlType fromUri(URI uri) { - if (uri == null) { - return null; - } - else if (uri.equals(FLICKRDS.MetadataAndPicturesCrawlType)) { - return MetadataAndPicturesCrawlType; - } - else if (uri.equals(FLICKRDS.MetadataOnlyCrawlType)) { - return MetadataOnlyCrawlType; - } - else { - return null; - } - } - public URI toUri() { - if (this.equals(MetadataAndPicturesCrawlType)) { - return FLICKRDS.MetadataAndPicturesCrawlType; - } - else if (this.equals(MetadataOnlyCrawlType)) { - return FLICKRDS.MetadataOnlyCrawlType; - } - else { - return null; - } - } - } - - /** - * Returns the Type of crawl - * - * @return the Type of crawl or null if no value has been set - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public CrawlType getCrawlType() { - return CrawlType.fromUri(getConfiguration().getURI(FLICKRDS.crawlType)); - } - - - /** - * Sets the Type of crawl - * - * @param crawlType Type of crawl, can be null in which case any previous setting will be removed - * @throws NullPointerException if no configuration has been set, use - * {@link #setConfiguration(RDFContainer)} before calling this method - */ - public void setCrawlType(CrawlType crawlType) { - if ( crawlType == null) { - getConfiguration().remove(FLICKRDS.crawlType); - } else { - getConfiguration().put(FLICKRDS.crawlType,crawlType.toUri()); - } - } -} Property changes on: aperture/trunk/core/websites/iphoto ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/core/websites/iphoto/pom.xml =================================================================== --- aperture/trunk/core/websites/iphoto/pom.xml 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/iphoto/pom.xml 2009-02-27 10:27:32 UTC (rev 1772) @@ -17,11 +17,11 @@ <description>iPhoto website implementation</description> <properties> - <ontology.input>src/main/resources/org/semanticdesktop/aperture/websites/iphoto/IphotoDataSource.ttl</ontology.input> - <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/12/iphotods#</ontology.namespace> - <ontology.class>FLICKRDS</ontology.class> + <ontology.input>src/main/resources/org/semanticdesktop/aperture/websites/iphoto/iphotoDataSource.ttl</ontology.input> + <ontology.namespace>http://aperture.semanticdesktop.org/ontology/2007/08/11/iphotods#</ontology.namespace> + <ontology.class>IPHOTODS</ontology.class> <generator.output.package>org.semanticdesktop.aperture.websites.iphoto</generator.output.package> - <generator.output.class>IphotoDataSource</generator.output.class> + <generator.output.class>IPhotoKeywordDataSource</generator.output.class> <generator.output.dir>src/main/java</generator.output.dir> </properties> Deleted: aperture/trunk/core/websites/iphoto/src/main/java/org/semanticdesktop/aperture/websites/iphoto/IPHOTODS.java =================================================================== --- aperture/trunk/core/websites/iphoto/src/main/java/org/semanticdesktop/aperture/websites/iphoto/IPHOTODS.java 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/iphoto/src/main/java/org/semanticdesktop/aperture/websites/iphoto/IPHOTODS.java 2009-02-27 10:27:32 UTC (rev 1772) @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.websites.iphoto; -import java.io.FileNotFoundException; -import java.io.InputStream; - -import org.ontoware.rdf2go.model.Model; -import org.ontoware.rdf2go.model.Syntax; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.util.ResourceUtil; -/** - * Vocabulary File. Created by org.semanticdesktop.aperture.util.VocabularyWriter on Tue Jul 15 22:54:48 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/websites/iphoto/iphotoDataSource.ttl - * namespace: http://aperture.semanticdesktop.org/ontology/2007/08/11/iphotods# - */ -public class IPHOTODS { - - /** Path to the ontology resource */ - public static final String IPHOTODS_RESOURCE_PATH = - "org/semanticdesktop/aperture/websites/iphoto/iphotoDataSource.ttl"; - - /** - * Puts the IPHOTODS ontology into the given model. - * @param model The model for the source ontology to be put into. - * @throws Exception if something goes wrong. - */ - public static void getIPHOTODSOntology(Model model) { - try { - InputStream stream = ResourceUtil.getInputStream(IPHOTODS_RESOURCE_PATH, IPHOTODS.class); - if (stream == null) { - throw new FileNotFoundException("couldn't find resource " + IPHOTODS_RESOURCE_PATH); - } - model.readFrom(stream, Syntax.Turtle); - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - /** The namespace for IPHOTODS */ - public static final URI NS_IPHOTODS = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/iphotods#"); - /** - * Type: Class <br/> - * Label: IPhoto Keyword Data Source <br/> - * Comment: Describes the IPhoto application. <br/> - */ - public static final URI IPhotoKeywordDataSource = new URIImpl("http://aperture.semanticdesktop.org/ontology/2007/08/11/iphotods#IPhotoKeywordDataSource"); -} Deleted: aperture/trunk/core/websites/iphoto/src/main/java/org/semanticdesktop/aperture/websites/iphoto/IPhotoKeywordDataSource.java =================================================================== --- aperture/trunk/core/websites/iphoto/src/main/java/org/semanticdesktop/aperture/websites/iphoto/IPhotoKeywordDataSource.java 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/core/websites/iphoto/src/main/java/org/semanticdesktop/aperture/websites/iphoto/IPhotoKeywordDataSource.java 2009-02-27 10:27:32 UTC (rev 1772) @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.websites.iphoto; -import org.ontoware.rdf2go.model.node.URI; -import org.semanticdesktop.aperture.datasource.DataSource; -import org.semanticdesktop.aperture.datasource.base.DataSourceBase; - -/** - * Data source class file. Created by org.semanticdesktop.aperture.util.DataSourceClassGenerator on Tue Jul 15 22:54:52 CEST 2008 - * input file: D:\workspace\aperture/src/java/org/semanticdesktop/aperture/websites/iphoto/iphotoDataSource.ttl - * class uri: http://aperture.semanticdesktop.org/ontology/2007/08/11/iphotods#IPhotoKeywordDataSource - */ -public class IPhotoKeywordDataSource extends DataSourceBase { - - /** - * @see DataSource#getType() - */ - public URI getType() { - return IPHOTODS.IPhotoKeywordDataSource; - } -} Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-02-27 10:09:03 UTC (rev 1771) +++ aperture/trunk/pom.xml 2009-02-27 10:27:32 UTC (rev 1772) @@ -62,6 +62,11 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-web</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-crawler-sub-mime</artifactId> <version>${aperture.version}</version> </dependency> @@ -160,6 +165,11 @@ <artifactId>aperture-vocabulary-core</artifactId> <version>${aperture.version}</version> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-websites-core</artifactId> + <version>${aperture.version}</version> + </dependency> <!-- Aperture Tools --> <dependency> @@ -393,6 +403,13 @@ <scope>runtime</scope> </dependency> + <!-- Flickr --> + <dependency> + <groupId>com.aetrion.flickr</groupId> + <artifactId>flickrapi</artifactId> + <version>1.1</version> + </dependency> + <!-- Testing --> <dependency> <groupId>junit</groupId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <her...@us...> - 2009-03-02 08:57:16
|
Revision: 1775 http://aperture.svn.sourceforge.net/aperture/?rev=1775&view=rev Author: herko_ter_horst Date: 2009-03-02 08:57:01 +0000 (Mon, 02 Mar 2009) Log Message: ----------- Module skeletons. Added Paths: ----------- aperture/trunk/default/security/ aperture/trunk/default/security/pom.xml aperture/trunk/default/security/src/ aperture/trunk/default/security/src/main/ aperture/trunk/default/security/src/main/java/ aperture/trunk/default/security/src/main/java/org/ aperture/trunk/default/security/src/main/java/org/semanticdesktop/ aperture/trunk/default/security/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/default/security/src/test/ aperture/trunk/default/security/src/test/java/ aperture/trunk/default/security/src/test/java/org/ aperture/trunk/default/security/src/test/java/org/semanticdesktop/ aperture/trunk/default/security/src/test/java/org/semanticdesktop/aperture/ aperture/trunk/runtime/ aperture/trunk/runtime/default/ aperture/trunk/runtime/default/pom.xml aperture/trunk/runtime/default/src/ aperture/trunk/runtime/default/src/main/ aperture/trunk/runtime/default/src/main/java/ aperture/trunk/runtime/default/src/main/java/org/ aperture/trunk/runtime/default/src/main/java/org/semanticdesktop/ aperture/trunk/runtime/default/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/runtime/default/src/main/resources/ aperture/trunk/runtime/default/src/main/resources/org/ aperture/trunk/runtime/default/src/main/resources/org/semanticdesktop/ aperture/trunk/runtime/default/src/main/resources/org/semanticdesktop/aperture/ aperture/trunk/runtime/default/src/test/ aperture/trunk/runtime/default/src/test/java/ aperture/trunk/runtime/default/src/test/java/org/ aperture/trunk/runtime/default/src/test/java/org/semanticdesktop/ aperture/trunk/runtime/default/src/test/java/org/semanticdesktop/aperture/ aperture/trunk/runtime/pom.xml Property changes on: aperture/trunk/default/security ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings Added: aperture/trunk/default/security/pom.xml =================================================================== --- aperture/trunk/default/security/pom.xml (rev 0) +++ aperture/trunk/default/security/pom.xml 2009-03-02 08:57:01 UTC (rev 1775) @@ -0,0 +1,67 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-default-security</artifactId> + + <name>Aperture Default: Security</name> + <description>Security API and default implementations</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-security-core</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-security-standard</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-security-swing</artifactId> + <version>${aperture.version}</version> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>!org.semanticdesktop.aperture.security.bundle,!org.semanticdesktop.aperture.security.*.bundle,!org.semanticdesktop.aperture.security.impl,org.semanticdesktop.aperture.security.*</Export-Package> + <Private-Package>org.semanticdesktop.aperture.security.bundle;-split-package:=first,org.semanticdesktop.aperture.security.*.bundle,org.semanticdesktop.aperture.security.impl;-split-package:=merge-first</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.security.bundle.DefaultDataOpenerServiceActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> Added: aperture/trunk/runtime/default/pom.xml =================================================================== --- aperture/trunk/runtime/default/pom.xml (rev 0) +++ aperture/trunk/runtime/default/pom.xml 2009-03-02 08:57:01 UTC (rev 1775) @@ -0,0 +1,97 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-runtime</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-runtime-default</artifactId> + + <name>Aperture Runtime: Default</name> + <description>Default runtime containing all APIs and implementations</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-accessor-core</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-accessor</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-crawler</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-datasource</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-detector</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-extractor</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-linkextractor</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-mime-identifier</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-opener</artifactId> + <version>${aperture.version}</version> + </dependency> + + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi_R4_core</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <configuration> + <instructions> + <Export-Package>!org.semanticdesktop.aperture.accessor.bundle,!org.semanticdesktop.aperture.accessor.*.bundle,!org.semanticdesktop.aperture.accessor.impl,org.semanticdesktop.aperture.accessor.*</Export-Package> + <Private-Package>org.semanticdesktop.aperture.accessor.bundle;-split-package:=first,org.semanticdesktop.aperture.accessor.*.bundle,org.semanticdesktop.aperture.accessor.impl;-split-package:=merge-first</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.accessor.bundle.DefaultAccessorServiceActivator</Bundle-Activator> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> Added: aperture/trunk/runtime/pom.xml =================================================================== --- aperture/trunk/runtime/pom.xml (rev 0) +++ aperture/trunk/runtime/pom.xml 2009-03-02 08:57:01 UTC (rev 1775) @@ -0,0 +1,23 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-runtime</artifactId> + <packaging>pom</packaging> + + <name>Aperture Runtime</name> + <description>Runtime</description> + + <modules> + <module>default</module> + </modules> +</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <her...@us...> - 2009-03-02 13:06:42
|
Revision: 1776 http://aperture.svn.sourceforge.net/aperture/?rev=1776&view=rev Author: herko_ter_horst Date: 2009-03-02 13:06:34 +0000 (Mon, 02 Mar 2009) Log Message: ----------- Create default runtime module. Modified Paths: -------------- aperture/trunk/default/datasource/pom.xml aperture/trunk/default/pom.xml aperture/trunk/default/security/pom.xml aperture/trunk/pom.xml aperture/trunk/runtime/default/pom.xml Added Paths: ----------- aperture/trunk/default/security/src/main/java/org/semanticdesktop/aperture/security/ aperture/trunk/default/security/src/main/java/org/semanticdesktop/aperture/security/bundle/ aperture/trunk/default/security/src/main/java/org/semanticdesktop/aperture/security/bundle/DefaultSecurityServiceActivator.java aperture/trunk/runtime/default/src/main/java/org/semanticdesktop/aperture/bundle/ aperture/trunk/runtime/default/src/main/java/org/semanticdesktop/aperture/bundle/DefaultRuntimeActivator.java Property Changed: ---------------- aperture/trunk/default/security/ aperture/trunk/runtime/default/ Modified: aperture/trunk/default/datasource/pom.xml =================================================================== --- aperture/trunk/default/datasource/pom.xml 2009-03-02 08:57:01 UTC (rev 1775) +++ aperture/trunk/default/datasource/pom.xml 2009-03-02 13:06:34 UTC (rev 1776) @@ -47,6 +47,21 @@ <artifactId>aperture-datasource-web</artifactId> <version>${aperture.version}</version> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-addressbook-apple</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-addressbook-thunderbird</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-outlook</artifactId> + <version>${aperture.version}</version> + </dependency> <dependency> <groupId>org.osgi</groupId> Modified: aperture/trunk/default/pom.xml =================================================================== --- aperture/trunk/default/pom.xml 2009-03-02 08:57:01 UTC (rev 1775) +++ aperture/trunk/default/pom.xml 2009-03-02 13:06:34 UTC (rev 1776) @@ -26,5 +26,6 @@ <module>linkextractor</module> <module>mime-identifier</module> <module>opener</module> + <module>security</module> </modules> </project> Property changes on: aperture/trunk/default/security ___________________________________________________________________ Modified: svn:ignore - .classpath .project .settings + .classpath .project .settings target Modified: aperture/trunk/default/security/pom.xml =================================================================== --- aperture/trunk/default/security/pom.xml 2009-03-02 08:57:01 UTC (rev 1775) +++ aperture/trunk/default/security/pom.xml 2009-03-02 13:06:34 UTC (rev 1776) @@ -55,9 +55,9 @@ <extensions>true</extensions> <configuration> <instructions> - <Export-Package>!org.semanticdesktop.aperture.security.bundle,!org.semanticdesktop.aperture.security.*.bundle,!org.semanticdesktop.aperture.security.impl,org.semanticdesktop.aperture.security.*</Export-Package> - <Private-Package>org.semanticdesktop.aperture.security.bundle;-split-package:=first,org.semanticdesktop.aperture.security.*.bundle,org.semanticdesktop.aperture.security.impl;-split-package:=merge-first</Private-Package> - <Bundle-Activator>org.semanticdesktop.aperture.security.bundle.DefaultDataOpenerServiceActivator</Bundle-Activator> + <Export-Package>!org.semanticdesktop.aperture.security.bundle,!org.semanticdesktop.aperture.security.**.bundle,!org.semanticdesktop.aperture.security.**.impl,org.semanticdesktop.aperture.security.*</Export-Package> + <Private-Package>org.semanticdesktop.aperture.security.bundle;-split-package:=first,org.semanticdesktop.aperture.security.**.bundle;-split-package:=merge-first,org.semanticdesktop.aperture.security.**.impl;-split-package:=merge-first</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.security.bundle.DefaultSecurityServiceActivator</Bundle-Activator> </instructions> </configuration> </plugin> Added: aperture/trunk/default/security/src/main/java/org/semanticdesktop/aperture/security/bundle/DefaultSecurityServiceActivator.java =================================================================== --- aperture/trunk/default/security/src/main/java/org/semanticdesktop/aperture/security/bundle/DefaultSecurityServiceActivator.java (rev 0) +++ aperture/trunk/default/security/src/main/java/org/semanticdesktop/aperture/security/bundle/DefaultSecurityServiceActivator.java 2009-03-02 13:06:34 UTC (rev 1776) @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2006 - 2009 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.security.bundle; + +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceEvent; +import org.osgi.framework.ServiceListener; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +import org.semanticdesktop.aperture.security.standard.bundle.StandardSecurityActivator; +import org.semanticdesktop.aperture.security.swing.bundle.SwingSecurityActivator; +import org.semanticdesktop.aperture.security.trustdecider.TrustDeciderFactory; +import org.semanticdesktop.aperture.security.trustdecider.TrustDeciderRegistry; +import org.semanticdesktop.aperture.security.trustdecider.impl.TrustDeciderRegistryImpl; +import org.semanticdesktop.aperture.security.trustmanager.TrustManagerFactory; +import org.semanticdesktop.aperture.security.trustmanager.TrustManagerRegistry; +import org.semanticdesktop.aperture.security.trustmanager.impl.TrustManagerRegistryImpl; + +public class DefaultSecurityServiceActivator implements BundleActivator { + + private BundleContext bc = null; + + private ServiceRegistration deciderRegistryRegistration; + + private TrustDeciderRegistry deciderRegistry; + + private ServiceRegistration managerRegistryRegistration; + + private TrustManagerRegistry managerRegistry; + + private StandardSecurityActivator standardActivator = new StandardSecurityActivator(); + private SwingSecurityActivator swingActivator = new SwingSecurityActivator(); + + public void start(BundleContext context) throws Exception { + + bc = context; + deciderRegistry = new TrustDeciderRegistryImpl(); + deciderRegistryRegistration = bc.registerService( + TrustDeciderRegistry.class.getName(), deciderRegistry, + new Hashtable()); + + String filter = "(objectclass=" + TrustDeciderFactory.class.getName() + + ")"; + DeciderListener deciderListener = new DeciderListener(); + bc.addServiceListener(deciderListener, filter); + + ServiceReference references[] = bc.getServiceReferences(null, filter); + + for (int i = 0; references != null && i < references.length; i++) { + deciderListener.serviceChanged(new ServiceEvent( + ServiceEvent.REGISTERED, references[i])); + } + + managerRegistry = new TrustManagerRegistryImpl(); + managerRegistryRegistration = bc.registerService( + TrustManagerRegistry.class.getName(), managerRegistry, + new Hashtable()); + + filter = "(objectclass=" + TrustManagerFactory.class.getName() + ")"; + ManagerListener managerListener = new ManagerListener(); + bc.addServiceListener(managerListener, filter); + + references = bc.getServiceReferences(null, filter); + + for (int i = 0; references != null && i < references.length; i++) { + managerListener.serviceChanged(new ServiceEvent( + ServiceEvent.REGISTERED, references[i])); + } + + standardActivator.start(context); + swingActivator.start(context); + } + + public void stop(BundleContext context) throws Exception { + swingActivator.stop(context); + standardActivator.stop(context); + + deciderRegistryRegistration.unregister(); + managerRegistryRegistration.unregister(); + bc = null; + } + + private class ManagerListener implements ServiceListener { + public void serviceChanged(ServiceEvent event) { + TrustManagerFactory factory; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + factory = (TrustManagerFactory) bc.getService(event + .getServiceReference()); + managerRegistry.add(factory); + break; + case ServiceEvent.MODIFIED: + factory = (TrustManagerFactory) bc.getService(event + .getServiceReference()); + managerRegistry.remove(factory); + managerRegistry.add(factory); + break; + case ServiceEvent.UNREGISTERING: + factory = (TrustManagerFactory) bc.getService(event + .getServiceReference()); + managerRegistry.remove(factory); + break; + } + } + } + + private class DeciderListener implements ServiceListener { + public void serviceChanged(ServiceEvent event) { + TrustDeciderFactory factory; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + factory = (TrustDeciderFactory) bc.getService(event + .getServiceReference()); + deciderRegistry.add(factory); + break; + case ServiceEvent.MODIFIED: + factory = (TrustDeciderFactory) bc.getService(event + .getServiceReference()); + deciderRegistry.remove(factory); + deciderRegistry.add(factory); + break; + case ServiceEvent.UNREGISTERING: + factory = (TrustDeciderFactory) bc.getService(event + .getServiceReference()); + deciderRegistry.remove(factory); + break; + } + } + + } +} Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-02 08:57:01 UTC (rev 1775) +++ aperture/trunk/pom.xml 2009-03-02 13:06:34 UTC (rev 1776) @@ -27,6 +27,7 @@ <modules> <module>core</module> <module>default</module> + <module>runtime</module> <module>testbase</module> </modules> Property changes on: aperture/trunk/runtime/default ___________________________________________________________________ Added: svn:ignore + .classpath .project .settings target Modified: aperture/trunk/runtime/default/pom.xml =================================================================== --- aperture/trunk/runtime/default/pom.xml 2009-03-02 08:57:01 UTC (rev 1775) +++ aperture/trunk/runtime/default/pom.xml 2009-03-02 13:06:34 UTC (rev 1776) @@ -19,11 +19,6 @@ <dependencies> <dependency> <groupId>org.semanticdesktop.aperture</groupId> - <artifactId>aperture-accessor-core</artifactId> - <version>${aperture.version}</version> - </dependency> - <dependency> - <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-default-accessor</artifactId> <version>${aperture.version}</version> </dependency> @@ -62,6 +57,31 @@ <artifactId>aperture-default-opener</artifactId> <version>${aperture.version}</version> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-security</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-websites-bibsonomy</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-websites-delicious</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-websites-flickr</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-websites-iphoto</artifactId> + <version>${aperture.version}</version> + </dependency> <dependency> <groupId>org.osgi</groupId> @@ -85,9 +105,9 @@ <extensions>true</extensions> <configuration> <instructions> - <Export-Package>!org.semanticdesktop.aperture.accessor.bundle,!org.semanticdesktop.aperture.accessor.*.bundle,!org.semanticdesktop.aperture.accessor.impl,org.semanticdesktop.aperture.accessor.*</Export-Package> - <Private-Package>org.semanticdesktop.aperture.accessor.bundle;-split-package:=first,org.semanticdesktop.aperture.accessor.*.bundle,org.semanticdesktop.aperture.accessor.impl;-split-package:=merge-first</Private-Package> - <Bundle-Activator>org.semanticdesktop.aperture.accessor.bundle.DefaultAccessorServiceActivator</Bundle-Activator> + <Export-Package>!org.semanticdesktop.aperture.bundle,!org.semanticdesktop.aperture.*.bundle,!org.semanticdesktop.aperture.*.impl,org.semanticdesktop.aperture.*;-split-package:=merge-first</Export-Package> + <Private-Package>org.semanticdesktop.aperture.bundle,org.semanticdesktop.aperture.*.bundle;-split-package:=merge-first,org.semanticdesktop.aperture.*.impl;-split-package:=merge-first</Private-Package> + <Bundle-Activator>org.semanticdesktop.aperture.bundle.DefaultRuntimeActivator</Bundle-Activator> </instructions> </configuration> </plugin> Added: aperture/trunk/runtime/default/src/main/java/org/semanticdesktop/aperture/bundle/DefaultRuntimeActivator.java =================================================================== --- aperture/trunk/runtime/default/src/main/java/org/semanticdesktop/aperture/bundle/DefaultRuntimeActivator.java (rev 0) +++ aperture/trunk/runtime/default/src/main/java/org/semanticdesktop/aperture/bundle/DefaultRuntimeActivator.java 2009-03-02 13:06:34 UTC (rev 1776) @@ -0,0 +1,50 @@ +package org.semanticdesktop.aperture.bundle; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.semanticdesktop.aperture.accessor.bundle.DefaultAccessorServiceActivator; +import org.semanticdesktop.aperture.crawler.bundle.DefaultCrawlerServiceActivator; +import org.semanticdesktop.aperture.detector.bundle.DefaultDataSourceDetectorServiceActivator; +import org.semanticdesktop.aperture.extractor.bundle.DefaultExtractorServiceActivator; +import org.semanticdesktop.aperture.hypertext.linkextractor.bundle.DefaultLinkExtractorServiceActivator; +import org.semanticdesktop.aperture.mime.identifier.bundle.DefaultMimeIdentifierServiceActivator; +import org.semanticdesktop.aperture.opener.bundle.DefaultDataOpenerServiceActivator; +import org.semanticdesktop.aperture.security.bundle.DefaultSecurityServiceActivator; + +public class DefaultRuntimeActivator implements BundleActivator { + + private BundleActivator securityActivator = new DefaultSecurityServiceActivator(); + private BundleActivator linkextractorActivator = new DefaultLinkExtractorServiceActivator(); + private BundleActivator mimetypeIdentifierActivator = new DefaultMimeIdentifierServiceActivator(); + private BundleActivator dataSourceActivator = new DefaultSecurityServiceActivator(); + private BundleActivator detectorActivator = new DefaultDataSourceDetectorServiceActivator(); + private BundleActivator accessorActivator = new DefaultAccessorServiceActivator(); + private BundleActivator crawlerActivator = new DefaultCrawlerServiceActivator(); + private BundleActivator extractorActivator = new DefaultExtractorServiceActivator(); + private BundleActivator openerActivator = new DefaultDataOpenerServiceActivator(); + + public void start(BundleContext context) throws Exception { + securityActivator.start(context); + linkextractorActivator.start(context); + mimetypeIdentifierActivator.start(context); + dataSourceActivator.start(context); + detectorActivator.start(context); + accessorActivator.start(context); + crawlerActivator.start(context); + extractorActivator.start(context); + openerActivator.start(context); + } + + public void stop(BundleContext context) throws Exception { + openerActivator.stop(context); + extractorActivator.stop(context); + crawlerActivator.stop(context); + accessorActivator.stop(context); + detectorActivator.start(context); + dataSourceActivator.stop(context); + mimetypeIdentifierActivator.stop(context); + linkextractorActivator.stop(context); + securityActivator.stop(context); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-07 00:04:22
|
Revision: 1783 http://aperture.svn.sourceforge.net/aperture/?rev=1783&view=rev Author: mylka Date: 2009-03-07 00:04:18 +0000 (Sat, 07 Mar 2009) Log Message: ----------- moved 'testbase' to the newly created 'test' folder Added Paths: ----------- aperture/trunk/test/testbase/ Removed Paths: ------------- aperture/trunk/testbase/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <her...@us...> - 2009-03-10 11:19:23
|
Revision: 1789 http://aperture.svn.sourceforge.net/aperture/?rev=1789&view=rev Author: herko_ter_horst Date: 2009-03-10 11:19:12 +0000 (Tue, 10 Mar 2009) Log Message: ----------- Added DefaultSubCrawlerRegistry. Modified Paths: -------------- aperture/trunk/default/crawler/pom.xml aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/crawler/bundle/DefaultCrawlerServiceActivator.java aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/subcrawler/ aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/subcrawler/impl/ aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/subcrawler/impl/DefaultSubCrawlerRegistry.java aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/subcrawler/ aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/subcrawler/impl/ aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/subcrawler/impl/defaults.xml Property Changed: ---------------- aperture/trunk/test/docs/ Modified: aperture/trunk/default/crawler/pom.xml =================================================================== --- aperture/trunk/default/crawler/pom.xml 2009-03-09 14:42:48 UTC (rev 1788) +++ aperture/trunk/default/crawler/pom.xml 2009-03-10 11:19:12 UTC (rev 1789) @@ -47,6 +47,11 @@ <artifactId>aperture-crawler-web</artifactId> <version>${aperture.version}</version> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-core</artifactId> + <version>${aperture.version}</version> + </dependency> <dependency> <groupId>org.osgi</groupId> @@ -70,8 +75,8 @@ <extensions>true</extensions> <configuration> <instructions> - <Export-Package>!org.semanticdesktop.aperture.crawler.bundle,!org.semanticdesktop.aperture.crawler.*.bundle,!org.semanticdesktop.aperture.crawler.impl,org.semanticdesktop.aperture.crawler.*</Export-Package> - <Private-Package>org.semanticdesktop.aperture.crawler.bundle;-split-package:=first,org.semanticdesktop.aperture.crawler.*.bundle,org.semanticdesktop.aperture.crawler.impl;-split-package:=merge-first</Private-Package> + <Export-Package>!org.semanticdesktop.aperture.crawler.bundle,!org.semanticdesktop.aperture.crawler.*.bundle,!org.semanticdesktop.aperture.crawler.impl,!org.semanticdesktop.aperture.subcrawler.impl,org.semanticdesktop.aperture.crawler.*,org.semanticdesktop.aperture.subcrawler.*</Export-Package> + <Private-Package>org.semanticdesktop.aperture.crawler.bundle;-split-package:=first,org.semanticdesktop.aperture.crawler.*.bundle,org.semanticdesktop.aperture.crawler.impl;-split-package:=merge-first,org.semanticdesktop.aperture.subcrawler.impl;-split-package:=merge-first</Private-Package> <Bundle-Activator>org.semanticdesktop.aperture.crawler.bundle.DefaultCrawlerServiceActivator</Bundle-Activator> </instructions> </configuration> Modified: aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/crawler/bundle/DefaultCrawlerServiceActivator.java =================================================================== --- aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/crawler/bundle/DefaultCrawlerServiceActivator.java 2009-03-09 14:42:48 UTC (rev 1788) +++ aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/crawler/bundle/DefaultCrawlerServiceActivator.java 2009-03-10 11:19:12 UTC (rev 1789) @@ -17,60 +17,112 @@ import org.semanticdesktop.aperture.crawler.CrawlerFactory; import org.semanticdesktop.aperture.crawler.CrawlerRegistry; import org.semanticdesktop.aperture.crawler.impl.DefaultCrawlerRegistry; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerFactory; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerRegistry; +import org.semanticdesktop.aperture.subcrawler.impl.DefaultSubCrawlerRegistry; -public class DefaultCrawlerServiceActivator implements BundleActivator, ServiceListener { +public class DefaultCrawlerServiceActivator implements BundleActivator { private BundleContext bc = null; - private ServiceRegistration registration; + private ServiceRegistration crawlerRegistryRegistration; - private CrawlerRegistry registry; + private CrawlerRegistry crawlerRegistry; + private ServiceRegistration subCrawlerRegistryRegistration; + + private SubCrawlerRegistry subCrawlerRegistry; + public void start(BundleContext context) throws Exception { - + bc = context; - registry = new DefaultCrawlerRegistry(); - registration = bc.registerService(CrawlerRegistry.class.getName(), registry, - new Hashtable()); + crawlerRegistry = new DefaultCrawlerRegistry(); + crawlerRegistryRegistration = bc.registerService(CrawlerRegistry.class + .getName(), crawlerRegistry, new Hashtable()); + CrawlerServiceListener listener = new CrawlerServiceListener(); String filter = "(objectclass=" + CrawlerFactory.class.getName() + ")"; - bc.addServiceListener(this, filter); + bc.addServiceListener(listener, filter); ServiceReference references[] = bc.getServiceReferences(null, filter); - for (int i = 0; references != null && i < references.length; i++) { - this.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, references[i])); + listener.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, + references[i])); } - + subCrawlerRegistry = new DefaultSubCrawlerRegistry(); + subCrawlerRegistryRegistration = bc.registerService( + SubCrawlerRegistry.class.getName(), subCrawlerRegistry, + new Hashtable()); + + SubCrawlerServiceListener subListener = new SubCrawlerServiceListener(); + String subFilter = "(objectclass=" + SubCrawlerFactory.class.getName() + + ")"; + bc.addServiceListener(subListener, subFilter); + + ServiceReference subReferences[] = bc.getServiceReferences(null, + subFilter); + for (int i = 0; subReferences != null && i < subReferences.length; i++) { + subListener.serviceChanged(new ServiceEvent( + ServiceEvent.REGISTERED, subReferences[i])); + } + } public void stop(BundleContext context) throws Exception { - registration.unregister(); + crawlerRegistryRegistration.unregister(); + subCrawlerRegistryRegistration.unregister(); bc = null; } - public void serviceChanged(ServiceEvent event) { - CrawlerFactory factory; - switch (event.getType()) { - case ServiceEvent.REGISTERED: - factory = (CrawlerFactory) bc.getService(event - .getServiceReference()); - registry.add(factory); - break; - case ServiceEvent.MODIFIED: - factory = (CrawlerFactory) bc.getService(event - .getServiceReference()); - registry.remove(factory); - registry.add(factory); - break; - case ServiceEvent.UNREGISTERING: - factory = (CrawlerFactory) bc.getService(event - .getServiceReference()); - registry.remove(factory); - break; + private class CrawlerServiceListener implements ServiceListener { + + public void serviceChanged(ServiceEvent event) { + CrawlerFactory factory; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + factory = (CrawlerFactory) bc.getService(event + .getServiceReference()); + crawlerRegistry.add(factory); + break; + case ServiceEvent.MODIFIED: + factory = (CrawlerFactory) bc.getService(event + .getServiceReference()); + crawlerRegistry.remove(factory); + crawlerRegistry.add(factory); + break; + case ServiceEvent.UNREGISTERING: + factory = (CrawlerFactory) bc.getService(event + .getServiceReference()); + crawlerRegistry.remove(factory); + break; + } } } + private class SubCrawlerServiceListener implements ServiceListener { + public void serviceChanged(ServiceEvent event) { + SubCrawlerFactory factory; + switch (event.getType()) { + case ServiceEvent.REGISTERED: + factory = (SubCrawlerFactory) bc.getService(event + .getServiceReference()); + subCrawlerRegistry.add(factory); + break; + case ServiceEvent.MODIFIED: + factory = (SubCrawlerFactory) bc.getService(event + .getServiceReference()); + subCrawlerRegistry.remove(factory); + subCrawlerRegistry.add(factory); + break; + case ServiceEvent.UNREGISTERING: + factory = (SubCrawlerFactory) bc.getService(event + .getServiceReference()); + subCrawlerRegistry.remove(factory); + break; + } + } + } + } Added: aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/subcrawler/impl/DefaultSubCrawlerRegistry.java =================================================================== --- aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/subcrawler/impl/DefaultSubCrawlerRegistry.java (rev 0) +++ aperture/trunk/default/crawler/src/main/java/org/semanticdesktop/aperture/subcrawler/impl/DefaultSubCrawlerRegistry.java 2009-03-10 11:19:12 UTC (rev 1789) @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2005 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.subcrawler.impl; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Map; + +import javax.xml.parsers.ParserConfigurationException; + +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerFactory; +import org.semanticdesktop.aperture.util.ResourceUtil; +import org.semanticdesktop.aperture.util.SimpleSAXAdapter; +import org.semanticdesktop.aperture.util.SimpleSAXParser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.SAXException; + +/** + * DefaultExtractorRegistry provides the complete set of ExtractorFactories available in Aperture. + * + * <p> + * The main purpose of this class is to be able to conveniently access the set of ExtractorFactories in + * non-OSGi applications, which take care of this initialization in a different way. A single line of code + * gives you the entire set without requiring further setup. + * + * <p> + * The set of factory class names are loaded from an XML file which can optionally be specified to the + * constructor. This class requires all the listed classes to have a no-argument constructor. + */ +public class DefaultSubCrawlerRegistry extends SubCrawlerRegistryImpl { + + private static final String DEFAULT_FILE = "org/semanticdesktop/aperture/subcrawler/impl/defaults.xml"; + + private static final String SUB_CRAWLER_FACTORY_TAG = "subCrawlerFactory"; + + private static final String NAME_TAG = "name"; + + public DefaultSubCrawlerRegistry() { + try { + InputStream stream = ResourceUtil.getInputStream(DEFAULT_FILE, DefaultSubCrawlerRegistry.class); + BufferedInputStream buffer = new BufferedInputStream(stream); + parse(buffer); + buffer.close(); + } + catch (IOException e) { + throw new RuntimeException("unable to parse " + DEFAULT_FILE, e); + } + } + + public DefaultSubCrawlerRegistry(InputStream stream) throws IOException { + parse(stream); + } + + private void parse(InputStream stream) throws IOException { + try { + // Parse the document + SimpleSAXParser parser = new SimpleSAXParser(); + parser.setListener(new SubCrawlerParser()); + parser.parse(stream); + } + catch (ParserConfigurationException e) { + IOException ie = new IOException(e.getMessage()); + ie.initCause(e); + throw ie; + } + catch (SAXException e) { + IOException ie = new IOException(e.getMessage()); + ie.initCause(e); + throw ie; + } + } + + private class SubCrawlerParser extends SimpleSAXAdapter { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + private boolean insideFactoryElement = false; + + public void startTag(String tagName, Map atts, String text) throws SAXException { + if (SUB_CRAWLER_FACTORY_TAG.equals(tagName)) { + insideFactoryElement = true; + } + else if (NAME_TAG.equals(tagName) && insideFactoryElement && text != null) { + processClassName(text); + } + } + + public void endTag(String tagName) { + if (SUB_CRAWLER_FACTORY_TAG.equals(tagName)) { + insideFactoryElement = false; + } + } + + private void processClassName(String className) { + className = className.trim(); + if (!className.equals("")) { + try { + Class clazz = Class.forName(className); + Object instance = clazz.newInstance(); + SubCrawlerFactory factory = (SubCrawlerFactory) instance; + add(factory); + } + catch (ClassNotFoundException e) { + logger.warn("unable to find class " + className + ", ignoring", e); + } + catch (InstantiationException e) { + logger.warn("unable to instantiate class " + className + ", ignoring", e); + } + catch (IllegalAccessException e) { + logger.warn("unable to access class " + className + ", ignoring", e); + } + catch (ClassCastException e) { + logger.warn("unable to cast instance to " + ExtractorFactory.class.getName() + + ", ignoring", e); + } + } + } + } +} Added: aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/subcrawler/impl/defaults.xml =================================================================== --- aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/subcrawler/impl/defaults.xml (rev 0) +++ aperture/trunk/default/crawler/src/main/resources/org/semanticdesktop/aperture/subcrawler/impl/defaults.xml 2009-03-10 11:19:12 UTC (rev 1789) @@ -0,0 +1,22 @@ +<?xml version='1.0' encoding='UTF-8'?> + +<subCrawlerFactories> + <subCrawlerFactory> + <name>org.semanticdesktop.aperture.subcrawler.vcard.VcardSubCrawlerFactory</name> + </subCrawlerFactory> + <subCrawlerFactory> + <name>org.semanticdesktop.aperture.subcrawler.zip.ZipSubCrawlerFactory</name> + </subCrawlerFactory> + <subCrawlerFactory> + <name>org.semanticdesktop.aperture.subcrawler.gzip.GZipSubCrawlerFactory</name> + </subCrawlerFactory> + <subCrawlerFactory> + <name>org.semanticdesktop.aperture.subcrawler.tar.TarSubCrawlerFactory</name> + </subCrawlerFactory> + <subCrawlerFactory> + <name>org.semanticdesktop.aperture.subcrawler.bzip2.BZip2SubCrawlerFactory</name> + </subCrawlerFactory> + <subCrawlerFactory> + <name>org.semanticdesktop.aperture.subcrawler.mime.MimeSubCrawlerFactory</name> + </subCrawlerFactory> +</subCrawlerFactories> \ No newline at end of file Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-09 14:42:48 UTC (rev 1788) +++ aperture/trunk/pom.xml 2009-03-10 11:19:12 UTC (rev 1789) @@ -148,6 +148,11 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-runtime-default</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-security-core</artifactId> <version>${aperture.version}</version> </dependency> Property changes on: aperture/trunk/test/docs ___________________________________________________________________ Modified: svn:ignore - target + target .classpath .project .settings This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-10 23:53:24
|
Revision: 1796 http://aperture.svn.sourceforge.net/aperture/?rev=1796&view=rev Author: mylka Date: 2009-03-10 23:53:21 +0000 (Tue, 10 Mar 2009) Log Message: ----------- committed a proper version of the testcore module, with a proper ApertureTestBase class - now we can migrate the tests? Modified Paths: -------------- aperture/trunk/core/crawler/core/pom.xml aperture/trunk/pom.xml aperture/trunk/test/core/pom.xml aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/ApertureTestBase.java aperture/trunk/test/docs/pom.xml Added Paths: ----------- aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/base/CrawlerHandlerBase.java aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/TestIncrementalCrawlerHandler.java Removed Paths: ------------- aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/extractor/ Modified: aperture/trunk/core/crawler/core/pom.xml =================================================================== --- aperture/trunk/core/crawler/core/pom.xml 2009-03-10 23:12:48 UTC (rev 1795) +++ aperture/trunk/core/crawler/core/pom.xml 2009-03-10 23:53:21 UTC (rev 1796) @@ -23,6 +23,14 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-mime-identifier-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-datasource-core</artifactId> </dependency> <dependency> Copied: aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/base/CrawlerHandlerBase.java (from rev 1793, trunk/aperture/src/java/org/semanticdesktop/aperture/crawler/base/CrawlerHandlerBase.java) =================================================================== --- aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/base/CrawlerHandlerBase.java (rev 0) +++ aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/base/CrawlerHandlerBase.java 2009-03-10 23:53:21 UTC (rev 1796) @@ -0,0 +1,337 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.crawler.base; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.IOException; +import java.util.Set; + +import org.ontoware.rdf2go.RDF2Go; +import org.ontoware.rdf2go.model.Model; +import org.ontoware.rdf2go.model.node.URI; +import org.semanticdesktop.aperture.accessor.DataObject; +import org.semanticdesktop.aperture.accessor.FileDataObject; +import org.semanticdesktop.aperture.accessor.RDFContainerFactory; +import org.semanticdesktop.aperture.crawler.Crawler; +import org.semanticdesktop.aperture.crawler.CrawlerHandler; +import org.semanticdesktop.aperture.crawler.ExitCode; +import org.semanticdesktop.aperture.extractor.Extractor; +import org.semanticdesktop.aperture.extractor.ExtractorException; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.ExtractorRegistry; +import org.semanticdesktop.aperture.extractor.FileExtractor; +import org.semanticdesktop.aperture.extractor.FileExtractorFactory; +import org.semanticdesktop.aperture.mime.identifier.MimeTypeIdentifier; +import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.subcrawler.SubCrawler; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerException; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerFactory; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerRegistry; +import org.semanticdesktop.aperture.util.IOUtil; +import org.semanticdesktop.aperture.vocabulary.NIE; + +/** + * A base implementation of the CrawlerHandler interface. The method implementations are simplest + * possible, that fulfill the contract. The applications are expected to override the methods they need. + * + * The {@link #processBinary(Crawler, DataObject)} object is provided as a reference implementation to + * show how to use the MIMEtype-detector and the extractors. + * + * <h3>Subclassing CrawlerHandlerBase</h3> + * Create a subclass of this class to integrate Aperture into existing applications. + * <ul> + * <li>Write a constructor or initializing method to set the {@link #mimeTypeIdentifier}, + * {@link #extractorRegistry} and {@link #subCrawlerRegistry}.</li> + * <li>Review the method {@link #getRDFContainerFactory(Crawler, String)} to influence the RDF containers used.</li> + * <li>Override all objectXXX methods to handle the data, possibly calling {@link #processBinary(Crawler, DataObject)} + * to extract the contents of binary streams.</li> + * </ul> + * The objectXXX methods need to be implemented to do something with the dataobjects found by Aperture. + * + * @author leo sauermann + * @author antoni mylka + */ +public class CrawlerHandlerBase implements CrawlerHandler { + + /** + * should binaries be processed? + */ + protected boolean extractingContents = true; + + /** + * Mime-type identifier, <b>must</b> be set by overriding classes + * to use processBinary + */ + protected MimeTypeIdentifier mimeTypeIdentifier; + + /** + * Extractor registry, <b>may</b> be set by overriding classes + * to use processBinary + */ + protected ExtractorRegistry extractorRegistry; + + /** + * Subcrawler registry, <b>may</b> be set by overriding classes + * to use processBinary + */ + protected SubCrawlerRegistry subCrawlerRegistry; + + /** + * Construct and empty BaseCrawlerHandler. + * set the extractorRegistry, mimeTypeIdentifier, and subCrawlerRegistry yourself. + */ + public CrawlerHandlerBase() { + + } + + + + /** + * Construct an initialised BaseCrawlerHandler. + * Pass the needed objects for binary handling. + * @param mimeTypeIdentifier initialised MimeTypeIdentifier + * @param extractorRegistry initialised ExtractorRegistry, can be null if binary handling is not needed + * @param subCrawlerRegistry initialised SubCrawlerRegistry, can be null if binary handling is not needed + */ + public CrawlerHandlerBase(MimeTypeIdentifier mimeTypeIdentifier, ExtractorRegistry extractorRegistry, + SubCrawlerRegistry subCrawlerRegistry) { + super(); + this.mimeTypeIdentifier = mimeTypeIdentifier; + this.extractorRegistry = extractorRegistry; + this.subCrawlerRegistry = subCrawlerRegistry; + } + + + + /** + * Returns an rdf container factory. This method implementation returns a factory which delivers simple + * RDFContainers backed by in-memory models obtained from the {@link RDF2Go#getModelFactory()} method. + * Each model is separate. + * + * @see CrawlerHandler#getRDFContainerFactory(Crawler, String) + */ + public RDFContainerFactory getRDFContainerFactory(Crawler crawler, String url) { + return new RDFContainerFactory() { + + public RDFContainer getRDFContainer(URI uri) { + Model model = RDF2Go.getModelFactory().createModel(); + model.open(); + return new RDFContainerImpl(model, uri); + } + }; + } + + /** + * This method implementation doesn't do anything, it is meant to be overridden. + * + * @see CrawlerHandler#accessingObject(Crawler, String) + */ + public void accessingObject(Crawler crawler, String url) { + // don't do anything, please override me + } + + /** + * This method implementation doesn't do anything, it is meant to be overridden. + * + * @see CrawlerHandler#clearFinished(Crawler, ExitCode) + */ + public void clearFinished(Crawler crawler, ExitCode exitCode) { + // don't do anything, please override me + } + + /** + * This method implementation doesn't do anything, it is meant to be overridden. + * + * @see CrawlerHandler#clearingObject(Crawler, String) + */ + public void clearingObject(Crawler crawler, String url) { + // don't do anything, please override me + } + + /** + * This method implementation doesn't do anything, it is meant to be overridden. + * + * @see CrawlerHandler#clearStarted(Crawler) + */ + public void clearStarted(Crawler crawler) { + // don't do anything, please override me + } + + /** + * This method implementation doesn't do anything, it is meant to be overridden. + * + * @see CrawlerHandler#crawlStarted(Crawler) + */ + public void crawlStarted(Crawler crawler) { + // don't do anything, please override me + } + + /** + * This method implementation doesn't do anything, it is meant to be overridden. + * + * @see CrawlerHandler#crawlStopped(Crawler, ExitCode) + */ + public void crawlStopped(Crawler crawler, ExitCode exitCode) { + // don't do anything, please override me + } + + /** + * This method implementation only disposes the data object and does nothing more. It is meant to be + * overridden. + * + * @see CrawlerHandler#objectChanged(Crawler, DataObject) + */ + public void objectChanged(Crawler crawler, DataObject object) { + // don't do anything, please override me + } + + /** + * This method implementation only disposes the data object and does nothing more. It is meant to be + * overridden. + * + * @see CrawlerHandler#objectNew(Crawler, DataObject) + */ + public void objectNew(Crawler crawler, DataObject object) { + object.dispose(); + } + + /** + * This method implementation doesn't do anything, it is meant to be overridden. + * + * @see CrawlerHandler#objectNotModified(Crawler, String) + */ + public void objectNotModified(Crawler crawler, String url) { + // don't do anything, please override me + } + + /** + * This method implementation doesn't do anything, it is meant to be overridden. + * + * @see CrawlerHandler#objectRemoved(Crawler, String) + */ + public void objectRemoved(Crawler crawler, String url) { + // don't do anything, please override me + } + + /** + * Default and reference implementation of the + * handling of objects found in the crawling process: + * Identify the mime-type, invoke Extractors. + * Interprets the boolean value "extractingContents" + * which is by default true. + * @param crawler the crawler that reported the dataObject. The crawler will be used to invoke + * subcrawlers, if needed. The control then stays within the crawler's thread. + * @param dataObject the data object to process. + * When the passed DataObject is not a FileDataObject, + * nothing will be done. + * @throws IOException when the stream cannot be read + * @throws ExctractorException when the extractor fails + * @throws SubCrawlerException when the extraction of contents using a {@link SubCrawler} failed. + */ + protected void processBinary(Crawler crawler, DataObject dataObject) throws IOException, ExtractorException, + SubCrawlerException { + // we cannot do anything when MIME type identification is disabled + if (!extractingContents) { + return; + } + // check prerequisites + if (mimeTypeIdentifier == null) + throw new RuntimeException("MimeTypeIdentifier is not set. "); + if (dataObject == null) + throw new NullPointerException("dataObject is null. This parameter must be set."); + + // process the contents on an InputStream, if available + if (dataObject instanceof FileDataObject) { + FileDataObject object = (FileDataObject) dataObject; + + URI id = object.getID(); + + // Create a buffer around the object's stream large enough to be able to reset the stream + // after MIME type identification has taken place. Add some extra to the minimum array + // length required by the MimeTypeIdentifier for safety. + int minimumArrayLength = mimeTypeIdentifier.getMinArrayLength(); + int bufferSize = Math.max(minimumArrayLength, 8192); + BufferedInputStream bufferedStream = new BufferedInputStream(object.getContent(), bufferSize); + bufferedStream.mark(minimumArrayLength + 10); // add some for safety + + // apply the MimeTypeIdentifier + byte[] bytes = IOUtil.readBytes(bufferedStream, minimumArrayLength); + String mimeType = mimeTypeIdentifier.identify(bytes, null, id); + + if (mimeType != null) { + // add the mime type to the metadata + RDFContainer metadata = object.getMetadata(); + metadata.add(NIE.mimeType, mimeType); + + bufferedStream.reset(); + + // ************************************************************ + // EXTRACTORS - only works when the extractor registry was set! + if (extractorRegistry != null) + { + // apply an Extractor if available + Set extractors = extractorRegistry.getExtractorFactories(mimeType); + if (!extractors.isEmpty()) { + ExtractorFactory factory = (ExtractorFactory) extractors.iterator().next(); + Extractor extractor = factory.get(); + extractor.extract(id, bufferedStream, null, mimeType, metadata); + return; // this could be made configurable: allowing multiple extractors to work on one stream + } + + // else try to apply a FileExtractor + Set fileextractors = extractorRegistry.getFileExtractorFactories(mimeType); + if (!fileextractors.isEmpty()) { + FileExtractorFactory factory = (FileExtractorFactory) fileextractors.iterator().next(); + FileExtractor extractor = factory.get(); + File originalFile = object.getFile(); + if (originalFile != null) { + extractor.extract(id, originalFile, null, mimeType, metadata); + } else { + File tempFile = object.downloadContent(); + extractor.extract(id, tempFile, null, mimeType, metadata); + tempFile.delete(); + } + return; // this could be made configurable: allowing multiple extractors to work on one stream + } + } + + //************************************************** + // Subcrawlers - only works when subCrawlerRegistry is set + if (subCrawlerRegistry != null) { + Set subcrawlerFactories = subCrawlerRegistry.get(mimeType); + for (Object sub : subcrawlerFactories) { + SubCrawlerFactory subcrawlerfactory = (SubCrawlerFactory)sub; + SubCrawler subcrawler = subcrawlerfactory.get(); + // Hand over control to the crawler again - the thread will return after the subcrawler is finished. + crawler.runSubCrawler(subcrawler, dataObject, bufferedStream, null, mimeType); + return; // this could be made configurable: allowing multiple subcrawlers to work on one stream + } + } + } + } + } + + /** + * should binaries be processed? + * @return true, when binaries are processed + */ + public boolean isExtractingContents() { + return extractingContents; + } + + /** + * should binaries be processed? + * @param extractingContents set to true to extract the contents when calling + * {@link #processBinary(DataObject)} + */ + public void setExtractingContents(boolean extractingContents) { + this.extractingContents = extractingContents; + } + +} Property changes on: aperture/trunk/core/crawler/core/src/main/java/org/semanticdesktop/aperture/crawler/base/CrawlerHandlerBase.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/java/org/semanticdesktop/aperture/crawler/base/CrawlerHandlerBase.java:1513-1527 Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-10 23:12:48 UTC (rev 1795) +++ aperture/trunk/pom.xml 2009-03-10 23:53:21 UTC (rev 1796) @@ -138,6 +138,11 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-mime-identifier-magic</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-opener-core</artifactId> <version>${aperture.version}</version> </dependency> @@ -176,6 +181,11 @@ <artifactId>aperture-websites-core</artifactId> <version>${aperture.version}</version> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testdocs</artifactId> + <version>${aperture.version}</version> + </dependency> <!-- Aperture Tools --> <dependency> Modified: aperture/trunk/test/core/pom.xml =================================================================== --- aperture/trunk/test/core/pom.xml 2009-03-10 23:12:48 UTC (rev 1795) +++ aperture/trunk/test/core/pom.xml 2009-03-10 23:53:21 UTC (rev 1796) @@ -37,6 +37,18 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-extractor-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-mime-identifier-core</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-mime-identifier-magic</artifactId> + </dependency> <dependency> <groupId>org.semweb4j</groupId> Modified: aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/ApertureTestBase.java =================================================================== --- aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/ApertureTestBase.java 2009-03-10 23:12:48 UTC (rev 1795) +++ aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/ApertureTestBase.java 2009-03-10 23:53:21 UTC (rev 1796) @@ -828,20 +828,20 @@ newModel.close(); } -// /** -// * Asserts that the incremental crawling results gathered by the given {@link TestIncrementalCrawlerHandler} -// * are correct. -// * @param handler the handler to check -// * @param newObjects the desired number of new objects -// * @param changedObjects the desired number of changed objects -// * @param unchangedObjects the desired number of unchanged objects -// * @param deletedObjects the desired number of deleted objects -// */ -// public void assertNewModUnmodDel(TestIncrementalCrawlerHandler handler, int newObjects, -// int changedObjects, int unchangedObjects, int deletedObjects) { -// assertEquals(handler.getNewObjects().size(), newObjects); -// assertEquals(handler.getChangedObjects().size(), changedObjects); -// assertEquals(handler.getUnchangedObjects().size(), unchangedObjects); -// assertEquals(handler.getDeletedObjects().size(), deletedObjects); -// } + /** + * Asserts that the incremental crawling results gathered by the given {@link TestIncrementalCrawlerHandler} + * are correct. + * @param handler the handler to check + * @param newObjects the desired number of new objects + * @param changedObjects the desired number of changed objects + * @param unchangedObjects the desired number of unchanged objects + * @param deletedObjects the desired number of deleted objects + */ + public void assertNewModUnmodDel(TestIncrementalCrawlerHandler handler, int newObjects, + int changedObjects, int unchangedObjects, int deletedObjects) { + assertEquals(handler.getNewObjects().size(), newObjects); + assertEquals(handler.getChangedObjects().size(), changedObjects); + assertEquals(handler.getUnchangedObjects().size(), unchangedObjects); + assertEquals(handler.getDeletedObjects().size(), deletedObjects); + } } Copied: aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/TestIncrementalCrawlerHandler.java (from rev 1793, trunk/aperture/src/test/org/semanticdesktop/aperture/TestIncrementalCrawlerHandler.java) =================================================================== --- aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/TestIncrementalCrawlerHandler.java (rev 0) +++ aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/TestIncrementalCrawlerHandler.java 2009-03-10 23:53:21 UTC (rev 1796) @@ -0,0 +1,373 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashSet; +import java.util.Set; + +import org.ontoware.rdf2go.RDF2Go; +import org.ontoware.rdf2go.model.Model; +import org.ontoware.rdf2go.model.node.URI; +import org.semanticdesktop.aperture.accessor.DataObject; +import org.semanticdesktop.aperture.accessor.FileDataObject; +import org.semanticdesktop.aperture.accessor.RDFContainerFactory; +import org.semanticdesktop.aperture.crawler.Crawler; +import org.semanticdesktop.aperture.crawler.base.CrawlerHandlerBase; +import org.semanticdesktop.aperture.extractor.Extractor; +import org.semanticdesktop.aperture.extractor.ExtractorException; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.ExtractorRegistry; +import org.semanticdesktop.aperture.extractor.FileExtractor; +import org.semanticdesktop.aperture.extractor.FileExtractorFactory; +import org.semanticdesktop.aperture.mime.identifier.MimeTypeIdentifier; +import org.semanticdesktop.aperture.mime.identifier.magic.MagicMimeTypeIdentifier; +import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.subcrawler.SubCrawler; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerException; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerFactory; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerRegistry; +import org.semanticdesktop.aperture.util.IOUtil; + +/** + * A CrawlerHandler implementation for use in incremental crawling tests. By default all data encountered by + * the crawlers is packed into a single shared model. This behavior may be overrdden by passing in another + * RDFContainerFactory implementation. + */ +public class TestIncrementalCrawlerHandler extends CrawlerHandlerBase { + + private Model model; + + private int numberOfObjects; + + private SubCrawlerRegistry subCrawlerRegistry; + + private ExtractorRegistry extractorRegistry; + + private MimeTypeIdentifier mimeTypeIdentifier; + + private Set<String> newObjects; + + private Set<String> changedObjects; + + private Set<String> unchangedObjects; + + private Set<String> deletedObjects; + + private RDFContainerFactory containerFactory; + + private File file; + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////// CONSTRUCTOR ///////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Constructs a plain crawler handler. No subcrawling or extraction will be done + */ + public TestIncrementalCrawlerHandler() { + this(null,null,false); + } + + /** + * Constructs a crawler handler with a subcrawler registry; + * + * @param subCrawlerRegistry the subcrawler registry, can be null, in which case no subcrawler will be applied + */ + public TestIncrementalCrawlerHandler(SubCrawlerRegistry subCrawlerRegistry) { + this(subCrawlerRegistry,null,false); + } + + /** + * A constructs a crawler handler with an extractor registry + * + * @param extractorRegistry the extractor registry, can be null, in which case no extractor will be + * applied + */ + public TestIncrementalCrawlerHandler(ExtractorRegistry extractorRegistry) { + this(null, extractorRegistry,false); + } + + /** + * The default constructor + * + * @param extractorRegistry the extractor registry, can be null, in which case no extractor will be + * applied + * @param subCrawlerRegistry the subcrawler registry, can be null, in which case no subcrawler will be + * applied + * @param separateModels a flag indicating if the container factory returned by + * {@link #getRDFContainerFactory(Crawler, String)} is to return containers backed by a single + * shared model (false) or by separate models (true). In the first case (false) disposing the + * containers doesn't close the model, in the second case disposing a container closes the + * underlying model. + */ + public TestIncrementalCrawlerHandler(SubCrawlerRegistry subCrawlerRegistry, ExtractorRegistry extractorRegistry, boolean separateModels) { + model = RDF2Go.getModelFactory().createModel(); + model.open(); + newObjects = new HashSet<String>(); + changedObjects = new HashSet<String>(); + unchangedObjects = new HashSet<String>(); + deletedObjects = new HashSet<String>(); + this.mimeTypeIdentifier = new MagicMimeTypeIdentifier(); + this.subCrawlerRegistry = subCrawlerRegistry; + this.extractorRegistry = extractorRegistry; + if (separateModels) { + this.containerFactory = new RDFContainerFactory() { + public RDFContainer getRDFContainer(URI uri) { + Model lmodel = RDF2Go.getModelFactory().createModel(); + lmodel.open(); + return new RDFContainerImpl(lmodel, uri); + } + }; + } else { + this.containerFactory = new RDFContainerFactory() { + public RDFContainer getRDFContainer(URI uri) { + return new RDFContainerImpl(model, uri, true); + } + }; + } + + } + + /** + * Closes the underlying model + */ + public void close() { + model.close(); + } + + // /////////////////////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////// CRAWLER HANDLER METHODS ////////////////////////////////////// + // /////////////////////////////////////////////////////////////////////////////////////////////////// + + public void crawlStarted(Crawler crawler) { + numberOfObjects = 0; + newObjects.clear(); + changedObjects.clear(); + unchangedObjects.clear(); + deletedObjects.clear(); + } + + public void objectChanged(Crawler crawler, DataObject object) { + numberOfObjects++; + changedObjects.add(object.getID().toString()); + process(object, crawler); + object.dispose(); + } + + public void objectNew(Crawler crawler, DataObject object) { + numberOfObjects++; + newObjects.add(object.getID().toString()); + process(object, crawler); + object.dispose(); + } + + public void objectNotModified(Crawler crawler, String url) { + numberOfObjects++; + unchangedObjects.add(url); + } + + public void objectRemoved(Crawler crawler, String url) { + deletedObjects.add(url); + } + + public RDFContainerFactory getRDFContainerFactory(Crawler crawler, String url) { + return containerFactory; + } + + private void process(DataObject objectToProcess, Crawler crawler) { + if (!(objectToProcess instanceof FileDataObject)) { + return; + } + FileDataObject object = (FileDataObject) objectToProcess; + try { + URI id = object.getID(); + int minimumArrayLength = mimeTypeIdentifier.getMinArrayLength(); + InputStream contentStream; + contentStream = object.getContent(); + contentStream.mark(minimumArrayLength + 10); // add some for safety + byte[] bytes = IOUtil.readBytes(contentStream, minimumArrayLength); + String mimeType = mimeTypeIdentifier.identify(bytes, null, id); + if (mimeType == null) { + return; + } + contentStream.reset(); + boolean done = applyExtractor(id, contentStream, mimeType, object.getMetadata()); + if (done) { + return; + } + // else try to apply a FileExtractor + done = applyFileExtractor(object, id, mimeType, object.getMetadata()); + if (done) { + return; + } + // or maybe apply a SubCrawler + done = applySubCrawler(contentStream, mimeType, object, crawler); + } + catch (IOException e) { + e.printStackTrace(); + } + catch (ExtractorException e) { + e.printStackTrace(); + } + catch (SubCrawlerException e) { + e.printStackTrace(); + } + } + + @SuppressWarnings("unchecked") + private boolean applyExtractor(URI id, InputStream contentStream, String mimeType, RDFContainer metadata) + throws ExtractorException { + if (extractorRegistry == null) { + return false; + } + Set extractors = extractorRegistry.getExtractorFactories(mimeType); + if (!extractors.isEmpty()) { + ExtractorFactory factory = (ExtractorFactory) extractors.iterator().next(); + Extractor extractor = factory.get(); + extractor.extract(id, contentStream, null, mimeType, metadata); + return true; + } + else { + return false; + } + } + + @SuppressWarnings("unchecked") + private boolean applyFileExtractor(FileDataObject object, URI id, String mimeType, RDFContainer metadata) + throws ExtractorException, IOException { + if (extractorRegistry == null) { + return false; + } + Set fileextractors = extractorRegistry.getFileExtractorFactories(mimeType); + if (!fileextractors.isEmpty()) { + FileExtractorFactory factory = (FileExtractorFactory) fileextractors.iterator().next(); + FileExtractor extractor = factory.get(); + File originalFile = object.getFile(); + if (originalFile != null) { + extractor.extract(id, originalFile, null, mimeType, metadata); + return true; + } + else { + File tempFile = object.downloadContent(); + try { + extractor.extract(id, tempFile, null, mimeType, metadata); + return true; + } + finally { + if (tempFile != null) { + tempFile.delete(); + } + } + } + } + else { + return false; + } + } + + @SuppressWarnings("unchecked") + private boolean applySubCrawler(InputStream contentStream, String mimeType, DataObject object, + Crawler crawler) throws SubCrawlerException { + if (subCrawlerRegistry == null) { + return false; + } + Set subCrawlers = subCrawlerRegistry.get(mimeType); + if (!subCrawlers.isEmpty()) { + SubCrawlerFactory factory = (SubCrawlerFactory) subCrawlers.iterator().next(); + SubCrawler subCrawler = factory.get(); + crawler.runSubCrawler(subCrawler, object, contentStream, null, mimeType); + return true; + } + else { + return false; + } + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////// RDF CONTAINER FACTORY METHOD ////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////// GETTERS AND SETTERS /////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Returns the underlying model + * + * @return the underlying model + */ + public Model getModel() { + return model; + } + + /** + * Returns the total number of objects encountered by the crawler + * + * @return the total number of objects encountered by the crawler + */ + public int getNumberOfObjects() { + return numberOfObjects; + } + + /** + * Returns the number of changed objects + * + * @return the number of changed objects + */ + public Set<String> getChangedObjects() { + return changedObjects; + } + + /** + * Returns the number of deleted objects + * + * @return the number of deleted objects + */ + public Set<String> getDeletedObjects() { + return deletedObjects; + } + + /** + * Returns the number of new objects + * + * @return the number of new objects + */ + public Set<String> getNewObjects() { + return newObjects; + } + + /** + * Returns the number of unchanged objects + * + * @return the number of unchanged objects + */ + public Set<String> getUnchangedObjects() { + return unchangedObjects; + } + + /** + * Returns the file + * @return the file + */ + public File getFile() { + return file; + } + + /** + * Sets the file + * @param file the file to set + */ + public void setFile(File file) { + this.file = file; + } +} Property changes on: aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/TestIncrementalCrawlerHandler.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/TestIncrementalCrawlerHandler.java:1513-1527 Modified: aperture/trunk/test/docs/pom.xml =================================================================== --- aperture/trunk/test/docs/pom.xml 2009-03-10 23:12:48 UTC (rev 1795) +++ aperture/trunk/test/docs/pom.xml 2009-03-10 23:53:21 UTC (rev 1796) @@ -10,7 +10,7 @@ <artifactId>aperture-test</artifactId> <version>1.3.0-SNAPSHOT</version> </parent> - + <artifactId>aperture-testdocs</artifactId> <name>Aperture Test Docs</name> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-11 00:26:33
|
Revision: 1798 http://aperture.svn.sourceforge.net/aperture/?rev=1798&view=rev Author: mylka Date: 2009-03-11 00:26:26 +0000 (Wed, 11 Mar 2009) Log Message: ----------- migrated the unit test for the file accessor to the mavenized version of Aperture Modified Paths: -------------- aperture/trunk/core/accessor/core/pom.xml aperture/trunk/core/accessor/file/pom.xml aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/core/accessor/file/src/test/java/org/semanticdesktop/aperture/accessor/file/ Modified: aperture/trunk/core/accessor/core/pom.xml =================================================================== --- aperture/trunk/core/accessor/core/pom.xml 2009-03-11 00:01:30 UTC (rev 1797) +++ aperture/trunk/core/accessor/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) @@ -90,7 +90,7 @@ <extensions>true</extensions> <configuration> <instructions> - <Export-Package>org.semanticdesktop.aperture.accessor</Export-Package> + <Export-Package>org.semanticdesktop.aperture.accessor,org.semanticdesktop.aperture.accessor.base</Export-Package> <Private-Package>org.semanticdesktop.aperture.accessor.impl,org.semanticdesktop.aperture.accessor.bundle</Private-Package> <Bundle-Activator>org.semanticdesktop.aperture.accessor.bundle.AccessorServiceActivator</Bundle-Activator> </instructions> Modified: aperture/trunk/core/accessor/file/pom.xml =================================================================== --- aperture/trunk/core/accessor/file/pom.xml 2009-03-11 00:01:30 UTC (rev 1797) +++ aperture/trunk/core/accessor/file/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) @@ -27,6 +27,11 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-rdf</artifactId> </dependency> <dependency> Property changes on: aperture/trunk/core/accessor/file/src/test/java/org/semanticdesktop/aperture/accessor/file ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/accessor/file:1513-1527 Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-11 00:01:30 UTC (rev 1797) +++ aperture/trunk/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) @@ -186,6 +186,11 @@ <artifactId>aperture-testdocs</artifactId> <version>${aperture.version}</version> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + <version>${aperture.version}</version> + </dependency> <!-- Aperture Tools --> <dependency> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <her...@us...> - 2009-03-11 09:29:48
|
Revision: 1799 http://aperture.svn.sourceforge.net/aperture/?rev=1799&view=rev Author: herko_ter_horst Date: 2009-03-11 09:29:43 +0000 (Wed, 11 Mar 2009) Log Message: ----------- Implemented a better way to deal with bundles. Modified Paths: -------------- aperture/trunk/core/accessor/core/pom.xml aperture/trunk/core/accessor/file/pom.xml aperture/trunk/core/accessor/http/pom.xml aperture/trunk/core/addressbook/apple/pom.xml aperture/trunk/core/addressbook/core/pom.xml aperture/trunk/core/addressbook/thunderbird/pom.xml aperture/trunk/core/crawler/archive/pom.xml aperture/trunk/core/crawler/core/pom.xml aperture/trunk/core/crawler/filesystem/pom.xml aperture/trunk/core/crawler/ical/pom.xml aperture/trunk/core/crawler/imap/pom.xml aperture/trunk/core/crawler/mail/pom.xml aperture/trunk/core/crawler/mbox/pom.xml aperture/trunk/core/crawler/mime/pom.xml aperture/trunk/core/crawler/vcard/pom.xml aperture/trunk/core/crawler/web/pom.xml aperture/trunk/core/datasource/core/pom.xml aperture/trunk/core/datasource/filesystem/pom.xml aperture/trunk/core/datasource/ical/pom.xml aperture/trunk/core/datasource/imap/pom.xml aperture/trunk/core/datasource/mbox/pom.xml aperture/trunk/core/datasource/web/pom.xml aperture/trunk/core/detector/core/pom.xml aperture/trunk/core/detector/filesystem/pom.xml aperture/trunk/core/extractor/adobe/pdf/pom.xml aperture/trunk/core/extractor/audio/mp3/pom.xml aperture/trunk/core/extractor/core/pom.xml aperture/trunk/core/extractor/corel/office/pom.xml aperture/trunk/core/extractor/corel/util/pom.xml aperture/trunk/core/extractor/image/jpg/pom.xml aperture/trunk/core/extractor/message/mime/pom.xml aperture/trunk/core/extractor/microsoft/office/pom.xml aperture/trunk/core/extractor/microsoft/quattro/pom.xml aperture/trunk/core/extractor/microsoft/util/pom.xml aperture/trunk/core/extractor/microsoft/visio/pom.xml aperture/trunk/core/extractor/microsoft/works/pom.xml aperture/trunk/core/extractor/opendocument/pom.xml aperture/trunk/core/extractor/openxml/pom.xml aperture/trunk/core/extractor/text/html/pom.xml aperture/trunk/core/extractor/text/plain/pom.xml aperture/trunk/core/extractor/text/rtf/pom.xml aperture/trunk/core/extractor/text/xml/pom.xml aperture/trunk/core/helper/html/pom.xml aperture/trunk/core/linkextractor/core/pom.xml aperture/trunk/core/linkextractor/html/pom.xml aperture/trunk/core/mime-identifier/core/pom.xml aperture/trunk/core/mime-identifier/magic/pom.xml aperture/trunk/core/opener/core/pom.xml aperture/trunk/core/opener/email/pom.xml aperture/trunk/core/opener/file/pom.xml aperture/trunk/core/opener/http/pom.xml aperture/trunk/core/outlook/pom.xml aperture/trunk/core/rdf/pom.xml aperture/trunk/core/security/core/pom.xml aperture/trunk/core/security/standard/pom.xml aperture/trunk/core/security/swing/pom.xml aperture/trunk/core/util/pom.xml aperture/trunk/core/vocabulary/core/pom.xml aperture/trunk/core/websites/bibsonomy/pom.xml aperture/trunk/core/websites/core/pom.xml aperture/trunk/core/websites/delicious/pom.xml aperture/trunk/core/websites/flickr/pom.xml aperture/trunk/core/websites/iphoto/pom.xml aperture/trunk/default/accessor/pom.xml aperture/trunk/default/crawler/pom.xml aperture/trunk/default/datasource/pom.xml aperture/trunk/default/detector/pom.xml aperture/trunk/default/extractor/pom.xml aperture/trunk/default/linkextractor/pom.xml aperture/trunk/default/mime-identifier/pom.xml aperture/trunk/default/opener/pom.xml aperture/trunk/default/security/pom.xml aperture/trunk/pom.xml aperture/trunk/runtime/default/pom.xml Modified: aperture/trunk/core/accessor/core/pom.xml =================================================================== --- aperture/trunk/core/accessor/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/accessor/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -79,9 +79,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/accessor/file/pom.xml =================================================================== --- aperture/trunk/core/accessor/file/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/accessor/file/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -65,9 +65,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/accessor/http/pom.xml =================================================================== --- aperture/trunk/core/accessor/http/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/accessor/http/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -64,9 +64,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/addressbook/apple/pom.xml =================================================================== --- aperture/trunk/core/addressbook/apple/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/addressbook/apple/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -111,9 +111,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/addressbook/core/pom.xml =================================================================== --- aperture/trunk/core/addressbook/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/addressbook/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -62,14 +62,6 @@ <build> <plugins> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> Modified: aperture/trunk/core/addressbook/thunderbird/pom.xml =================================================================== --- aperture/trunk/core/addressbook/thunderbird/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/addressbook/thunderbird/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -116,9 +116,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/crawler/archive/pom.xml =================================================================== --- aperture/trunk/core/crawler/archive/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/archive/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -61,9 +61,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/crawler/core/pom.xml =================================================================== --- aperture/trunk/core/crawler/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -78,9 +78,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/crawler/filesystem/pom.xml =================================================================== --- aperture/trunk/core/crawler/filesystem/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/filesystem/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -64,9 +64,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/crawler/ical/pom.xml =================================================================== --- aperture/trunk/core/crawler/ical/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/ical/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -73,9 +73,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/crawler/imap/pom.xml =================================================================== --- aperture/trunk/core/crawler/imap/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/imap/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -72,9 +72,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/crawler/mail/pom.xml =================================================================== --- aperture/trunk/core/crawler/mail/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/mail/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -74,14 +74,6 @@ <build> <plugins> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> Modified: aperture/trunk/core/crawler/mbox/pom.xml =================================================================== --- aperture/trunk/core/crawler/mbox/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/mbox/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -73,9 +73,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/crawler/mime/pom.xml =================================================================== --- aperture/trunk/core/crawler/mime/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/mime/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -69,9 +69,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/crawler/vcard/pom.xml =================================================================== --- aperture/trunk/core/crawler/vcard/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/vcard/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -70,9 +70,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/crawler/web/pom.xml =================================================================== --- aperture/trunk/core/crawler/web/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/crawler/web/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -72,9 +72,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/datasource/core/pom.xml =================================================================== --- aperture/trunk/core/datasource/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/datasource/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -51,9 +51,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/datasource/filesystem/pom.xml =================================================================== --- aperture/trunk/core/datasource/filesystem/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/datasource/filesystem/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -75,9 +75,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/datasource/ical/pom.xml =================================================================== --- aperture/trunk/core/datasource/ical/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/datasource/ical/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -75,9 +75,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/datasource/imap/pom.xml =================================================================== --- aperture/trunk/core/datasource/imap/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/datasource/imap/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -75,9 +75,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/datasource/mbox/pom.xml =================================================================== --- aperture/trunk/core/datasource/mbox/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/datasource/mbox/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -75,9 +75,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/datasource/web/pom.xml =================================================================== --- aperture/trunk/core/datasource/web/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/datasource/web/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -75,9 +75,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/detector/core/pom.xml =================================================================== --- aperture/trunk/core/detector/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/detector/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -48,9 +48,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/detector/filesystem/pom.xml =================================================================== --- aperture/trunk/core/detector/filesystem/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/detector/filesystem/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -52,9 +52,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/adobe/pdf/pom.xml =================================================================== --- aperture/trunk/core/extractor/adobe/pdf/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/adobe/pdf/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -64,9 +64,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/audio/mp3/pom.xml =================================================================== --- aperture/trunk/core/extractor/audio/mp3/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/audio/mp3/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -60,9 +60,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/core/pom.xml =================================================================== --- aperture/trunk/core/extractor/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -61,9 +61,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/corel/office/pom.xml =================================================================== --- aperture/trunk/core/extractor/corel/office/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/corel/office/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -63,9 +63,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/corel/util/pom.xml =================================================================== --- aperture/trunk/core/extractor/corel/util/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/corel/util/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -25,14 +25,6 @@ <build> <plugins> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> Modified: aperture/trunk/core/extractor/image/jpg/pom.xml =================================================================== --- aperture/trunk/core/extractor/image/jpg/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/image/jpg/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -60,9 +60,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/message/mime/pom.xml =================================================================== --- aperture/trunk/core/extractor/message/mime/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/message/mime/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -68,9 +68,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/microsoft/office/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/office/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/microsoft/office/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -59,9 +59,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/microsoft/quattro/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/quattro/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/microsoft/quattro/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -59,9 +59,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/microsoft/util/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/util/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/microsoft/util/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -66,14 +66,6 @@ <build> <plugins> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> Modified: aperture/trunk/core/extractor/microsoft/visio/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/visio/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/microsoft/visio/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -59,9 +59,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/microsoft/works/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/works/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/microsoft/works/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -55,9 +55,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/opendocument/pom.xml =================================================================== --- aperture/trunk/core/extractor/opendocument/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/opendocument/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -55,9 +55,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/openxml/pom.xml =================================================================== --- aperture/trunk/core/extractor/openxml/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/openxml/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -55,9 +55,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/text/html/pom.xml =================================================================== --- aperture/trunk/core/extractor/text/html/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/text/html/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -59,9 +59,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/text/plain/pom.xml =================================================================== --- aperture/trunk/core/extractor/text/plain/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/text/plain/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -55,9 +55,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/text/rtf/pom.xml =================================================================== --- aperture/trunk/core/extractor/text/rtf/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/text/rtf/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -55,9 +55,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/extractor/text/xml/pom.xml =================================================================== --- aperture/trunk/core/extractor/text/xml/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/extractor/text/xml/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -55,9 +55,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/helper/html/pom.xml =================================================================== --- aperture/trunk/core/helper/html/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/helper/html/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -44,14 +44,6 @@ <build> <plugins> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> Modified: aperture/trunk/core/linkextractor/core/pom.xml =================================================================== --- aperture/trunk/core/linkextractor/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/linkextractor/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -33,9 +33,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/linkextractor/html/pom.xml =================================================================== --- aperture/trunk/core/linkextractor/html/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/linkextractor/html/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -38,9 +38,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/mime-identifier/core/pom.xml =================================================================== --- aperture/trunk/core/mime-identifier/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/mime-identifier/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -48,9 +48,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/mime-identifier/magic/pom.xml =================================================================== --- aperture/trunk/core/mime-identifier/magic/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/mime-identifier/magic/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -62,9 +62,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/opener/core/pom.xml =================================================================== --- aperture/trunk/core/opener/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/opener/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -43,9 +43,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/opener/email/pom.xml =================================================================== --- aperture/trunk/core/opener/email/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/opener/email/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -52,9 +52,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/opener/file/pom.xml =================================================================== --- aperture/trunk/core/opener/file/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/opener/file/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -52,9 +52,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/opener/http/pom.xml =================================================================== --- aperture/trunk/core/opener/http/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/opener/http/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -52,9 +52,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/outlook/pom.xml =================================================================== --- aperture/trunk/core/outlook/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/outlook/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -115,9 +115,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/rdf/pom.xml =================================================================== --- aperture/trunk/core/rdf/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/rdf/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -44,14 +44,6 @@ <build> <plugins> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> Modified: aperture/trunk/core/security/core/pom.xml =================================================================== --- aperture/trunk/core/security/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/security/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -38,9 +38,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/security/standard/pom.xml =================================================================== --- aperture/trunk/core/security/standard/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/security/standard/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -43,9 +43,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/security/swing/pom.xml =================================================================== --- aperture/trunk/core/security/swing/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/security/swing/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -47,9 +47,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/util/pom.xml =================================================================== --- aperture/trunk/core/util/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/util/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -25,14 +25,6 @@ <build> <plugins> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> Modified: aperture/trunk/core/vocabulary/core/pom.xml =================================================================== --- aperture/trunk/core/vocabulary/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/vocabulary/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -121,14 +121,6 @@ </vocabularies> </configuration> </plugin> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> Modified: aperture/trunk/core/websites/bibsonomy/pom.xml =================================================================== --- aperture/trunk/core/websites/bibsonomy/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/websites/bibsonomy/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -111,9 +111,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/websites/core/pom.xml =================================================================== --- aperture/trunk/core/websites/core/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/websites/core/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -62,14 +62,6 @@ <build> <plugins> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> - </configuration> - </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> Modified: aperture/trunk/core/websites/delicious/pom.xml =================================================================== --- aperture/trunk/core/websites/delicious/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/websites/delicious/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -120,9 +120,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/websites/flickr/pom.xml =================================================================== --- aperture/trunk/core/websites/flickr/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/websites/flickr/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -116,9 +116,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/core/websites/iphoto/pom.xml =================================================================== --- aperture/trunk/core/websites/iphoto/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/core/websites/iphoto/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -111,9 +111,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/default/accessor/pom.xml =================================================================== --- aperture/trunk/default/accessor/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/default/accessor/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -44,9 +44,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/default/crawler/pom.xml =================================================================== --- aperture/trunk/default/crawler/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/default/crawler/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -64,9 +64,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/default/datasource/pom.xml =================================================================== --- aperture/trunk/default/datasource/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/default/datasource/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -74,9 +74,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/default/detector/pom.xml =================================================================== --- aperture/trunk/default/detector/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/default/detector/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -39,9 +39,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/default/extractor/pom.xml =================================================================== --- aperture/trunk/default/extractor/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/default/extractor/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -109,9 +109,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/default/linkextractor/pom.xml =================================================================== --- aperture/trunk/default/linkextractor/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/default/linkextractor/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -49,9 +49,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/default/mime-identifier/pom.xml =================================================================== --- aperture/trunk/default/mime-identifier/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/default/mime-identifier/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -39,9 +39,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/default/opener/pom.xml =================================================================== --- aperture/trunk/default/opener/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/default/opener/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -49,9 +49,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/default/security/pom.xml =================================================================== --- aperture/trunk/default/security/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/default/security/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -44,9 +44,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -495,34 +495,26 @@ <artifactId>maven-bundle-plugin</artifactId> <configuration> <remoteOBR>repository.xml</remoteOBR> + <classifier>bundle</classifier> + <pomFile>${basedir}/pom.xml</pomFile> </configuration> <executions> <execution> - <id>bundle-manifest</id> - <phase>process-classes</phase> - <goals> - <goal>manifest</goal> - </goals> - </execution> - <execution> - <id>bundle-package</id> - <phase>package</phase> - <goals> - <goal>bundle</goal> - </goals> - </execution> - <execution> <id>bundle-install</id> <phase>install</phase> <goals> - <goal>install</goal> + <goal>manifest</goal> + <goal>bundle</goal> + <goal>install-file</goal> </goals> </execution> <execution> <id>bundle-deploy</id> <phase>deploy</phase> <goals> - <goal>deploy</goal> + <goal>manifest</goal> + <goal>bundle</goal> + <goal>deploy-file</goal> </goals> </execution> </executions> Modified: aperture/trunk/runtime/default/pom.xml =================================================================== --- aperture/trunk/runtime/default/pom.xml 2009-03-11 00:26:26 UTC (rev 1798) +++ aperture/trunk/runtime/default/pom.xml 2009-03-11 09:29:43 UTC (rev 1799) @@ -94,9 +94,9 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> - <archive> - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> - </archive> + <excludes> + <exclude>**/bundle/*</exclude> + </excludes> </configuration> </plugin> <plugin> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-11 15:14:32
|
Revision: 1802 http://aperture.svn.sourceforge.net/aperture/?rev=1802&view=rev Author: mylka Date: 2009-03-11 15:14:25 +0000 (Wed, 11 Mar 2009) Log Message: ----------- migrated the addressbook tests Modified Paths: -------------- aperture/trunk/core/addressbook/apple/pom.xml aperture/trunk/core/addressbook/core/pom.xml aperture/trunk/core/addressbook/thunderbird/pom.xml aperture/trunk/core/addressbook/thunderbird/src/test/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdCrawlerTest.java aperture/trunk/test/core/pom.xml Added Paths: ----------- aperture/trunk/core/addressbook/apple/src/test/java/org/semanticdesktop/aperture/addressbook/apple/ aperture/trunk/core/addressbook/core/src/test/java/org/semanticdesktop/aperture/addressbook/ aperture/trunk/core/addressbook/thunderbird/src/test/java/org/semanticdesktop/aperture/addressbook/ Removed Paths: ------------- aperture/trunk/core/addressbook/core/src/test/java/org/semanticdesktop/aperture/addressbook/apple/ aperture/trunk/core/addressbook/core/src/test/java/org/semanticdesktop/aperture/addressbook/thunderbird/ aperture/trunk/core/addressbook/thunderbird/src/test/java/org/semanticdesktop/aperture/addressbook/AbstractAddressbookCrawlerTest.java aperture/trunk/core/addressbook/thunderbird/src/test/java/org/semanticdesktop/aperture/addressbook/apple/ Modified: aperture/trunk/core/addressbook/apple/pom.xml =================================================================== --- aperture/trunk/core/addressbook/apple/pom.xml 2009-03-11 14:51:25 UTC (rev 1801) +++ aperture/trunk/core/addressbook/apple/pom.xml 2009-03-11 15:14:25 UTC (rev 1802) @@ -70,6 +70,11 @@ <artifactId>slf4j-jdk14</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>junit</groupId> Property changes on: aperture/trunk/core/addressbook/apple/src/test/java/org/semanticdesktop/aperture/addressbook/apple ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/addressbook/apple:1513-1527 Modified: aperture/trunk/core/addressbook/core/pom.xml =================================================================== --- aperture/trunk/core/addressbook/core/pom.xml 2009-03-11 14:51:25 UTC (rev 1801) +++ aperture/trunk/core/addressbook/core/pom.xml 2009-03-11 15:14:25 UTC (rev 1802) @@ -53,8 +53,12 @@ <artifactId>slf4j-jdk14</artifactId> <scope>test</scope> </dependency> - <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> Property changes on: aperture/trunk/core/addressbook/core/src/test/java/org/semanticdesktop/aperture/addressbook ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/addressbook:1513-1527 Modified: aperture/trunk/core/addressbook/thunderbird/pom.xml =================================================================== --- aperture/trunk/core/addressbook/thunderbird/pom.xml 2009-03-11 14:51:25 UTC (rev 1801) +++ aperture/trunk/core/addressbook/thunderbird/pom.xml 2009-03-11 15:14:25 UTC (rev 1802) @@ -75,6 +75,11 @@ <artifactId>slf4j-jdk14</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>junit</groupId> Property changes on: aperture/trunk/core/addressbook/thunderbird/src/test/java/org/semanticdesktop/aperture/addressbook ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/addressbook:1513-1527 Deleted: aperture/trunk/core/addressbook/thunderbird/src/test/java/org/semanticdesktop/aperture/addressbook/AbstractAddressbookCrawlerTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/addressbook/AbstractAddressbookCrawlerTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/addressbook/thunderbird/src/test/java/org/semanticdesktop/aperture/addressbook/AbstractAddressbookCrawlerTest.java 2009-03-11 15:14:25 UTC (rev 1802) @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.addressbook; - -import java.util.LinkedList; -import java.util.List; - -import org.ontoware.rdf2go.RDF2Go; -import org.ontoware.rdf2go.model.Model; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.ApertureTestBase; -import org.semanticdesktop.aperture.TestIncrementalCrawlerHandler; -import org.semanticdesktop.aperture.accessor.DataObject; -import org.semanticdesktop.aperture.accessor.base.DataObjectBase; -import org.semanticdesktop.aperture.crawler.Crawler; -import org.semanticdesktop.aperture.crawler.ExitCode; -import org.semanticdesktop.aperture.datasource.DataSource; -import org.semanticdesktop.aperture.datasource.base.DataSourceBase; -import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; - -/** - * A test suite that tests the basic functionality provided by the abstract AddresbookCrawler. - */ -public class AbstractAddressbookCrawlerTest extends ApertureTestBase { - - /** - * Tests a situation when the crawler is stopped inside the {@link AddressbookCrawler#crawlAddressbook()} - * method. The expected behavior is that no object is to be returned to the crawler handler, all generated - * objects must be disposed properly. The exit code must be STOP_REQUESTED. This is supposed to work - * without any AccessData instance - */ - public void testStopWhileCrawlingAddressbook() { - final EndlessAddressbookCrawler crawler = new EndlessAddressbookCrawler(); - TestIncrementalCrawlerHandler handler = new TestIncrementalCrawlerHandler(null,null,true); - crawler.setCrawlerHandler(handler); - crawler.setDataSource(getDummyDataSource()); - Thread thread = new Thread() { public void run() { crawler.crawl(); } }; - thread.start(); // crawl in a separate thread - safelySleep(300); // wait a little, allow the crawler to crawl some objects into the result list - crawler.stop(); // stop the crawler - safelyJoin(thread,500); // wait until the crawler actually stops - assertNewModUnmodDel(handler, 0, 0, 0, 0); // nothing should have reached the handler - // right now there should be about 9 or 10 objects in the result list of the dummy addressbook crawler - // all must be properly disposed - for (DataObject object : crawler.result) { - assertFalse(object.getMetadata().getModel().isOpen()); - } - // the exit code of the crawler is supposed to be STOP_REQUESTED - assertEquals(ExitCode.STOP_REQUESTED, crawler.getCrawlReport().getExitCode()); - crawler.getDataSource().getConfiguration().dispose(); // dispose the dummy data source configuration - handler.close(); - } - - /** - * Tests a situation where the crawler is stopped outside the crawlAddressbook method. The desired behavior - * is: all data objects that managed to reach the handler are OK. All the data objects that were obtained - * from the crawlAddressbook method, but haven't reached the handler must be properly disposed by the - * crawler itself, before it returns from the crawl() method. This is supposed to work without any - * AccessData instance. - */ - public void testStopWhileReturningDataObjects() { - final TenObjectsAddressbookCrawler crawler = new TenObjectsAddressbookCrawler(); - VerySlowCrawlerHandler handler = new VerySlowCrawlerHandler(); - crawler.setCrawlerHandler(handler); - crawler.setDataSource(getDummyDataSource()); - Thread thread = new Thread() { public void run() { crawler.crawl(); } }; - thread.start(); // crawl in a separate thread - safelySleep(250); // wait a little, the processing of 10 data objects in the crawler handler will take - // 50 miliseconds, by waiting 250 ms, we'll stop the crawler exactly in the middle of processing - crawler.stop(); // stop the crawler - safelyJoin(thread,500); // wait until the crawler actually stops - assertTrue(handler.getNewObjects().size() > 2); // something should have reached the handler - // two is a conservative estimate, it should be about 4,5 or 6 - // all data objects that reached the handler will be disposed by the handler methods, the objects that - // remained within the crawler must be disposed by the crawler itself, we test it by ensuring that - // the entire result list is properly disposed - for (DataObject object : crawler.result) { - assertFalse(object.getMetadata().getModel().isOpen()); - } - // the exit code of the crawler is supposed to be STOP_REQUESTED - assertEquals(ExitCode.STOP_REQUESTED, crawler.getCrawlReport().getExitCode()); - crawler.getDataSource().getConfiguration().dispose(); // dispose the dummy data source configuration - handler.close(); - } - - /** - * This class simulates an address book crawler that works with a very big address book, the - * crawlAddressbook() method is endless. It only stops when a stop has been requested. - */ - private class EndlessAddressbookCrawler extends AddressbookCrawler { - List<DataObject> result = new LinkedList<DataObject>(); - @SuppressWarnings("unchecked") - public List crawlAddressbook() throws Exception { - int counter = 1; - while (!isStopRequested()) { - URI uri = new URIImpl("uri:testobject:" + (counter++)); - RDFContainer container = getRDFContainerFactory(uri.toString()).getRDFContainer(uri); - DataObject object = new DataObjectBase(uri,null,container); - result.add(object); - safelySleep(30); - } - return result; - } - - public URI getContactListUri() { - return new URIImpl("uri:contactlist"); - } - } - - /** - * This class simulates an address book crawler that yields 10 data objects quickly. - */ - private class TenObjectsAddressbookCrawler extends AddressbookCrawler { - List<DataObject> result = new LinkedList<DataObject>(); - @SuppressWarnings("unchecked") - public List crawlAddressbook() throws Exception { - for (int i = 0; i < 10; i++) { - URI uri = new URIImpl("uri:testobject:" + i); - RDFContainer container = getRDFContainerFactory(uri.toString()).getRDFContainer(uri); - DataObject object = new DataObjectBase(uri,null,container); - result.add(object); - } - return result; - } - - public URI getContactListUri() { - return new URIImpl("uri:contactlist"); - } - } - - /** - * This class simulates an application that does some heavy processing of the data objects returned by the - * crawler. That's why we wait for 50 ms after each data object is processed. - */ - private class VerySlowCrawlerHandler extends TestIncrementalCrawlerHandler { - public VerySlowCrawlerHandler() {super(null,null,true);} // we want separate models for each container - public void objectNew(Crawler crawler, DataObject object) { - super.objectNew(crawler, object); - safelySleep(50); - } - } - - private DataSource getDummyDataSource() { - URI id = new URIImpl("uri:datasource"); - Model model = RDF2Go.getModelFactory().createModel(); - model.open(); - return new DataSourceBase(new RDFContainerImpl(model,id)) { - public URI getType() { - return new URIImpl("uri:type"); - } - }; - } -} Modified: aperture/trunk/core/addressbook/thunderbird/src/test/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdCrawlerTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdCrawlerTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/addressbook/thunderbird/src/test/java/org/semanticdesktop/aperture/addressbook/thunderbird/ThunderbirdCrawlerTest.java 2009-03-11 15:14:25 UTC (rev 1802) @@ -24,6 +24,7 @@ import org.semanticdesktop.aperture.crawler.ExitCode; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.util.ResourceUtil; import org.semanticdesktop.nepomuk.nrl.validator.testers.DataObjectTreeModelTester; @@ -39,7 +40,7 @@ f.deleteOnExit(); FileOutputStream fos=new FileOutputStream(f); - InputStream is=getClass().getResourceAsStream(path); + InputStream is= ResourceUtil.getInputStream(path, getClass()); //java sucks byte[] buffer = new byte[512]; Modified: aperture/trunk/test/core/pom.xml =================================================================== --- aperture/trunk/test/core/pom.xml 2009-03-11 14:51:25 UTC (rev 1801) +++ aperture/trunk/test/core/pom.xml 2009-03-11 15:14:25 UTC (rev 1802) @@ -49,6 +49,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-mime-identifier-magic</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testdocs</artifactId> + </dependency> <dependency> <groupId>org.semweb4j</groupId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-11 20:15:25
|
Revision: 1805 http://aperture.svn.sourceforge.net/aperture/?rev=1805&view=rev Author: mylka Date: 2009-03-11 20:15:08 +0000 (Wed, 11 Mar 2009) Log Message: ----------- migrated the crawler tests Modified Paths: -------------- aperture/trunk/core/crawler/filesystem/pom.xml aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/filesystem/TestFileSystemCrawler.java aperture/trunk/core/crawler/ical/pom.xml aperture/trunk/core/crawler/ical/src/main/java/org/semanticdesktop/aperture/crawler/ical/IcalCrawler.java aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/ical/TestIcalCrawler.java aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/ical/TestIcalCrawlerIncremental.java aperture/trunk/core/crawler/mail/pom.xml aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/mail/DataObjectFactoryTest.java aperture/trunk/core/crawler/mbox/pom.xml aperture/trunk/default/crawler/pom.xml aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/impl/TestDefaultCrawlerRegistry.java aperture/trunk/pom.xml aperture/trunk/test/core/pom.xml aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/ApertureTestBase.java Added Paths: ----------- aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/ aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/ aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/ aperture/trunk/core/crawler/mbox/src/test/java/org/semanticdesktop/aperture/crawler/ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/ Removed Paths: ------------- aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/ical/ aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/impl/ aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/mail/ aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/mbox/ aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/filesystem/ aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/impl/ aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/mail/ aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/mbox/ aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/filesystem/ aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/ical/ aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/impl/ aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/mbox/ aperture/trunk/core/crawler/mbox/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java aperture/trunk/core/crawler/mbox/src/test/java/org/semanticdesktop/aperture/crawler/filesystem/ aperture/trunk/core/crawler/mbox/src/test/java/org/semanticdesktop/aperture/crawler/ical/ aperture/trunk/core/crawler/mbox/src/test/java/org/semanticdesktop/aperture/crawler/impl/ aperture/trunk/core/crawler/mbox/src/test/java/org/semanticdesktop/aperture/crawler/mail/ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/filesystem/ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/ical/ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/mail/ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/mbox/ Modified: aperture/trunk/core/crawler/filesystem/pom.xml =================================================================== --- aperture/trunk/core/crawler/filesystem/pom.xml 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/core/crawler/filesystem/pom.xml 2009-03-11 20:15:08 UTC (rev 1805) @@ -37,6 +37,21 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-accessor-file</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-accessor-file</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>org.semweb4j</groupId> Property changes on: aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/crawler:1513-1527 Deleted: aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.crawler; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.semanticdesktop.aperture.addressbook.AbstractAddressbookCrawlerTest; -import org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdCrawlerTest; -import org.semanticdesktop.aperture.crawler.filesystem.TestFileSystemCrawler; -import org.semanticdesktop.aperture.crawler.ical.DurationConversionTest; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawler; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawlerIncremental; -import org.semanticdesktop.aperture.crawler.impl.TestDefaultCrawlerRegistry; -import org.semanticdesktop.aperture.crawler.mail.DataObjectFactoryTest; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawler; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawlerMultiFolder; - -/** - * Tests all Crawler implementations and related classes. - */ -public class TestCrawlers extends TestSuite { - - /** - * Returns the test suite that tests crawlers - * @return the test suite that tests the crawlers - */ - public static Test suite() { - return new TestCrawlers(); - } - - private TestCrawlers() { - super("crawlers"); - addTest(new TestSuite(TestFileSystemCrawler.class)); - addTest(new TestSuite(TestDefaultCrawlerRegistry.class)); - addTest(new TestSuite(TestIcalCrawler.class)); - addTest(new TestSuite(TestIcalCrawlerIncremental.class)); - addTest(new TestSuite(DurationConversionTest.class)); - addTest(new TestSuite(TestMboxCrawler.class)); - addTest(new TestSuite(TestMboxCrawlerMultiFolder.class)); - addTest(new TestSuite(ThunderbirdCrawlerTest.class)); - addTest(new TestSuite(AbstractAddressbookCrawlerTest.class)); - addTest(new TestSuite(DataObjectFactoryTest.class)); - } -} Modified: aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/filesystem/TestFileSystemCrawler.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/filesystem/TestFileSystemCrawler.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/filesystem/src/test/java/org/semanticdesktop/aperture/crawler/filesystem/TestFileSystemCrawler.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -30,9 +30,9 @@ import org.semanticdesktop.aperture.datasource.filesystem.FileSystemDataSource; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.rdf.util.ModelUtil; import org.semanticdesktop.aperture.util.FileUtil; import org.semanticdesktop.aperture.util.IOUtil; -import org.semanticdesktop.aperture.util.ModelUtil; import org.semanticdesktop.aperture.vocabulary.NFO; import org.semanticdesktop.aperture.vocabulary.NIE; import org.semanticdesktop.nepomuk.nrl.validator.testers.DataObjectTreeModelTester; Modified: aperture/trunk/core/crawler/ical/pom.xml =================================================================== --- aperture/trunk/core/crawler/ical/pom.xml 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/core/crawler/ical/pom.xml 2009-03-11 20:15:08 UTC (rev 1805) @@ -37,6 +37,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>net.fortuna.ical4j</groupId> Modified: aperture/trunk/core/crawler/ical/src/main/java/org/semanticdesktop/aperture/crawler/ical/IcalCrawler.java =================================================================== --- aperture/trunk/core/crawler/ical/src/main/java/org/semanticdesktop/aperture/crawler/ical/IcalCrawler.java 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/core/crawler/ical/src/main/java/org/semanticdesktop/aperture/crawler/ical/IcalCrawler.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -3645,12 +3645,21 @@ String valueParameterString = actualValueParameter.getValue(); datatypeURI = convertValueParameterToXSDDatatype(valueParameterString); rdfPropertyValue = convertIcalValueToXSDValue(propertyValue, valueParameterString); - literal = rdfContainer.getModel().createDatatypeLiteral(rdfPropertyValue, datatypeURI); + if (datatypeURI == null) { + literal = rdfContainer.getModel().createPlainLiteral(rdfPropertyValue); + } else { + literal = rdfContainer.getModel().createDatatypeLiteral(rdfPropertyValue, datatypeURI); + } + } else if (defaultType != null) { datatypeURI = convertValueParameterToXSDDatatype(defaultType); rdfPropertyValue = convertIcalValueToXSDValue(propertyValue, defaultType); - literal = rdfContainer.getModel().createDatatypeLiteral(rdfPropertyValue, datatypeURI); + if (datatypeURI == null) { + literal = rdfContainer.getModel().createPlainLiteral(rdfPropertyValue); + } else { + literal = rdfContainer.getModel().createDatatypeLiteral(rdfPropertyValue, datatypeURI); + } } else { literal = rdfContainer.getModel().createPlainLiteral(propertyValue); Property changes on: aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/crawler:1513-1527 Deleted: aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.crawler; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.semanticdesktop.aperture.addressbook.AbstractAddressbookCrawlerTest; -import org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdCrawlerTest; -import org.semanticdesktop.aperture.crawler.filesystem.TestFileSystemCrawler; -import org.semanticdesktop.aperture.crawler.ical.DurationConversionTest; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawler; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawlerIncremental; -import org.semanticdesktop.aperture.crawler.impl.TestDefaultCrawlerRegistry; -import org.semanticdesktop.aperture.crawler.mail.DataObjectFactoryTest; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawler; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawlerMultiFolder; - -/** - * Tests all Crawler implementations and related classes. - */ -public class TestCrawlers extends TestSuite { - - /** - * Returns the test suite that tests crawlers - * @return the test suite that tests the crawlers - */ - public static Test suite() { - return new TestCrawlers(); - } - - private TestCrawlers() { - super("crawlers"); - addTest(new TestSuite(TestFileSystemCrawler.class)); - addTest(new TestSuite(TestDefaultCrawlerRegistry.class)); - addTest(new TestSuite(TestIcalCrawler.class)); - addTest(new TestSuite(TestIcalCrawlerIncremental.class)); - addTest(new TestSuite(DurationConversionTest.class)); - addTest(new TestSuite(TestMboxCrawler.class)); - addTest(new TestSuite(TestMboxCrawlerMultiFolder.class)); - addTest(new TestSuite(ThunderbirdCrawlerTest.class)); - addTest(new TestSuite(AbstractAddressbookCrawlerTest.class)); - addTest(new TestSuite(DataObjectFactoryTest.class)); - } -} Modified: aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/ical/TestIcalCrawler.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/ical/TestIcalCrawler.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/ical/TestIcalCrawler.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -28,7 +28,6 @@ import org.ontoware.rdf2go.vocabulary.XSD; import org.semanticdesktop.aperture.ApertureTestBase; import org.semanticdesktop.aperture.TestIncrementalCrawlerHandler; -import org.semanticdesktop.aperture.accessor.impl.DefaultDataAccessorRegistry; import org.semanticdesktop.aperture.datasource.ical.IcalDataSource; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.util.ResourceUtil; @@ -915,7 +914,6 @@ IcalCrawler icalCrawler = new IcalCrawler(); icalCrawler.setDataSource(icalDataSource); - icalCrawler.setDataAccessorRegistry(new DefaultDataAccessorRegistry()); icalCrawler.setCrawlerHandler(testCrawlerHandler); icalCrawler.crawl(); Modified: aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/ical/TestIcalCrawlerIncremental.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/ical/TestIcalCrawlerIncremental.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/ical/src/test/java/org/semanticdesktop/aperture/crawler/ical/TestIcalCrawlerIncremental.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -16,7 +16,6 @@ import org.semanticdesktop.aperture.TestIncrementalCrawlerHandler; import org.semanticdesktop.aperture.accessor.AccessData; import org.semanticdesktop.aperture.accessor.base.AccessDataImpl; -import org.semanticdesktop.aperture.accessor.impl.DefaultDataAccessorRegistry; import org.semanticdesktop.aperture.datasource.ical.IcalDataSource; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; @@ -127,7 +126,6 @@ IcalCrawler icalCrawler = new IcalCrawler(); icalCrawler.setDataSource(icalDataSource); - icalCrawler.setDataAccessorRegistry(new DefaultDataAccessorRegistry()); icalCrawler.setCrawlerHandler(testCrawlerHandler); icalCrawler.setAccessData(accessData); Modified: aperture/trunk/core/crawler/mail/pom.xml =================================================================== --- aperture/trunk/core/crawler/mail/pom.xml 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/core/crawler/mail/pom.xml 2009-03-11 20:15:08 UTC (rev 1805) @@ -41,6 +41,16 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-adobe-pdf</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>javax.mail</groupId> Property changes on: aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/crawler:1513-1527 Deleted: aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.crawler; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.semanticdesktop.aperture.addressbook.AbstractAddressbookCrawlerTest; -import org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdCrawlerTest; -import org.semanticdesktop.aperture.crawler.filesystem.TestFileSystemCrawler; -import org.semanticdesktop.aperture.crawler.ical.DurationConversionTest; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawler; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawlerIncremental; -import org.semanticdesktop.aperture.crawler.impl.TestDefaultCrawlerRegistry; -import org.semanticdesktop.aperture.crawler.mail.DataObjectFactoryTest; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawler; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawlerMultiFolder; - -/** - * Tests all Crawler implementations and related classes. - */ -public class TestCrawlers extends TestSuite { - - /** - * Returns the test suite that tests crawlers - * @return the test suite that tests the crawlers - */ - public static Test suite() { - return new TestCrawlers(); - } - - private TestCrawlers() { - super("crawlers"); - addTest(new TestSuite(TestFileSystemCrawler.class)); - addTest(new TestSuite(TestDefaultCrawlerRegistry.class)); - addTest(new TestSuite(TestIcalCrawler.class)); - addTest(new TestSuite(TestIcalCrawlerIncremental.class)); - addTest(new TestSuite(DurationConversionTest.class)); - addTest(new TestSuite(TestMboxCrawler.class)); - addTest(new TestSuite(TestMboxCrawlerMultiFolder.class)); - addTest(new TestSuite(ThunderbirdCrawlerTest.class)); - addTest(new TestSuite(AbstractAddressbookCrawlerTest.class)); - addTest(new TestSuite(DataObjectFactoryTest.class)); - } -} Modified: aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/mail/DataObjectFactoryTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/mail/DataObjectFactoryTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/mail/src/test/java/org/semanticdesktop/aperture/crawler/mail/DataObjectFactoryTest.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -30,7 +30,6 @@ import org.semanticdesktop.aperture.ApertureTestBase; import org.semanticdesktop.aperture.accessor.DataObject; import org.semanticdesktop.aperture.accessor.FileDataObject; -import org.semanticdesktop.aperture.accessor.MessageDataObject; import org.semanticdesktop.aperture.extractor.Extractor; import org.semanticdesktop.aperture.extractor.pdf.PdfExtractorFactory; import org.semanticdesktop.aperture.rdf.RDFContainer; Modified: aperture/trunk/core/crawler/mbox/pom.xml =================================================================== --- aperture/trunk/core/crawler/mbox/pom.xml 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/core/crawler/mbox/pom.xml 2009-03-11 20:15:08 UTC (rev 1805) @@ -41,6 +41,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>net.fortuna.mstor</groupId> Property changes on: aperture/trunk/core/crawler/mbox/src/test/java/org/semanticdesktop/aperture/crawler ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/crawler:1513-1527 Deleted: aperture/trunk/core/crawler/mbox/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/mbox/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.crawler; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.semanticdesktop.aperture.addressbook.AbstractAddressbookCrawlerTest; -import org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdCrawlerTest; -import org.semanticdesktop.aperture.crawler.filesystem.TestFileSystemCrawler; -import org.semanticdesktop.aperture.crawler.ical.DurationConversionTest; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawler; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawlerIncremental; -import org.semanticdesktop.aperture.crawler.impl.TestDefaultCrawlerRegistry; -import org.semanticdesktop.aperture.crawler.mail.DataObjectFactoryTest; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawler; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawlerMultiFolder; - -/** - * Tests all Crawler implementations and related classes. - */ -public class TestCrawlers extends TestSuite { - - /** - * Returns the test suite that tests crawlers - * @return the test suite that tests the crawlers - */ - public static Test suite() { - return new TestCrawlers(); - } - - private TestCrawlers() { - super("crawlers"); - addTest(new TestSuite(TestFileSystemCrawler.class)); - addTest(new TestSuite(TestDefaultCrawlerRegistry.class)); - addTest(new TestSuite(TestIcalCrawler.class)); - addTest(new TestSuite(TestIcalCrawlerIncremental.class)); - addTest(new TestSuite(DurationConversionTest.class)); - addTest(new TestSuite(TestMboxCrawler.class)); - addTest(new TestSuite(TestMboxCrawlerMultiFolder.class)); - addTest(new TestSuite(ThunderbirdCrawlerTest.class)); - addTest(new TestSuite(AbstractAddressbookCrawlerTest.class)); - addTest(new TestSuite(DataObjectFactoryTest.class)); - } -} Modified: aperture/trunk/default/crawler/pom.xml =================================================================== --- aperture/trunk/default/crawler/pom.xml 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/default/crawler/pom.xml 2009-03-11 20:15:08 UTC (rev 1805) @@ -57,6 +57,17 @@ <groupId>org.osgi</groupId> <artifactId>osgi_R4_core</artifactId> </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-jdk14</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> Property changes on: aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/crawler:1513-1527 Deleted: aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/TestCrawlers.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.crawler; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.semanticdesktop.aperture.addressbook.AbstractAddressbookCrawlerTest; -import org.semanticdesktop.aperture.addressbook.thunderbird.ThunderbirdCrawlerTest; -import org.semanticdesktop.aperture.crawler.filesystem.TestFileSystemCrawler; -import org.semanticdesktop.aperture.crawler.ical.DurationConversionTest; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawler; -import org.semanticdesktop.aperture.crawler.ical.TestIcalCrawlerIncremental; -import org.semanticdesktop.aperture.crawler.impl.TestDefaultCrawlerRegistry; -import org.semanticdesktop.aperture.crawler.mail.DataObjectFactoryTest; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawler; -import org.semanticdesktop.aperture.crawler.mbox.TestMboxCrawlerMultiFolder; - -/** - * Tests all Crawler implementations and related classes. - */ -public class TestCrawlers extends TestSuite { - - /** - * Returns the test suite that tests crawlers - * @return the test suite that tests the crawlers - */ - public static Test suite() { - return new TestCrawlers(); - } - - private TestCrawlers() { - super("crawlers"); - addTest(new TestSuite(TestFileSystemCrawler.class)); - addTest(new TestSuite(TestDefaultCrawlerRegistry.class)); - addTest(new TestSuite(TestIcalCrawler.class)); - addTest(new TestSuite(TestIcalCrawlerIncremental.class)); - addTest(new TestSuite(DurationConversionTest.class)); - addTest(new TestSuite(TestMboxCrawler.class)); - addTest(new TestSuite(TestMboxCrawlerMultiFolder.class)); - addTest(new TestSuite(ThunderbirdCrawlerTest.class)); - addTest(new TestSuite(AbstractAddressbookCrawlerTest.class)); - addTest(new TestSuite(DataObjectFactoryTest.class)); - } -} Modified: aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/impl/TestDefaultCrawlerRegistry.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/crawler/impl/TestDefaultCrawlerRegistry.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/crawler/impl/TestDefaultCrawlerRegistry.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -6,10 +6,11 @@ */ package org.semanticdesktop.aperture.crawler.impl; -import org.semanticdesktop.aperture.ApertureTestBase; +import junit.framework.TestCase; + import org.semanticdesktop.aperture.datasource.filesystem.FILESYSTEMDS; -public class TestDefaultCrawlerRegistry extends ApertureTestBase { +public class TestDefaultCrawlerRegistry extends TestCase { public void testRegistry() { DefaultCrawlerRegistry registry = new DefaultCrawlerRegistry(); Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/pom.xml 2009-03-11 20:15:08 UTC (rev 1805) @@ -48,6 +48,11 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-accessor-file</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-addressbook-core</artifactId> <version>${aperture.version}</version> </dependency> @@ -123,6 +128,11 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-extractor-adobe-pdf</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-helper-html</artifactId> <version>${aperture.version}</version> </dependency> @@ -185,11 +195,13 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-testdocs</artifactId> <version>${aperture.version}</version> + <scope>test</scope> </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-testcore</artifactId> <version>${aperture.version}</version> + <scope>test</scope> </dependency> <!-- Aperture Tools --> Modified: aperture/trunk/test/core/pom.xml =================================================================== --- aperture/trunk/test/core/pom.xml 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/test/core/pom.xml 2009-03-11 20:15:08 UTC (rev 1805) @@ -52,6 +52,7 @@ <dependency> <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-testdocs</artifactId> + <scope>compile</scope> </dependency> <dependency> Modified: aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/ApertureTestBase.java =================================================================== --- aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/ApertureTestBase.java 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/ApertureTestBase.java 2009-03-11 20:15:08 UTC (rev 1805) @@ -38,8 +38,8 @@ import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.accessor.DataObject; import org.semanticdesktop.aperture.accessor.RDFContainerFactory; -//import org.semanticdesktop.aperture.mime.identifier.MimeTypeIdentifier; -//import org.semanticdesktop.aperture.mime.identifier.magic.MagicMimeTypeIdentifier; +import org.semanticdesktop.aperture.mime.identifier.MimeTypeIdentifier; +import org.semanticdesktop.aperture.mime.identifier.magic.MagicMimeTypeIdentifier; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; import org.semanticdesktop.aperture.util.DateUtil; @@ -742,15 +742,15 @@ } } -// protected void assertMimeType(String desiredMimeType, URI uri, InputStream stream) throws Exception { -// MimeTypeIdentifier mimeTypeIdentifier = new MagicMimeTypeIdentifier(); -// int minimumArrayLength = mimeTypeIdentifier.getMinArrayLength(); -// stream.mark(minimumArrayLength + 10); // add some for safety -// byte[] bytes = IOUtil.readBytes(stream, minimumArrayLength); -// String mimeType = mimeTypeIdentifier.identify(bytes, null, uri); -// assertEquals(mimeType, desiredMimeType); -// stream.reset(); -// } + protected void assertMimeType(String desiredMimeType, URI uri, InputStream stream) throws Exception { + MimeTypeIdentifier mimeTypeIdentifier = new MagicMimeTypeIdentifier(); + int minimumArrayLength = mimeTypeIdentifier.getMinArrayLength(); + stream.mark(minimumArrayLength + 10); // add some for safety + byte[] bytes = IOUtil.readBytes(stream, minimumArrayLength); + String mimeType = mimeTypeIdentifier.identify(bytes, null, uri); + assertEquals(mimeType, desiredMimeType); + stream.reset(); + } /** * Sleep for the given number of miliseconds. This method is provided for convenience. It is immune to This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-11 23:44:55
|
Revision: 1808 http://aperture.svn.sourceforge.net/aperture/?rev=1808&view=rev Author: mylka Date: 2009-03-11 23:44:46 +0000 (Wed, 11 Mar 2009) Log Message: ----------- migrated the unit tests of the datasource modules Modified Paths: -------------- aperture/trunk/core/datasource/core/pom.xml aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/TestConfigurationUtil.java aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/TestDomainBoundaries.java aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/TestUrlPatterns.java aperture/trunk/default/datasource/pom.xml aperture/trunk/default/datasource/src/test/java/org/semanticdesktop/aperture/datasource/impl/TestDefaultDataSourceRegistry.java aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/ aperture/trunk/default/datasource/src/test/java/org/semanticdesktop/aperture/datasource/impl/ Modified: aperture/trunk/core/datasource/core/pom.xml =================================================================== --- aperture/trunk/core/datasource/core/pom.xml 2009-03-11 21:02:36 UTC (rev 1807) +++ aperture/trunk/core/datasource/core/pom.xml 2009-03-11 23:44:46 UTC (rev 1808) @@ -44,6 +44,26 @@ <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-jdk14</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.impl.sesame22</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.openrdf.sesame</groupId> + <artifactId>sesame-runtime</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> </dependencies> <build> Property changes on: aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/datasource/config:1513-1527 Modified: aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/TestConfigurationUtil.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/datasource/config/TestConfigurationUtil.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/TestConfigurationUtil.java 2009-03-11 23:44:46 UTC (rev 1808) @@ -6,12 +6,16 @@ */ package org.semanticdesktop.aperture.datasource.config; +import junit.framework.TestCase; + +import org.ontoware.rdf2go.RDF2Go; import org.ontoware.rdf2go.exception.ModelException; import org.ontoware.rdf2go.model.Model; -import org.semanticdesktop.aperture.ApertureTestBase; +import org.ontoware.rdf2go.model.node.URI; import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; -public class TestConfigurationUtil extends ApertureTestBase { +public class TestConfigurationUtil extends TestCase { private RDFContainer configuration; @@ -19,6 +23,12 @@ configuration = createRDFContainer("urn:test:dummysource"); } + private RDFContainer createRDFContainer(String string) { + Model model = RDF2Go.getModelFactory().createModel().open(); + URI uri = model.createURI(string); + return new RDFContainerImpl(model,uri); + } + public void tearDown() { configuration.dispose(); configuration = null; Modified: aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/TestDomainBoundaries.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/datasource/config/TestDomainBoundaries.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/TestDomainBoundaries.java 2009-03-11 23:44:46 UTC (rev 1808) @@ -6,9 +6,9 @@ */ package org.semanticdesktop.aperture.datasource.config; -import org.semanticdesktop.aperture.ApertureTestBase; +import junit.framework.TestCase; -public class TestDomainBoundaries extends ApertureTestBase { +public class TestDomainBoundaries extends TestCase { private DomainBoundaries boundaries; Modified: aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/TestUrlPatterns.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/datasource/config/TestUrlPatterns.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/datasource/core/src/test/java/org/semanticdesktop/aperture/datasource/config/TestUrlPatterns.java 2009-03-11 23:44:46 UTC (rev 1808) @@ -6,9 +6,9 @@ */ package org.semanticdesktop.aperture.datasource.config; -import org.semanticdesktop.aperture.ApertureTestBase; +import junit.framework.TestCase; -public class TestUrlPatterns extends ApertureTestBase { +public class TestUrlPatterns extends TestCase { public void testSubstringPatterns() { SubstringPattern pattern = new SubstringPattern("test", SubstringCondition.STARTS_WITH); Modified: aperture/trunk/default/datasource/pom.xml =================================================================== --- aperture/trunk/default/datasource/pom.xml 2009-03-11 21:02:36 UTC (rev 1807) +++ aperture/trunk/default/datasource/pom.xml 2009-03-11 23:44:46 UTC (rev 1808) @@ -67,6 +67,15 @@ <groupId>org.osgi</groupId> <artifactId>osgi_R4_core</artifactId> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-jdk14</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> Property changes on: aperture/trunk/default/datasource/src/test/java/org/semanticdesktop/aperture/datasource/impl ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/datasource/impl:1513-1527 Modified: aperture/trunk/default/datasource/src/test/java/org/semanticdesktop/aperture/datasource/impl/TestDefaultDataSourceRegistry.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/datasource/impl/TestDefaultDataSourceRegistry.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/default/datasource/src/test/java/org/semanticdesktop/aperture/datasource/impl/TestDefaultDataSourceRegistry.java 2009-03-11 23:44:46 UTC (rev 1808) @@ -6,12 +6,13 @@ */ package org.semanticdesktop.aperture.datasource.impl; -import org.semanticdesktop.aperture.ApertureTestBase; +import junit.framework.TestCase; + import org.semanticdesktop.aperture.datasource.filesystem.FILESYSTEMDS; import org.semanticdesktop.aperture.datasource.imap.IMAPDS; import org.semanticdesktop.aperture.datasource.web.WEBDS; -public class TestDefaultDataSourceRegistry extends ApertureTestBase { +public class TestDefaultDataSourceRegistry extends TestCase { public void testRegistry() { DefaultDataSourceRegistry registry = new DefaultDataSourceRegistry(); Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-11 21:02:36 UTC (rev 1807) +++ aperture/trunk/pom.xml 2009-03-11 23:44:46 UTC (rev 1808) @@ -36,6 +36,7 @@ <aperture.tools.version>1.0.0-SNAPSHOT</aperture.tools.version> <rdf2go.version>4.7.0</rdf2go.version> <openrdf.sesame.version>2.3.0-SNAPSHOT</openrdf.sesame.version> + <slf4j.version>1.5.6</slf4j.version> </properties> <dependencyManagement> @@ -239,7 +240,26 @@ <type>pom</type> <scope>import</scope> </dependency> + <dependency> + <groupId>org.openrdf.sesame</groupId> + <artifactId>sesame-runtime</artifactId> + <version>${openrdf.sesame.version}</version> + <scope>test</scope> + </dependency> + <!-- SLF4J --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>${slf4j.version}</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-jdk14</artifactId> + <version>${slf4j.version}</version> + <scope>test</scope> + </dependency> + <!-- RDF2Go --> <dependency> <groupId>org.semweb4j</groupId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-12 02:22:05
|
Revision: 1828 http://aperture.svn.sourceforge.net/aperture/?rev=1828&view=rev Author: mylka Date: 2009-03-12 02:21:34 +0000 (Thu, 12 Mar 2009) Log Message: ----------- migrated the extractor unit tests Modified Paths: -------------- aperture/trunk/core/extractor/adobe/pdf/pom.xml aperture/trunk/core/extractor/audio/mp3/pom.xml aperture/trunk/core/extractor/corel/office/pom.xml aperture/trunk/core/extractor/image/jpg/pom.xml aperture/trunk/core/extractor/message/mime/pom.xml aperture/trunk/core/extractor/microsoft/office/pom.xml aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/powerpoint/PowerPointExtractorTest.java aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/word/WordExtractorTest.java aperture/trunk/core/extractor/microsoft/quattro/pom.xml aperture/trunk/core/extractor/microsoft/visio/pom.xml aperture/trunk/core/extractor/microsoft/works/pom.xml aperture/trunk/core/extractor/opendocument/pom.xml aperture/trunk/core/extractor/openxml/pom.xml aperture/trunk/core/extractor/text/html/pom.xml aperture/trunk/core/extractor/text/plain/pom.xml aperture/trunk/core/extractor/text/rtf/pom.xml aperture/trunk/core/extractor/text/xml/pom.xml aperture/trunk/default/extractor/pom.xml aperture/trunk/default/extractor/src/test/java/org/semanticdesktop/aperture/extractor/impl/TestDefaultExtractorRegistry.java Added Paths: ----------- aperture/trunk/core/extractor/adobe/pdf/src/test/java/org/semanticdesktop/aperture/extractor/pdf/ aperture/trunk/core/extractor/audio/mp3/src/test/java/org/semanticdesktop/aperture/extractor/mp3/ aperture/trunk/core/extractor/core/src/main/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapper.java aperture/trunk/core/extractor/core/src/test/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapperTest.java aperture/trunk/core/extractor/corel/office/src/test/java/org/semanticdesktop/aperture/extractor/presentations/ aperture/trunk/core/extractor/corel/office/src/test/java/org/semanticdesktop/aperture/extractor/wordperfect/ aperture/trunk/core/extractor/image/jpg/src/test/java/org/semanticdesktop/aperture/extractor/jpg/ aperture/trunk/core/extractor/message/mime/src/test/java/org/semanticdesktop/aperture/extractor/mime/ aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/excel/ aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/office/ aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/powerpoint/ aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/publisher/ aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/word/ aperture/trunk/core/extractor/microsoft/quattro/src/test/java/org/semanticdesktop/aperture/extractor/quattro/ aperture/trunk/core/extractor/microsoft/visio/src/test/java/org/semanticdesktop/aperture/extractor/visio/ aperture/trunk/core/extractor/microsoft/works/src/test/java/org/semanticdesktop/aperture/extractor/works/ aperture/trunk/core/extractor/opendocument/src/main/resources/org/ aperture/trunk/core/extractor/opendocument/src/test/java/org/semanticdesktop/aperture/extractor/opendocument/ aperture/trunk/core/extractor/openxml/src/test/java/org/semanticdesktop/aperture/extractor/openxml/ aperture/trunk/core/extractor/text/html/src/test/java/org/semanticdesktop/aperture/extractor/html/ aperture/trunk/core/extractor/text/plain/src/test/java/org/semanticdesktop/aperture/extractor/plaintext/ aperture/trunk/core/extractor/text/rtf/src/test/java/org/semanticdesktop/aperture/extractor/rtf/ aperture/trunk/core/extractor/text/xml/src/test/java/org/semanticdesktop/aperture/extractor/xml/ aperture/trunk/default/extractor/src/test/java/org/semanticdesktop/aperture/extractor/impl/ aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/extractor/ExtractorTestBase.java aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/extractor/FileExtractorTestBase.java Removed Paths: ------------- aperture/trunk/core/extractor/opendocument/src/main/java/org/semanticdesktop/aperture/extractor/opendocument/math.dtd aperture/trunk/core/extractor/opendocument/src/main/java/org/semanticdesktop/aperture/extractor/opendocument/office.dtd aperture/trunk/core/extractor/opendocument/src/main/resources/org/semanticdesktop/aperture/extractor/opendocument/OpenDocumentExtractor.java aperture/trunk/core/extractor/opendocument/src/main/resources/org/semanticdesktop/aperture/extractor/opendocument/OpenDocumentExtractorFactory.java aperture/trunk/core/extractor/opendocument/src/main/resources/org/semanticdesktop/aperture/extractor/opendocument/bundle/ aperture/trunk/default/extractor/src/test/java/org/semanticdesktop/aperture/extractor/impl/TestExtractorRegistryImpl.java Modified: aperture/trunk/core/extractor/adobe/pdf/pom.xml =================================================================== --- aperture/trunk/core/extractor/adobe/pdf/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/adobe/pdf/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -33,6 +33,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>pdfbox</groupId> Property changes on: aperture/trunk/core/extractor/adobe/pdf/src/test/java/org/semanticdesktop/aperture/extractor/pdf ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/pdf:1513-1527 Modified: aperture/trunk/core/extractor/audio/mp3/pom.xml =================================================================== --- aperture/trunk/core/extractor/audio/mp3/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/audio/mp3/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -33,6 +33,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>org.jaudiotagger</groupId> Property changes on: aperture/trunk/core/extractor/audio/mp3/src/test/java/org/semanticdesktop/aperture/extractor/mp3 ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/mp3:1513-1527 Copied: aperture/trunk/core/extractor/core/src/main/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapper.java (from rev 1793, trunk/aperture/src/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapper.java) =================================================================== --- aperture/trunk/core/extractor/core/src/main/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapper.java (rev 0) +++ aperture/trunk/core/extractor/core/src/main/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapper.java 2009-03-12 02:21:34 UTC (rev 1828) @@ -0,0 +1,377 @@ +/* + * Copyright (c) 2006 - 2008 Aduna. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.util; + +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; + +import org.ontoware.rdf2go.model.node.URI; +import org.semanticdesktop.aperture.extractor.Extractor; +import org.semanticdesktop.aperture.extractor.ExtractorException; +import org.semanticdesktop.aperture.rdf.RDFContainer; + +/** + * A ThreadedExtractorWrapper wraps an Extractor and executes it on a separate thread, bailing out if the + * wrapped Extractor appears to be hanging. The heuristic for determining whether the Extractor is hanging is + * by looking at whether the InputStream is regularly accessed. Any Exceptions thrown by the wrapped Extractor + * are eventually thrown by the ThreadedExtractorWrapper. + * + * <p> + * Furthermore, a ThreadedExtractorWrapper can be requested to stop processing, causing it to throw an + * IOException on the InputStream the next time it is accessed by the wrapped Extractor. This allows for + * interrupting an extraction process upon user request, for example because it has been processing a single + * file for a very long time (especially large PDF documents are notorious). This implementation strategy is + * preferred over interrupting the Thread as that should only be used as a last resort to stop a thread. + */ +public class ThreadedExtractorWrapper implements Extractor { + + /** + * The maximum time per MB of data that the wrapped Extractor is allowed to work on the read data before + * it is considered to be hanging, in milliseconds. + */ + public static final long DEFAULT_MAX_PROCESSING_TIME_PER_MB = 10L * 1000L; // 10 seconds + + /** + * The minimum maximum processing time that the wrapped Extractor is allowed to work on the read data + * before it is considered to be hanging. This minimum gives a lower bound for very small files. + */ + public static final long DEFAULT_MINIMUM_MAX_PROCESSING_TIME = 30L * 1000L; // 30 seconds + + /** + * The maximum time between two reads that the wrapped Extractor is allowed to work on the read data + * before it is considered to be hanging. + */ + public static final long DEFAULT_MAX_IDLE_READ_TIME = 30L * 1000L; // 30 seconds + + /** + * The wrapped Extractor. + */ + private Extractor extractor; + + /** + * Flag that indicates that a request to stop extracting has been issued. + */ + private boolean stopRequested; + + /** + * The actual max processing time per MB for this ThreadedExtractorWrapper instance + */ + private long maxProcessingTimePerMb = DEFAULT_MAX_PROCESSING_TIME_PER_MB; + + /** + * The actual minimal processing time. + */ + private long minimumMaxProcessingTime = DEFAULT_MINIMUM_MAX_PROCESSING_TIME; + + /** + * The actual max idle read time. + */ + private long maxIdleReadTime = DEFAULT_MAX_IDLE_READ_TIME; + + /** + * Creates a new wrapper for the specified Extractor. It uses default timeout values. It is equivalent to + * + * <pre> + * new ThreadedExtractorWrapper(extractor, DEFAULT_MAX_PROCESSING_TIME_PER_MB, + * DEFAULT_MINIMUM_MAX_PROCESSING_TIME, DEFAULT_MAX_IDLE_READ_TIME); + * </pre> + * + * @param extractor The Extractor to wrap. + * @see #DEFAULT_MAX_PROCESSING_TIME_PER_MB + * @see #DEFAULT_MINIMUM_MAX_PROCESSING_TIME + * @see #DEFAULT_MAX_IDLE_READ_TIME + */ + public ThreadedExtractorWrapper(Extractor extractor) { + this.extractor = extractor; + stopRequested = false; + } + + /** + * Creates a new wrapper for the specified Extractor. It allows the user to customize the timeout + * values. + * @param extractor The Extractor to wrap. + * @param maxProcessingTimePerMb see {@link #DEFAULT_MAX_PROCESSING_TIME_PER_MB} + * @param minimumMaxProcessingTime see {@link #DEFAULT_MINIMUM_MAX_PROCESSING_TIME} + * @param maxIdleReadTime see {@link #DEFAULT_MAX_IDLE_READ_TIME} + */ + public ThreadedExtractorWrapper(Extractor extractor, long maxProcessingTimePerMb, + long minimumMaxProcessingTime, long maxIdleReadTime) { + this.extractor = extractor; + this.stopRequested = false; + this.maxProcessingTimePerMb = maxProcessingTimePerMb; + this.minimumMaxProcessingTime = minimumMaxProcessingTime; + this.maxIdleReadTime = maxIdleReadTime; + } + + /** + * Interrupts processing of the wrapped extractor as soon as possible. + */ + public void stop() { + stopRequested = true; + } + + /** + * Starts the extraction process using the wrapped Extractor on a separate thread. This Thread is + * interrupted as soon as no progress is reported. In this case an {@link ExtractionAbortedException} will + * be thrown.l + * + * @throws ExtractorException if any problem with the extractor occurs, this is exactly the same Exception + * instance as the one thrown by the extractor. + * @throws ExtractionAbortedException if the extractor wrapper decided that the extractor has stalled and + * the extraction has been aborted + */ + public void extract(URI id, InputStream input, Charset charset, String mimeType, RDFContainer result) + throws ExtractorException { + ExtractionStream monitoredStream = new ExtractionStream(input); + + ExtractionThread thread = new ExtractionThread(id, monitoredStream, charset, mimeType, result); + thread.start(); + + while (true) { + long waitTime; + if (monitoredStream.allBytesRead()) { + /* + * This means that the underlying extractor has read all bytes within the underlying stream, + * we must wait until the processing ends. We assume that the processing time is linearly + * dependent on the file length (with the maxProcessingTimePerMb coefficient). + */ + waitTime = (long)(maxProcessingTimePerMb * monitoredStream.getTotalBytesRead() / + (1024.0 * 1024.0)); + /* + * Very small files don't fit into this linear heuristic, so we place a bound, that allows + * very small files to be processed in fixed time (minimumMaxProcessingTime) + */ + waitTime = Math.max(waitTime, minimumMaxProcessingTime); + } + else { + /* + * This means that the extractor hasn't stopped reading. We try to detect if if has hanged + * during reading. + */ + waitTime = maxIdleReadTime; + } + + /* + * We may be in the middle of an interval between two reads. We need to subtract the time that + * has already elapsed since the last read from the overall waiting time. + */ + waitTime -= (System.currentTimeMillis() - monitoredStream.getLastAccessTime()); + + /* + * This indicates that the extraction thread has stopped, which in turn means that the extractor + * has finished extracting data. This is OK, we may safely bail out from this loop. + */ + if (!thread.isAlive()) { + break; + } + + /* + * This will occur if the time that has elapsed since the last read is greater than the time we + * may wait. E.g. the processing time is longer than the max processing time for the given file + * length, or the time between reads is longer than the max time between reads. This means that + * we officially declare this extractor as stalled and bail out from this loop. + */ + if (waitTime <= 0L) { + break; + } + + try { + /* + * Now we wait for the computed amount of miliseconds. We use the join method, so if the + * extractor finishes earlier, the join method will also finish and the isAlive() check will + * make this loop end gracefully. On the other hand, if the extractor doesn't finish within + * the prescribed time, we'll get to decide later what to do with it. + */ + thread.join(waitTime); + } + catch (InterruptedException e) { + throw new ExtractorException(e); + } + } + + if (thread.isAlive()) { + /* + * This indicates that the previous loop ended with a decision that the extractor has hanged. We + * must abort the extraction and throw an appropriate exception. + */ + thread.abortExtraction(); + throw new ExtractionAbortedException(); + } + else { + /* + * This means that the extraction thread has ended, which in turn means that the extraction + * process has ended with a success, or the extractor has thrown some exception, if there are any + * exceptions we need to propagate them further to the user. + */ + Exception e = thread.getException(); + if (e != null) { + if (e instanceof ExtractorException) { + throw (ExtractorException) e; + } + else { + throw (RuntimeException) e; + } + } + } + } + + /** An exception that gets thrown if the underlying extractor hangs. */ + public static class ExtractionInterruptedException extends IOException { + + private static final long serialVersionUID = -4052987146699550288L; + + /** The default constructor */ + public ExtractionInterruptedException() { + super("Extraction interrupted upon request"); + } + } + + /** + * An exception that gets thrown if the extraction is aborted per user request i.e. when the + * {@link ThreadedExtractorWrapper#stop()} method is called. + */ + public static class ExtractionAbortedException extends ExtractorException { + + private static final long serialVersionUID = -1806199350296089459L; + + /** The default constructor */ + public ExtractionAbortedException() { + super("Extraction has been aborted due to problems with the extractor"); + } + } + + private class ExtractionThread extends Thread { + + private URI id; + + private InputStream input; + + private Charset charset; + + private String mimeType; + + private RDFContainer result; + + private Exception exception; + + public ExtractionThread(URI id, InputStream input, Charset charset, String mimeType, + RDFContainer result) { + this.id = id; + this.input = input; + this.charset = charset; + this.mimeType = mimeType; + this.result = result; + } + + public void run() { + try { + extractor.extract(id, input, charset, mimeType, result); + } + catch (Exception e) { + exception = e; + } + } + + public void abortExtraction() { + interrupt(); + } + + public Exception getException() { + return exception; + } + } + + private class ExtractionStream extends FilterInputStream { + + private long lastAccessTime; + + private boolean allBytesRead; + + private int totalBytesRead; + + public ExtractionStream(InputStream in) { + super(in); + + lastAccessTime = System.currentTimeMillis(); + allBytesRead = false; + totalBytesRead = 0; + } + + public long getLastAccessTime() { + return lastAccessTime; + } + + public boolean allBytesRead() { + return allBytesRead; + } + + public int getTotalBytesRead() { + return totalBytesRead; + } + + public int read() throws IOException { + checkStopRequested(); + + int result = super.read(); + + if (result >= 0) { + lastAccessTime = System.currentTimeMillis(); + totalBytesRead++; + } + else { + allBytesRead = true; + } + + return result; + } + + public int read(byte[] b) throws IOException { + checkStopRequested(); + + int result = super.read(b); + + if (result >= 0) { + lastAccessTime = System.currentTimeMillis(); + totalBytesRead += result; + } + else { + allBytesRead = true; + } + + return result; + } + + public int read(byte[] b, int off, int len) throws IOException { + checkStopRequested(); + + int result = super.read(b, off, len); + + if (result >= 0) { + lastAccessTime = System.currentTimeMillis(); + totalBytesRead += result; + } + else { + allBytesRead = true; + } + + return result; + } + + public void close() throws IOException { + super.close(); + allBytesRead = true; + } + + private void checkStopRequested() throws ExtractionInterruptedException { + if (stopRequested) { + throw new ExtractionInterruptedException(); + } + } + } +} Property changes on: aperture/trunk/core/extractor/core/src/main/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapper.java ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapper.java:1513-1527 Added: svn:eol-style + native Copied: aperture/trunk/core/extractor/core/src/test/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapperTest.java (from rev 1793, trunk/aperture/src/test/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapperTest.java) =================================================================== --- aperture/trunk/core/extractor/core/src/test/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapperTest.java (rev 0) +++ aperture/trunk/core/extractor/core/src/test/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapperTest.java 2009-03-12 02:21:34 UTC (rev 1828) @@ -0,0 +1,293 @@ +/* + * Copyright (c) 2006 - 2008 Aduna. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.extractor.util; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; + +import junit.framework.TestCase; + +import org.ontoware.rdf2go.model.node.URI; +import org.semanticdesktop.aperture.extractor.Extractor; +import org.semanticdesktop.aperture.extractor.ExtractorException; +import org.semanticdesktop.aperture.extractor.util.ThreadedExtractorWrapper.ExtractionAbortedException; +import org.semanticdesktop.aperture.rdf.RDFContainer; + +/** + * Tests for the {@link ThreadedExtractorWrapper} class. It establishes a stream and a mock extractor to test + * various behavior patterns in extractors. + */ +public class ThreadedExtractorWrapperTest extends TestCase { + + private byte [] _array; + + private InputStream _stream; + + private List<PlanPoint> _readPlan; + + /** + * Tests a normal, well behaving extractor that reads the stream at regular intervals and doesn't need any + * additional processing afterwards. This extractor will read data from a 4MB file in chunks of 16384 + * bytes every 10 miliseconds + * + * @throws Exception + */ + public void testNormalWellBehavingExtractor() throws Exception { + initializeStream(4 * 1024 * 1024); + WaitingExtractor extractor = new WaitingExtractor(0); + ThreadedExtractorWrapper wrapper = new ThreadedExtractorWrapper(extractor); + int currentByte = 0; + while (currentByte < 4 * 1024 * 1024) { // prepare a read plan that will read 16KB every 10 ms + _readPlan.add(new PlanPoint(16384, 10)); + currentByte += 16384; + } + wrapper.extract(null, _stream, null, null, null); // nothing should happen + } + + /** + * Tests an extractor that halted before the reading phase is over. We set the max read idle time to 300 + * ms, first we test an extractor that reads from the stream at 100 ms intervals, then we test an + * extractor that does two reads at 100 ms and one much longer, above the read idle time limit. + * + * @throws Exception + */ + public void testExtractorThatStoppedReading() throws Exception { + initializeStream(4 * 1024); + _readPlan.add(new PlanPoint(1024, 100)); + _readPlan.add(new PlanPoint(1024, 100)); + _readPlan.add(new PlanPoint(1024, 100)); + _readPlan.add(new PlanPoint(1024, 100)); + _readPlan.add(new PlanPoint(1024, 100)); + + WaitingExtractor extractor = new WaitingExtractor(0); + ThreadedExtractorWrapper wrapper = new ThreadedExtractorWrapper(extractor, + ThreadedExtractorWrapper.DEFAULT_MAX_PROCESSING_TIME_PER_MB, + ThreadedExtractorWrapper.DEFAULT_MINIMUM_MAX_PROCESSING_TIME, 200); + wrapper.extract(null, _stream, null, null, null); // nothing should happen + initializeStream(4*1024); + _readPlan.clear(); + _readPlan.add(new PlanPoint(1024, 100)); + _readPlan.add(new PlanPoint(1024, 100)); + _readPlan.add(new PlanPoint(1024, 1200)); + _readPlan.add(new PlanPoint(1024, 100)); + _readPlan.add(new PlanPoint(1024, 100)); + try { + wrapper.extract(null, _stream, null, null, null); // an exception should be thrown + fail(); + } catch (ExtractionAbortedException eae) { + // this should happen + } + } + + /** + * Tests how an extractor would process a small file (1 KB). We set the minMaxProcessing time to 300 ms, + * first we try to extract stuff with an extractor that fits within the minMaxProcessingTime, then an + * extractor that doesn't fit within that time. We have to set the read idle time to a much shorter value + * to ensure that the wrapper will get into the 'processing' mode. + * + * @throws Exception + */ + public void testSmallFileLimit() throws Exception { + initializeStream(1024); + _readPlan.add(new PlanPoint(1024, 20)); // 20 ms of waiting, below the 50 ms limit + _readPlan.add(new PlanPoint(2, 20)); // this is necessary for the extractor to finish reading and + // start processing + + WaitingExtractor extractor = new WaitingExtractor(200); // 200 ms of processing time + ThreadedExtractorWrapper wrapper = new ThreadedExtractorWrapper(extractor, + ThreadedExtractorWrapper.DEFAULT_MAX_PROCESSING_TIME_PER_MB, 300, 50); + wrapper.extract(null, _stream, null, null, null); // nothing should happen here + + initializeStream(1024); + extractor = new WaitingExtractor(400); // 400 ms of processing time - above the limit + wrapper = new ThreadedExtractorWrapper(extractor, + ThreadedExtractorWrapper.DEFAULT_MAX_PROCESSING_TIME_PER_MB, 300, 50); + try { + wrapper.extract(null, _stream, null, null, null); // an exception should be thrown + fail(); // if it doesn't it's a failure + } catch (ExtractionAbortedException eae) { + // this is ok + } + } + + /** + * Tests whether the per-MB processing speed is obeyed correctly. We simulate a 2 MB file and a processing + * speed of 100 ms per MB. First we have an extractor that reads the file quickly and processes it for 100 + * ms which is OK, then we have an extractor that reads the file quickly and then processes it for 300 ms + * which is too long, according to the settings. + * + * @throws Exception + */ + public void testLargeFileProcessing() throws Exception { + initializeStream(2 * 1024 * 1024); // 2 MB file + for (int i = 0; i < 206; i++) { + _readPlan.add(new PlanPoint(50 * 1024, 5)); // read 50 KB every 5 ms + } + WaitingExtractor extractor = new WaitingExtractor(50); // 500 ms of processing time, OK + /* + * 1MB should be processed within 100 ms, for our file (2 MB) the entire processing time shouldn't + * exceed 200ms, the minMax processing and the read idle time are set to be very small + */ + ThreadedExtractorWrapper wrapper = new ThreadedExtractorWrapper(extractor, 200, 20, 40); + wrapper.extract(null, _stream, null, null, null); // nothing should happen here, 100 ms is within the + // limit + initializeStream(2 * 1024 * 1024); + extractor = new WaitingExtractor(800); // 800 ms of processing time, above the limit + wrapper = new ThreadedExtractorWrapper(extractor, 200, 20, 40); + try { + // an exception should be thrown, 250 ms is outside the limit + wrapper.extract(null, _stream, null, null, null); + fail(); // if it doesn't it's a failure + } + catch (ExtractionAbortedException eae) { + // this is ok + } + } + + /** + * Tests if the ThreadedExtractorWrapper correctly behaves in a situation when the extractor throws a + * checked ExtractorException i.e. it throws exactly the same exception instance. + */ + public void testExtractorException() { + testThrowException(new ExtractorException()); + } + + /** + * Tests if the ThreadedExtractorWrapper correctly behaves in a situation when the extractor throws an + * unchecked RuntimeException i.e. it throws exactly the same exception instance. + */ + public void testRuntimeException() { + testThrowException(new ArrayIndexOutOfBoundsException()); + } + + private void testThrowException(Exception e) { + ExceptionThrowingExtractor extractor = new ExceptionThrowingExtractor(e); + ThreadedExtractorWrapper tewrapper = new ThreadedExtractorWrapper(extractor); + try { + tewrapper.extract(null, null, null, null, null); + // when any exceptions are lost in the extracting thread (i.e. are not caught and end up at the + // top of the thread's own stack), the extract method will seem to terminate normally and proceed, + // even though extraction has failed and an exception should have been thrown + fail(); + } + catch (Exception exc) { + // make sure we receive the same Exception instance as was thrown by the original Extractor + assertSame(e, exc); + } + } + + private void initializeStream(int streamLength) { + _readPlan = new LinkedList<PlanPoint>(); + this._array = new byte[streamLength]; + new Random(System.currentTimeMillis()).nextBytes(_array); + this._stream = new ByteArrayInputStream(_array); + } + + private static class ExceptionThrowingExtractor implements Extractor { + + private Exception e; + + public ExceptionThrowingExtractor(Exception e) { + this.e = e; + } + + public void extract(URI id, InputStream stream, Charset charset, String mimeType, RDFContainer result) + throws ExtractorException { + if (e instanceof ExtractorException) { + throw (ExtractorException) e; + } + else { + throw (RuntimeException) e; + } + } + } + + private class PlanPoint { + private int bytes; + private long pointInTimeOrLength; + public PlanPoint(int bytes, long pointInTimeOrLength) { + this.bytes = bytes; + this.pointInTimeOrLength = pointInTimeOrLength; + } + } + + /** + * A mock of an extractor that reads from the underlying stream prescribed amounts of bytes in prescribed + * points in time. + */ + private class WaitingExtractor implements Extractor { + + private long processingTime; + + public WaitingExtractor(long processingTime) { + this.processingTime = processingTime; + } + + public void extract(URI id, InputStream stream, Charset charset, String mimeType, RDFContainer result) + throws ExtractorException { + // first we need to convert the generic plan, containing the intervals between read commands, into a + // concrete plan, with exact timestamps when the read operations should occur + List<PlanPoint> concretePlan = new LinkedList<PlanPoint>(); + for (int i = 0; i < _readPlan.size(); i++) { + PlanPoint genericPoint = _readPlan.get(i); + if (i > 0) { + concretePlan.add( + new PlanPoint( + genericPoint.bytes, + concretePlan.get(i-1).pointInTimeOrLength + genericPoint.pointInTimeOrLength)); + } else { + concretePlan.add(new PlanPoint(genericPoint.bytes,System.currentTimeMillis())); + } + } + + // then we can read. + while (concretePlan.size() > 0) { + try { + PlanPoint currentPoint = concretePlan.remove(0); + long currentTime = System.currentTimeMillis(); + interruptibleSleep(currentPoint.pointInTimeOrLength - currentTime); + byte [] array = new byte[currentPoint.bytes]; + if (stream.read(array) == -1) { + break; + } + } + catch (IOException e) { + // this may happen if the extraction is stopped with the stop() method of the + // ThreadedExtractorWrapper + throw new ExtractorException(e); + } + catch (InterruptedException e) { + // this may happen if the extraction is interrupted with the abortExtraction() method + // of the ThreadExtractorWrapper.ExtractionThread + throw new ExtractorException(e); + } + } + + // and afterwards we process + try { + interruptibleSleep(processingTime); + } + catch (InterruptedException e) { + throw new ExtractorException(e); + } + } + } + + private void interruptibleSleep(long timeout) throws InterruptedException { + long begin = System.currentTimeMillis(); + long end = begin; + while (end - begin < timeout) { + Thread.sleep(timeout - (end - begin)); + end = System.currentTimeMillis(); + } + } +} Property changes on: aperture/trunk/core/extractor/core/src/test/java/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapperTest.java ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/util/ThreadedExtractorWrapperTest.java:1513-1527 Added: svn:eol-style + native Modified: aperture/trunk/core/extractor/corel/office/pom.xml =================================================================== --- aperture/trunk/core/extractor/corel/office/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/corel/office/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -41,6 +41,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>org.semweb4j</groupId> Property changes on: aperture/trunk/core/extractor/corel/office/src/test/java/org/semanticdesktop/aperture/extractor/presentations ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/presentations:1513-1527 Property changes on: aperture/trunk/core/extractor/corel/office/src/test/java/org/semanticdesktop/aperture/extractor/wordperfect ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/wordperfect:1513-1527 Modified: aperture/trunk/core/extractor/image/jpg/pom.xml =================================================================== --- aperture/trunk/core/extractor/image/jpg/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/image/jpg/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -33,6 +33,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>com.drewnoakes</groupId> Property changes on: aperture/trunk/core/extractor/image/jpg/src/test/java/org/semanticdesktop/aperture/extractor/jpg ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/jpg:1513-1527 Modified: aperture/trunk/core/extractor/message/mime/pom.xml =================================================================== --- aperture/trunk/core/extractor/message/mime/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/message/mime/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -41,6 +41,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>javax.mail</groupId> Property changes on: aperture/trunk/core/extractor/message/mime/src/test/java/org/semanticdesktop/aperture/extractor/mime ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/mime:1513-1527 Modified: aperture/trunk/core/extractor/microsoft/office/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/office/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/microsoft/office/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -37,6 +37,15 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> + <dependency> + <groupId>org.openrdf.sesame</groupId> + <artifactId>sesame-rio-rdfxml</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>org.semweb4j</groupId> Property changes on: aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/excel ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/excel:1513-1527 Property changes on: aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/office ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/office:1513-1527 Property changes on: aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/powerpoint ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/powerpoint:1513-1527 Modified: aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/powerpoint/PowerPointExtractorTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/extractor/powerpoint/PowerPointExtractorTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/powerpoint/PowerPointExtractorTest.java 2009-03-12 02:21:34 UTC (rev 1828) @@ -16,7 +16,7 @@ import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.rdf.RDFContainerFactory; import org.semanticdesktop.aperture.rdf.impl.RDFContainerFactoryImpl; -import org.semanticdesktop.aperture.util.XmlSafetyUtils; +import org.semanticdesktop.aperture.rdf.util.XmlSafetyUtils; import org.semanticdesktop.aperture.vocabulary.NCO; import org.semanticdesktop.aperture.vocabulary.NIE; Property changes on: aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/publisher ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/publisher:1513-1527 Property changes on: aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/word ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/word:1513-1527 Modified: aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/word/WordExtractorTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/extractor/word/WordExtractorTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/extractor/microsoft/office/src/test/java/org/semanticdesktop/aperture/extractor/word/WordExtractorTest.java 2009-03-12 02:21:34 UTC (rev 1828) @@ -16,7 +16,7 @@ import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.rdf.RDFContainerFactory; import org.semanticdesktop.aperture.rdf.impl.RDFContainerFactoryImpl; -import org.semanticdesktop.aperture.util.XmlSafetyUtils; +import org.semanticdesktop.aperture.rdf.util.XmlSafetyUtils; import org.semanticdesktop.aperture.vocabulary.NCO; import org.semanticdesktop.aperture.vocabulary.NIE; Modified: aperture/trunk/core/extractor/microsoft/quattro/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/quattro/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/microsoft/quattro/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -37,6 +37,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>org.semweb4j</groupId> Property changes on: aperture/trunk/core/extractor/microsoft/quattro/src/test/java/org/semanticdesktop/aperture/extractor/quattro ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/quattro:1513-1527 Modified: aperture/trunk/core/extractor/microsoft/visio/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/visio/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/microsoft/visio/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -37,6 +37,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>org.semweb4j</groupId> Property changes on: aperture/trunk/core/extractor/microsoft/visio/src/test/java/org/semanticdesktop/aperture/extractor/visio ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/visio:1513-1527 Modified: aperture/trunk/core/extractor/microsoft/works/pom.xml =================================================================== --- aperture/trunk/core/extractor/microsoft/works/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/microsoft/works/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -33,6 +33,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>org.semweb4j</groupId> Property changes on: aperture/trunk/core/extractor/microsoft/works/src/test/java/org/semanticdesktop/aperture/extractor/works ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/extractor/works:1513-1527 Modified: aperture/trunk/core/extractor/opendocument/pom.xml =================================================================== --- aperture/trunk/core/extractor/opendocument/pom.xml 2009-03-12 01:40:11 UTC (rev 1827) +++ aperture/trunk/core/extractor/opendocument/pom.xml 2009-03-12 02:21:34 UTC (rev 1828) @@ -33,6 +33,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>org.semweb4j</groupId> Property changes on: aperture/trunk/core/extractor/opendocument/src/main/resources/org ___________________________________________________________________ Added: svn:mergeinfo + Deleted: aperture/trunk/core/extractor/opendocument/src/main/resources/org/semanticdesktop/aperture/extractor/opendocument/OpenDocumentExtractor.java =================================================================== --- aperture/trunk/core/extractor/opendocument/src/main/java/org/semanticdesktop/aperture/extractor/opendocument/OpenDocumentExtractor.java 2009-03-11 16:58:40 UTC (rev 1804) +++ aperture/trunk/core/extractor/opendocument/src/main/resources/org/semanticdesktop/aperture/extractor/opendocument/OpenDocumentExtractor.java 2009-03-12 02:21:34 UTC (rev 1828) @@ -1,408 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Aduna. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.extractor.opendocument; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.Charset; -import java.text.ParseException; -import java.util.Date; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -import org.ontoware.rdf2go.exception.ModelException; -import org.ontoware.rdf2go.model.Model; -import org.ontoware.rdf2go.model.node.Resource; -import org.ontoware.rdf2go.model.node.URI; -import org.ontoware.rdf2go.vocabulary.RDF; -import org.semanticdesktop.aperture.extractor.Extractor; -import org.semanticdesktop.aperture.extractor.ExtractorException; -import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.rdf.util.ModelUtil; -import org.semanticdesktop.aperture.util.DateUtil; -import org.semanticdesktop.aperture.util.IOUtil; -import org.semanticdesktop.aperture.util.ResourceUtil; -import org.semanticdesktop.aperture.vocabulary.NCO; -import org.semanticdesktop.aperture.vocabulary.NFO; -import org.semanticdesktop.aperture.vocabulary.NIE; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.Text; -import org.xml.sax.SAXException; - -/** - * Extracts full-text and metadata from OpenDocument files and is backwards compatible with older OpenOffice - * (1.x) and StarOffice (6.x and 7.x) documents. - */ -public class OpenDocumentExtractor implements Extractor { - - // used to append to extracted text, to make it more readable - private static final String END_OF_LINE = System.getProperty("line.separator", "\n"); - - private Logger logger = LoggerFactory.getLogger(getClass()); - - // used to fool the parser, when it tries to load the system dtd. - // seems to work better than tricks such as providing a dummy EntityResolver, which is probably parser - // implementation-dependent - // (see e.g. http://www.jroller.com/comments/santhosh/Weblog/putoff_dtd_parsing_html) - private static final String SYSTEM_ID = ResourceUtil.getURL( - "org/semanticdesktop/aperture/extractor/opendocument/office.dtd", OpenDocumentExtractor.class) - .toString(); - - /** - * @see Extractor#extract(URI, InputStream, Charset, String, RDFContainer) - */ - public void extract(URI id, InputStream stream, Charset charset, String mimeType, RDFContainer result) - throws ExtractorException { - byte[] contentBytes = null; - byte[] metadataBytes = null; - - // fetch the byte arrays from the zip file that contain the document content and metadata - try { - ZipInputStream zipStream = new ZipInputStream(stream); - ZipEntry entry = null; - while ((entry = zipStream.getNextEntry()) != null) { - String entryName = entry.getName(); - if ("content.xml".equals(entryName)) { - contentBytes = IOUtil.readBytes(zipStream); - } - else if ("meta.xml".equals(entryName)) { - metadataBytes = IOUtil.readBytes(zipStream); - } - - zipStream.closeEntry(); - } - zipStream.close(); - } - catch (IOException e) { - throw new ExtractorException(e); - } - - // determine the type of the document - // TODO there is no document type determination - { - result.add(RDF.type, NFO.Document); - } - - // extract the document text - if (contentBytes != null) { - extractFullText(contentBytes, result); - } - - // extract the metadata - if (metadataBytes != null) { - extractMetadata(metadataBytes, result); - } - } - - private void extractFullText(byte[] bytes, RDFContainer result) throws ExtractorException { - // create a SAXPparser - javax.xml.parsers.SAXParser parser = null; - try { - parser = javax.xml.parsers.SAXParserFactory.newInstance().newSAXParser(); - } - catch (Exception e) { - // this is an internal error rather than an extraction problem, hence the RuntimeException - throw new RuntimeException("unable to instantiate SAXParser", e); - } - - // create a listener that will interpret the document events - ContentExtractor contentExtractor = new ContentExtractor(); - - // parse the byte array - ByteArrayInputStream stream = new ByteArrayInputStream(bytes); - try { - parser.parse(stream, contentExtractor, SYSTEM_ID); - } - catch (SAXException e) { - throw new ExtractorException(e); - } - catch (IOException e) { - throw new ExtractorException(e); - } - - // put the extracted full-text in the RDF container - String contents = contentExtractor.getContents(); - if (contents != null && !contents.equals("")) { - result.add(NIE.plainTextContent, contents); - } - } - - /** - * Reads the metadata of the document from the specified byte array - */ - private void extractMetadata(byte[] bytes, RDFContainer result) throws ExtractorException { - // create a DocumentBuilder instance - DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); - docBuilderFactory.setNamespaceAware(true); - docBuilderFactory.setValidating(false); - docBuilderFactory.setExpandEntityReferences(false); - DocumentBuilder docBuilder; - try { - docBuilder = docBuilderFactory.newDocumentBuilder(); - } - catch (ParserConfigurationException e) { - // this is an internal error rather than an extraction problem, hence the RuntimeException - throw new RuntimeException("unable to instantiate DocumentBuilder", e); - } - - // parse the XML using the DocumentBuilder - ByteArrayInputStream stream = new ByteArrayInputStream(bytes); - Document doc; - try { - doc = docBuilder.parse(stream, SYSTEM_ID); - } - catch (SAXException e) { - throw new ExtractorException(e); - } - catch (IOException e) { - throw new ExtractorException(e); - } - - // iterate over the nodes containing the metadata - Element rootelement = doc.getDocumentElement(); - Node metaNode = rootelement.getFirstChild(); - NodeList metaChildren = metaNode.getChildNodes(); - int nrChildren = metaChildren.getLength(); - - for (int i = 0; i < nrChildren; i++) { - Node metaChild = metaChildren.item(i); - addOasisMetadataPropertyToRdfContainer(metaChild, result); - mapToApertureProperty(metaChild, result); - } - } - - private void addOasisMetadataPropertyToRdfContainer(Node node, RDFContainer result) { - String nameSpace = node.getNamespaceURI(); - if (nameSpace != null) { - if (!nameSpace.endsWith("/")) { - nameSpace += "/"; - } - - try { - String uriString = nameSpace + node.getLocalName(); - String text = getText(node); - URI predicate = result.getValueFactory().createURI(uriString); - - if (text != null) { - result.add(predicate, text); - } - } - catch (ModelException e) { - logger.error("ModelException while adding statement, ignoring", e); - } - } - - } - - private String getText(Node node) { - if (node instanceof Attr) { - return ((Attr) node).getValue(); - } - - Node child = node.getFirstChild(); - if (child instanceof Text) { - return ((Text) child).getWholeText(); - } - else { - return null; - } - } - - private void mapToApertureProperty(Node metaChild, RDFContainer result) { - String name = metaChild.getNodeName(); - - // determine which metadata property we're dealing with - if ("dc:creator".equals(name)) { - addContactStatement(NCO.creator, metaChild.getFirstChild().getNodeValue(), result); - } - else if ("meta:initial-creator".equals(name)) { - addContactStatement(NCO.creator, metaChild.getFirstChild().getNodeValue(), result); - } - else if ("dc:title".equals(name)) { - addStatement(NIE.title, metaChild.getFirstChild(), result); - } - else if ("dc:description".equals(name)) { - addStatement(NIE.description, metaChild.getFirstChild(), result); - } - else if ("dc:subject".equals(name)) { - addStatement(NIE.subject, metaChild.getFirstChild(), result); - } - else if ("dc:date".equals(name)) { - addDateStatement(NIE.informationElementDate, metaChild.getFirstChild(), result); - } - else if ("meta:creation-date".equals(name)) { - addDateStatement(NIE.contentCreated, metaChild.getFirstChild(), result); - } - // TODO get back to it after introducing nie:printdate - else if ("meta:print-date".equals(name)) { - addDateStatement(NIE.informationElementDate, metaChild.getFirstChild(), result); - // addDateStatement(DATA.printDate, metaChild.getFirstChild(), result); - } - else if ("dc:language".equals(name)) { - addStatement(NIE.language, metaChild.getFirstChild(), result); - } - else if ("meta:generator".equals(name)) { - addStatement(NIE.generator, metaChild.getFirstChild(), result); - } - else if ("meta:user-defined".equals(name)) { - // user-defined properties are NOT supported - // TODO clarify this issue with the Nepomuk Consortium - } - else if ("meta:keywords".equals(name)) { - // handles OpenOffice 1.x keywords - NodeList keywordNodes = metaChild.getChildNodes(); - int nrKeywordNodes = keywordNodes.getLength(); - for (int j = 0; j < nrKeywordNodes; j++) { - Node keywordNode = keywordNodes.item(j); - if ("meta:keyword".equals(keywordNode.getNodeName())) { - addStatement(NIE.keyword, keywordNode.getFirstChild(), result); - } - } - } - else if ("meta:keyword".equals(name)) { - // handles OpenOffice 2.x, i.e. OpenDocument - addStatement(NIE.keyword, metaChild.getFirstChild(), result); - } - else if ("meta:document-statistic".equals(name)) { - NamedNodeMap attributes = metaChild.getAttributes(); - if (attributes != null) { - for (int i = 0; i < attributes.getLength(); i++) { - Node node = attributes.item(i); - addOasisMetadataPropertyToRdfContainer(node, result); - if (node instanceof Attr) { - mapStatisticsAttributeToApertureProperty((Attr) node, result); - } - } - } - } - } - - /** - * Many kinds of document statics fields are stored in the document metadata. - * - * @param statisticsAttribute - * @param result - */ - private void mapStatisticsAttributeToApertureProperty(Attr statisticsAttribute, RDFContainer result) { - String name = statisticsAttribute.getNodeName(); - - // determine which metadata property we're dealing with - if ("meta:page-count".equals(name)) { - String pageNodeValue = statisticsAttribute.getValue(); - if (pageNodeValue != null) { - try { - int pageCount = Integer.parseInt(pageNodeValue); - result.add(RDF.type, NFO.PaginatedTextDocument); - result.add(NFO.pageCount, pageCount); - } - catch (NumberFormatException e) { - // ignore - } - } - ... [truncated message content] |
From: <her...@us...> - 2009-03-12 11:16:32
|
Revision: 1830 http://aperture.svn.sourceforge.net/aperture/?rev=1830&view=rev Author: herko_ter_horst Date: 2009-03-12 11:16:18 +0000 (Thu, 12 Mar 2009) Log Message: ----------- Don't specify a default scope in dependencyManagement unless it's always correct. Modified Paths: -------------- aperture/trunk/core/datasource/core/pom.xml aperture/trunk/pom.xml Modified: aperture/trunk/core/datasource/core/pom.xml =================================================================== --- aperture/trunk/core/datasource/core/pom.xml 2009-03-12 02:23:21 UTC (rev 1829) +++ aperture/trunk/core/datasource/core/pom.xml 2009-03-12 11:16:18 UTC (rev 1830) @@ -58,6 +58,7 @@ <dependency> <groupId>org.openrdf.sesame</groupId> <artifactId>sesame-runtime</artifactId> + <scope>test</scope> </dependency> <dependency> Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-12 02:23:21 UTC (rev 1829) +++ aperture/trunk/pom.xml 2009-03-12 11:16:18 UTC (rev 1830) @@ -244,7 +244,6 @@ <groupId>org.openrdf.sesame</groupId> <artifactId>sesame-runtime</artifactId> <version>${openrdf.sesame.version}</version> - <scope>test</scope> </dependency> <!-- SLF4J --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-12 22:34:38
|
Revision: 1835 http://aperture.svn.sourceforge.net/aperture/?rev=1835&view=rev Author: mylka Date: 2009-03-12 22:34:31 +0000 (Thu, 12 Mar 2009) Log Message: ----------- migrated linkextractor opener and outlook tests Modified Paths: -------------- aperture/trunk/core/linkextractor/html/pom.xml aperture/trunk/core/linkextractor/html/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/HtmlLinkExtractorTest.java aperture/trunk/core/opener/core/src/test/java/org/semanticdesktop/aperture/opener/impl/TestDataOpenerRegistryImpl.java aperture/trunk/core/opener/email/pom.xml aperture/trunk/core/opener/email/src/test/java/org/semanticdesktop/aperture/opener/email/EmailOpenerTest.java aperture/trunk/core/outlook/pom.xml aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/SimpleCrawlerHandler.java aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/TestOutlookCrawlAll.java aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/TestOutlookCrawler.java aperture/trunk/default/linkextractor/pom.xml aperture/trunk/default/linkextractor/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/impl/TestDefaultLinkExtractorRegistry.java aperture/trunk/default/opener/pom.xml aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/core/linkextractor/html/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/ aperture/trunk/core/linkextractor/html/src/test/resources/org/semanticdesktop/aperture/hypertext/linkextractor/html/ aperture/trunk/core/opener/core/src/test/java/org/semanticdesktop/aperture/opener/ aperture/trunk/core/opener/email/src/test/java/org/semanticdesktop/aperture/opener/email/ aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/ aperture/trunk/core/outlook/testdocuments/ aperture/trunk/default/linkextractor/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/impl/ Removed Paths: ------------- aperture/trunk/core/linkextractor/html/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/test.html aperture/trunk/core/linkextractor/html/src/test/resources/org/semanticdesktop/aperture/hypertext/linkextractor/html/HtmlLinkExtractorTest.java aperture/trunk/core/opener/core/src/test/java/org/semanticdesktop/aperture/opener/email/ aperture/trunk/core/outlook/testdocuments/readme.txt Modified: aperture/trunk/core/linkextractor/html/pom.xml =================================================================== --- aperture/trunk/core/linkextractor/html/pom.xml 2009-03-12 17:18:56 UTC (rev 1834) +++ aperture/trunk/core/linkextractor/html/pom.xml 2009-03-12 22:34:31 UTC (rev 1835) @@ -21,6 +21,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-linkextractor-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testdocs</artifactId> + </dependency> <dependency> <groupId>org.osgi</groupId> Property changes on: aperture/trunk/core/linkextractor/html/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/html ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/hypertext/linkextractor/html:1513-1527 Modified: aperture/trunk/core/linkextractor/html/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/HtmlLinkExtractorTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/hypertext/linkextractor/html/HtmlLinkExtractorTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/linkextractor/html/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/HtmlLinkExtractorTest.java 2009-03-12 22:34:31 UTC (rev 1835) @@ -11,13 +11,15 @@ import java.util.HashMap; import java.util.List; -import org.semanticdesktop.aperture.ApertureTestBase; +import junit.framework.TestCase; + import org.semanticdesktop.aperture.hypertext.linkextractor.LinkExtractor; -import org.semanticdesktop.aperture.util.ResourceUtil; -public class HtmlLinkExtractorTest extends ApertureTestBase { +public class HtmlLinkExtractorTest extends TestCase { private InputStream stream; + + private static final String DOCS_PATH = "org/semanticdesktop/aperture/docs/"; private static final String TEST_RESOURCE = "org/semanticdesktop/aperture/hypertext/linkextractor/html/test.html"; @@ -57,7 +59,7 @@ } private List getLinks(Boolean includeEmbeddedResources, String resource) throws IOException { - stream = ResourceUtil.getInputStream(resource, HtmlLinkExtractorTest.class); + stream = this.getClass().getClassLoader().getResourceAsStream(resource); HtmlLinkExtractor extractor = new HtmlLinkExtractor(); HashMap params = new HashMap(); params.put(LinkExtractor.INCLUDE_EMBEDDED_RESOURCES_KEY, includeEmbeddedResources); Deleted: aperture/trunk/core/linkextractor/html/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/test.html =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/hypertext/linkextractor/html/test.html 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/linkextractor/html/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/html/test.html 2009-03-12 22:34:31 UTC (rev 1835) @@ -1,17 +0,0 @@ -<html> - -<head> - <base href="http://example.com/"> -</head> - -<body> - -<a href="http://example.com/absolute/link">bla</a> - -<a href="relative/link">bla</a> - -<img src="http://example.com/image"> - -</body> - -</html> \ No newline at end of file Property changes on: aperture/trunk/core/linkextractor/html/src/test/resources/org/semanticdesktop/aperture/hypertext/linkextractor/html ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/hypertext/linkextractor/html:1513-1527 Deleted: aperture/trunk/core/linkextractor/html/src/test/resources/org/semanticdesktop/aperture/hypertext/linkextractor/html/HtmlLinkExtractorTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/hypertext/linkextractor/html/HtmlLinkExtractorTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/linkextractor/html/src/test/resources/org/semanticdesktop/aperture/hypertext/linkextractor/html/HtmlLinkExtractorTest.java 2009-03-12 22:34:31 UTC (rev 1835) @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2005 - 2008 Aduna. - * All rights reserved. - * - * Licensed under the Aperture BSD-style license. - */ -package org.semanticdesktop.aperture.hypertext.linkextractor.html; - -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.List; - -import org.semanticdesktop.aperture.ApertureTestBase; -import org.semanticdesktop.aperture.hypertext.linkextractor.LinkExtractor; -import org.semanticdesktop.aperture.util.ResourceUtil; - -public class HtmlLinkExtractorTest extends ApertureTestBase { - - private InputStream stream; - - private static final String TEST_RESOURCE = "org/semanticdesktop/aperture/hypertext/linkextractor/html/test.html"; - - private static final String CONDENAST_RESOURCE = "org/semanticdesktop/aperture/docs/condenast.html"; - - public void tearDown() throws IOException { - stream.close(); - } - - public void testNavigationLinks() throws IOException { - List links = getLinks(Boolean.FALSE, TEST_RESOURCE); - assertEquals(2, links.size()); - assertTrue(links.contains("http://example.com/absolute/link")); - assertTrue(links.contains("http://example.com/relative/link")); - } - - public void testAllLinks() throws IOException { - List links = getLinks(Boolean.TRUE, TEST_RESOURCE); - assertEquals(3, links.size()); - assertTrue(links.contains("http://example.com/absolute/link")); - assertTrue(links.contains("http://example.com/relative/link")); - assertTrue(links.contains("http://example.com/image")); - } - - public void testCondeNast() throws IOException { - List links = getLinks(Boolean.FALSE, DOCS_PATH + "html-condenast.html"); - // this file will yield faulty urls, but there should be 43 of them - // some may not be valid URIs - assertEquals(links.size(), 43); - } - - public void testQuelleDe() throws Exception { - List links = getLinks(Boolean.FALSE, DOCS_PATH + "html-quelle.de.html"); - // this file will yield faulty urls, but there should be 72 of them - // some may not be valid URIs - assertEquals(links.size(), 72); - } - - private List getLinks(Boolean includeEmbeddedResources, String resource) throws IOException { - stream = ResourceUtil.getInputStream(resource, HtmlLinkExtractorTest.class); - HtmlLinkExtractor extractor = new HtmlLinkExtractor(); - HashMap params = new HashMap(); - params.put(LinkExtractor.INCLUDE_EMBEDDED_RESOURCES_KEY, includeEmbeddedResources); - return extractor.extractLinks(stream, params); - } -} Property changes on: aperture/trunk/core/opener/core/src/test/java/org/semanticdesktop/aperture/opener ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/opener:1513-1527 Modified: aperture/trunk/core/opener/core/src/test/java/org/semanticdesktop/aperture/opener/impl/TestDataOpenerRegistryImpl.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/opener/impl/TestDataOpenerRegistryImpl.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/opener/core/src/test/java/org/semanticdesktop/aperture/opener/impl/TestDataOpenerRegistryImpl.java 2009-03-12 22:34:31 UTC (rev 1835) @@ -7,13 +7,13 @@ package org.semanticdesktop.aperture.opener.impl; import java.util.Collections; +import java.util.HashSet; import java.util.Set; import junit.framework.TestCase; import org.semanticdesktop.aperture.opener.DataOpener; import org.semanticdesktop.aperture.opener.DataOpenerFactory; -import org.semanticdesktop.aperture.opener.email.EmailOpenerFactory; public class TestDataOpenerRegistryImpl extends TestCase { @@ -40,7 +40,7 @@ public void testEmailFactory(){ DataOpenerRegistryImpl registry = new DataOpenerRegistryImpl(); - EmailOpenerFactory eof = new EmailOpenerFactory(); + DummyEmailOpenerFactory eof = new DummyEmailOpenerFactory(); registry.add(eof); assertEquals(1, registry.get("email").size()); assertEquals(1, registry.get("imap").size()); @@ -62,4 +62,18 @@ return Collections.singleton(scheme); } } + private static class DummyEmailOpenerFactory implements DataOpenerFactory { + + public DataOpener get() { + return null; + } + + public Set getSupportedSchemes() { + Set<String> res = new HashSet<String>(); + res.add("email"); + res.add("imap"); + res.add("msgid"); + return res; + } + } } Modified: aperture/trunk/core/opener/email/pom.xml =================================================================== --- aperture/trunk/core/opener/email/pom.xml 2009-03-12 17:18:56 UTC (rev 1834) +++ aperture/trunk/core/opener/email/pom.xml 2009-03-12 22:34:31 UTC (rev 1835) @@ -40,6 +40,11 @@ <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-jdk14</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>junit</groupId> Property changes on: aperture/trunk/core/opener/email/src/test/java/org/semanticdesktop/aperture/opener/email ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/opener/email:1513-1527 Modified: aperture/trunk/core/opener/email/src/test/java/org/semanticdesktop/aperture/opener/email/EmailOpenerTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/opener/email/EmailOpenerTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/opener/email/src/test/java/org/semanticdesktop/aperture/opener/email/EmailOpenerTest.java 2009-03-12 22:34:31 UTC (rev 1835) @@ -25,7 +25,14 @@ }catch(Exception e){ } } - public void testOpen() throws IOException{ + + /** + * Tests an opening of an actual email. Had to rename it because it works on a single computer of the + * original developer and would break the build otherwise. + * + * @throws IOException + */ + public void dontTestOpen() throws IOException{ EmailOpener eo = new EmailOpener(); URI uri = new URIImpl("msgid://AC0...@gm..."); eo.open(uri ); Modified: aperture/trunk/core/outlook/pom.xml =================================================================== --- aperture/trunk/core/outlook/pom.xml 2009-03-12 17:18:56 UTC (rev 1834) +++ aperture/trunk/core/outlook/pom.xml 2009-03-12 22:34:31 UTC (rev 1835) @@ -54,6 +54,11 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-mime-identifier-magic</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>net.sf.jacob-project</groupId> @@ -83,6 +88,14 @@ <build> <plugins> + <!-- the tests should not be ran by default at all, since they require Outlook --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> <plugin> <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-maven-plugin</artifactId> @@ -170,25 +183,5 @@ </dependency> </dependencies> </profile> - <profile> - <!-- Make sure the build doesn't fail when not on Windows --> - <id>not-on-windows</id> - <activation> - <os> - <family>!windows</family> - </os> - </activation> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <skip>true</skip> - </configuration> - </plugin> - </plugins> - </build> - </profile> </profiles> </project> Property changes on: aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/outlook:1513-1527 Modified: aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/SimpleCrawlerHandler.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/outlook/SimpleCrawlerHandler.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/SimpleCrawlerHandler.java 2009-03-12 22:34:31 UTC (rev 1835) @@ -21,8 +21,6 @@ import org.ontoware.rdf2go.model.ModelSet; import org.ontoware.rdf2go.model.Syntax; import org.ontoware.rdf2go.model.node.URI; -import org.openrdf.repository.Repository; -import org.openrdf.repository.RepositoryException; import org.semanticdesktop.aperture.accessor.DataObject; import org.semanticdesktop.aperture.accessor.FileDataObject; import org.semanticdesktop.aperture.accessor.RDFContainerFactory; @@ -35,7 +33,7 @@ import org.semanticdesktop.aperture.extractor.ExtractorRegistry; import org.semanticdesktop.aperture.extractor.FileExtractor; import org.semanticdesktop.aperture.extractor.FileExtractorFactory; -import org.semanticdesktop.aperture.extractor.impl.DefaultExtractorRegistry; +import org.semanticdesktop.aperture.extractor.impl.ExtractorRegistryImpl; import org.semanticdesktop.aperture.mime.identifier.MimeTypeIdentifier; import org.semanticdesktop.aperture.mime.identifier.magic.MagicMimeTypeIdentifier; import org.semanticdesktop.aperture.rdf.RDFContainer; @@ -105,7 +103,7 @@ } this.extractingContents = extractingContents; if (extractingContents) { - extractorRegistry = new DefaultExtractorRegistry(); + extractorRegistry = new ExtractorRegistryImpl(); } if (outputFile == null) { @@ -172,14 +170,14 @@ protected void disposeDataObject(DataObject object) { // really dispose the RDFContainer when noOutput object.dispose(); - if (noOutput) { - try { - ((Repository) object.getMetadata().getModel().getUnderlyingModelImplementation()).shutDown(); - } - catch (RepositoryException e) { - e.printStackTrace(); - } - } +// if (noOutput) { +// try { +// ((Repository) object.getMetadata().getModel().getUnderlyingModelImplementation()).shutDown(); +// } +// catch (RepositoryException e) { +// e.printStackTrace(); +// } +// } } @SuppressWarnings("unchecked") Modified: aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/TestOutlookCrawlAll.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/outlook/TestOutlookCrawlAll.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/TestOutlookCrawlAll.java 2009-03-12 22:34:31 UTC (rev 1835) @@ -8,13 +8,17 @@ import java.io.IOException; +import junit.framework.TestCase; + +import org.ontoware.rdf2go.RDF2Go; import org.ontoware.rdf2go.exception.ModelRuntimeException; +import org.ontoware.rdf2go.model.Model; import org.ontoware.rdf2go.model.ModelSet; import org.ontoware.rdf2go.model.Syntax; import org.ontoware.rdf2go.model.node.URI; import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.ApertureTestBase; import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; /** * crawl through the locally installed outlook. @@ -26,7 +30,7 @@ * * @author sauermann $Id$ */ -public class TestOutlookCrawlAll extends ApertureTestBase { +public class TestOutlookCrawlAll extends TestCase { public static URI TESTID = new URIImpl("urn:test:outlookdatasource"); @@ -50,6 +54,12 @@ } + private RDFContainer createRDFContainer(URI uri) { + Model model = RDF2Go.getModelFactory().createModel().open(); + RDFContainer cont = new RDFContainerImpl(model,uri); + return cont; + } + protected void tearDown() throws Exception { olds.dispose(); olds = null; Modified: aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/TestOutlookCrawler.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/outlook/TestOutlookCrawler.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/outlook/src/test/java/org/semanticdesktop/aperture/outlook/TestOutlookCrawler.java 2009-03-12 22:34:31 UTC (rev 1835) @@ -8,6 +8,8 @@ import java.io.IOException; +import junit.framework.TestCase; + import org.ontoware.aifbcommons.collection.ClosableIterator; import org.ontoware.rdf2go.ModelFactory; import org.ontoware.rdf2go.RDF2Go; @@ -21,11 +23,11 @@ import org.ontoware.rdf2go.model.node.Variable; import org.ontoware.rdf2go.model.node.impl.URIImpl; import org.ontoware.rdf2go.util.RDFTool; -import org.semanticdesktop.aperture.ApertureTestBase; import org.semanticdesktop.aperture.accessor.DataObject; import org.semanticdesktop.aperture.accessor.RDFContainerFactory; import org.semanticdesktop.aperture.accessor.UrlNotFoundException; import org.semanticdesktop.aperture.accessor.base.AccessDataImpl; +import org.semanticdesktop.aperture.accessor.base.RDFContainerFactoryImpl; import org.semanticdesktop.aperture.crawler.Crawler; import org.semanticdesktop.aperture.crawler.CrawlerHandler; import org.semanticdesktop.aperture.crawler.ExitCode; @@ -34,7 +36,6 @@ import org.semanticdesktop.aperture.datasource.config.SubstringCondition; import org.semanticdesktop.aperture.datasource.config.SubstringPattern; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.rdf.impl.RDFContainerFactoryImpl; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; import org.semanticdesktop.aperture.vocabulary.NAO; import org.semanticdesktop.aperture.vocabulary.NIE; @@ -48,7 +49,7 @@ * * @author sauermann $Id$ */ -public class TestOutlookCrawler extends ApertureTestBase { +public class TestOutlookCrawler extends TestCase { public static URI TESTID = new URIImpl("urn:test:outlookdatasource",false); @@ -94,6 +95,12 @@ crawler = null; } + private RDFContainer createRDFContainer(URI uri) { + Model model = RDF2Go.getModelFactory().createModel().open(); + RDFContainer cont = new RDFContainerImpl(model,uri); + return cont; + } + public ModelSet crawlData() throws Exception { // setup a CrawlerHandler SimpleCrawlerHandler crawlerHandler = new SimpleCrawlerHandler(); Property changes on: aperture/trunk/core/outlook/testdocuments ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/testdocuments:1513-1527 Deleted: aperture/trunk/core/outlook/testdocuments/readme.txt =================================================================== --- trunk/aperture/src/testdocuments/readme.txt 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/outlook/testdocuments/readme.txt 2009-03-12 22:34:31 UTC (rev 1835) @@ -1,6 +0,0 @@ -Testdocuments -============= - -Many more testdocuments are in src/test/org/semanticdesktop/aperture/docs - -The documents here have sometimes weird dependencies that make it bad to put them into the source tree. \ No newline at end of file Modified: aperture/trunk/default/linkextractor/pom.xml =================================================================== --- aperture/trunk/default/linkextractor/pom.xml 2009-03-12 17:18:56 UTC (rev 1834) +++ aperture/trunk/default/linkextractor/pom.xml 2009-03-12 22:34:31 UTC (rev 1835) @@ -42,6 +42,16 @@ <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-jdk14</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> </dependencies> <build> Property changes on: aperture/trunk/default/linkextractor/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/impl ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/hypertext/linkextractor/impl:1513-1527 Modified: aperture/trunk/default/linkextractor/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/impl/TestDefaultLinkExtractorRegistry.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/hypertext/linkextractor/impl/TestDefaultLinkExtractorRegistry.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/default/linkextractor/src/test/java/org/semanticdesktop/aperture/hypertext/linkextractor/impl/TestDefaultLinkExtractorRegistry.java 2009-03-12 22:34:31 UTC (rev 1835) @@ -6,9 +6,9 @@ */ package org.semanticdesktop.aperture.hypertext.linkextractor.impl; -import org.semanticdesktop.aperture.ApertureTestBase; +import junit.framework.TestCase; -public class TestDefaultLinkExtractorRegistry extends ApertureTestBase { +public class TestDefaultLinkExtractorRegistry extends TestCase { public void testRegistry() { DefaultLinkExtractorRegistry registry = new DefaultLinkExtractorRegistry(); Modified: aperture/trunk/default/opener/pom.xml =================================================================== --- aperture/trunk/default/opener/pom.xml 2009-03-12 17:18:56 UTC (rev 1834) +++ aperture/trunk/default/opener/pom.xml 2009-03-12 22:34:31 UTC (rev 1835) @@ -42,6 +42,11 @@ <groupId>org.osgi</groupId> <artifactId>osgi_R4_core</artifactId> </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> </dependencies> <build> Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-12 17:18:56 UTC (rev 1834) +++ aperture/trunk/pom.xml 2009-03-12 22:34:31 UTC (rev 1835) @@ -524,6 +524,7 @@ <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> + <version>2.0.0</version> <configuration> <remoteOBR>repository.xml</remoteOBR> <classifier>bundle</classifier> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-13 00:19:50
|
Revision: 1840 http://aperture.svn.sourceforge.net/aperture/?rev=1840&view=rev Author: mylka Date: 2009-03-13 00:19:43 +0000 (Fri, 13 Mar 2009) Log Message: ----------- migrated the base subcrawler test classes, needed to start migrating tests of concrete subcrawlers Modified Paths: -------------- aperture/trunk/core/crawler/core/pom.xml aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/AbstractArchiverSubCrawlerTest.java aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/AbstractSubCrawlerTest.java aperture/trunk/default/crawler/pom.xml Added Paths: ----------- aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtil.java aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/ aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/BasicSubCrawlerHandler.java aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtilIntegration.java aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/impl/TestDefaultSubCrawlerRegistry.java aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java Modified: aperture/trunk/core/crawler/core/pom.xml =================================================================== --- aperture/trunk/core/crawler/core/pom.xml 2009-03-12 23:59:48 UTC (rev 1839) +++ aperture/trunk/core/crawler/core/pom.xml 2009-03-13 00:19:43 UTC (rev 1840) @@ -31,6 +31,11 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-mime-identifier-magic</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-datasource-core</artifactId> </dependency> <dependency> @@ -50,6 +55,16 @@ <groupId>org.semweb4j</groupId> <artifactId>rdf2go.api</artifactId> </dependency> + <dependency> + <groupId>org.semweb4j</groupId> + <artifactId>rdf2go.impl.sesame22</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.openrdf.sesame</groupId> + <artifactId>sesame-runtime</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>org.osgi</groupId> Copied: aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtil.java (from rev 1793, trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtil.java) =================================================================== --- aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtil.java (rev 0) +++ aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtil.java 2009-03-13 00:19:43 UTC (rev 1840) @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.subcrawler; + +import org.ontoware.rdf2go.model.node.impl.URIImpl; + +import junit.framework.TestCase; + +/** + * Tests for {@link SubCrawlerUtil} + */ +public class TestSubCrawlerUtil extends TestCase { + + /** + * Tests the {@link SubCrawlerUtil#getRootObjectUri(org.ontoware.rdf2go.model.node.URI)} method + */ + public void testGetRootObjectUri() { + rootTest("zip:mime:file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml!" + + "/86b313dc282850fef1762fb400171750%2540amrapali.com#1!/Board+paper.docx", + "file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml"); + rootTest("file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml", + "file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml"); + rootTest("mime:file:///D:/mails/mail.eml!/234...@do...", + "file:///D:/mails/mail.eml"); + } + + /** + * Tests the {@link SubCrawlerUtil#getRootObjectUri(org.ontoware.rdf2go.model.node.URI)} method + */ + public void testGetParentObjectUri() { + parentTest("zip:mime:file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml!" + + "/86b313dc282850fef1762fb400171750%2540amrapali.com#1!/Board+paper.docx", + "mime:file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml!" + + "/86b313dc282850fef1762fb400171750%2540amrapali.com#1"); + parentTest("file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml",null); + parentTest("mime:file:///D:/mails/mail.eml!/234...@do...", + "file:///D:/mails/mail.eml"); + } + + /** + * Tests the {@link SubCrawlerUtil#getSubCrawlerPrefix(org.ontoware.rdf2go.model.node.URI)} method + */ + public void testGetSubCrawlerPrefix() { + prefixTest("zip:mime:file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml!" + + "/86b313dc282850fef1762fb400171750%2540amrapali.com#1!/Board+paper.docx","zip"); + prefixTest("file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml",null); + prefixTest("mime:file:///D:/mails/mail.eml!/234...@do...","mime"); + } + + /** + * Tests the {@link SubCrawlerUtil#getSubCrawledObjectPath(org.ontoware.rdf2go.model.node.URI)} method + */ + public void testGetSubCrawledObjectPath() { + pathTest("zip:mime:file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml!" + + "/86b313dc282850fef1762fb400171750%2540amrapali.com#1!/Board+paper.docx","/Board paper.docx"); + pathTest("file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml",null); + pathTest("mime:file:///D:/mails/mail.eml!/234...@do...","/234...@do..."); + } + + /** + * Tests the {@link SubCrawlerUtil#getSubCrawledObjectPath(org.ontoware.rdf2go.model.node.URI)} method + */ + public void testIsSubcrawledObjectUri() { + uriTest("zip:mime:file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml!" + + "/86b313dc282850fef1762fb400171750%2540amrapali.com#1!/Board+paper.docx",true); + uriTest("file:/C:/Users/Chris/Desktop/docx%20problem/Useful%20documents1.eml",false); + uriTest("mime:file:///D:/mails/mail.eml!/234...@do...",true); + uriTest("mime:file:///D:/mails/mail.eml!/234...@do...!/#1",false); // too many paths + uriTest("zip:mime:file:///D:/mails/mail.eml!/234...@do...",false); // too many prefixes + } + + private void rootTest(String subCrawlerObjectUri, String expectedUri) { + assertEquals(new URIImpl(expectedUri),SubCrawlerUtil.getRootObjectUri(new URIImpl(subCrawlerObjectUri))); + } + + private void parentTest(String subCrawledObjectUri, String expectedUri) { + if (expectedUri == null) { + assertNull(SubCrawlerUtil.getParentObjectUri(new URIImpl(subCrawledObjectUri))); + } else { + assertEquals(new URIImpl(expectedUri),SubCrawlerUtil.getParentObjectUri(new URIImpl(subCrawledObjectUri))); + } + } + + private void prefixTest(String subCrawledObjectUri, String expectedPrefix) { + if (expectedPrefix == null) { + assertNull(SubCrawlerUtil.getSubCrawlerPrefix(new URIImpl(subCrawledObjectUri))); + } else { + assertEquals(expectedPrefix,SubCrawlerUtil.getSubCrawlerPrefix(new URIImpl(subCrawledObjectUri))); + } + } + + private void pathTest(String subCrawledObjectUri, String expectedPath) { + if (expectedPath == null) { + assertNull(SubCrawlerUtil.getSubCrawledObjectPath(new URIImpl(subCrawledObjectUri))); + } else { + assertEquals(expectedPath,SubCrawlerUtil.getSubCrawledObjectPath(new URIImpl(subCrawledObjectUri))); + } + } + + private void uriTest(String string, boolean b) { + assertEquals(b, SubCrawlerUtil.isSubcrawledObjectUri(new URIImpl(string))); + } +} + Property changes on: aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtil.java ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtil.java:1513-1527 Property changes on: aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/base:1513-1527 Modified: aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/AbstractArchiverSubCrawlerTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/base/AbstractArchiverSubCrawlerTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/AbstractArchiverSubCrawlerTest.java 2009-03-13 00:19:43 UTC (rev 1840) @@ -9,17 +9,20 @@ import java.io.IOException; import java.io.InputStream; +import junit.framework.TestCase; + +import org.ontoware.rdf2go.RDF2Go; +import org.ontoware.rdf2go.model.Model; import org.ontoware.rdf2go.model.node.URI; import org.ontoware.rdf2go.model.node.impl.URIImpl; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; -import org.semanticdesktop.aperture.subcrawler.SubCrawlerTestBase; import org.semanticdesktop.aperture.subcrawler.base.AbstractArchiverSubCrawler.ArchiveEntry; /** * Tests the basic functionality provided by the AbstractArchiverSubCrawler */ -public class AbstractArchiverSubCrawlerTest extends SubCrawlerTestBase { +public class AbstractArchiverSubCrawlerTest extends TestCase { /** * Tests whether the uris of archive entries conform to the scheme @@ -27,7 +30,7 @@ */ public void testPlainUriGeneration() throws Exception { DummyArchiverSubCrawler sc = new DummyArchiverSubCrawler(); - TestBasicSubCrawlerHandler handler = new TestBasicSubCrawlerHandler(); + BasicSubCrawlerHandler handler = new BasicSubCrawlerHandler(); URI archiveUri = new URIImpl("file://dummyarchive.zip"); RDFContainer parentMetadata = new RDFContainerImpl(createModel(),archiveUri); sc.subCrawl(archiveUri, getDummyStream(), handler, null, null, null, null, parentMetadata); @@ -39,13 +42,17 @@ parentMetadata.dispose(); } + private Model createModel() { + return RDF2Go.getModelFactory().createModel().open(); + } + /** * Tests whether the uris of archive entries conform to the scheme * @throws Exception */ public void testEmbeddedUriGeneration() throws Exception { DummyArchiverSubCrawler sc = new DummyArchiverSubCrawler(); - TestBasicSubCrawlerHandler handler = new TestBasicSubCrawlerHandler(); + BasicSubCrawlerHandler handler = new BasicSubCrawlerHandler(); URI archiveUri = new URIImpl("tar:gzip:file://parentarchive.tar.gz!/parentarchive.tar!/dummyarchive.zip"); RDFContainer parentMetadata = new RDFContainerImpl(createModel(),archiveUri); sc.subCrawl(archiveUri, getDummyStream(), handler, null, null, null, null, parentMetadata); @@ -69,7 +76,9 @@ * @return */ private InputStream getDummyStream() { - return org.semanticdesktop.aperture.util.ResourceUtil.getInputStream(DOCS_PATH + "tar-test.tar", this.getClass()); + return org.semanticdesktop.aperture.util.ResourceUtil.getInputStream( + "org/semanticdesktop/aperture/subcrawler/base/AbstractArchiverSubCrawler.class", + this.getClass()); } private static class DummyArchiverSubCrawler extends AbstractArchiverSubCrawler { Modified: aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/AbstractSubCrawlerTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/base/AbstractSubCrawlerTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/AbstractSubCrawlerTest.java 2009-03-13 00:19:43 UTC (rev 1840) @@ -9,6 +9,8 @@ import java.io.InputStream; import java.nio.charset.Charset; +import junit.framework.TestCase; + import org.ontoware.rdf2go.model.node.URI; import org.ontoware.rdf2go.model.node.impl.URIImpl; import org.ontoware.rdf2go.vocabulary.RDF; @@ -16,19 +18,18 @@ import org.semanticdesktop.aperture.accessor.DataObject; import org.semanticdesktop.aperture.accessor.RDFContainerFactory; import org.semanticdesktop.aperture.accessor.base.DataObjectBase; +import org.semanticdesktop.aperture.accessor.base.RDFContainerFactoryImpl; import org.semanticdesktop.aperture.datasource.DataSource; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.rdf.impl.RDFContainerFactoryImpl; import org.semanticdesktop.aperture.subcrawler.PathNotFoundException; import org.semanticdesktop.aperture.subcrawler.SubCrawlerException; import org.semanticdesktop.aperture.subcrawler.SubCrawlerHandler; -import org.semanticdesktop.aperture.subcrawler.SubCrawlerTestBase; import org.semanticdesktop.aperture.vocabulary.NFO; /** * A suite of tests of the functionality provided by the AbstractSubCrawler */ -public class AbstractSubCrawlerTest extends SubCrawlerTestBase { +public class AbstractSubCrawlerTest extends TestCase { /** * Tests the default implementation of the getDataObject method. The AbstractSubCrawler should Added: aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/BasicSubCrawlerHandler.java =================================================================== --- aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/BasicSubCrawlerHandler.java (rev 0) +++ aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/BasicSubCrawlerHandler.java 2009-03-13 00:19:43 UTC (rev 1840) @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-Style license + */ +package org.semanticdesktop.aperture.subcrawler.base; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; +import java.util.HashSet; +import java.util.Set; + +import org.ontoware.rdf2go.RDF2Go; +import org.ontoware.rdf2go.exception.ModelException; +import org.ontoware.rdf2go.model.Model; +import org.ontoware.rdf2go.model.node.URI; +import org.semanticdesktop.aperture.accessor.DataObject; +import org.semanticdesktop.aperture.accessor.FileDataObject; +import org.semanticdesktop.aperture.accessor.RDFContainerFactory; +import org.semanticdesktop.aperture.extractor.Extractor; +import org.semanticdesktop.aperture.extractor.ExtractorException; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.ExtractorRegistry; +import org.semanticdesktop.aperture.mime.identifier.MimeTypeIdentifier; +import org.semanticdesktop.aperture.mime.identifier.magic.MagicMimeTypeIdentifier; +import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerHandler; +import org.semanticdesktop.aperture.util.IOUtil; + + +public class BasicSubCrawlerHandler implements SubCrawlerHandler, RDFContainerFactory { + + protected Model model; + + protected int numberOfObjects; + + protected Set<String> newObjects; + protected Set<String> changedObjects; + protected Set<String> unchangedObjects; + + protected ExtractorRegistry extractorRegistry; + + protected MimeTypeIdentifier mimeTypeIdentifier; + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////// CONSTRUCTOR ///////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Constructs the TestBasicSubCrawlerHandler + */ + public BasicSubCrawlerHandler() { + initialize(null); + } + + /** + * Constructs the TestBasicSubCrawlerHandler + */ + public BasicSubCrawlerHandler(ExtractorRegistry registry){ + initialize(registry); + } + + private void initialize(ExtractorRegistry registry) { + model = RDF2Go.getModelFactory().createModel(); + model.open(); + newObjects = new HashSet<String>(); + changedObjects = new HashSet<String>(); + unchangedObjects = new HashSet<String>(); + numberOfObjects = 0; + newObjects.clear(); + changedObjects.clear(); + unchangedObjects.clear(); + this.extractorRegistry = registry; + this.mimeTypeIdentifier = ((registry != null) ? new MagicMimeTypeIdentifier() : null); + } + + public void close() { + model.close(); + } + + ///////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////// CRAWLER HANDLER METHODS ////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////////////////////////// + + public void objectChanged(DataObject object) { + changedObjects.add(object.getID().toString()); + // free any resources contained by this DataObject + object.dispose(); + } + + public void objectNew(DataObject object) { + numberOfObjects++; + newObjects.add(object.getID().toString()); + + if (object instanceof FileDataObject && extractorRegistry != null) { + try { + process((FileDataObject)object); + } + catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + catch (ExtractorException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + // free any resources contained by this DataObject + object.dispose(); + } + + private void process(FileDataObject object) throws IOException, ExtractorException { + URI id = object.getID(); + int minimumArrayLength = mimeTypeIdentifier.getMinArrayLength(); + InputStream contentStream = object.getContent(); + contentStream.mark(minimumArrayLength + 10); // add some for safety + byte[] bytes = IOUtil.readBytes(contentStream, minimumArrayLength); + String mimeType = mimeTypeIdentifier.identify(bytes, null, id); + if (mimeType == null) {return;} + contentStream.reset(); + applyExtractor(object.getID(), contentStream, mimeType, object); + } + + private boolean applyExtractor(URI id, InputStream contentStream, String mimeType, + DataObject object) throws ExtractorException { + Set extractors = extractorRegistry.getExtractorFactories(mimeType); + if (!extractors.isEmpty()) { + ExtractorFactory factory = (ExtractorFactory) extractors.iterator().next(); + Extractor extractor = factory.get(); + extractor.extract(id, contentStream, null, mimeType, object.getMetadata()); + return true; + } + else { + return false; + } + } + + public void objectNotModified(String url) { + numberOfObjects++; + unchangedObjects.add(url); + } + + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////// RDF CONTAINER FACTORY METHOD ////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + public RDFContainer getRDFContainer(URI uri) { + return new RDFContainerImpl(model, uri, true); + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////// GETTERS AND SETTERS /////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + public Model getModel() { + return model; + } + + public int getNumberOfObjects() { + return numberOfObjects; + } + + public Set<String> getChangedObjects() { + return changedObjects; + } + + public Set<String> getNewObjects() { + return newObjects; + } + + public Set<String> getUnchangedObjects() { + return unchangedObjects; + } + + public RDFContainerFactory getRDFContainerFactory(String url) { + return this; + } +} + Property changes on: aperture/trunk/core/crawler/core/src/test/java/org/semanticdesktop/aperture/subcrawler/base/BasicSubCrawlerHandler.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: aperture/trunk/default/crawler/pom.xml =================================================================== --- aperture/trunk/default/crawler/pom.xml 2009-03-12 23:59:48 UTC (rev 1839) +++ aperture/trunk/default/crawler/pom.xml 2009-03-13 00:19:43 UTC (rev 1840) @@ -49,6 +49,21 @@ </dependency> <dependency> <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-sub-archive</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-sub-mime</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-sub-vcard</artifactId> + <version>${aperture.version}</version> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-addressbook-thunderbird</artifactId> <version>${aperture.version}</version> </dependency> @@ -67,6 +82,11 @@ <artifactId>aperture-extractor-core</artifactId> <version>${aperture.version}</version> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + <version>${aperture.version}</version> + </dependency> <dependency> <groupId>org.osgi</groupId> Copied: aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtilIntegration.java (from rev 1793, trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtilIntegration.java) =================================================================== --- aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtilIntegration.java (rev 0) +++ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtilIntegration.java 2009-03-13 00:19:43 UTC (rev 1840) @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.subcrawler; + +import java.io.InputStream; +import java.util.Map; + +import org.ontoware.rdf2go.model.node.URI; +import org.ontoware.rdf2go.model.node.impl.URIImpl; +import org.semanticdesktop.aperture.ApertureTestBase; +import org.semanticdesktop.aperture.accessor.DataObject; +import org.semanticdesktop.aperture.accessor.FileDataObject; +import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.subcrawler.impl.DefaultSubCrawlerRegistry; +import org.semanticdesktop.aperture.util.ResourceUtil; + +/** + * An integration test for the {@link SubCrawlerUtil#getDataObject} method. It is in a separate class + * because it invokes concrete implementations of SubCrawlers, and therefore can't belong in the core + * bundle, with the rest of the SubCrawler tests. + */ +public class TestSubCrawlerUtilIntegration extends ApertureTestBase { + + /** + * Tests if the method can extract a PDF attached to an .eml file, tarred and gzipped. + * @throws Exception + */ + public void testGetDataObject() throws Exception { + InputStream stream = ResourceUtil.getInputStream(DOCS_PATH + "mail-multipart-test.eml.tar.gz", + getClass()); + URI uri = new URIImpl( + "mime:" + + "tar:" + + "gzip:" + + "file:///C:/somefolder/mail-multipart-test.eml.tar.gz" + + "!/mail-multipart-test.eml.tar" + + "!/mail-multipart-test.eml" + + "!/1"); + TestRDFContainerFactory fac = new TestRDFContainerFactory(); + DataObject obj = SubCrawlerUtil.getDataObject(uri, stream, null, null, null, fac, + new DefaultSubCrawlerRegistry()); + assertNotNull(obj); + assertTrue(obj instanceof FileDataObject); + assertMimeType("application/pdf", uri, ((FileDataObject)obj).getContent()); + + obj.dispose(); + for (Map.Entry<String, RDFContainer> entry : fac.returnedContainers.entrySet()) { + assertFalse(entry.getValue().getModel().isOpen()); + } + } + + /** + * Tests if the method can extract a file whose name contains a space from inside a ZIP archive. + * @throws Exception + */ + public void testGetDataObjectWithSpace() throws Exception { + InputStream stream = ResourceUtil.getInputStream(DOCS_PATH + "zip-problem.zip", + getClass()); + URI uri = new URIImpl( + "zip:" + + "file:///C:/somefolder/zip-problem.zip" + + "!/D_/Installers/installer+2005.1+rc1/icon-16x16.gif"); + TestRDFContainerFactory fac = new TestRDFContainerFactory(); + DataObject obj = SubCrawlerUtil.getDataObject(uri, stream, null, null, null, fac, + new DefaultSubCrawlerRegistry()); + assertNotNull(obj); + assertTrue(obj instanceof FileDataObject); + assertMimeType("image/png", uri, ((FileDataObject)obj).getContent()); + + obj.dispose(); + for (Map.Entry<String, RDFContainer> entry : fac.returnedContainers.entrySet()) { + assertFalse(entry.getValue().getModel().isOpen()); + } + } +} + Property changes on: aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtilIntegration.java ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/TestSubCrawlerUtilIntegration.java:1513-1527 Copied: aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/impl/TestDefaultSubCrawlerRegistry.java (from rev 1793, trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/impl/TestDefaultSubCrawlerRegistry.java) =================================================================== --- aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/impl/TestDefaultSubCrawlerRegistry.java (rev 0) +++ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/impl/TestDefaultSubCrawlerRegistry.java 2009-03-13 00:19:43 UTC (rev 1840) @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2005 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.subcrawler.impl; + +import org.semanticdesktop.aperture.ApertureTestBase; + +public class TestDefaultSubCrawlerRegistry extends ApertureTestBase { + + public void testRegistry() { + DefaultSubCrawlerRegistry registry = new DefaultSubCrawlerRegistry(); + assertEquals(6, registry.getAll().size()); + assertEquals(1, registry.get("text/x-vcard").size()); + assertEquals(1, registry.get("application/zip").size()); + assertEquals(1, registry.get("application/gzip").size()); + assertEquals(1, registry.get("application/bzip2").size()); + assertEquals(1, registry.get("application/x-tar").size()); + assertEquals(1, registry.get("message/rfc822").size()); + assertEquals(1, registry.get("message/news").size()); + } +} Property changes on: aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/impl/TestDefaultSubCrawlerRegistry.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/impl/TestDefaultSubCrawlerRegistry.java:1513-1527 Copied: aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java (from rev 1793, trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java) =================================================================== --- aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java (rev 0) +++ aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java 2009-03-13 00:19:43 UTC (rev 1840) @@ -0,0 +1,323 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-style license. + */ +package org.semanticdesktop.aperture.subcrawler; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; +import java.util.HashSet; +import java.util.Set; + +import org.ontoware.rdf2go.RDF2Go; +import org.ontoware.rdf2go.exception.ModelException; +import org.ontoware.rdf2go.model.Model; +import org.ontoware.rdf2go.model.node.Resource; +import org.ontoware.rdf2go.model.node.URI; +import org.ontoware.rdf2go.model.node.impl.URIImpl; +import org.ontoware.rdf2go.vocabulary.RDF; +import org.semanticdesktop.aperture.ApertureTestBase; +import org.semanticdesktop.aperture.TestIncrementalCrawlerHandler; +import org.semanticdesktop.aperture.accessor.DataObject; +import org.semanticdesktop.aperture.accessor.FileDataObject; +import org.semanticdesktop.aperture.accessor.RDFContainerFactory; +import org.semanticdesktop.aperture.extractor.Extractor; +import org.semanticdesktop.aperture.extractor.ExtractorException; +import org.semanticdesktop.aperture.extractor.ExtractorFactory; +import org.semanticdesktop.aperture.extractor.ExtractorRegistry; +import org.semanticdesktop.aperture.mime.identifier.MimeTypeIdentifier; +import org.semanticdesktop.aperture.mime.identifier.magic.MagicMimeTypeIdentifier; +import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.util.IOUtil; +import org.semanticdesktop.aperture.vocabulary.NFO; + +/** + * A base class for archiver tests + */ +public class SubCrawlerTestBase extends ApertureTestBase { + + /** + * Performs basic checks of the model. It is used by archivers that have crawled the test archive file. + * I.e. the same content archived with different algorithms. See for example the zip-test.zip file for + * details. + * + * @param model + * @param resourceName + * @throws Exception + */ + protected void doBasicArchiverTests(Model model, String resourceName, String prefix) throws Exception { + URI archiveUri = model.createURI("uri:dummyuri/" + resourceName); + assertTrue(model.contains(archiveUri, RDF.type, NFO.Archive)); + // everything that is directly linked with an isPartOf link to the archive itself + Resource testfolder = findSingleSubjectResource(model, NFO.belongsToContainer, archiveUri); + String folderPath = testfolder.toString(); + checkStatement(testfolder.asURI(), RDF.type, NFO.Folder, model); + assertEquals(prefix + ":" + archiveUri.toString() + "!/zip-test/", folderPath); + Set<Resource> testContent = findSubjectResourceSet(model, NFO.belongsToContainer, testfolder); + + assertTrue(testContent.contains(new URIImpl(folderPath + "test1.txt"))); + assertTrue(testContent.contains(new URIImpl(folderPath + "test2.txt"))); + assertTrue(testContent.contains(new URIImpl(folderPath + "test3.txt"))); + assertTrue(testContent.contains(new URIImpl(folderPath + "subfolder/"))); + assertTrue(testContent.contains(new URIImpl(folderPath + "microsoft-word-2000.doc"))); + + assertEquals(5, testContent.size()); + URI subfolderUri = new URIImpl(folderPath + "subfolder/"); + checkStatement(subfolderUri, RDF.type, NFO.Folder, model); + + Set<Resource> subfolderContent = findSubjectResourceSet(model, NFO.belongsToContainer, subfolderUri); + + assertTrue(subfolderContent.contains(new URIImpl(folderPath + "subfolder/test4.txt"))); + assertTrue(subfolderContent.contains(new URIImpl(folderPath + "subfolder/test5.txt"))); + assertTrue(subfolderContent.contains(new URIImpl(folderPath + "subfolder/pdf-manyauthors.pdf"))); + + assertEquals(3, subfolderContent.size()); + + // file names + assertSingleValueProperty(model, testfolder, NFO.fileName, "zip-test"); + assertSingleValueProperty(model, new URIImpl(folderPath + "test1.txt"), NFO.fileName, "test1.txt"); + assertSingleValueProperty(model, new URIImpl(folderPath + "test2.txt"), NFO.fileName, "test2.txt"); + assertSingleValueProperty(model, new URIImpl(folderPath + "test3.txt"), NFO.fileName, "test3.txt"); + assertSingleValueProperty(model, new URIImpl(folderPath + "subfolder/"), NFO.fileName, "subfolder"); + assertSingleValueProperty(model, new URIImpl(folderPath + "subfolder/test4.txt"), NFO.fileName, "test4.txt"); + assertSingleValueProperty(model, new URIImpl(folderPath + "subfolder/test5.txt"), NFO.fileName, "test5.txt"); + assertSingleValueProperty(model, new URIImpl(folderPath + "subfolder/pdf-manyauthors.pdf"), NFO.fileName, "pdf-manyauthors.pdf"); + assertSingleValueProperty(model, new URIImpl(folderPath + "microsoft-word-2000.doc"), NFO.fileName, "microsoft-word-2000.doc"); + } + + /** + * A basic test if the extraction actually works + * @param model + * @param resourceName + * @param contentFileName + * @throws Exception + */ + public void doBasicCompressorTest(Model model, String resourceName, String contentFileName, String prefix) throws Exception { + String compressedFileUri = "uri:dummyuri/" + resourceName; + String contentUri = prefix + ":uri:dummyuri/" + resourceName + "!/" + contentFileName; + URI archiveUri = model.createURI(compressedFileUri); + // the archiveUri is an archive + assertTrue(model.contains(archiveUri, RDF.type, NFO.Archive)); + // the archive has a single part + Resource contentResource = findSingleSubjectResource(model, NFO.belongsToContainer, archiveUri); + // that content part is an archive item + checkStatement(contentResource.asURI(), RDF.type, NFO.ArchiveItem, model); + // the uri of the archive item is the same as those of the archive with the .gz truncated + assertEquals(contentUri, contentResource.toString()); + // the name of the content file has been properly extracted from the content uri + assertSingleValueProperty(model, contentResource, NFO.fileName, contentFileName); + // the handler has spotted one new object and nothing else + } + + private URI toURI(File file) { + return new URIImpl(file.toURI().toString()); + } + + protected RDFContainer subCrawl(String resourceName, SubCrawler subCrawler, TestBasicSubCrawlerHandler handler) throws Exception { + InputStream stream = org.semanticdesktop.aperture.util.ResourceUtil.getInputStream(DOCS_PATH + resourceName, this.getClass()); + RDFContainer parentMetadata = new RDFContainerImpl(handler.getModel(),new URIImpl("uri:dummyuri/" + resourceName)); + subCrawler.subCrawl(null, stream, handler, null, null, null, null, parentMetadata); + return parentMetadata; + } + + /** + * Asserts that the incremental crawling results gathered by the given {@link TestIncrementalCrawlerHandler} + * are correct. + * @param handler the handler to check + * @param newObjects the desired number of new objects + * @param changedObjects the desired number of changed objects + * @param unchangedObjects the desired number of unchanged objects + * @param deletedObjects the desired number of deleted objects + */ + public void assertNewModUnmod(TestBasicSubCrawlerHandler handler, int newObjects, + int changedObjects, int unchangedObjects, int deletedObjects) { + assertEquals(handler.getNewObjects().size(), newObjects); + assertEquals(handler.getChangedObjects().size(), changedObjects); + assertEquals(handler.getUnchangedObjects().size(), unchangedObjects); + } + + protected class TestBasicSubCrawlerHandler implements SubCrawlerHandler, RDFContainerFactory { + + protected Model model; + + protected int numberOfObjects; + + protected Set<String> newObjects; + protected Set<String> changedObjects; + protected Set<String> unchangedObjects; + + protected ExtractorRegistry extractorRegistry; + + protected MimeTypeIdentifier mimeTypeIdentifier; + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////// CONSTRUCTOR ///////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Constructs the TestBasicSubCrawlerHandler + */ + public TestBasicSubCrawlerHandler() { + initialize(null); + } + + /** + * Constructs the TestBasicSubCrawlerHandler + */ + public TestBasicSubCrawlerHandler(ExtractorRegistry registry){ + initialize(registry); + } + + private void initialize(ExtractorRegistry registry) { + model = RDF2Go.getModelFactory().createModel(); + model.open(); + newObjects = new HashSet<String>(); + changedObjects = new HashSet<String>(); + unchangedObjects = new HashSet<String>(); + numberOfObjects = 0; + newObjects.clear(); + changedObjects.clear(); + unchangedObjects.clear(); + this.extractorRegistry = registry; + this.mimeTypeIdentifier = ((registry != null) ? new MagicMimeTypeIdentifier() : null); + } + + public void close() { + model.close(); + } + + ///////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////// CRAWLER HANDLER METHODS ////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////////////////////////// + + public void objectChanged(DataObject object) { + changedObjects.add(object.getID().toString()); + // free any resources contained by this DataObject + object.dispose(); + } + + public void objectNew(DataObject object) { + numberOfObjects++; + newObjects.add(object.getID().toString()); + + if (object instanceof FileDataObject && extractorRegistry != null) { + try { + process((FileDataObject)object); + } + catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + catch (ExtractorException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + // free any resources contained by this DataObject + object.dispose(); + } + + private void process(FileDataObject object) throws IOException, ExtractorException { + URI id = object.getID(); + int minimumArrayLength = mimeTypeIdentifier.getMinArrayLength(); + InputStream contentStream = object.getContent(); + contentStream.mark(minimumArrayLength + 10); // add some for safety + byte[] bytes = IOUtil.readBytes(contentStream, minimumArrayLength); + String mimeType = mimeTypeIdentifier.identify(bytes, null, id); + if (mimeType == null) {return;} + contentStream.reset(); + applyExtractor(object.getID(), contentStream, mimeType, object); + } + + private boolean applyExtractor(URI id, InputStream contentStream, String mimeType, + DataObject object) throws ExtractorException { + Set extractors = extractorRegistry.getExtractorFactories(mimeType); + if (!extractors.isEmpty()) { + ExtractorFactory factory = (ExtractorFactory) extractors.iterator().next(); + Extractor extractor = factory.get(); + extractor.extract(id, contentStream, null, mimeType, object.getMetadata()); + return true; + } + else { + return false; + } + } + + public void objectNotModified(String url) { + numberOfObjects++; + unchangedObjects.add(url); + } + + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////// RDF CONTAINER FACTORY METHOD ////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + public RDFContainer getRDFContainer(URI uri) { + return new RDFContainerImpl(model, uri, true); + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////// GETTERS AND SETTERS /////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + public Model getModel() { + return model; + } + + public int getNumberOfObjects() { + return numberOfObjects; + } + + public Set<String> getChangedObjects() { + return changedObjects; + } + + public Set<String> getNewObjects() { + return newObjects; + } + + public Set<String> getUnchangedObjects() { + return unchangedObjects; + } + + public RDFContainerFactory getRDFContainerFactory(String url) { + return this; + } + } + + protected class CompressorSubCrawlerHandler extends TestBasicSubCrawlerHandler { + + private String extractedString; + + public CompressorSubCrawlerHandler() throws ModelException { + super(null); + } + + public void objectNew(DataObject object) { + numberOfObjects++; + newObjects.add(object.getID().toString()); + if (object instanceof FileDataObject) { + try { + extractedString = IOUtil.readString(((FileDataObject)object).getContent(), Charset.forName("US-ASCII")); + } + catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + // free any resources contained by this DataObject + object.dispose(); + } + public String getExtractedString() { + return extractedString; + } + } +} + Property changes on: aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java:1513-1527 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-13 17:01:29
|
Revision: 1844 http://aperture.svn.sourceforge.net/aperture/?rev=1844&view=rev Author: mylka Date: 2009-03-13 17:01:25 +0000 (Fri, 13 Mar 2009) Log Message: ----------- migrated the subcrawler tests Modified Paths: -------------- aperture/trunk/core/crawler/archive/pom.xml aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/bzip2/BZip2SubCrawlerTest.java aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/gzip/GZipSubCrawlerTest.java aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/TarSubCrawlerTest.java aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/zip/ZipSubCrawlerTest.java aperture/trunk/core/crawler/mime/pom.xml aperture/trunk/core/crawler/vcard/pom.xml aperture/trunk/core/crawler/vcard/src/main/java/org/semanticdesktop/aperture/subcrawler/vcard/VcardSubCrawler.java aperture/trunk/default/crawler/pom.xml aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java Added Paths: ----------- aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/ArchiveSubCrawlerTestBase.java aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/bzip2/ aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/gzip/ aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/ aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/zip/ aperture/trunk/core/crawler/mime/src/test/java/org/semanticdesktop/aperture/subcrawler/mime/ aperture/trunk/core/crawler/vcard/src/test/java/org/semanticdesktop/aperture/subcrawler/vcard/ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/TarIntegrationTest.java Modified: aperture/trunk/core/crawler/archive/pom.xml =================================================================== --- aperture/trunk/core/crawler/archive/pom.xml 2009-03-13 15:51:09 UTC (rev 1843) +++ aperture/trunk/core/crawler/archive/pom.xml 2009-03-13 17:01:25 UTC (rev 1844) @@ -29,6 +29,21 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-accessor-file</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-filesystem</artifactId> + <version>${aperture.version}</version> + <scope>test</scope> + </dependency> <dependency> <groupId>commons-compress</groupId> Added: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/ArchiveSubCrawlerTestBase.java =================================================================== --- aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/ArchiveSubCrawlerTestBase.java (rev 0) +++ aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/ArchiveSubCrawlerTestBase.java 2009-03-13 17:01:25 UTC (rev 1844) @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-Style license + */ +package org.semanticdesktop.aperture.subcrawler; + +import info.aduna.io.ResourceUtil; + +import java.io.File; + +import org.ontoware.rdf2go.model.Model; +import org.semanticdesktop.aperture.TestIncrementalCrawlerHandler; +import org.semanticdesktop.aperture.accessor.AccessData; +import org.semanticdesktop.aperture.accessor.base.AccessDataImpl; +import org.semanticdesktop.aperture.accessor.file.FileAccessorFactory; +import org.semanticdesktop.aperture.accessor.impl.DataAccessorRegistryImpl; +import org.semanticdesktop.aperture.crawler.filesystem.FileSystemCrawler; +import org.semanticdesktop.aperture.datasource.filesystem.FileSystemDataSource; +import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.subcrawler.impl.SubCrawlerRegistryImpl; +import org.semanticdesktop.aperture.util.FileUtil; +import org.semanticdesktop.aperture.util.IOUtil; + + +public class ArchiveSubCrawlerTestBase extends SubCrawlerTestBase { + + /** + * Tests the incremental crawling + * @param factory + * @param subdirName + * @param resourceName + * @param fileExtension + * @param numberOfEntries + * @throws Exception + */ + public void testCrawlerIncremental(SubCrawlerFactory factory, String subdirName, String resourceName, String fileExtension, int numberOfEntries) throws Exception { + File tmpDir = new File(System.getProperty("java.io.tmpdir"), subdirName).getCanonicalFile(); + try { + // create a temporary folder containing a temporary file + // unfortunately there is no File.createTempDir + + FileUtil.deltree(tmpDir); + assertTrue(tmpDir.mkdir()); + + // put two files in it + File tmpFile1 = File.createTempFile("file-", ".txt", tmpDir); + IOUtil.writeString("test file 1", tmpFile1); + + File tmpFile2 = File.createTempFile("file-", ".txt", tmpDir); + IOUtil.writeString("test file 2", tmpFile2); + + File tmpFile4 = File.createTempFile("file-skipme-", ".txt", tmpDir); + IOUtil.writeString("test file 4", tmpFile4); + + // put another folder containing another file in it + File subDir = new File(tmpDir, "subdir"); + subDir.mkdir(); + + File tmpFile3 = File.createTempFile("file-", fileExtension, subDir); + IOUtil.writeStream(ResourceUtil.getInputStream(DOCS_PATH + resourceName), tmpFile3); + + // create a DataSource + RDFContainer configuration = createRDFContainer("urn:test:dummySource"); + FileSystemDataSource dataSource = new FileSystemDataSource(); + dataSource.setConfiguration(configuration); + + dataSource.setRootFolder(tmpDir.getAbsolutePath()); + + // create a Crawler for this DataSource + FileSystemCrawler crawler = new FileSystemCrawler(); + AccessData accessData = new AccessDataImpl(); + crawler.setAccessData(accessData); + + crawler.setDataSource(dataSource); + // setup a DataAccessorRegistry + DataAccessorRegistryImpl registry = new DataAccessorRegistryImpl(); + registry.add(new FileAccessorFactory()); + crawler.setDataAccessorRegistry(registry); + + SubCrawlerRegistry subCrawlerRegistry = new SubCrawlerRegistryImpl(); + subCrawlerRegistry.add(factory); + // setup a CrawlerHandler + TestIncrementalCrawlerHandler crawlerHandler = new TestIncrementalCrawlerHandler(subCrawlerRegistry); + crawler.setCrawlerHandler(crawlerHandler); + + // start Crawling + crawler.crawl(); + + // inspect results (we have 6 files + the compressed entries) + assertNewModUnmodDel(crawlerHandler, 6 + numberOfEntries, 0, 0, 0); + assertTrue(accessData.getStoredIDs().size() == 6 + numberOfEntries); + + crawler.crawl(); + // recursive touching, the file has been reported as unmodified + assertTrue(crawlerHandler.getUnchangedObjects().contains(toURI(tmpFile3).toString())); + assertNewModUnmodDel(crawlerHandler, 0, 0, 6 + numberOfEntries, 0); + assertTrue(accessData.getStoredIDs().size() == 6 + numberOfEntries); + + // recursive removal + safelySleep(1200); //for some sanity ,it seems that a fast server is able to run two crawls in the same second + tmpFile3.delete(); + crawler.crawl(); + + // the folder has been modified, ten resources have been deleted (zip file + 9 zip entries inside) + assertNewModUnmodDel(crawlerHandler, 0, 1, 4, 1 + numberOfEntries); + assertTrue(accessData.getStoredIDs().size() == 5); + + Model model = crawlerHandler.getModel(); + + model.close(); + configuration.getModel().close(); + } finally { + FileUtil.deltree(tmpDir); + } + } + +} + Property changes on: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/ArchiveSubCrawlerTestBase.java ___________________________________________________________________ Added: svn:mime-type + text/plain Property changes on: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/bzip2 ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/bzip2:1513-1527 Modified: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/bzip2/BZip2SubCrawlerTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/bzip2/BZip2SubCrawlerTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/bzip2/BZip2SubCrawlerTest.java 2009-03-13 17:01:25 UTC (rev 1844) @@ -7,12 +7,12 @@ package org.semanticdesktop.aperture.subcrawler.bzip2; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.subcrawler.SubCrawlerTestBase; +import org.semanticdesktop.aperture.subcrawler.ArchiveSubCrawlerTestBase; /** * A test case for the bzip2 subcrawler */ -public class BZip2SubCrawlerTest extends SubCrawlerTestBase { +public class BZip2SubCrawlerTest extends ArchiveSubCrawlerTestBase { private RDFContainer metadata; Property changes on: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/gzip ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/gzip:1513-1527 Modified: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/gzip/GZipSubCrawlerTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/gzip/GZipSubCrawlerTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/gzip/GZipSubCrawlerTest.java 2009-03-13 17:01:25 UTC (rev 1844) @@ -7,12 +7,12 @@ package org.semanticdesktop.aperture.subcrawler.gzip; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.subcrawler.SubCrawlerTestBase; +import org.semanticdesktop.aperture.subcrawler.ArchiveSubCrawlerTestBase; /** * A test case for the gzip subcrawler */ -public class GZipSubCrawlerTest extends SubCrawlerTestBase { +public class GZipSubCrawlerTest extends ArchiveSubCrawlerTestBase { private RDFContainer metadata; Property changes on: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/tar ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/tar:1513-1527 Modified: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/TarSubCrawlerTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/tar/TarSubCrawlerTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/TarSubCrawlerTest.java 2009-03-13 17:01:25 UTC (rev 1844) @@ -8,16 +8,15 @@ import org.ontoware.rdf2go.model.node.URI; import org.ontoware.rdf2go.model.node.impl.URIImpl; -import org.semanticdesktop.aperture.extractor.impl.DefaultExtractorRegistry; import org.semanticdesktop.aperture.rdf.RDFContainer; import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; -import org.semanticdesktop.aperture.subcrawler.SubCrawlerTestBase; +import org.semanticdesktop.aperture.subcrawler.ArchiveSubCrawlerTestBase; import org.semanticdesktop.aperture.vocabulary.NIE; /** * A test case for the tar subcrawler */ -public class TarSubCrawlerTest extends SubCrawlerTestBase { +public class TarSubCrawlerTest extends ArchiveSubCrawlerTestBase { /** * A basic test if the extraction actually works @@ -25,27 +24,14 @@ */ public void testTarTest() throws Exception { TarSubCrawler subCrawler = new TarSubCrawler(); - RDFContainer metadata = subCrawl("tar-test.tar", subCrawler, new TestBasicSubCrawlerHandler()); + TestBasicSubCrawlerHandler handler = new TestBasicSubCrawlerHandler(); + RDFContainer metadata = subCrawl("tar-test.tar", subCrawler, handler); doBasicArchiverTests(metadata.getModel(), "tar-test.tar", "tar"); validate(metadata); - metadata.dispose(); + handler.close(); metadata = null; } - /** - * Tests if the content of a tar can actually be used. - * @throws Exception - */ - public void testTarredPdf() throws Exception { - TarSubCrawler subCrawler = new TarSubCrawler(); - TestBasicSubCrawlerHandler handler = new TestBasicSubCrawlerHandler(new DefaultExtractorRegistry()); - RDFContainer metadata = subCrawl("pdf-openoffice-2.0-writer.pdf.tar", subCrawler, handler); - URI uri = new URIImpl("tar:uri:dummyuri/pdf-openoffice-2.0-writer.pdf.tar!/pdf-openoffice-2.0-writer.pdf"); - RDFContainer container = new RDFContainerImpl(handler.getModel(),uri); - checkStatement(NIE.plainTextContent, "is an example document created with OpenOffice 2.0", container); - handler.close(); - } - public void testTarSubCrawlerIncrementalCombination() throws Exception { testCrawlerIncremental(new TarSubCrawlerFactory(), "TestTarSubCrawlerCombination.tmpDir", "tar-test.tar", ".tar",9); } Property changes on: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/zip ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/zip:1513-1527 Modified: aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/zip/ZipSubCrawlerTest.java =================================================================== --- trunk/aperture/src/test/org/semanticdesktop/aperture/subcrawler/zip/ZipSubCrawlerTest.java 2009-03-10 21:58:55 UTC (rev 1793) +++ aperture/trunk/core/crawler/archive/src/test/java/org/semanticdesktop/aperture/subcrawler/zip/ZipSubCrawlerTest.java 2009-03-13 17:01:25 UTC (rev 1844) @@ -15,16 +15,16 @@ import org.ontoware.rdf2go.model.node.impl.URIImpl; import org.ontoware.rdf2go.vocabulary.RDF; import org.semanticdesktop.aperture.accessor.DataObject; +import org.semanticdesktop.aperture.accessor.base.RDFContainerFactoryImpl; import org.semanticdesktop.aperture.rdf.RDFContainer; -import org.semanticdesktop.aperture.rdf.impl.RDFContainerFactoryImpl; -import org.semanticdesktop.aperture.subcrawler.SubCrawlerTestBase; +import org.semanticdesktop.aperture.subcrawler.ArchiveSubCrawlerTestBase; import org.semanticdesktop.aperture.util.ResourceUtil; import org.semanticdesktop.aperture.vocabulary.NFO; /** * A test case for the zip subcrawler */ -public class ZipSubCrawlerTest extends SubCrawlerTestBase { +public class ZipSubCrawlerTest extends ArchiveSubCrawlerTestBase { private RDFContainer metadata; /** @@ -75,6 +75,7 @@ DataObject obj = subCrawler.getDataObject(parentUri, path, stream, null, null, null, new RDFContainerFactoryImpl()); assertNotNull(obj); assertEquals(new URIImpl("zip:uri:dummyuri/zip-test.zip!/zip-test/test2.txt"),obj.getID()); + obj.dispose(); } private void assertCrc32Hash(Model model, Resource resource, long i) { Modified: aperture/trunk/core/crawler/mime/pom.xml =================================================================== --- aperture/trunk/core/crawler/mime/pom.xml 2009-03-13 15:51:09 UTC (rev 1843) +++ aperture/trunk/core/crawler/mime/pom.xml 2009-03-13 17:01:25 UTC (rev 1844) @@ -37,6 +37,10 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> <dependency> <groupId>javax.mail</groupId> Property changes on: aperture/trunk/core/crawler/mime/src/test/java/org/semanticdesktop/aperture/subcrawler/mime ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/mime:1513-1527 Modified: aperture/trunk/core/crawler/vcard/pom.xml =================================================================== --- aperture/trunk/core/crawler/vcard/pom.xml 2009-03-13 15:51:09 UTC (rev 1843) +++ aperture/trunk/core/crawler/vcard/pom.xml 2009-03-13 17:01:25 UTC (rev 1844) @@ -33,6 +33,21 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-testcore</artifactId> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-accessor-file</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-crawler-filesystem</artifactId> + <version>${aperture.version}</version> + <scope>test</scope> + </dependency> <dependency> <groupId>commons-codec</groupId> @@ -58,6 +73,10 @@ <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl-over-slf4j</artifactId> + </dependency> <dependency> <groupId>junit</groupId> Modified: aperture/trunk/core/crawler/vcard/src/main/java/org/semanticdesktop/aperture/subcrawler/vcard/VcardSubCrawler.java =================================================================== --- aperture/trunk/core/crawler/vcard/src/main/java/org/semanticdesktop/aperture/subcrawler/vcard/VcardSubCrawler.java 2009-03-13 15:51:09 UTC (rev 1843) +++ aperture/trunk/core/crawler/vcard/src/main/java/org/semanticdesktop/aperture/subcrawler/vcard/VcardSubCrawler.java 2009-03-13 17:01:25 UTC (rev 1844) @@ -16,6 +16,7 @@ import java.util.List; import net.fortuna.ical4j.model.ValidationException; +import net.fortuna.ical4j.util.CompatibilityHints; import net.fortuna.ical4j.vcard.GroupRegistry; import net.fortuna.ical4j.vcard.Parameter; import net.fortuna.ical4j.vcard.ParameterFactory; @@ -139,7 +140,9 @@ ParameterFactoryRegistry parReg = new ParameterFactoryRegistry(); addTypeParamsToRegistry(parReg); - + CompatibilityHints.setHintEnabled(CompatibilityHints.KEY_RELAXED_PARSING, true); + CompatibilityHints.setHintEnabled(CompatibilityHints.KEY_RELAXED_UNFOLDING, true); + CompatibilityHints.setHintEnabled(CompatibilityHints.KEY_RELAXED_VALIDATION, true); VCardBuilder builder = new VCardBuilder(reader,groupRegistry,propReg,parReg); List<VCard> cards = builder.buildAll(); VCardOutputter outputter = new VCardOutputter(false); Property changes on: aperture/trunk/core/crawler/vcard/src/test/java/org/semanticdesktop/aperture/subcrawler/vcard ___________________________________________________________________ Added: svn:mergeinfo + /branches/smila-prep-branch/aperture/src/test/org/semanticdesktop/aperture/subcrawler/vcard:1513-1527 Modified: aperture/trunk/default/crawler/pom.xml =================================================================== --- aperture/trunk/default/crawler/pom.xml 2009-03-13 15:51:09 UTC (rev 1843) +++ aperture/trunk/default/crawler/pom.xml 2009-03-13 17:01:25 UTC (rev 1844) @@ -87,6 +87,12 @@ <artifactId>aperture-testcore</artifactId> <version>${aperture.version}</version> </dependency> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-default-extractor</artifactId> + <version>${aperture.version}</version> + <scope>test</scope> + </dependency> <dependency> <groupId>org.osgi</groupId> Added: aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/TarIntegrationTest.java =================================================================== --- aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/TarIntegrationTest.java (rev 0) +++ aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/TarIntegrationTest.java 2009-03-13 17:01:25 UTC (rev 1844) @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH. + * All rights reserved. + * + * Licensed under the Aperture BSD-Style license + */ +package org.semanticdesktop.aperture.subcrawler.tar; + +import org.ontoware.rdf2go.model.node.URI; +import org.ontoware.rdf2go.model.node.impl.URIImpl; +import org.semanticdesktop.aperture.extractor.impl.DefaultExtractorRegistry; +import org.semanticdesktop.aperture.rdf.RDFContainer; +import org.semanticdesktop.aperture.rdf.impl.RDFContainerImpl; +import org.semanticdesktop.aperture.subcrawler.SubCrawlerTestBase; +import org.semanticdesktop.aperture.vocabulary.NIE; + + +public class TarIntegrationTest extends SubCrawlerTestBase{ + + /** + * Tests if the content of a tar can actually be used. + * @throws Exception + */ + public void testTarredPdf() throws Exception { + TarSubCrawler subCrawler = new TarSubCrawler(); + TestBasicSubCrawlerHandler handler = new TestBasicSubCrawlerHandler(new DefaultExtractorRegistry()); + RDFContainer metadata = subCrawl("pdf-openoffice-2.0-writer.pdf.tar", subCrawler, handler); + URI uri = new URIImpl("tar:uri:dummyuri/pdf-openoffice-2.0-writer.pdf.tar!/pdf-openoffice-2.0-writer.pdf"); + RDFContainer container = new RDFContainerImpl(handler.getModel(),uri); + checkStatement(NIE.plainTextContent, "is an example document created with OpenOffice 2.0", container); + handler.close(); + } + +} + Property changes on: aperture/trunk/default/crawler/src/test/java/org/semanticdesktop/aperture/subcrawler/tar/TarIntegrationTest.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java =================================================================== --- aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java 2009-03-13 15:51:09 UTC (rev 1843) +++ aperture/trunk/test/core/src/main/java/org/semanticdesktop/aperture/subcrawler/SubCrawlerTestBase.java 2009-03-13 17:01:25 UTC (rev 1844) @@ -114,12 +114,15 @@ // the handler has spotted one new object and nothing else } - private URI toURI(File file) { + protected URI toURI(File file) { return new URIImpl(file.toURI().toString()); } protected RDFContainer subCrawl(String resourceName, SubCrawler subCrawler, TestBasicSubCrawlerHandler handler) throws Exception { + System.out.println("Subcrawling: " + resourceName); + System.out.println("Subcrawler class: " + subCrawler.getClass().getName()); InputStream stream = org.semanticdesktop.aperture.util.ResourceUtil.getInputStream(DOCS_PATH + resourceName, this.getClass()); + System.out.println("Got a stream of class: " + stream.getClass().getName()); RDFContainer parentMetadata = new RDFContainerImpl(handler.getModel(),new URIImpl("uri:dummyuri/" + resourceName)); subCrawler.subCrawl(null, stream, handler, null, null, null, null, parentMetadata); return parentMetadata; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-13 18:18:15
|
Revision: 1846 http://aperture.svn.sourceforge.net/aperture/?rev=1846&view=rev Author: mylka Date: 2009-03-13 18:18:00 +0000 (Fri, 13 Mar 2009) Log Message: ----------- added the stubs of two modules for aperture examples Modified Paths: -------------- aperture/trunk/pom.xml Added Paths: ----------- aperture/trunk/example/ aperture/trunk/example/cli/ aperture/trunk/example/cli/pom.xml aperture/trunk/example/cli/src/ aperture/trunk/example/cli/src/main/ aperture/trunk/example/cli/src/main/java/ aperture/trunk/example/cli/src/main/java/org/ aperture/trunk/example/cli/src/main/java/org/semanticdesktop/ aperture/trunk/example/cli/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/example/cli/src/main/java/org/semanticdesktop/aperture/examples/ aperture/trunk/example/cli/target/ aperture/trunk/example/cli/target/aperture-example-cli-1.3.0-SNAPSHOT.jar aperture/trunk/example/cli/target/maven-archiver/ aperture/trunk/example/cli/target/maven-archiver/pom.properties aperture/trunk/example/pom.xml aperture/trunk/example/swing/ aperture/trunk/example/swing/pom.xml aperture/trunk/example/swing/src/ aperture/trunk/example/swing/src/main/ aperture/trunk/example/swing/src/main/java/ aperture/trunk/example/swing/src/main/java/org/ aperture/trunk/example/swing/src/main/java/org/semanticdesktop/ aperture/trunk/example/swing/src/main/java/org/semanticdesktop/aperture/ aperture/trunk/example/swing/src/main/java/org/semanticdesktop/aperture/examples/ aperture/trunk/example/swing/target/ aperture/trunk/example/swing/target/aperture-example-swing-1.3.0-SNAPSHOT.jar aperture/trunk/example/swing/target/maven-archiver/ aperture/trunk/example/swing/target/maven-archiver/pom.properties Added: aperture/trunk/example/cli/pom.xml =================================================================== --- aperture/trunk/example/cli/pom.xml (rev 0) +++ aperture/trunk/example/cli/pom.xml 2009-03-13 18:18:00 UTC (rev 1846) @@ -0,0 +1,25 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-example</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-example-cli</artifactId> + + <name>Aperture command-line examples</name> + <description>Command-line applications that use Aperture</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-runtime-default</artifactId> + </dependency> + </dependencies> +</project> Property changes on: aperture/trunk/example/cli/pom.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: aperture/trunk/example/cli/target/aperture-example-cli-1.3.0-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: aperture/trunk/example/cli/target/aperture-example-cli-1.3.0-SNAPSHOT.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/example/cli/target/maven-archiver/pom.properties =================================================================== --- aperture/trunk/example/cli/target/maven-archiver/pom.properties (rev 0) +++ aperture/trunk/example/cli/target/maven-archiver/pom.properties 2009-03-13 18:18:00 UTC (rev 1846) @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Mar 13 19:05:12 CET 2009 +version=1.3.0-SNAPSHOT +groupId=org.semanticdesktop.aperture +artifactId=aperture-example-cli Added: aperture/trunk/example/pom.xml =================================================================== --- aperture/trunk/example/pom.xml (rev 0) +++ aperture/trunk/example/pom.xml 2009-03-13 18:18:00 UTC (rev 1846) @@ -0,0 +1,24 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-example</artifactId> + <packaging>pom</packaging> + + <name>Aperture Example</name> + <description>Working code examples how to embed Aperture in applications</description> + + <modules> + <module>cli</module> + <module>swing</module> + </modules> +</project> Property changes on: aperture/trunk/example/pom.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: aperture/trunk/example/swing/pom.xml =================================================================== --- aperture/trunk/example/swing/pom.xml (rev 0) +++ aperture/trunk/example/swing/pom.xml 2009-03-13 18:18:00 UTC (rev 1846) @@ -0,0 +1,25 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-example</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-example-swing</artifactId> + + <name>Aperture Swing examples</name> + <description>Swing applications that use Aperture</description> + + <dependencies> + <dependency> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-runtime-default</artifactId> + </dependency> + </dependencies> +</project> Property changes on: aperture/trunk/example/swing/pom.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: aperture/trunk/example/swing/target/aperture-example-swing-1.3.0-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: aperture/trunk/example/swing/target/aperture-example-swing-1.3.0-SNAPSHOT.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/example/swing/target/maven-archiver/pom.properties =================================================================== --- aperture/trunk/example/swing/target/maven-archiver/pom.properties (rev 0) +++ aperture/trunk/example/swing/target/maven-archiver/pom.properties 2009-03-13 18:18:00 UTC (rev 1846) @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Mar 13 19:05:12 CET 2009 +version=1.3.0-SNAPSHOT +groupId=org.semanticdesktop.aperture +artifactId=aperture-example-swing Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-13 17:43:49 UTC (rev 1845) +++ aperture/trunk/pom.xml 2009-03-13 18:18:00 UTC (rev 1846) @@ -27,6 +27,7 @@ <modules> <module>core</module> <module>default</module> + <module>example</module> <module>runtime</module> <module>test</module> </modules> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <my...@us...> - 2009-03-07 01:12:43
|
Revision: 1786 http://aperture.svn.sourceforge.net/aperture/?rev=1786&view=rev Author: mylka Date: 2009-03-07 01:12:22 +0000 (Sat, 07 Mar 2009) Log Message: ----------- 2207870 - created the 'docs' module containing all documents used in the tests, this module doesn't depend on anything. I needed them to resolve dependency cycles that arose when trying to implement the proper testcore module, which is in turn necessary to start migrating the tests to maven Modified Paths: -------------- aperture/trunk/pom.xml aperture/trunk/test/core/pom.xml Added Paths: ----------- aperture/trunk/test/docs/pom.xml aperture/trunk/test/docs/src/ aperture/trunk/test/docs/src/main/ aperture/trunk/test/docs/src/main/resources/ aperture/trunk/test/docs/src/main/resources/org/ aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/ aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/ aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/ aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/bzip2-txt-bziptest.txt.bz2 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-presentations-3.0.shw aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-presentations-x3.shw aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-quattro-pro-6.wb2 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-quattro-pro-7.wb3 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-quattro-pro-x3.qpw aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-4.2.wp aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-5.0.wp aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-5.1-far-east.wp aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-5.1.wp aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-x3.wpd aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/counting-input-stream-test-file.dat aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/faulty-fileaccessdata-is-ignored.xml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/faulty-fileaccessdata-throws-exception.xml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/gzip-txt-gziptest.txt.gz aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/html-condenast.html aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/html-handwritten-with-wrong-file-extension.txt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/html-handwritten.html aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/html-mixed-case-header-and-wrong-extension.txt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/html-quelle.de.html aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/html-utf16-leading-whitespace-wrong-extension.doc aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/ aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/Todos1.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/basicCalendar.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/cal01-1.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/cal01-2.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/cal01-3.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/cal01-4.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/cal01-5.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/cal01-6.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/cal01-exrule.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/cal01.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/calconnect7.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/calconnect9.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/combined_multiplevcalendar.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/combined_onevcalendar.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/extendedCalendar.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/freebusy.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/geo1.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/gkexample.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/incoming.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/korganizer-jicaltest-vjournal.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/korganizer-jicaltest.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/php-flp.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/simplevevent.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/sunbird_sample.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/tag-bug.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/icaltestdata/test-created.ics aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/jingle1.mp3 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/jingle2.mp3 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/jingle3.mp3 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/jpg-exif-img_9367.JPG aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/jpg-exif-zerolength.jpg aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/jpg-geotagged-ipanema.jpg aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/jpg-geotagged.jpg aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-UnsupportedOperationException.eml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-forwarded-references.eml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-multipart-plain-html.eml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-multipart-test.eml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-multipart-test.eml.tar.gz aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-plaintext-attachment.eml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-threaded.eml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-thunderbird-1.5-unspecifiedcharset.eml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-thunderbird-1.5.eml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mail-xml-attachment.eml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mailtest/ aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mailtest/lists aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mailtest/lists_sbd/ aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mailtest/lists_sbd/pdfbox aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mailtest/lists_sbd/protege-users aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mailtest/lists_sbd/sourceforge aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mailtest/lists_sbd/www-rdf-calendar aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mailtest/tematyczne aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mailtest/testfolder aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mbox-aperture-dev aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mbox-aperture-inc1 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mbox-aperture-inc2 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mbox-aperture-inc3 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mbox-aperture-inc4 aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mbox-testfolder aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mhtml-firefox.mht aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/mhtml-internet-explorer.mht aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-excel-2000.xls aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-excel-2007beta2.xlam aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-excel-2007beta2.xlsb aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-excel-2007beta2.xlsm aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-excel-2007beta2.xlsx aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-excel-2007beta2.xltm aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-excel-2007beta2.xltx aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-powerpoint-2000.ppt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-powerpoint-2007beta2.potm aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-powerpoint-2007beta2.potx aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-powerpoint-2007beta2.ppsm aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-powerpoint-2007beta2.ppsx aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-powerpoint-2007beta2.pptm aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-powerpoint-2007beta2.pptx aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-powerpoint-invalidunicode.ppt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-publisher-2003.pub aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-visio.vsd aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-word-2000-with-wrong-file-extension.pdf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-word-2000.doc aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-word-2007beta2.docm aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-word-2007beta2.docx aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-word-2007beta2.dotm aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-word-2007beta2.dotx aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-word-illegal-unicode-characters.doc aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-word-testdoc-comments.doc aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-word-testdoc-nocomments.doc aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-works-spreadsheet-3.0.wks aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-works-spreadsheet-4.0-2000.wks aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-works-spreadsheet-7.0.xlr aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-works-word-processor-2000.wps aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-works-word-processor-3.0.wps aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-works-word-processor-4.0.wps aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/microsoft-works-word-processor-7.0.wps aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-1.1.5-calc-template.stc aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-1.1.5-calc.sxc aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-1.1.5-draw-template.std aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-1.1.5-draw.sxd aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-1.1.5-impress-template.sti aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-1.1.5-impress.sxi aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-1.1.5-writer-template.stw aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-1.1.5-writer.sxw aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-2.0-calc-template.ots aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-2.0-calc.ods aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-2.0-draw-template.otg aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-2.0-draw.odg aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-2.0-formula.odf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-2.0-impress-template.otp aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-2.0-impress.odp aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-2.0-writer-template.ott aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-2.0-writer.odt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/openoffice-sf2352674-2.4-writer-multi-space.odt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/pdf-distiller-6-weirdchars.pdf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/pdf-manyauthors.pdf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/pdf-no-author.pdf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/pdf-openoffice-1.1.5-writer.pdf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/pdf-openoffice-2.0-writer.pdf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/pdf-openoffice-2.0-writer.pdf.tar aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/pdf-word-2000-pdfcreator-0.8.0.pdf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/pdf-word-2000-pdfmaker-7.0.pdf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/pdf-word-2000-pdfwriter-7.0.pdf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/plain-text-ansi.txt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/plain-text-empty.txt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/plain-text-utf16be.txt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/plain-text-utf16le.txt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/plain-text-utf8.txt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/plain-text-with-null-character.txt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/plain-text-without-extension aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/plain-text.txt aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/rtf-openoffice-1.1.5.rtf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/rtf-openoffice-2.0.rtf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/rtf-staroffice-5.2.rtf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/rtf-word-2000.rtf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/staroffice-5.2-calc-template.vor aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/staroffice-5.2-calc.sdc aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/staroffice-5.2-draw-template.vor aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/staroffice-5.2-draw.sda aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/staroffice-5.2-impress-template.vor aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/staroffice-5.2-impress.sdd aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/staroffice-5.2-writer-template.vor aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/staroffice-5.2-writer.sdw aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/tar-test.tar aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/thunderbird-addressbook.mab aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/vcard-antoni-kontact.vcf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/vcard-antoni-outlook2003.vcf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/vcard-dirk.vcf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/vcard-rfc2426.vcf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/vcard-vCards-SAP.vcf aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/xml-handwritten.xml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/xml-nonexistent-dtd.xml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/xml-nonexistent-remote-dtd.xml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/xml-nonexistent-remote-xsd.xml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/xml-nonexistent-xsd.xml aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/xml-utf8-bom aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/zip-problem.zip aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/zip-test.zip aperture/trunk/test/pom.xml Property Changed: ---------------- aperture/trunk/ aperture/trunk/test/ aperture/trunk/test/docs/ Property changes on: aperture/trunk ___________________________________________________________________ Modified: svn:ignore - target .project + target .project .classpath .settings Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-07 00:18:23 UTC (rev 1785) +++ aperture/trunk/pom.xml 2009-03-07 01:12:22 UTC (rev 1786) @@ -28,7 +28,7 @@ <module>core</module> <module>default</module> <module>runtime</module> - <module>testbase</module> + <module>test</module> </modules> <properties> Property changes on: aperture/trunk/test ___________________________________________________________________ Added: svn:ignore + target Modified: aperture/trunk/test/core/pom.xml =================================================================== --- aperture/trunk/test/core/pom.xml 2009-03-07 00:18:23 UTC (rev 1785) +++ aperture/trunk/test/core/pom.xml 2009-03-07 01:12:22 UTC (rev 1786) @@ -7,13 +7,13 @@ <parent> <groupId>org.semanticdesktop.aperture</groupId> - <artifactId>aperture</artifactId> + <artifactId>aperture-test</artifactId> <version>1.3.0-SNAPSHOT</version> </parent> - <artifactId>aperture-testbase</artifactId> + <artifactId>aperture-testcore</artifactId> - <name>Aperture Test Base</name> + <name>Aperture Test Core</name> <description>Classes reused among tests</description> <dependencies> Property changes on: aperture/trunk/test/docs ___________________________________________________________________ Added: svn:ignore + target Added: aperture/trunk/test/docs/pom.xml =================================================================== --- aperture/trunk/test/docs/pom.xml (rev 0) +++ aperture/trunk/test/docs/pom.xml 2009-03-07 01:12:22 UTC (rev 1786) @@ -0,0 +1,18 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.semanticdesktop.aperture</groupId> + <artifactId>aperture-test</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>aperture-testdocs</artifactId> + + <name>Aperture Test Docs</name> + <description>A suite of test documents</description> +</project> Property changes on: aperture/trunk/test/docs/pom.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/bzip2-txt-bziptest.txt.bz2 =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/bzip2-txt-bziptest.txt.bz2 ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-presentations-3.0.shw =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-presentations-3.0.shw ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-presentations-x3.shw =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-presentations-x3.shw ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-quattro-pro-6.wb2 =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-quattro-pro-6.wb2 ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-quattro-pro-7.wb3 =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-quattro-pro-7.wb3 ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-quattro-pro-x3.qpw =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-quattro-pro-x3.qpw ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-4.2.wp =================================================================== --- aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-4.2.wp (rev 0) +++ aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-4.2.wp 2009-03-07 01:12:22 UTC (rev 1786) @@ -0,0 +1,3 @@ +\xCB + +˂This is an example document created with Corel WordPerfect X3. Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-5.0.wp =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-5.0.wp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-5.1-far-east.wp =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-5.1-far-east.wp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-5.1.wp =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-5.1.wp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-x3.wpd =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/corel-wordperfect-x3.wpd ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/counting-input-stream-test-file.dat =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/counting-input-stream-test-file.dat ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/faulty-fileaccessdata-is-ignored.xml =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/faulty-fileaccessdata-is-ignored.xml ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/faulty-fileaccessdata-throws-exception.xml =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/faulty-fileaccessdata-throws-exception.xml ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/gzip-txt-gziptest.txt.gz =================================================================== (Binary files differ) Property changes on: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/gzip-txt-gziptest.txt.gz ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/html-condenast.html =================================================================== --- aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/html-condenast.html (rev 0) +++ aperture/trunk/test/docs/src/main/resources/org/semanticdesktop/aperture/docs/html-condenast.html 2009-03-07 01:12:22 UTC (rev 1786) @@ -0,0 +1,2794 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<head> + <title>CondeNast - Welcome!</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content=""/> + <meta name="keyword" content="CondeNast, , LeftNav, Specials, AllMags, CategorizedMags, Better Together Bundles, EmployeeProducts, "/> + + <!-- useMooTools: true --> + + + <script src="/webapp/wcs/stores/CondeNast/lib/mootools.v1.11.js" type="text/javascript"></script> + <script src="/webapp/wcs/stores/CondeNast/lib/iCarousel.js" type="text/javascript"></script> + + + + <script type="text/javascript"> + // jQuery.noConflict(); // Only needed if we use mootools and jQuery together + djConfig = { isDebug: false, parseWidgets:false, searchIds:[]}; + var currentId = ''; + var currentImage = ''; + </script> + <script type="text/javascript" src="/webapp/wcs/stores/dojo041/dojo.js"></script> + <script type="text/javascript" src="/webapp/wcs/stores/CondeNast/AJAXUserInterface/javascript/Common.js"></script> + <script type="text/javascript" src="/webapp/wcs/stores/CondeNast/AJAXUserInterface/javascript/ServicesEventMapping.js"></script> + <script type="text/javascript" src="/webapp/wcs/stores/CondeNast/lib/cdsutils.js"></script> + + + + +<!-- Start- JSP File Name: ServicesDeclaration.jsp --> + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxAddOrderItem", + actionId: "AjaxAddOrderItem", + url: "AjaxOrderChangeServiceItemAdd", + formId: "" + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxDeleteOrderItem", + actionId: "AjaxDeleteOrderItem", + url: "AjaxOrderChangeServiceItemDelete", + formId: "" + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxUpdateOrderItem", + actionId: "AjaxUpdateOrderItem", + url: "AjaxOrderChangeServiceItemUpdate", + formId: "" + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxUpdateOrderShippingInfo", + actionId: "AjaxUpdateOrderShippingInfo", + url: "AjaxOrderChangeServiceShipInfoUpdate", + formId: "" + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxPrepareOrder", + actionId: "AjaxPrepareOrder", + url: "AjaxOrderProcessServiceOrderPrepare", + formId: "" + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxSubmitOrder", + actionId: "AjaxSubmitOrder", + url: "AjaxOrderProcessServiceOrderSubmit", + formId: "" + + ,successHandler: function(serviceResponse) { + document.location.href = "AjaxOrderConfirmationView?storeId=" + 10001 + "&catalogId=" + 10001 + "&langId=" + -1 + "&orderId=" + serviceResponse.orderId; + } + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxAddAddressForPerson", + actionId: "AjaxAddAddressForPerson", + url: "AjaxPersonChangeServiceAddressAdd", + formId: "" + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxUpdateAddressForPerson", + actionId: "AjaxUpdateAddressForPerson", + url: "AjaxPersonChangeServiceAddressUpdate", + formId: "" + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxReplaceOrderItem", + actionId: "AjaxReplaceOrderItem", + url: "AjaxReplaceOrderItemCmd", + formId: "" + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.service.*"); +wc.service.declare({ + id: "AjaxOrderItemResetAddress", + actionId: "AjaxOrderItemResetAddress", + url: "AjaxOrderItemResetAddressCmd", + formId: "" + + ,failureHandler: function(serviceResponse) { + if (serviceResponse.errorMessage) { + alertDialog(serviceResponse.errorMessage,10001,10001,-1); + } else { + if (serviceResponse.errorMessageKey) { + alertDialog(serviceResponse.errorMessageKey,10001,10001,-1); + } + } + cursor_clear(); + } + +}); +//[[>--> +</script> + + + +<!-- End - JSP File Name: ServicesDeclaration.jsp --> + + + +<script type="text/javascript"> +<!-- <![CDATA[ +dojo.require("wc.render.*"); +wc.render.declareRefreshController({ + id: "miniShopCartAreaController", + renderContext: wc.render.getContextById("currentPage_Context"), + url: "MiniCartView?storeId=10001&catalogId=10001&justAdded=1", + formId: "" + + ,modelChangedHandler: function(message, widget) { + var controller = this; + var renderContext = this.renderContext; + if (message.actionId in order_updated) { + var origURL = this.url; + if (message.orderItemId.length > 1) { + this.url = this.url + '&betterTogether=1'; + } + widget.refresh(); + if (document.getElementById(currentId)) { + document.getElementById(currentId).src = currentImage; + currentId = ''; + currentImage = ''; + } + this.url = origURL; + } + } + +}); +//[[>--> +</script> + + + <style type="text/css"> + <!-- + @import url("/webapp/wcs/stores/CondeNast/css/mainCat.css"); + --> + </style> + <link href="/webapp/wcs/stores/CondeNast/css/greybox.css" rel="stylesheet" type="text/css" media="all" /> +</head> +<body> +<div id="container"><!-- JSP File Name: TopCategoriesDisplay.jsp --> +<table width="960" align="center" border="0" cellspacing="0" cellpadding="0"> + <tr><!--header--> + <td colspan="3" align="left" valign="top"> + +<!-- BEGIN HeaderDisplay.jspf --> + + + + + + + + +<!-- Start - JSP File name: style1/CachedHeaderDisplay.jsp --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<!--START HEADER--> + + + + + + + + + + + + + + + + + + + +<IE:clientCaps ID="oClientCaps" STYLE="behavior:url('#default#clientCaps')"></IE:clientCaps> +<div id="header"> + </div> + <div id="subheader"> + <div id="subnavcontainer"> + <ul id="subnavlist"> + <li id="active"><a href="Home_Page" id="nav_home">Home</a></li> + <li id=""><a href="BrowseMagazines_Page" id="nav_browse">Browse Magazines</a></li> + <li id=""><a href="Categories_Page" id="nav_cat">Categories</a></li> + <li id=""><a href="GiveAGift_Page" id="nav_gift">Give a Gift</a></li> + + <li id=""><a href="SpecialOffers_Page" id="nav_so">Special Offers</a></li> + + <li id=""><a href="OrderCalculate?langId=-1&storeId=10001&catalogId=10001&URL=OrderItemDisplay%3fstoreId%3d10001%26catalogId%3d10001&activeLink=Cart" id="nav_cart">Shopping Cart</a></li> + <li id=""><a href="MyAccount_Page" id="nav_custserv">Customer Service</a></li> + </ul> + </div> + </div> +<!--END HEADER--> +<!-- End - JSP File name: style1/CachedHeaderDisplay.jsp --> + +<!-- END HeaderDisplay.jspf --> +</td> + </tr> + <tr> + <td width="146" rowspan="3" align="left" valign="top" > + + +<!-- BEGIN SidebarDisplay.jspf --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<div id="leftNav"><!--<h1>Browse Magazines</h1>--> +<ul id="logo_nav"> + <li> + <img src="/webapp/wcs/stores/content/CondeNast/images/leftnavmap.png" border="0" usemap="#mags" /> + </li> +</ul> + + + +<map name="mags"> + + + + + + + + + + + + + + + + <area alt="Vogue" shape="rect" coords="7,5,144,25" href="Subscriptions_Vogue"> + + + + + + + + + + + + + + + + <area alt="W" shape="rect" coords="7,25,144,48" href="Subscriptions_W"> + + + + + + + + + + + + + + + + <area alt="Glamour" shape="rect" coords="7,48,144,68" href="Subscriptions_Glamour"> + + + + + + + + + + + + + + + + <area alt="Allure" shape="rect" coords="7,68,144,88" href="Subscriptions_allure"> + + + + + + + + + + + + + + + + <area alt="Self" shape="rect" coords="7,88,144,112" href="Subscriptions_Self"> + + + + + + + + + + + + + + + + <area alt="Teen Vogue" shape="rect" coords="7,112,144,131" href="Subscriptions_TeenVogue"> + + + + + + + + + + + + + + + + <area alt="GQ" shape="rect" coords="7,131,144,153" href="Subscriptions_GQ"> + + + + + + + + + + + + + + + + <area alt="Details" shape="rect" coords="7,153,144,173" href="Subscriptions_Details"> + + + + + + + + + + + + + + + + <area alt="Men's Vogue" shape="rect" coords="7,173,144,193" href="Subscriptions_MensVogue"> + + + + + + + + + + + + + + + + <area alt="Architectural Digest" shape="rect" coords="7,193,144,210" href="Subscriptions_ArchitecturalDigest"> + + + + + + + + + + + + + + + + <area alt="Brides" shape="rect" coords="7,210,144,230" href="Subscriptions_Brides"> + + + + + + + + + + + + + + + + <area alt="Modern Bride" shape="rect" coords="7,230,144,250" href="Subscriptions_ModernBride"> + + + + + + + + + + + + + + + + <area alt="Elegant Bride" shape="rect" coords="7,250,144,275" href="Subscriptions_ElegantBride"> + + + + + + + + + + + + + + + + <area alt="Lucky" shape="rect" coords="7,275,144,295" href="Subscriptions_Lucky"> + + + + + + + + + + + + + + + + <area alt="Domino" shape="rect" coords="7,295,144,315" href="Subscriptions_Domino"> + + + + + + + + + + + + + + + + <area alt="Golf Digest" shape="rect" coords="7,315,144,337" href="Subscriptions_GolfDigest"> + + + + + + + + + + + + + + + + <area alt="Golf World" shape="rect" coords="7,337,144,359" href="Subscriptions_GolfWorld"> + + + + + + + + + + + + + + + + <area alt="Golf For Women" shape="rect" coords="7,359,144,379" href="Subscriptions_GolfForWomen"> + + + + + + + + + + + + + + + + <area alt="Vanity Fair" shape="rect" coords="7,379,144,397" href="Subscriptions_VanityFair"> + + + + + + + + + + + + + + + + <area alt="Gourmet" shape="rect" coords="7,397,144,420" href="Subscriptions_Gourmet"> + + + + + + + + + + + + + + + + <area alt="Bon Appétit" shape="rect" coords="7,428,144,446" href="Subscriptions_BonAppetite"> + + + + + + + + + + + + + + + + <area alt="Condé Nast Traveler" shape="rect" coords="7,446,144,469" href="Subscriptions_CondeNastTraveler"> + + + + + + + + + + + + + + + + <area alt="Wired" shape="rect" coords="7,469,144,486" href="Subscriptions_Wired"> + + + + + + + + + + + + + + + + <area alt="Cookie" shape="rect" coords="7,486,144,506" href="Subscriptions_Cookie"> + + + + + + + + + + + + + + + + <area alt="Condé Nast Portfolio" shape="rect" coords="7,506,144,529" href="Subscriptions_CondeNastPortfolio"> + + + + + + + + + + + + + + + + <area alt="The New Yorker" shape="rect" coords="7,529,144,546" href="Subscriptions_NewYorker"> + +</map> + + + +</div> + +<!-- END SidebarDisplay.jspf --> +</td> + <td colspan="2" align="left" valign="top" ></td> + </tr> + <tr><!--left nav & subheader--> + <!--content and right nav--> + <td align="left" valign="top" > +<!--MAIN CONTENT STARTS HERE--><div id="content" style="padding-top:5px;"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<!-- Start of the JSP: CachedTopCategoriesDisplay.jsp --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <span style=" "> + + + + + + + + <img src="/webapp/wcs/stores/content/CondeNast/images/banner.gif" /> +<!--<h2 style="margin:3px 0; color:#000;padding-left:10px;">Welcome to the<span style="color:#369;"> Condé Nast Online Magazine Store</span></h2><h3 style="margin:3px 0 15px 0; color:#000;padding-left:10px;">Buy Direct - Best Deals, Free Gifts, Free Shipping</h3> --> +<p ><br />Home to many of the world's most celebrated magazines, Condé Nast Publications is committed to journalistic integrity, influential reporting and superior design.</p> +<p> Now you can buy magazines online <strong></strong>direct</strong> from Condé +Nast at the lowest authorized prices available! Your satisfaction is also <strong>100% Guaranteed:</strong> you can receive a full refund for all undelivered issues, at any time, for any reason. <br /></p><br /> + + + + + + </span> + + + + + + + + + + <div id="showcase"> + <div id="DEF_showcase"> + + + + + + + + + + + <ul id="specialoffer"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li> + <div class="so_bg"> + + + <h1>GQ</h1> + + <a href="ProductDisplay?catalogId=10001&storeId=10001&productId=10514&langId=-1"><img width="100" border="0" alt="GQ" src="/webapp/wcs/stores/content/CondeNast/images/cover_gq_100.jpg" style="margin:5px 15px 5px 15px;border:1px solid #000;"/></a> + <!-- bundle img class="soImgBottom" --> + + + + + + + + + + + + <div class="so_desc"> + <br/> + <span class="termValue">12 issues / 1 year</span><br/> + <span class="cvrPrice">Cover Price: <span class="strike">$47.88</span></span><br/> + <span class="ourPrice">Our Price: $12.00</span><br/> + + + + + + <span class="youSave">You Save: 74%</span><br/> + </div> + + <form name="OrderItemAddForm_1" ACTION="OrderItemAdd" METHOD="POST" id="OrderItemAddForm_1" onsubmit="return Add2ShopCartAjax('OrderItemAddForm_1', 'addtocart_11527', '/webapp/wcs/stores/content/CondeNast/images/so_add_to_cart.gif', '/webapp/wcs/stores/content/CondeNast/images/loader_so_add_to_cart.gif', '/webapp/wcs/stores/content/CondeNast/images/so_added.gif')"> + <input type="hidden" name="storeId" value="10001"> + <input type="hidden" name="langId" value="-1"> + <input type="hidden" name="catalogId" value="10001"> + <input type="hidden" name="URL" value="OrderCalculate?URL=OrderItemResetAddressCmd?URL=TopCategoriesDisplay?catalogId=10001&storeId=10001&activeLink=Home&langId=-1&justAdded=1"> + <input type="hidden" name="quantity" value="1"> + <input type="hidden" name="catEntryId" value="11527"> + <input type="hidden" name="comment" value="GQ"> + <input type="image" name="addtocart" id="addtocart_11527" src="/webapp/wcs/stores/content/CondeNast/images/so_add_to_cart.gif" alt="Add to Cart" /> + </form> + + + + + </div> + </li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li> + <div class="so_bg"> + + + <h1>The New Yorker</h1> + + <a href="ProductDisplay?catalogId=10001&storeId=10001&productId=10519&langId=-1"><img width="100" border="0" alt="The New Yorker" src="/webapp/wcs/stores/content/CondeNast/images/cover_newyorker_100.jpg" style="margin:5px 15px 5px 15px;border:1px solid #000;"/></a> + <!-- bundle img class="soImgBottom" --> + + + + + + + + + + + + <div class="so_desc"> + <br/> + <span class="termValue">47 issues / 1 year</span><br/> + <span class="cvrPrice">Cover Price: <span class="strike">$196.18</span></span><br/> + <span class="ourPrice">Our Price: $39.95</span><br/> + + + + + + <span class="youSave">You Save: 79%</span><br/> + </div> + + <form name="OrderItemAddForm_2" ACTION="OrderItemAdd" METHOD="POST" id="OrderItemAddForm_2" onsubmit="return Add2ShopCartAjax('OrderItemAddForm_2', 'addtocart_11537', '/webapp/wcs/stores/content/CondeNast/images/so_add_to_cart.gif', '/webapp/wcs/stores/content/CondeNast/images/loader_so_add_to_cart.gif', '/webapp/wcs/stores/content/CondeNast/images/so_added.gif')"> + <input type="hidden" name="storeId" value="10001"> + <input type="hidden" name="langId" value="-1"> + <input type="hidden" name="catalogId" value="10001"> + <input type="hidden" name="URL" value="OrderCalculate?URL=OrderItemResetAddressCmd?URL=TopCategoriesDisplay?catalogId=10001&storeId=10001&activeLink=Home&langId=-1&justAdded=1"> + <input type="hidden" name="quantity" value="1"> + <input type="hidden" name="catEntryId" value="11537"> + <input type="hidden" name="comment" value="The New Yorker"> + <input type="image" name="addtocart" id="addtocart_11537" src="/webapp/wcs/stores/content/CondeNast/images/so_add_to_cart.gif" alt="Add to Cart" /> + </form> + + + + + </div> + </li> + + + + </ul> + </div> + </div> + + + + +<!-- BEGIN CarouselDisplay.jspf --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<style type="text/css"> +.carousel-component { + padding-left: 1px; + width: 615px; + overflow: hidden; +} +.carousel-component .carousel-list li { + margin:0px; + /*width:58px;*/ + /* margin-left: auto;*/ /* for testing IE auto issue */ +} + +.carousel-component .carousel-list li a { + display:block; + /*border:1px solid #e2edfa;*/ + outline:none; + -moz-outline:none; +} + +.carousel-component .carousel-list li a:hover { + /*border: 1px solid #87bf4e; */ +} + +.carousel-component .carousel-list li img { + /*border:1px solid #999;*/ + display:block; +} + +.carousel-component .carousel-list li strong { + display:block; +} +.carousel-clip-region { + /*background: #AFC5DA none repeat;*/ + padding-left:51px; +} +</style> + +<script type="text/javascript" src="/webapp/wcs/stores/CondeNast/lib/yahoo-dom-event.js"></script> +<script type="text/javascript" src="/webapp/wcs/stores/CondeNast/lib/utilities.js"></script> +<script type="text/javascript" src="/webapp/wcs/stores/CondeNast/lib/dragdrop-min.js"></script> +<script type="text/javascript" src="/webapp/wcs/stores/CondeNast/lib/container_core-min.js"></script> +<script type="text/javascript" src="/webapp/wcs/stores/CondeNast/lib/ycarousel_min.js"></script> +<script language="javascript"> + function ProductUrl() { + this.id = 0; + this.partNumber; + this.altText; + this.src; + this.url; + this.hasBeenLoaded = false; + } +var hash = new Hash(); +var carItems = new Hash(); +var imageList = []; +var urlList = []; + +/** + * Since carousel.addItem uses an HTML string to create the interface + * for each carousel item, this method formats the HTML for an LI. + **/ +var fmtItem = function(imgUrl, url, title, id) { + + var innerHTML = + '<a href="' + + url + + '"><img src="' + + imgUrl + + '" title="' + + title + + '" width="' + + 58 + + '" height="' + + 80+ + '" id="' + + id+ + '"/>' + + '<\/a>'; + + return innerHTML; + +}; +/** + * Custom inital load handler. Called when the carousel loads the initial + * set of data items. Specified to the carousel as the configuration + * parameter: loadInitHandler + **/ +var loadInitialItems = function(type, args) { + var start = args[0]; + var last = args[1]; + load(this, 1, 27+10); + //this.moveTo(27); +}; +/** + * Custom load next handler. Called when the carousel loads the next + * set of data items. Specified to the carousel as the configuration + * parameter: loadNextHandler + **/ +var loadNextItems = function(type, args) { + var start = args[0]; + var last = args[1]; + var alreadyCached = args[2]; + + if(!alreadyCached) { + load(this, start, last); + initCovers(); + } +}; + +/** + * Custom load previous handler. Called when the carousel loads the previous + * set of data items. Specified to the carousel as the configuration + * parameter: loadPrevHandler + **/ +var loadPrevItems = function(type, args) { + var start = args[0]; + var last = args[1]; + var alreadyCached = args[2]; + if (last == 6) { + var pu = carItems.get(26); + carousel.addItem(1, fmtItem(pu.src, pu.url, pu.altText, i)); + var pu = carItems.get(25); + carousel.addItem(1, fmtItem(pu.src, pu.url, pu.altText, i)); + var pu = carItems.get(24); + carousel.addItem(1, fmtItem(pu.src, pu.url, pu.altText, i)); + var pu = carItems.get(23); + carousel.addItem(1, fmtItem(pu.src, pu.url, pu.altText, i)); + } else { + if(!alreadyCached) { + load(this, start, last); + } + } +}; + +var load = function(carousel, start, last) { + for(var i=start;i<=last;i++) { + var itemIndex = i; + while (itemIndex > 26) { + itemIndex -= 26; + } + var pu = carItems.get(itemIndex); + carousel.addItem(i, fmtItem(pu.src, pu.url, pu.altText, i)); + } +}; + +var getRandom = function(max, last) { + var randomIndex; + do { + randomIndex = Math.floor(Math.random()*max); + } while(randomIndex == last); + + return randomIndex; +}; + +/** + * Custom button state handler for enabling/disabling button state. + * Called when the carousel has determined that the previous button + * state should be changed. + * Specified to the carousel as the configuration + * parameter: prevButtonStateHandler + **/ +var handlePrevButtonState = function(type, args) { + + var enabling = args[0]; + var leftImage = args[1]; +/* if(enabling) { + leftImage.src = "images/left-enabled.gif"; + } else { + leftImage.src = "images/left-disabled.gif"; + } +*/ +}; + +/** + * You must create the carousel after the page is loaded since it is + * dependent on an HTML element (in this case 'dhtml-carousel'.) See the + * HTML code below. + **/ + +var carousel; // for ease of debugging; globals generally not a good idea +var pageLoad = function() +{ + carousel = new YAHOO.extension.Carousel("car_container", + { + ... [truncated message content] |
From: <her...@us...> - 2009-03-25 17:37:31
|
Revision: 1876 http://aperture.svn.sourceforge.net/aperture/?rev=1876&view=rev Author: herko_ter_horst Date: 2009-03-25 17:37:28 +0000 (Wed, 25 Mar 2009) Log Message: ----------- Updated to changes in tools. Modified Paths: -------------- aperture/trunk/core/addressbook/apple/pom.xml aperture/trunk/example/cli/pom.xml aperture/trunk/pom.xml aperture/trunk/test/core/pom.xml Modified: aperture/trunk/core/addressbook/apple/pom.xml =================================================================== --- aperture/trunk/core/addressbook/apple/pom.xml 2009-03-25 17:12:29 UTC (rev 1875) +++ aperture/trunk/core/addressbook/apple/pom.xml 2009-03-25 17:37:28 UTC (rev 1876) @@ -50,6 +50,12 @@ <groupId>org.semanticdesktop.aperture</groupId> <artifactId>aperture-vocabulary-core</artifactId> </dependency> + + <dependency> + <groupId>org.semanticdesktop.nepomuk</groupId> + <artifactId>aperture-tools-applewrapper</artifactId> + <scope>runtime</scope> + </dependency> <dependency> <groupId>org.semweb4j</groupId> Modified: aperture/trunk/example/cli/pom.xml =================================================================== --- aperture/trunk/example/cli/pom.xml 2009-03-25 17:12:29 UTC (rev 1875) +++ aperture/trunk/example/cli/pom.xml 2009-03-25 17:37:28 UTC (rev 1876) @@ -23,7 +23,7 @@ </dependency> <dependency> <groupId>org.semanticdesktop.nepomuk</groupId> - <artifactId>aperture-tools-nrlvalidator</artifactId> + <artifactId>aperture-tools-rdf-nrlvalidator</artifactId> </dependency> </dependencies> </project> Modified: aperture/trunk/pom.xml =================================================================== --- aperture/trunk/pom.xml 2009-03-25 17:12:29 UTC (rev 1875) +++ aperture/trunk/pom.xml 2009-03-25 17:37:28 UTC (rev 1876) @@ -34,7 +34,7 @@ <properties> <aperture.version>1.3.0-SNAPSHOT</aperture.version> - <aperture.tools.version>1.0.0-SNAPSHOT</aperture.tools.version> + <aperture.tools.rdf.version>1.0.0-SNAPSHOT</aperture.tools.rdf.version> <rdf2go.version>4.7.0</rdf2go.version> <openrdf.sesame.version>2.3.0-SNAPSHOT</openrdf.sesame.version> <slf4j.version>1.5.6</slf4j.version> @@ -210,27 +210,27 @@ <dependency> <groupId>org.semanticdesktop.nepomuk</groupId> <artifactId>aperture-tools-applewrapper</artifactId> - <version>${aperture.tools.version}</version> + <version>1.0.0</version> </dependency> <dependency> <groupId>org.semanticdesktop.nepomuk</groupId> <artifactId>aperture-tools-demork</artifactId> - <version>${aperture.tools.version}</version> + <version>1.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.semanticdesktop.nepomuk</groupId> - <artifactId>aperture-tools-infsail</artifactId> - <version>${aperture.tools.version}</version> + <artifactId>aperture-tools-rdf-infsail</artifactId> + <version>${aperture.tools.rdf.version}</version> </dependency> <dependency> <groupId>org.semanticdesktop.nepomuk</groupId> - <artifactId>aperture-tools-nrlvalidator</artifactId> - <version>${aperture.tools.version}</version> + <artifactId>aperture-tools-rdf-nrlvalidator</artifactId> + <version>${aperture.tools.rdf.version}</version> </dependency> <dependency> <groupId>org.semanticdesktop.nepomuk</groupId> - <artifactId>aperture-tools-unionsail</artifactId> - <version>${aperture.tools.version}</version> + <artifactId>aperture-tools-rdf-unionsail</artifactId> + <version>${aperture.tools.rdf.version}</version> </dependency> <!-- OpenRDF Sesame --> Modified: aperture/trunk/test/core/pom.xml =================================================================== --- aperture/trunk/test/core/pom.xml 2009-03-25 17:12:29 UTC (rev 1875) +++ aperture/trunk/test/core/pom.xml 2009-03-25 17:37:28 UTC (rev 1876) @@ -72,7 +72,7 @@ <dependency> <groupId>org.semanticdesktop.nepomuk</groupId> - <artifactId>aperture-tools-nrlvalidator</artifactId> + <artifactId>aperture-tools-rdf-nrlvalidator</artifactId> </dependency> <dependency> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |