You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:20:40 UTC

[sling-org-apache-sling-commons-contentdetection] annotated tag org.apache.sling.commons.contentdetection-1.0.2 created (now 1fc1188)

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a change to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git.


      at 1fc1188  (tag)
 tagging 393385c8db7e5c5cd0ced25de28ce46b92a18bb7 (commit)
      by Bertrand Delacretaz
      on Mon Jul 6 11:58:30 2015 +0000

- Log -----------------------------------------------------------------
org.apache.sling.commons.contentdetection-1.0.2
-----------------------------------------------------------------------

This annotated tag includes the following new commits:

     new b35c36c  SLING-4694 - new contentdetection module, contributed by Satya Deep Maheshwari, thanks!
     new 70081de  SLING-4694 - remove files which are not needed
     new dfb7107  SLING-4694 - pom cleanup
     new cc7c907  SLING-4757 - new tests for commons.contentdetection, contributed by Petr Shypila, thanks!
     new dceeb79  SLING-4757 - remove duplicate test
     new f1577bc  SLING-4757 - test invalid encoding
     new 3924f47  SLING-4757 - new integration tests for commons.contentdetection, contributed by Petr Shypila, thanks!
     new 900de69  SLING-4757 - factor out Pax config
     new c1a005b  SLING-4757 - make sure we have the right service in integration tests
     new 3adb9f4  SLING-4757 - remove relativePath as we did elsewhere
     new 2e2d411  SLING-4757 - remove metatype.properties
     new bfb42cf  SLING-4757 - remove Easymock, caused trouble with jacoco plugin coverage merging
     new 1b77ab7  clean plugin config
     new d3f5c40  SLING-4757 - additional test contributed by Satya Deep Maheshwari, thanks!
     new 92146d1  SLING-4757 - Ignore new test, causes OutOfMemoryError on my box
     new 8ca7a8b  SLING-4757 - fix pax exam memory setup and add test for non-markable stream
     new 2f62e47  SLING-4757 - throw IllegalArgumentException if InputStream does not support mark/reset
     new 95159fa  SLING-4757 - be more explicit about IllegalArgumentException
     new e4711da  Update to Sling Parent 23
     new fba2977  Remove superflous sling.java.version=6 as it's the default now
     new 04fdb97  SLING-4835 - fix maven-failsafe-plugin argLine for jacoco
     new 80dda02  cannot be null here, remove dead code
     new 348a105  SLING-4694 - use commons.mime release, no need for a snapshot
     new 6e1eedd  SLING-4694 - use the newest (just released) Sling parent pom
     new cd99f50  [maven-release-plugin] prepare release org.apache.sling.commons.contentdetection-1.0.0
     new 0a5c429  SLING-4694 - add missing scm info
     new 45541c2  SLING-4694 - add missing scm info
     new 85b6fec  SLING-4694 - we'll release as 1.0.2
     new a456f86  [maven-release-plugin] prepare release org.apache.sling.commons.contentdetection-1.0.2
     new 393385c  [maven-release-plugin] copy for tag org.apache.sling.commons.contentdetection-1.0.2

The 30 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


-- 
To stop receiving notification emails like this one, please contact
['"commits@sling.apache.org" <co...@sling.apache.org>'].

[sling-org-apache-sling-commons-contentdetection] 27/30: SLING-4694 - add missing scm info

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 45541c2eb67bcead115b8b581f648e1542097854
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jul 6 11:55:08 2015 +0000

    SLING-4694 - add missing scm info
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1689378 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/pom.xml b/pom.xml
index 8c72ffb..5160678 100644
--- a/pom.xml
+++ b/pom.xml
@@ -205,11 +205,4 @@
             </plugin>
         </plugins>
     </build>
-
-
-  <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.contentdetection-1.0.0</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.contentdetection-1.0.0</developerConnection>
-    <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.commons.contentdetection-1.0.0</url>
-  </scm>
 </project>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 29/30: [maven-release-plugin] prepare release org.apache.sling.commons.contentdetection-1.0.2

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit a456f862fac5c7618c8ca89cbf7cf26c75534f0f
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jul 6 11:58:15 2015 +0000

    [maven-release-plugin] prepare release org.apache.sling.commons.contentdetection-1.0.2
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1689380 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 46c54fa..8081274 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
     </parent>
 
     <artifactId>org.apache.sling.commons.contentdetection</artifactId>
-    <version>1.0.1-SNAPSHOT</version>
+    <version>1.0.2</version>
     <packaging>bundle</packaging>
 
     <name>Apache Sling Content Detection Support</name>
@@ -48,9 +48,9 @@
     </properties>
     
     <scm>
-        <connection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection</developerConnection>
-        <url>http://sling.apache.org/documentation/bundles/mime-type-support-commons-mime.html</url>
+        <connection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.contentdetection-1.0.2</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.contentdetection-1.0.2</developerConnection>
+        <url>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.contentdetection-1.0.2</url>
     </scm>
 
     <dependencies>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 06/30: SLING-4757 - test invalid encoding

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit f1577bc43fa739551fbfc8164f72ccbc7e77eeb4
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jun 1 09:40:58 2015 +0000

    SLING-4757 - test invalid encoding
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682850 13f79535-47bb-0310-9956-ffa450edef68
---
 .../internal/FileNameExtractorImpl.java            | 15 ++++++++----
 .../internal/FileNameExtractorImplTest.java        | 27 +++++++++++++++++++++-
 2 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java b/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java
index 289f777..f4c3eda 100644
--- a/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java
+++ b/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java
@@ -16,15 +16,15 @@
  */
 package org.apache.sling.commons.contentdetection.internal;
 
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.contentdetection.FileNameExtractor;
 import org.osgi.framework.Constants;
 
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-
 @Component(metatype = true, label = "%filenameextractor.service.name", description = "%filenameextractor.service.description")
 @Service(FileNameExtractor.class)
 @Property(name = Constants.SERVICE_DESCRIPTION, value = "Apache Sling Filename Extractor Service")
@@ -53,10 +53,11 @@ public class FileNameExtractorImpl implements FileNameExtractor {
         // Decode any potential URL encoding
         int percent = name.indexOf('%');
         if (percent != -1) {
+            final String encoding = getDefaultEncoding();
             try {
-                name = URLDecoder.decode(name, "UTF-8");
+                name = URLDecoder.decode(name, encoding);
             } catch (UnsupportedEncodingException e) {
-                throw new AssertionError("UTF-8 not supported");
+                throw new RuntimeException(encoding + " not supported??", e);
             }
         }
 
@@ -64,4 +65,8 @@ public class FileNameExtractorImpl implements FileNameExtractor {
         name = name.trim();
         return name;
     }
+    
+    protected String getDefaultEncoding() {
+        return "UTF-8";
+    }
 }
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
index f280dc7..695d7af 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
@@ -23,7 +23,13 @@ import org.junit.Test;
 
 public class FileNameExtractorImplTest {
 
-    FileNameExtractor fileNameExtractor = new FileNameExtractorImpl();
+    private String defaultEncoding = new FileNameExtractorImpl().getDefaultEncoding();
+    
+    FileNameExtractor fileNameExtractor = new FileNameExtractorImpl() {
+        protected String getDefaultEncoding() {
+            return defaultEncoding;
+        }
+    };
 
     @Test
     public void testExtract() throws Exception {
@@ -45,4 +51,23 @@ public class FileNameExtractorImplTest {
         String expectedFileName = "demo test.jpg";
         Assert.assertEquals(expectedFileName, fileNameExtractor.extract(rawPath));
     }
+    
+    @Test
+    public void testInvalidEncoding() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+        final String rawPath = "http://example.com/demo%20test.jpg?test=true";
+        final String oldEncoding = defaultEncoding;
+        final String badEncoding = "INVALID_ENCODING";
+        try {
+            defaultEncoding = badEncoding;
+            try {
+                fileNameExtractor.extract(rawPath);
+                Assert.fail("Expected an exception with encoding " + defaultEncoding);
+            } catch(RuntimeException re) {
+                final String msg = re.getMessage();
+                Assert.assertTrue("Expected exception message to contain " + badEncoding + " (" + msg + ")", msg.contains(badEncoding));
+            }
+        } finally {
+            defaultEncoding = oldEncoding;
+        }
+    }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 17/30: SLING-4757 - throw IllegalArgumentException if InputStream does not support mark/reset

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 2f62e4793f7f3a69dfd4617da948b36d1f4acf1a
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Jun 18 11:52:23 2015 +0000

    SLING-4757 - throw IllegalArgumentException if InputStream does not support mark/reset
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1686195 13f79535-47bb-0310-9956-ffa450edef68
---
 .../internal/ContentAwareMimeTypeServiceImpl.java  |  3 +
 .../it/ContentAwareMimeTypeServiceImplIT.java      | 72 +++++++++-------------
 2 files changed, 31 insertions(+), 44 deletions(-)

diff --git a/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
index 32e29e7..29e8508 100644
--- a/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
+++ b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
@@ -50,6 +50,9 @@ public class ContentAwareMimeTypeServiceImpl implements  ContentAwareMimeTypeSer
         if(content == null) {
             return mimeTypeService.getMimeType(filename);
         }
+        if(content != null && !content.markSupported()) {
+            throw new IllegalArgumentException("Supplied InputStream does not support mark/reset");
+        }
         TikaInputStream stream = TikaInputStream.get(content);
         Metadata metadata = new Metadata();
         metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
index f488e9d..64269f5 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
@@ -20,9 +20,9 @@ package org.apache.sling.commons.contentdetection.internal.it;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
 
 import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
@@ -60,58 +60,42 @@ public class ContentAwareMimeTypeServiceImplIT {
         }
     };
     
-    abstract class AssertDetect {
-        void assertDetection(String expectedType, boolean expectSameContent) throws IOException {
-            final String filename = "this-is-actually-a-wav-file.mp3";
-            final String path = "/" + filename;
-            final InputStream s = wrapStream(getClass().getResourceAsStream(path));
-            assertNotNull("Expecting stream to be found:" + filename, s);
-            InputStream originalStream = null;
-            try {
-                assertEquals(expectedType, contentAwaremimeTypeService.getMimeType(filename, s));
-                originalStream = getClass().getResourceAsStream(path);
-                assertNotNull("Expecting stream to be found:" + filename, originalStream);
-                if(expectSameContent) {
-                    assertTrue("Expecting content to be unchanged", IOUtils.contentEquals(s, originalStream));
-                } else {
-                    assertFalse("Expecting content to have changed", IOUtils.contentEquals(s, originalStream));
-                }
-            } finally {
-                IOUtils.closeQuietly(s);
-                IOUtils.closeQuietly(originalStream);
-            }
-        }
-        
-        abstract InputStream wrapStream(InputStream toWrap);
-    }
-
     @Test
-    public void detectFromExtension(){
+    public void detectFromExtension() throws IOException {
         String mimeTypeName = "test.mp3";
         String mimeType = "audio/mpeg";
-        assertEquals(mimeType, contentAwaremimeTypeService.getMimeType(mimeTypeName));
+        assertEquals("Expecting mp3 type without InputStream parameter",
+                mimeType, contentAwaremimeTypeService.getMimeType(mimeTypeName));
+        assertEquals("Expecting mp3 type with null InputStream parameter",
+                mimeType, contentAwaremimeTypeService.getMimeType(mimeTypeName, null));
     }
 
     @Test
     public void detectFromContent() throws IOException{
-        new AssertDetect() {
-            @Override
-            InputStream wrapStream(InputStream toWrap) {
-                return new BufferedInputStream(toWrap);
-            }
-        }.assertDetection("audio/x-wav", true);
+        final String filename = "this-is-actually-a-wav-file.mp3";
+        final String path = "/" + filename;
+        final InputStream s = new BufferedInputStream(getClass().getResourceAsStream(path));
+        assertNotNull("Expecting stream to be found:" + filename, s);
+        InputStream originalStream = null;
+        try {
+            assertEquals("audio/x-wav", contentAwaremimeTypeService.getMimeType(filename, s));
+            originalStream = getClass().getResourceAsStream(path);
+            assertNotNull("Expecting stream to be found:" + filename, originalStream);
+            assertTrue("Expecting content to be unchanged", IOUtils.contentEquals(s, originalStream));
+        } finally {
+            IOUtils.closeQuietly(s);
+            IOUtils.closeQuietly(originalStream);
+        }
     }
     
-    @Test
-    public void detectFromContentWithNonMarkableStream() throws IOException{
-        // Interestingly, with a non-markable stream  the detector falls back to
-        // filename detection but still touches the content stream
-        new AssertDetect() {
-            @Override
-            InputStream wrapStream(InputStream toWrap) {
-                return new NonMarkableStream(toWrap);
-            }
-        }.assertDetection("audio/mpeg", false);
+    @Test(expected=IllegalArgumentException.class)
+    public void nonMarkableStreamDetectionShouldFail() throws IOException{
+        final InputStream nms = new NonMarkableStream(new ByteArrayInputStream("1234567890".getBytes()));
+        try {
+            contentAwaremimeTypeService.getMimeType("foo.txt", nms);
+        } finally {
+            IOUtils.closeQuietly(nms);
+        }
     }
     
     @org.ops4j.pax.exam.Configuration

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 15/30: SLING-4757 - Ignore new test, causes OutOfMemoryError on my box

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 92146d1b4dd4d63c7a3c7deb2c1a2a737faa863b
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Jun 18 10:10:40 2015 +0000

    SLING-4757 - Ignore new test, causes OutOfMemoryError on my box
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1686172 13f79535-47bb-0310-9956-ffa450edef68
---
 .../internal/it/ContentAwareMimeTypeServiceImplIT.java         |  2 ++
 .../apache/sling/commons/contentdetection/internal/it/U.java   | 10 ++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
index 10f04cb..62d8450 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
@@ -29,6 +29,7 @@ import javax.inject.Inject;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.sling.commons.contentdetection.ContentAwareMimeTypeService;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Option;
@@ -62,6 +63,7 @@ public class ContentAwareMimeTypeServiceImplIT {
     }
 
     @Test
+    @Ignore("OutOfMemoryError: PermGen space??")
     public void testNoContentTampering() throws IOException{
         final String filename = "this-is-actually-a-wav-file.mp3";
         final InputStream s = new BufferedInputStream(getClass().getResourceAsStream("/" + filename));
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
index a555177..901a3eb 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
@@ -18,21 +18,27 @@
 package org.apache.sling.commons.contentdetection.internal.it;
 
 import java.io.File;
+import java.util.Arrays;
 
 import org.apache.sling.paxexam.util.SlingPaxOptions;
 import org.ops4j.pax.exam.CoreOptions;
 import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.options.DefaultCompositeOption;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class U {
+    private static final Logger log = LoggerFactory.getLogger(U.class);
+    
     public static Option[] paxConfig() {
         final File thisProjectsBundle = new File(System.getProperty( "bundle.file.name", "BUNDLE_FILE_NOT_SET" ));
         final String launchpadVersion = System.getProperty("sling.launchpad.version", "LAUNCHPAD_VERSION_NOT_SET");
-        final String paxVmOptions = System.getProperty("pax.vm.options", "PAX_VM_OPTIONS_NOT_SET");
+        final String [] paxVmOptions = System.getProperty("pax.vm.options", "PAX_VM_OPTIONS_NOT_SET").split(",");
+        log.info("Sling launchpad version: {}, VM options: {}", launchpadVersion, Arrays.asList(paxVmOptions));
         return new DefaultCompositeOption(
                 SlingPaxOptions.defaultLaunchpadOptions(launchpadVersion),
                 CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString())),
-                CoreOptions.vmOption(paxVmOptions)
+                CoreOptions.vmOptions(paxVmOptions)
                 
         ).getOptions();
     }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 21/30: SLING-4835 - fix maven-failsafe-plugin argLine for jacoco

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 04fdb972b3fea946e701c35be3e8fb7965034883
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Fri Jun 26 10:24:16 2015 +0000

    SLING-4835 - fix maven-failsafe-plugin argLine for jacoco
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1687738 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index c72bc63..7db3e3d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,6 +42,9 @@
         <sling.launchpad.version>7</sling.launchpad.version>
         <powermock.version>1.6.2</powermock.version>
         <pax.vm.options>-Xmx256M -XX:MaxPermSize=256m</pax.vm.options>
+        
+        <!-- argLine needs to be here so that jacoco plugin adds its own stuff to it -->
+        <argLine>${pax.vm.options}</argLine>
     </properties>
 
     <dependencies>
@@ -167,7 +170,6 @@
                     </execution>
                 </executions>
                 <configuration>
-                    <argLine>${pax.vm.options}</argLine>
                     <systemPropertyVariables>
                         <java.protocol.handler.pkgs>org.ops4j.pax.url</java.protocol.handler.pkgs>
                         <bundle.file.name>${bundle.file.name}</bundle.file.name>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 10/30: SLING-4757 - remove relativePath as we did elsewhere

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 3adb9f41ef04356d74cbd1defec146277f8d5b19
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jun 1 12:51:59 2015 +0000

    SLING-4757 - remove relativePath as we did elsewhere
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682891 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 97b87ea..297ce31 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,6 @@
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
         <version>22</version>
-        <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 
     <artifactId>org.apache.sling.commons.contentdetection</artifactId>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 30/30: [maven-release-plugin] copy for tag org.apache.sling.commons.contentdetection-1.0.2

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 393385c8db7e5c5cd0ced25de28ce46b92a18bb7
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jul 6 11:58:30 2015 +0000

    [maven-release-plugin] copy for tag org.apache.sling.commons.contentdetection-1.0.2
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.contentdetection-1.0.2@1689381 13f79535-47bb-0310-9956-ffa450edef68

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 20/30: Remove superflous sling.java.version=6 as it's the default now

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit fba297723685bf555a373cdc9e03deee33066b72
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Thu Jun 25 13:14:53 2015 +0000

    Remove superflous sling.java.version=6 as it's the default now
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1687505 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 2658ab2..c72bc63 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,7 +39,6 @@
         <exam.version>3.5.0</exam.version>
         <url.version>1.5.2</url.version>
         <bundle.file.name>${basedir}/target/${project.build.finalName}.jar</bundle.file.name>
-        <sling.java.version>6</sling.java.version>
         <sling.launchpad.version>7</sling.launchpad.version>
         <powermock.version>1.6.2</powermock.version>
         <pax.vm.options>-Xmx256M -XX:MaxPermSize=256m</pax.vm.options>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 07/30: SLING-4757 - new integration tests for commons.contentdetection, contributed by Petr Shypila, thanks!

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 3924f4776d86f77916b0664e4b49e6280d7c54b3
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jun 1 12:33:57 2015 +0000

    SLING-4757 - new integration tests for commons.contentdetection, contributed by Petr Shypila, thanks!
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682886 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            | 75 +++++++++++++++++++++-
 .../it/ContentAwareMimeTypeServiceImplIT.java      | 56 ++++++++++++++++
 .../internal/it/FileNameExtractorImplIT.java       | 56 ++++++++++++++++
 3 files changed, 186 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 402731b..97b87ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,6 @@
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 
-    <groupId>org.apache.sling</groupId>
     <artifactId>org.apache.sling.commons.contentdetection</artifactId>
     <version>0.9.9-SNAPSHOT</version>
     <packaging>bundle</packaging>
@@ -37,6 +36,12 @@
     <description>Content-based MIME type detection</description>
 
     <properties>
+        <exam.version>3.4.0</exam.version>
+        <url.version>1.5.2</url.version>
+        <org.ops4j.pax.logging.DefaultServiceLog.level>INFO</org.ops4j.pax.logging.DefaultServiceLog.level>
+        <bundle.file.name>${basedir}/target/${project.build.finalName}.jar</bundle.file.name>
+        <sling.java.version>6</sling.java.version>
+        <sling.launchpad.version>7</sling.launchpad.version>
         <powermock.version>1.6.2</powermock.version>
     </properties>
 
@@ -96,6 +101,48 @@
             <version>${powermock.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.launchpad</artifactId>
+            <version>${sling.launchpad.version}</version>
+            <type>xml</type>
+            <classifier>bundlelist</classifier>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-simple</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.paxexam.util</artifactId>
+            <version>1.0.2</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam-container-native</artifactId>
+            <version>${exam.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam-link-mvn</artifactId>
+            <version>${exam.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.framework</artifactId>
+            <version>4.2.1</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
@@ -116,6 +163,32 @@
                 <artifactId>apache-rat-plugin</artifactId>
             </plugin>
 
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-failsafe-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <systemPropertyVariables>
+                        <org.ops4j.pax.logging.DefaultServiceLog.level>${org.ops4j.pax.logging.DefaultServiceLog.level}</org.ops4j.pax.logging.DefaultServiceLog.level>
+                        <pax.exam.log.level>${pax.exam.log.level}</pax.exam.log.level>
+                        <java.protocol.handler.pkgs>org.ops4j.pax.url</java.protocol.handler.pkgs>
+                        <bundle.file.name>${bundle.file.name}</bundle.file.name>
+                        <sling.launchpad.version>${sling.launchpad.version}</sling.launchpad.version>
+                    </systemPropertyVariables>
+                    <classpathDependencyExcludes>
+                        <!-- The osgi.org dependencies cause trouble with pax exam -->
+                        <classpathDependencyExcludes>org.osgi:org.osgi.core</classpathDependencyExcludes>
+                        <classpathDependencyExcludes>org.osgi:org.osgi.compendium</classpathDependencyExcludes>
+                    </classpathDependencyExcludes>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
new file mode 100644
index 0000000..82fe4b9
--- /dev/null
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.sling.commons.contentdetection.internal.it;
+
+import org.apache.sling.commons.contentdetection.ContentAwareMimeTypeService;
+import org.apache.sling.paxexam.util.SlingPaxOptions;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.CoreOptions;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.options.DefaultCompositeOption;
+
+import javax.inject.Inject;
+import java.io.File;
+
+import static org.junit.Assert.*;
+
+@RunWith(PaxExam.class)
+public class ContentAwareMimeTypeServiceImplIT {
+
+    @Inject
+    private ContentAwareMimeTypeService contentAwaremimeTypeService;
+
+    @Test
+    public void testContentAwareMimeTypeService(){
+        String mimeTypeName = "test.mp3";
+        String mimeType = "audio/mpeg";
+        assertEquals(mimeType, contentAwaremimeTypeService.getMimeType(mimeTypeName));
+    }
+
+    @org.ops4j.pax.exam.Configuration
+    public Option[] config() {
+        final File thisProjectsBundle = new File(System.getProperty( "bundle.file.name", "BUNDLE_FILE_NOT_SET" ));
+        final String launchpadVersion = System.getProperty("sling.launchpad.version", "LAUNCHPAD_VERSION_NOT_SET");
+        return new DefaultCompositeOption(
+                SlingPaxOptions.defaultLaunchpadOptions(launchpadVersion),
+                CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString()))
+        ).getOptions();
+    }
+}
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/FileNameExtractorImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/FileNameExtractorImplIT.java
new file mode 100644
index 0000000..e0e55fb
--- /dev/null
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/FileNameExtractorImplIT.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.sling.commons.contentdetection.internal.it;
+
+import org.apache.sling.commons.contentdetection.FileNameExtractor;
+import org.apache.sling.paxexam.util.SlingPaxOptions;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.CoreOptions;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.options.DefaultCompositeOption;
+
+import javax.inject.Inject;
+import java.io.File;
+
+import static org.junit.Assert.*;
+
+@RunWith(PaxExam.class)
+public class FileNameExtractorImplIT {
+
+    @Inject
+    private FileNameExtractor fileNameExtractor;
+
+    @Test
+    public void testFileNameExtractor(){
+        String rawPath = "http://midches.com/images/uploads/default/demo.jpg#anchor?query=test";
+        String expectedFileName = "demo.jpg";
+        assertEquals(expectedFileName, fileNameExtractor.extract(rawPath));
+    }
+
+    @org.ops4j.pax.exam.Configuration
+    public Option[] config() {
+        final File thisProjectsBundle = new File(System.getProperty( "bundle.file.name", "BUNDLE_FILE_NOT_SET" ));
+        final String launchpadVersion = System.getProperty("sling.launchpad.version", "LAUNCHPAD_VERSION_NOT_SET");
+        return new DefaultCompositeOption(
+                SlingPaxOptions.defaultLaunchpadOptions(launchpadVersion),
+                CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString()))
+        ).getOptions();
+    }
+}

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 22/30: cannot be null here, remove dead code

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 80dda028ca80edc872691f7afa41f75d794067f3
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Fri Jun 26 10:28:44 2015 +0000

    cannot be null here, remove dead code
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1687739 13f79535-47bb-0310-9956-ffa450edef68
---
 .../contentdetection/internal/ContentAwareMimeTypeServiceImpl.java      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
index 1e630ed..5264296 100644
--- a/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
+++ b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
@@ -50,7 +50,7 @@ public class ContentAwareMimeTypeServiceImpl implements  ContentAwareMimeTypeSer
         if(content == null) {
             return mimeTypeService.getMimeType(filename);
         }
-        if(content != null && !content.markSupported()) {
+        if(!content.markSupported()) {
             throw new IllegalArgumentException("Supplied InputStream does not support mark/reset");
         }
         TikaInputStream stream = TikaInputStream.get(content);

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 03/30: SLING-4694 - pom cleanup

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit dfb71075b30ce69a575e1fc474c5003f064a0efb
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Wed May 27 14:21:24 2015 +0000

    SLING-4694 - pom cleanup
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682038 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 24 +++++-------------------
 1 file changed, 5 insertions(+), 19 deletions(-)

diff --git a/pom.xml b/pom.xml
index b3dd87b..402731b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,7 +34,7 @@
     <packaging>bundle</packaging>
 
     <name>Apache Sling Content Detection Support</name>
-    <description>Support for MIME type detection on the basis of contents.</description>
+    <description>Content-based MIME type detection</description>
 
     <properties>
         <powermock.version>1.6.2</powermock.version>
@@ -42,14 +42,14 @@
 
     <dependencies>
 
-        <!-- OSGi Dependncies-->
+        <!-- OSGi Dependencies-->
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.core</artifactId>
             <scope>provided</scope>
         </dependency>
 
-        <!-- Sling Dependncies-->
+        <!-- Sling Dependencies-->
         <dependency>
             <version>2.1.9-SNAPSHOT</version>
             <groupId>org.apache.sling</groupId>
@@ -57,7 +57,7 @@
             <scope>provided</scope>
         </dependency>
 
-        <!-- Other Dependncies-->
+        <!-- Other Dependencies-->
         <dependency>
             <version>1.2</version>
             <groupId>org.apache.tika</groupId>
@@ -65,7 +65,7 @@
             <scope>provided</scope>
         </dependency>
 
-        <!-- Test Dependncies-->
+        <!-- Test Dependencies-->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
@@ -109,20 +109,6 @@
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
                 <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                        <Bundle-Version>${project.version}</Bundle-Version>
-                        <Export-Package>
-                            org.apache.sling.commons.contentdetection.serversidetests,
-                            org.apache.sling.commons.contentdetection
-                        </Export-Package>
-                        <Import-Package>
-                            *
-                        </Import-Package>
-                        <Sling-Test-Regexp>.*Test</Sling-Test-Regexp>
-                    </instructions>
-                </configuration>
             </plugin>
 
             <plugin>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 16/30: SLING-4757 - fix pax exam memory setup and add test for non-markable stream

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 8ca7a8ba0697b95b01767f57f22514e971729fb8
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Jun 18 10:46:57 2015 +0000

    SLING-4757 - fix pax exam memory setup and add test for non-markable stream
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1686179 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  7 +-
 .../ContentAwareMimeTypeService.java               |  5 +-
 .../it/ContentAwareMimeTypeServiceImplIT.java      | 86 +++++++++++++++-------
 .../commons/contentdetection/internal/it/U.java    |  7 +-
 4 files changed, 67 insertions(+), 38 deletions(-)

diff --git a/pom.xml b/pom.xml
index 851c3a8..28a64f2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,12 +37,11 @@
     <properties>
         <exam.version>3.5.0</exam.version>
         <url.version>1.5.2</url.version>
-        <org.ops4j.pax.logging.DefaultServiceLog.level>INFO</org.ops4j.pax.logging.DefaultServiceLog.level>
         <bundle.file.name>${basedir}/target/${project.build.finalName}.jar</bundle.file.name>
         <sling.java.version>6</sling.java.version>
         <sling.launchpad.version>7</sling.launchpad.version>
         <powermock.version>1.6.2</powermock.version>
-        <pax.vm.options>-Xmx256M</pax.vm.options>
+        <pax.vm.options>-Xmx256M -XX:MaxPermSize=256m</pax.vm.options>
     </properties>
 
     <dependencies>
@@ -168,13 +167,11 @@
                     </execution>
                 </executions>
                 <configuration>
+                    <argLine>${pax.vm.options}</argLine>
                     <systemPropertyVariables>
-                        <org.ops4j.pax.logging.DefaultServiceLog.level>${org.ops4j.pax.logging.DefaultServiceLog.level}</org.ops4j.pax.logging.DefaultServiceLog.level>
-                        <pax.exam.log.level>${pax.exam.log.level}</pax.exam.log.level>
                         <java.protocol.handler.pkgs>org.ops4j.pax.url</java.protocol.handler.pkgs>
                         <bundle.file.name>${bundle.file.name}</bundle.file.name>
                         <sling.launchpad.version>${sling.launchpad.version}</sling.launchpad.version>
-                        <pax.vm.options>${pax.vm.options}</pax.vm.options>
                     </systemPropertyVariables>
                     <classpathDependencyExcludes>
                         <!-- The osgi.org dependencies cause trouble with pax exam -->
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java b/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java
index 37be925..5999dc1 100644
--- a/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java
+++ b/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java
@@ -33,9 +33,10 @@ import java.io.InputStream;
 
 public interface ContentAwareMimeTypeService extends MimeTypeService {
     /**
-     * @param filename used if <code>content</code> is <code>null</code> or if
+     * @param filename Used if <code>content</code> is <code>null</code> or if
      *                 this service does not support content-based detection
-     * @param content  optional stream that points to the content to analyze
+     * @param content  Optional stream that points to the content to analyze,
+     *                 must support mark/reset.
      * @return the mime type
      */
     String getMimeType(String filename, InputStream content) throws IOException;
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
index 62d8450..f488e9d 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
@@ -20,6 +20,7 @@ package org.apache.sling.commons.contentdetection.internal.it;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
 
 import java.io.BufferedInputStream;
 import java.io.IOException;
@@ -29,7 +30,6 @@ import javax.inject.Inject;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.sling.commons.contentdetection.ContentAwareMimeTypeService;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Option;
@@ -40,6 +40,50 @@ public class ContentAwareMimeTypeServiceImplIT {
 
     @Inject
     private ContentAwareMimeTypeService contentAwaremimeTypeService;
+    
+    class NonMarkableStream extends BufferedInputStream {
+        NonMarkableStream(InputStream is) {
+            super(is);
+        }
+
+        @Override
+        public synchronized void mark(int readlimit) {
+        }
+
+        @Override
+        public synchronized void reset() throws IOException {
+        }
+
+        @Override
+        public boolean markSupported() {
+            return false;
+        }
+    };
+    
+    abstract class AssertDetect {
+        void assertDetection(String expectedType, boolean expectSameContent) throws IOException {
+            final String filename = "this-is-actually-a-wav-file.mp3";
+            final String path = "/" + filename;
+            final InputStream s = wrapStream(getClass().getResourceAsStream(path));
+            assertNotNull("Expecting stream to be found:" + filename, s);
+            InputStream originalStream = null;
+            try {
+                assertEquals(expectedType, contentAwaremimeTypeService.getMimeType(filename, s));
+                originalStream = getClass().getResourceAsStream(path);
+                assertNotNull("Expecting stream to be found:" + filename, originalStream);
+                if(expectSameContent) {
+                    assertTrue("Expecting content to be unchanged", IOUtils.contentEquals(s, originalStream));
+                } else {
+                    assertFalse("Expecting content to have changed", IOUtils.contentEquals(s, originalStream));
+                }
+            } finally {
+                IOUtils.closeQuietly(s);
+                IOUtils.closeQuietly(originalStream);
+            }
+        }
+        
+        abstract InputStream wrapStream(InputStream toWrap);
+    }
 
     @Test
     public void detectFromExtension(){
@@ -50,36 +94,26 @@ public class ContentAwareMimeTypeServiceImplIT {
 
     @Test
     public void detectFromContent() throws IOException{
-        final String filename = "this-is-actually-a-wav-file.mp3";
-        final InputStream s = getClass().getResourceAsStream("/" + filename);
-        assertNotNull("Expecting stream to be found:" + filename, s);
-        try {
-            assertEquals("audio/x-wav", contentAwaremimeTypeService.getMimeType(filename, s));
-        } finally {
-            if(s != null) {
-                s.close();
+        new AssertDetect() {
+            @Override
+            InputStream wrapStream(InputStream toWrap) {
+                return new BufferedInputStream(toWrap);
             }
-        }
+        }.assertDetection("audio/x-wav", true);
     }
-
+    
     @Test
-    @Ignore("OutOfMemoryError: PermGen space??")
-    public void testNoContentTampering() throws IOException{
-        final String filename = "this-is-actually-a-wav-file.mp3";
-        final InputStream s = new BufferedInputStream(getClass().getResourceAsStream("/" + filename));
-        assertNotNull("Expecting stream to be found:" + filename, s);
-        try {
-            contentAwaremimeTypeService.getMimeType(filename, s);
-            assertTrue(IOUtils.contentEquals(s,
-                    new BufferedInputStream(getClass().getResourceAsStream(
-                            "/" + filename))));
-        } finally {
-            if(s != null) {
-                s.close();
+    public void detectFromContentWithNonMarkableStream() throws IOException{
+        // Interestingly, with a non-markable stream  the detector falls back to
+        // filename detection but still touches the content stream
+        new AssertDetect() {
+            @Override
+            InputStream wrapStream(InputStream toWrap) {
+                return new NonMarkableStream(toWrap);
             }
-        }
+        }.assertDetection("audio/mpeg", false);
     }
-
+    
     @org.ops4j.pax.exam.Configuration
     public Option[] config() {
         return U.paxConfig();
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
index 901a3eb..d92cb46 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
@@ -18,7 +18,6 @@
 package org.apache.sling.commons.contentdetection.internal.it;
 
 import java.io.File;
-import java.util.Arrays;
 
 import org.apache.sling.paxexam.util.SlingPaxOptions;
 import org.ops4j.pax.exam.CoreOptions;
@@ -33,12 +32,10 @@ public class U {
     public static Option[] paxConfig() {
         final File thisProjectsBundle = new File(System.getProperty( "bundle.file.name", "BUNDLE_FILE_NOT_SET" ));
         final String launchpadVersion = System.getProperty("sling.launchpad.version", "LAUNCHPAD_VERSION_NOT_SET");
-        final String [] paxVmOptions = System.getProperty("pax.vm.options", "PAX_VM_OPTIONS_NOT_SET").split(",");
-        log.info("Sling launchpad version: {}, VM options: {}", launchpadVersion, Arrays.asList(paxVmOptions));
+        log.info("Sling launchpad version: {}", launchpadVersion);
         return new DefaultCompositeOption(
                 SlingPaxOptions.defaultLaunchpadOptions(launchpadVersion),
-                CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString())),
-                CoreOptions.vmOptions(paxVmOptions)
+                CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString()))
                 
         ).getOptions();
     }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 12/30: SLING-4757 - remove Easymock, caused trouble with jacoco plugin coverage merging

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit bfb42cf1c00a7cd10f581c3342e465eadeccdf2d
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jun 1 15:26:04 2015 +0000

    SLING-4757 - remove Easymock, caused trouble with jacoco plugin coverage merging
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682931 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  21 +--
 .../ContentAwareMimeTypeServiceImplTest.java       | 180 +++++++--------------
 2 files changed, 60 insertions(+), 141 deletions(-)

diff --git a/pom.xml b/pom.xml
index ebb4d85..20801d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>22</version>
+        <version>23-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.sling.commons.contentdetection</artifactId>
@@ -84,22 +84,9 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>3.3.1</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.powermock</groupId>
-            <artifactId>powermock-module-junit4</artifactId>
-            <version>${powermock.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.powermock</groupId>
-            <artifactId>powermock-api-easymock</artifactId>
-            <version>${powermock.version}</version>
-            <scope>test</scope>
+            <groupId>junit-addons</groupId>
+            <artifactId>junit-addons</artifactId>
+            <version>1.4</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java
index 6a31bb1..b00194b 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java
@@ -17,156 +17,88 @@
 
 package org.apache.sling.commons.contentdetection.internal;
 
-import org.apache.sling.commons.mime.MimeTypeService;
-import org.apache.tika.detect.Detector;
-import org.apache.tika.io.TikaInputStream;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.mime.MediaType;
-import org.easymock.EasyMock;
-import org.easymock.EasyMockSupport;
-import org.easymock.TestSubject;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.powermock.api.easymock.PowerMock;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(TikaInputStream.class)
-public class ContentAwareMimeTypeServiceImplTest extends EasyMockSupport {
+import junitx.util.PrivateAccessor;
 
-    private Detector mockDetector = EasyMock.createMock(Detector.class);
-
-    private MimeTypeService mockMimeTypeService = EasyMock.createMock(MimeTypeService.class);
-
-    @TestSubject
-    private ContentAwareMimeTypeServiceImpl contentAwareMimeTypeService = new ContentAwareMimeTypeServiceImpl();
+import org.apache.sling.commons.mime.MimeTypeService;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
 
-    @Before
-    public void setUp() throws IOException {
-        contentAwareMimeTypeService.detector = mockDetector;
-        contentAwareMimeTypeService.mimeTypeService = mockMimeTypeService;
-    }
+public class ContentAwareMimeTypeServiceImplTest {
 
-    @Test
-    public void testGetMimeType() throws IOException {
+    private ContentAwareMimeTypeServiceImpl contentAwareMimeTypeService = null;
+    private int counterA;
+    private int counterB;
 
-        //Initializations
-        String filename = "test.txt";
-        Metadata metadata = new Metadata();
-        metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
-        byte[] byteArray = new byte[]{};
-        InputStream content = new ByteArrayInputStream(byteArray);
-        TikaInputStream stream = TikaInputStream.get(content);
-        PowerMock.mockStatic(TikaInputStream.class);
+    final MimeTypeService mimeTypeService = new MimeTypeService() {
 
-        //Record Expectations
-        EasyMock.expect(TikaInputStream.get(content)).andReturn(stream).once();
-        EasyMock.expect(mockDetector.detect(stream, metadata)).andReturn(MediaType.TEXT_PLAIN).once();
+        @Override
+        public String getMimeType(String name) {
+            return "MT_" + name;
+        }
 
-        //Getting ready for run
-        PowerMock.replay(TikaInputStream.class);
-        EasyMock.replay(mockDetector);
+        @Override
+        public String getExtension(String mimeType) {
+            return "EXT_" + mimeType;
+        }
 
-        //The test run
-        String mimeType = contentAwareMimeTypeService.getMimeType(filename, content);
+        @Override
+        public void registerMimeType(String mimeType, String... extensions) {
+            counterA++;
+        }
 
-        //Verification of expectations
-        Assert.assertEquals(MediaType.TEXT_PLAIN.toString(), mimeType);
-        EasyMock.verify(mockDetector);
-        PowerMock.verify(TikaInputStream.class);
+        @Override
+        public void registerMimeType(InputStream mimeTabStream) throws IOException {
+            counterB++;
+        }
+    };
+    
+    @Before
+    public void setup() throws NoSuchFieldException {
+        contentAwareMimeTypeService = new ContentAwareMimeTypeServiceImpl();
+        PrivateAccessor.setField(contentAwareMimeTypeService, "mimeTypeService", mimeTypeService);
     }
-
+    
     @Test
     public void testGetMimeTypeByString(){
-        String mimeTypeName = "testName";
-        String mimetype = "mimeType";
-
-        EasyMock.expect(mockMimeTypeService.getMimeType(mimeTypeName)).andReturn(mimetype);
-        EasyMock.replay(mockMimeTypeService);
-
-        String another = contentAwareMimeTypeService.getMimeType(mimeTypeName);
-        Assert.assertEquals(mimetype, another);
-        EasyMock.verify(mockMimeTypeService);
+        String mimeTypeName = "testName.txt";
+        final String mimeType = contentAwareMimeTypeService.getMimeType(mimeTypeName);
+        Assert.assertEquals("MT_testName.txt", mimeType);
     }
-
+    
     @Test
-    public void testGetExtension(){
-        String mimeTypeName = "testName";
-        String extension = "java";
-
-        EasyMock.expect(mockMimeTypeService.getExtension(mimeTypeName)).andReturn(extension);
-        EasyMock.replay(mockMimeTypeService);
-
-        String another = contentAwareMimeTypeService.getExtension(mimeTypeName);
-        Assert.assertEquals(extension, another);
-        EasyMock.verify(mockMimeTypeService);
+    public void testGetExtension() {
+        final String ext = contentAwareMimeTypeService.getExtension("foo");
+        Assert.assertEquals("EXT_foo", ext);
     }
 
     @Test
     public void testGetMimeTypeWithNullContent() throws IOException {
-        //Initializations
-        String filename = "test.txt";
-        InputStream content = null;
-
-        //Record Expectations
-        EasyMock.expect(mockMimeTypeService.getMimeType(filename)).andReturn(MediaType.TEXT_PLAIN.getType()).once();
-
-        //Getting ready for run
-        EasyMock.replay(mockMimeTypeService);
-
-        //The test run
-        String mimeType = contentAwareMimeTypeService.getMimeType(filename, content);
-
-        //Verification of expectations
-        Assert.assertEquals(MediaType.TEXT_PLAIN.getType(), mimeType);
-        EasyMock.verify(mockMimeTypeService);
+        final String filename = "test.txt";
+        final String mimeType = contentAwareMimeTypeService.getMimeType(filename, null);
+        Assert.assertEquals("MT_test.txt", mimeType);
     }
 
     @Test
-    public void testRegisterNewMymeType() {
-        final String mimeTypeName = "test";
-        final String[] mimeTypeExtensions = new String[]{"pict", "apt", "z"};
-
-        /* The only thing ContentAwareMimeTypeServiceImpl#registerMimeType(String name, String... ext)
-         * method does is calls MimeTypeService registerMimeType(String name, String[] ext) method.
-         * So we Mock it and expect that it will be called.
-         */
-        mockMimeTypeService.registerMimeType(mimeTypeName, mimeTypeExtensions);
-        EasyMock.expectLastCall();
-        EasyMock.replay(mockMimeTypeService);
-
-        contentAwareMimeTypeService.registerMimeType(mimeTypeName, mimeTypeExtensions);
-
-        EasyMock.verify(mockMimeTypeService);
+    public void testRegisterMimeTypeIsDelegatedA() {
+        final int before = counterA;
+        contentAwareMimeTypeService.registerMimeType("foo", new String[] {});
+        Assert.assertEquals("Expecting 1 call to registerMimeType(A)", before + 1, counterA);
     }
 
     @Test
-    public void testRegisterMimeType() throws IOException {
-        byte[] byteArray = new byte[]{};
-        InputStream content = new ByteArrayInputStream(byteArray);
-
-        /* The only thing ContentAwareMimeTypeServiceImpl#registerMimeType(InputStream i)
-         * method does is calls MimeTypeService#registerMimeType(InputStream i) method.
-         * So we Mock it and expect that it will be called.
-         */
-        mockMimeTypeService.registerMimeType(content);
-        EasyMock.expectLastCall();
-        EasyMock.replay(mockMimeTypeService);
-
-        contentAwareMimeTypeService.registerMimeType(content);
-
-        EasyMock.verify(mockMimeTypeService);
-    }
-
-    @After
-    public void tearDown() {
+    public void testRegisterMimeTypeIsDelegatedB() throws IOException {
+        final int before = counterB;
+        final InputStream is = new ByteArrayInputStream("x".getBytes());
+        try {
+            contentAwareMimeTypeService.registerMimeType(is);
+        } finally {
+            is.close();
+        }
+        Assert.assertEquals("Expecting 1 call to registerMimeType(B)", before + 1, counterB);
     }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 09/30: SLING-4757 - make sure we have the right service in integration tests

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit c1a005b7b362f08555b081f8cccf85ad0bd888b4
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jun 1 12:51:07 2015 +0000

    SLING-4757 - make sure we have the right service in integration tests
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682890 13f79535-47bb-0310-9956-ffa450edef68
---
 .../it/ContentAwareMimeTypeServiceImplIT.java       |  20 +++++++++++++++++++-
 src/test/resources/this-is-actually-a-wav-file.mp3  | Bin 0 -> 10000 bytes
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
index fec301f..a0b4410 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
@@ -18,6 +18,10 @@
 package org.apache.sling.commons.contentdetection.internal.it;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+import java.io.InputStream;
 
 import javax.inject.Inject;
 
@@ -34,12 +38,26 @@ public class ContentAwareMimeTypeServiceImplIT {
     private ContentAwareMimeTypeService contentAwaremimeTypeService;
 
     @Test
-    public void testContentAwareMimeTypeService(){
+    public void detectFromExtension(){
         String mimeTypeName = "test.mp3";
         String mimeType = "audio/mpeg";
         assertEquals(mimeType, contentAwaremimeTypeService.getMimeType(mimeTypeName));
     }
 
+    @Test
+    public void detectFromContent() throws IOException{
+        final String filename = "this-is-actually-a-wav-file.mp3";
+        final InputStream s = getClass().getResourceAsStream("/" + filename);
+        assertNotNull("Expecting stream to be found:" + filename, s);
+        try {
+            assertEquals("audio/x-wav", contentAwaremimeTypeService.getMimeType(filename, s));
+        } finally {
+            if(s != null) {
+                s.close();
+            }
+        }
+    }
+
     @org.ops4j.pax.exam.Configuration
     public Option[] config() {
         return U.paxConfig();
diff --git a/src/test/resources/this-is-actually-a-wav-file.mp3 b/src/test/resources/this-is-actually-a-wav-file.mp3
new file mode 100644
index 0000000..50f3f65
Binary files /dev/null and b/src/test/resources/this-is-actually-a-wav-file.mp3 differ

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 24/30: SLING-4694 - use the newest (just released) Sling parent pom

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 6e1eeddacc3ee85e3eda9292300196d1d3b3556a
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jul 6 11:45:00 2015 +0000

    SLING-4694 - use the newest (just released) Sling parent pom
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1689375 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 6b58fc2..3933af6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>23</version>
+        <version>24</version>
         <relativePath />
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 08/30: SLING-4757 - factor out Pax config

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 900de6991803eb394e453f5308ba9a586f532314
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jun 1 12:38:28 2015 +0000

    SLING-4757 - factor out Pax config
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682887 13f79535-47bb-0310-9956-ffa450edef68
---
 .../it/ContentAwareMimeTypeServiceImplIT.java      | 21 +++++-----------
 .../internal/it/FileNameExtractorImplIT.java       | 19 ++++-----------
 ...ntentAwareMimeTypeServiceImplIT.java => U.java} | 28 ++++------------------
 3 files changed, 15 insertions(+), 53 deletions(-)

diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
index 82fe4b9..fec301f 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
@@ -17,19 +17,15 @@
 
 package org.apache.sling.commons.contentdetection.internal.it;
 
+import static org.junit.Assert.assertEquals;
+
+import javax.inject.Inject;
+
 import org.apache.sling.commons.contentdetection.ContentAwareMimeTypeService;
-import org.apache.sling.paxexam.util.SlingPaxOptions;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.CoreOptions;
 import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.ops4j.pax.exam.options.DefaultCompositeOption;
-
-import javax.inject.Inject;
-import java.io.File;
-
-import static org.junit.Assert.*;
 
 @RunWith(PaxExam.class)
 public class ContentAwareMimeTypeServiceImplIT {
@@ -46,11 +42,6 @@ public class ContentAwareMimeTypeServiceImplIT {
 
     @org.ops4j.pax.exam.Configuration
     public Option[] config() {
-        final File thisProjectsBundle = new File(System.getProperty( "bundle.file.name", "BUNDLE_FILE_NOT_SET" ));
-        final String launchpadVersion = System.getProperty("sling.launchpad.version", "LAUNCHPAD_VERSION_NOT_SET");
-        return new DefaultCompositeOption(
-                SlingPaxOptions.defaultLaunchpadOptions(launchpadVersion),
-                CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString()))
-        ).getOptions();
+        return U.paxConfig();
     }
-}
+}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/FileNameExtractorImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/FileNameExtractorImplIT.java
index e0e55fb..bc2aaaf 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/FileNameExtractorImplIT.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/FileNameExtractorImplIT.java
@@ -17,19 +17,15 @@
 
 package org.apache.sling.commons.contentdetection.internal.it;
 
+import static org.junit.Assert.assertEquals;
+
+import javax.inject.Inject;
+
 import org.apache.sling.commons.contentdetection.FileNameExtractor;
-import org.apache.sling.paxexam.util.SlingPaxOptions;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.CoreOptions;
 import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.ops4j.pax.exam.options.DefaultCompositeOption;
-
-import javax.inject.Inject;
-import java.io.File;
-
-import static org.junit.Assert.*;
 
 @RunWith(PaxExam.class)
 public class FileNameExtractorImplIT {
@@ -46,11 +42,6 @@ public class FileNameExtractorImplIT {
 
     @org.ops4j.pax.exam.Configuration
     public Option[] config() {
-        final File thisProjectsBundle = new File(System.getProperty( "bundle.file.name", "BUNDLE_FILE_NOT_SET" ));
-        final String launchpadVersion = System.getProperty("sling.launchpad.version", "LAUNCHPAD_VERSION_NOT_SET");
-        return new DefaultCompositeOption(
-                SlingPaxOptions.defaultLaunchpadOptions(launchpadVersion),
-                CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString()))
-        ).getOptions();
+        return U.paxConfig();
     }
 }
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
similarity index 68%
copy from src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
copy to src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
index 82fe4b9..33ecd38 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
@@ -17,35 +17,15 @@
 
 package org.apache.sling.commons.contentdetection.internal.it;
 
-import org.apache.sling.commons.contentdetection.ContentAwareMimeTypeService;
+import java.io.File;
+
 import org.apache.sling.paxexam.util.SlingPaxOptions;
-import org.junit.Test;
-import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.CoreOptions;
 import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.PaxExam;
 import org.ops4j.pax.exam.options.DefaultCompositeOption;
 
-import javax.inject.Inject;
-import java.io.File;
-
-import static org.junit.Assert.*;
-
-@RunWith(PaxExam.class)
-public class ContentAwareMimeTypeServiceImplIT {
-
-    @Inject
-    private ContentAwareMimeTypeService contentAwaremimeTypeService;
-
-    @Test
-    public void testContentAwareMimeTypeService(){
-        String mimeTypeName = "test.mp3";
-        String mimeType = "audio/mpeg";
-        assertEquals(mimeType, contentAwaremimeTypeService.getMimeType(mimeTypeName));
-    }
-
-    @org.ops4j.pax.exam.Configuration
-    public Option[] config() {
+public class U {
+    public static Option[] paxConfig() {
         final File thisProjectsBundle = new File(System.getProperty( "bundle.file.name", "BUNDLE_FILE_NOT_SET" ));
         final String launchpadVersion = System.getProperty("sling.launchpad.version", "LAUNCHPAD_VERSION_NOT_SET");
         return new DefaultCompositeOption(

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 28/30: SLING-4694 - we'll release as 1.0.2

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 85b6fec05b61c462eee57e0287b87144a0f093b6
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jul 6 11:56:04 2015 +0000

    SLING-4694 - we'll release as 1.0.2
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1689379 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5160678..46c54fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
     </parent>
 
     <artifactId>org.apache.sling.commons.contentdetection</artifactId>
-    <version>1.0.0</version>
+    <version>1.0.1-SNAPSHOT</version>
     <packaging>bundle</packaging>
 
     <name>Apache Sling Content Detection Support</name>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 05/30: SLING-4757 - remove duplicate test

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit dceeb791927ea03694d28db6a77ad56c0399f974
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jun 1 09:21:14 2015 +0000

    SLING-4757 - remove duplicate test
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682845 13f79535-47bb-0310-9956-ffa450edef68
---
 .../contentdetection/internal/FileNameExtractorImplTest.java       | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
index b7d9f6e..f280dc7 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
@@ -33,13 +33,6 @@ public class FileNameExtractorImplTest {
     }
 
     @Test
-    public void testExtractForBackslash() throws Exception {
-        String rawPath = "C:\\Test windows%path\\demo.jpg";
-        String expectedFileName = "demo.jpg";
-        Assert.assertEquals(expectedFileName, fileNameExtractor.extract(rawPath));
-    }
-
-    @Test
     public void testBackslashPath() throws Exception {
         String rawPath = "C:\\Test windows%path\\demo.jpg";
         String expectedFileName = "demo.jpg";

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 23/30: SLING-4694 - use commons.mime release, no need for a snapshot

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 348a1054cbbbcf8066d6fbf3add768e2c6933ad6
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jul 6 09:21:18 2015 +0000

    SLING-4694 - use commons.mime release, no need for a snapshot
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1689344 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7db3e3d..6b58fc2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,7 @@
 
         <!-- Sling Dependencies-->
         <dependency>
-            <version>2.1.9-SNAPSHOT</version>
+            <version>2.1.8</version>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.commons.mime</artifactId>
             <scope>provided</scope>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 18/30: SLING-4757 - be more explicit about IllegalArgumentException

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 95159fa37c56d03a2fd379c90faa5c8e09b73ec6
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Jun 18 11:57:10 2015 +0000

    SLING-4757 - be more explicit about IllegalArgumentException
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1686196 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/commons/contentdetection/ContentAwareMimeTypeService.java | 6 ++++--
 .../contentdetection/internal/ContentAwareMimeTypeServiceImpl.java  | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java b/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java
index 5999dc1..3ccd6ae 100644
--- a/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java
+++ b/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java
@@ -35,9 +35,11 @@ public interface ContentAwareMimeTypeService extends MimeTypeService {
     /**
      * @param filename Used if <code>content</code> is <code>null</code> or if
      *                 this service does not support content-based detection
-     * @param content  Optional stream that points to the content to analyze,
+     * @param contentStream  Optional stream that points to the content to analyze,
      *                 must support mark/reset.
+     * @throws IllegalArgumentException if contentStream does not support mark/reset
+     * @throws IOException if there's a problem reading the contentStream                  
      * @return the mime type
      */
-    String getMimeType(String filename, InputStream content) throws IOException;
+    String getMimeType(String filename, InputStream contentStream) throws IOException, IllegalArgumentException;
 }
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
index 29e8508..1e630ed 100644
--- a/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
+++ b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
@@ -46,7 +46,7 @@ public class ContentAwareMimeTypeServiceImpl implements  ContentAwareMimeTypeSer
     @Reference
     MimeTypeService mimeTypeService;
 
-    public String getMimeType(String filename, InputStream content) throws IOException {
+    public String getMimeType(String filename, InputStream content) throws IOException, IllegalArgumentException {
         if(content == null) {
             return mimeTypeService.getMimeType(filename);
         }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 19/30: Update to Sling Parent 23

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit e4711da235509eb323df4dbac8da15a815ef5598
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Thu Jun 25 13:08:16 2015 +0000

    Update to Sling Parent 23
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1687500 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 28a64f2..2658ab2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>23-SNAPSHOT</version>
+        <version>23</version>
+        <relativePath />
     </parent>
 
     <artifactId>org.apache.sling.commons.contentdetection</artifactId>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 04/30: SLING-4757 - new tests for commons.contentdetection, contributed by Petr Shypila, thanks!

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit cc7c9078925443b4fe9ef97df1e97a53931f7bd7
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jun 1 09:18:59 2015 +0000

    SLING-4757 - new tests for commons.contentdetection, contributed by Petr Shypila, thanks!
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682844 13f79535-47bb-0310-9956-ffa450edef68
---
 .../ContentAwareMimeTypeServiceImplTest.java       | 66 +++++++++++++++++++++-
 .../internal/FileNameExtractorImplTest.java        | 26 ++++++++-
 2 files changed, 87 insertions(+), 5 deletions(-)

diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java
index ece1156..6a31bb1 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java
@@ -44,8 +44,6 @@ public class ContentAwareMimeTypeServiceImplTest extends EasyMockSupport {
 
     private Detector mockDetector = EasyMock.createMock(Detector.class);
 
-    private Metadata mockMetadata = EasyMock.createMock(Metadata.class);
-
     private MimeTypeService mockMimeTypeService = EasyMock.createMock(MimeTypeService.class);
 
     @TestSubject
@@ -87,6 +85,32 @@ public class ContentAwareMimeTypeServiceImplTest extends EasyMockSupport {
     }
 
     @Test
+    public void testGetMimeTypeByString(){
+        String mimeTypeName = "testName";
+        String mimetype = "mimeType";
+
+        EasyMock.expect(mockMimeTypeService.getMimeType(mimeTypeName)).andReturn(mimetype);
+        EasyMock.replay(mockMimeTypeService);
+
+        String another = contentAwareMimeTypeService.getMimeType(mimeTypeName);
+        Assert.assertEquals(mimetype, another);
+        EasyMock.verify(mockMimeTypeService);
+    }
+
+    @Test
+    public void testGetExtension(){
+        String mimeTypeName = "testName";
+        String extension = "java";
+
+        EasyMock.expect(mockMimeTypeService.getExtension(mimeTypeName)).andReturn(extension);
+        EasyMock.replay(mockMimeTypeService);
+
+        String another = contentAwareMimeTypeService.getExtension(mimeTypeName);
+        Assert.assertEquals(extension, another);
+        EasyMock.verify(mockMimeTypeService);
+    }
+
+    @Test
     public void testGetMimeTypeWithNullContent() throws IOException {
         //Initializations
         String filename = "test.txt";
@@ -106,7 +130,43 @@ public class ContentAwareMimeTypeServiceImplTest extends EasyMockSupport {
         EasyMock.verify(mockMimeTypeService);
     }
 
+    @Test
+    public void testRegisterNewMymeType() {
+        final String mimeTypeName = "test";
+        final String[] mimeTypeExtensions = new String[]{"pict", "apt", "z"};
+
+        /* The only thing ContentAwareMimeTypeServiceImpl#registerMimeType(String name, String... ext)
+         * method does is calls MimeTypeService registerMimeType(String name, String[] ext) method.
+         * So we Mock it and expect that it will be called.
+         */
+        mockMimeTypeService.registerMimeType(mimeTypeName, mimeTypeExtensions);
+        EasyMock.expectLastCall();
+        EasyMock.replay(mockMimeTypeService);
+
+        contentAwareMimeTypeService.registerMimeType(mimeTypeName, mimeTypeExtensions);
+
+        EasyMock.verify(mockMimeTypeService);
+    }
+
+    @Test
+    public void testRegisterMimeType() throws IOException {
+        byte[] byteArray = new byte[]{};
+        InputStream content = new ByteArrayInputStream(byteArray);
+
+        /* The only thing ContentAwareMimeTypeServiceImpl#registerMimeType(InputStream i)
+         * method does is calls MimeTypeService#registerMimeType(InputStream i) method.
+         * So we Mock it and expect that it will be called.
+         */
+        mockMimeTypeService.registerMimeType(content);
+        EasyMock.expectLastCall();
+        EasyMock.replay(mockMimeTypeService);
+
+        contentAwareMimeTypeService.registerMimeType(content);
+
+        EasyMock.verify(mockMimeTypeService);
+    }
+
     @After
     public void tearDown() {
     }
-}
+}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
index c00cb5a..b7d9f6e 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
@@ -17,17 +17,39 @@
 
 package org.apache.sling.commons.contentdetection.internal;
 
-import junit.framework.TestCase;
 import org.apache.sling.commons.contentdetection.FileNameExtractor;
 import org.junit.Assert;
+import org.junit.Test;
 
-public class FileNameExtractorImplTest extends TestCase {
+public class FileNameExtractorImplTest {
 
     FileNameExtractor fileNameExtractor = new FileNameExtractorImpl();
 
+    @Test
     public void testExtract() throws Exception {
         String rawPath = "http://midches.com/images/uploads/default/demo.jpg#anchor?query=test";
         String expectedFileName = "demo.jpg";
         Assert.assertEquals(expectedFileName, fileNameExtractor.extract(rawPath));
     }
+
+    @Test
+    public void testExtractForBackslash() throws Exception {
+        String rawPath = "C:\\Test windows%path\\demo.jpg";
+        String expectedFileName = "demo.jpg";
+        Assert.assertEquals(expectedFileName, fileNameExtractor.extract(rawPath));
+    }
+
+    @Test
+    public void testBackslashPath() throws Exception {
+        String rawPath = "C:\\Test windows%path\\demo.jpg";
+        String expectedFileName = "demo.jpg";
+        Assert.assertEquals(expectedFileName, fileNameExtractor.extract(rawPath));
+    }
+
+    @Test
+    public void testDecodedURL(){
+        String rawPath = "http://example.com/demo%20test.jpg?test=true";
+        String expectedFileName = "demo test.jpg";
+        Assert.assertEquals(expectedFileName, fileNameExtractor.extract(rawPath));
+    }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 14/30: SLING-4757 - additional test contributed by Satya Deep Maheshwari, thanks!

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit d3f5c4038722c5959c911e7f6ce06ede1a5dde64
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Jun 18 09:31:17 2015 +0000

    SLING-4757 - additional test contributed by Satya Deep Maheshwari, thanks!
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1686155 13f79535-47bb-0310-9956-ffa450edef68
---
 .../it/ContentAwareMimeTypeServiceImplIT.java        | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
index a0b4410..10f04cb 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/ContentAwareMimeTypeServiceImplIT.java
@@ -19,12 +19,15 @@ package org.apache.sling.commons.contentdetection.internal.it;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
+import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
 import javax.inject.Inject;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.sling.commons.contentdetection.ContentAwareMimeTypeService;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -58,6 +61,23 @@ public class ContentAwareMimeTypeServiceImplIT {
         }
     }
 
+    @Test
+    public void testNoContentTampering() throws IOException{
+        final String filename = "this-is-actually-a-wav-file.mp3";
+        final InputStream s = new BufferedInputStream(getClass().getResourceAsStream("/" + filename));
+        assertNotNull("Expecting stream to be found:" + filename, s);
+        try {
+            contentAwaremimeTypeService.getMimeType(filename, s);
+            assertTrue(IOUtils.contentEquals(s,
+                    new BufferedInputStream(getClass().getResourceAsStream(
+                            "/" + filename))));
+        } finally {
+            if(s != null) {
+                s.close();
+            }
+        }
+    }
+
     @org.ops4j.pax.exam.Configuration
     public Option[] config() {
         return U.paxConfig();

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 25/30: [maven-release-plugin] prepare release org.apache.sling.commons.contentdetection-1.0.0

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit cd99f5037edf481af6aa1af676686a0a65565f3b
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jul 6 11:50:04 2015 +0000

    [maven-release-plugin] prepare release org.apache.sling.commons.contentdetection-1.0.0
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1689376 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 3933af6..a516402 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
     </parent>
 
     <artifactId>org.apache.sling.commons.contentdetection</artifactId>
-    <version>0.9.9-SNAPSHOT</version>
+    <version>1.0.0</version>
     <packaging>bundle</packaging>
 
     <name>Apache Sling Content Detection Support</name>
@@ -200,4 +200,10 @@
         </plugins>
     </build>
 
+
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.contentdetection-1.0.0</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.contentdetection-1.0.0</developerConnection>
+    <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.commons.contentdetection-1.0.0</url>
+  </scm>
 </project>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 26/30: SLING-4694 - add missing scm info

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 0a5c429db9a6bfd6181896d115ded817f7583405
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jul 6 11:54:13 2015 +0000

    SLING-4694 - add missing scm info
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1689377 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/pom.xml b/pom.xml
index a516402..8c72ffb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,6 +46,12 @@
         <!-- argLine needs to be here so that jacoco plugin adds its own stuff to it -->
         <argLine>${pax.vm.options}</argLine>
     </properties>
+    
+    <scm>
+        <connection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection</developerConnection>
+        <url>http://sling.apache.org/documentation/bundles/mime-type-support-commons-mime.html</url>
+    </scm>
 
     <dependencies>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 13/30: clean plugin config

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 1b77ab77376e7d417a7617317ed7bd9cd23e7bd6
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Tue Jun 2 10:04:44 2015 +0000

    clean plugin config
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1683067 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/pom.xml b/pom.xml
index 20801d3..851c3a8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -183,6 +183,21 @@
                     </classpathDependencyExcludes>
                 </configuration>
             </plugin>
+            <plugin>
+                <artifactId>maven-clean-plugin</artifactId>
+                <configuration>
+                    <filesets>
+                        <fileset>
+                            <directory>${basedir}</directory>
+                            <includes>
+                                <include>oak/**</include>
+                                <include>jackrabbit/**</include>
+                                <include>derby.log</include>
+                            </includes>
+                        </fileset>
+                    </filesets>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 01/30: SLING-4694 - new contentdetection module, contributed by Satya Deep Maheshwari, thanks!

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit b35c36c4c3c0e28d137be618c58bbb7adc30b827
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Wed May 27 14:14:03 2015 +0000

    SLING-4694 - new contentdetection module, contributed by Satya Deep Maheshwari, thanks!
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682035 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            | 136 ++++++++++++
 .../ContentAwareMimeTypeService.java               |  42 ++++
 .../contentdetection/FileNameExtractor.java        |  31 +++
 .../internal/ContentAwareMimeTypeServiceImpl.java  |  75 +++++++
 .../internal/FileNameExtractorImpl.java            |  67 ++++++
 .../commons/contentdetection/package-info.java     |  34 +++
 .../ContentAwareMimeTypeServiceImplTest.java       |  34 +++
 src/main/resources/META-INF/LICENSE                | 234 +++++++++++++++++++++
 src/main/resources/META-INF/NOTICE                 |   8 +
 .../OSGI-INF/metatype/metatype.properties          |  31 +++
 .../ContentAwareMimeTypeServiceImplTest.java       | 112 ++++++++++
 .../internal/FileNameExtractorImplTest.java        |  33 +++
 12 files changed, 837 insertions(+)

diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..b3dd87b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<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/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling</artifactId>
+        <version>22</version>
+        <relativePath>../../../parent/pom.xml</relativePath>
+    </parent>
+
+    <groupId>org.apache.sling</groupId>
+    <artifactId>org.apache.sling.commons.contentdetection</artifactId>
+    <version>0.9.9-SNAPSHOT</version>
+    <packaging>bundle</packaging>
+
+    <name>Apache Sling Content Detection Support</name>
+    <description>Support for MIME type detection on the basis of contents.</description>
+
+    <properties>
+        <powermock.version>1.6.2</powermock.version>
+    </properties>
+
+    <dependencies>
+
+        <!-- OSGi Dependncies-->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Sling Dependncies-->
+        <dependency>
+            <version>2.1.9-SNAPSHOT</version>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.commons.mime</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Other Dependncies-->
+        <dependency>
+            <version>1.2</version>
+            <groupId>org.apache.tika</groupId>
+            <artifactId>tika-core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Test Dependncies-->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.junit.core</artifactId>
+            <version>1.0.10</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <version>3.3.1</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-module-junit4</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-api-easymock</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-scr-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Bundle-Version>${project.version}</Bundle-Version>
+                        <Export-Package>
+                            org.apache.sling.commons.contentdetection.serversidetests,
+                            org.apache.sling.commons.contentdetection
+                        </Export-Package>
+                        <Import-Package>
+                            *
+                        </Import-Package>
+                        <Sling-Test-Regexp>.*Test</Sling-Test-Regexp>
+                    </instructions>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+            </plugin>
+
+        </plugins>
+    </build>
+
+</project>
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java b/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java
new file mode 100644
index 0000000..37be925
--- /dev/null
+++ b/src/main/java/org/apache/sling/commons/contentdetection/ContentAwareMimeTypeService.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.commons.contentdetection;
+
+import org.apache.sling.commons.mime.MimeTypeService;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * The <code>ContentAwareMimeTypeService</code> interface extends the
+ * {@link org.apache.sling.commons.mime.MimeTypeService} API for services
+ * which can detect mime types based on the content passed to them.
+ * <p>
+ * The implementing services should rely on analyzing the content to ascertain
+ * the mime type. This interface may be implemented by bundles wishing to provide
+ * a mechanism to detect mime type based on the contents.
+ */
+
+public interface ContentAwareMimeTypeService extends MimeTypeService {
+    /**
+     * @param filename used if <code>content</code> is <code>null</code> or if
+     *                 this service does not support content-based detection
+     * @param content  optional stream that points to the content to analyze
+     * @return the mime type
+     */
+    String getMimeType(String filename, InputStream content) throws IOException;
+}
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/FileNameExtractor.java b/src/main/java/org/apache/sling/commons/contentdetection/FileNameExtractor.java
new file mode 100644
index 0000000..93f405b
--- /dev/null
+++ b/src/main/java/org/apache/sling/commons/contentdetection/FileNameExtractor.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.commons.contentdetection;
+
+/**
+ * The <code>FileNameExtractor</code> interface provides an API for extracting
+ * a files name from the provided <code>rawName</code>.
+ */
+public interface FileNameExtractor {
+
+    /**
+     *
+     * @param rawName of the file which may be a file's path or url
+     * @return the extracted file name
+     */
+    public String extract(String rawName);
+}
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
new file mode 100644
index 0000000..81b9e4a
--- /dev/null
+++ b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.apache.sling.commons.contentdetection.internal;
+
+
+import org.apache.felix.scr.annotations.*;
+import org.apache.sling.commons.contentdetection.ContentAwareMimeTypeService;
+import org.apache.sling.commons.mime.MimeTypeService;
+import org.apache.tika.detect.Detector;
+import org.apache.tika.io.TikaInputStream;
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.mime.MediaType;
+import org.osgi.framework.Constants;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+@Component(label = "%contentawaremime.service.name", description = "%contentawaremime.service.description")
+@Service(value = {ContentAwareMimeTypeService.class})
+
+@Properties({
+        @Property(name = Constants.SERVICE_DESCRIPTION, value = "Apache Sling Content Aware MIME Type Service"),
+        @Property(name = "detection.mode", value = "tika") }
+)
+public class ContentAwareMimeTypeServiceImpl implements  ContentAwareMimeTypeService {
+
+    @Reference
+    Detector detector;
+
+    @Reference
+    MimeTypeService mimeTypeService;
+
+    public String getMimeType(String filename, InputStream content) throws IOException {
+        if(content == null) {
+            return mimeTypeService.getMimeType(filename);
+        }
+        TikaInputStream stream = TikaInputStream.get(content);
+        Metadata metadata = new Metadata();
+        metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
+        MediaType mediaType = detector.detect(stream, metadata);
+        return mediaType.toString();
+    }
+
+    public String getMimeType(String name) {
+        return mimeTypeService.getMimeType(name);
+    }
+
+    public String getExtension(String mimeType) {
+        return mimeTypeService.getExtension(mimeType);
+    }
+
+    public void registerMimeType(String mimeType, String... extensions) {
+        mimeTypeService.registerMimeType(mimeType, extensions);
+    }
+
+    public void registerMimeType(InputStream mimeTabStream) throws IOException {
+        mimeTypeService.registerMimeType(mimeTabStream);
+    }
+}
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java b/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java
new file mode 100644
index 0000000..289f777
--- /dev/null
+++ b/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.commons.contentdetection.internal;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.commons.contentdetection.FileNameExtractor;
+import org.osgi.framework.Constants;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+
+@Component(metatype = true, label = "%filenameextractor.service.name", description = "%filenameextractor.service.description")
+@Service(FileNameExtractor.class)
+@Property(name = Constants.SERVICE_DESCRIPTION, value = "Apache Sling Filename Extractor Service")
+public class FileNameExtractorImpl implements FileNameExtractor {
+    public String extract(String name) {
+        // If the name is a URL, skip the trailing query and fragment parts
+        int question = name.indexOf('?');
+        if (question != -1) {
+            name = name.substring(0, question);
+        }
+        int hash = name.indexOf('#');
+        if (hash != -1) {
+            name = name.substring(0, hash);
+        }
+
+        // If the name is a URL or a path, skip all but the last component
+        int slash = name.lastIndexOf('/');
+        if (slash != -1) {
+            name = name.substring(slash + 1);
+        }
+        int backslash = name.lastIndexOf('\\');
+        if (backslash != -1) {
+            name = name.substring(backslash + 1);
+        }
+
+        // Decode any potential URL encoding
+        int percent = name.indexOf('%');
+        if (percent != -1) {
+            try {
+                name = URLDecoder.decode(name, "UTF-8");
+            } catch (UnsupportedEncodingException e) {
+                throw new AssertionError("UTF-8 not supported");
+            }
+        }
+
+        // Skip any leading or trailing whitespace
+        name = name.trim();
+        return name;
+    }
+}
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/package-info.java b/src/main/java/org/apache/sling/commons/contentdetection/package-info.java
new file mode 100644
index 0000000..0612384
--- /dev/null
+++ b/src/main/java/org/apache/sling/commons/contentdetection/package-info.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Extends the {@link org.apache.sling.commons.mime.MimeTypeService}
+ * service used by client to resolve MIME type information based on content as well as the
+ * {@link org.apache.sling.commons.contentdetection.FileNameExtractor} service
+ * for extracting the file name from a url or path
+ *
+ * @version 1.0.0
+ */
+@Version("1.0.0")
+@Export(optional = "provide:=true")
+package org.apache.sling.commons.contentdetection;
+
+import aQute.bnd.annotation.Export;
+import aQute.bnd.annotation.Version;
+
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/serversidetests/ContentAwareMimeTypeServiceImplTest.java b/src/main/java/org/apache/sling/commons/contentdetection/serversidetests/ContentAwareMimeTypeServiceImplTest.java
new file mode 100644
index 0000000..1a48b5a
--- /dev/null
+++ b/src/main/java/org/apache/sling/commons/contentdetection/serversidetests/ContentAwareMimeTypeServiceImplTest.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.sling.commons.contentdetection.serversidetests;
+
+import org.apache.sling.commons.contentdetection.ContentAwareMimeTypeService;
+import org.apache.sling.junit.annotations.SlingAnnotationsTestRunner;
+import org.apache.sling.junit.annotations.TestReference;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+//Right now this is just a placeholder for future serverside tests.
+//Current test coverage is in plain UTs
+@RunWith(SlingAnnotationsTestRunner.class)
+public class ContentAwareMimeTypeServiceImplTest {
+
+    @TestReference
+    ContentAwareMimeTypeService contentAwareMimeTypeService;
+
+}
diff --git a/src/main/resources/META-INF/LICENSE b/src/main/resources/META-INF/LICENSE
new file mode 100644
index 0000000..ef13dba
--- /dev/null
+++ b/src/main/resources/META-INF/LICENSE
@@ -0,0 +1,234 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+APACHE SLING SUBCOMPONENTS:
+
+Apache Sling includes subcomponents with separate copyright notices and
+license terms. Your use of these subcomponents is subject to the terms
+and conditions of the following licenses.
+
+JQuery TreeTable plugin
+
+    Copyright (c) 2009 Ludo van den Boom
+    
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use,
+    copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the
+    Software is furnished to do so, subject to the following
+    conditions:
+    
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+    
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+    OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+    OTHER DEALINGS IN THE SOFTWARE.
diff --git a/src/main/resources/META-INF/NOTICE b/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..921deb8
--- /dev/null
+++ b/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,8 @@
+Apache Sling content detection support
+Copyright 2008-2009 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+Apache Sling is based on source code originally developed
+by Day Software (http://www.day.com/).
diff --git a/src/main/resources/OSGI-INF/metatype/metatype.properties b/src/main/resources/OSGI-INF/metatype/metatype.properties
new file mode 100644
index 0000000..5572b18
--- /dev/null
+++ b/src/main/resources/OSGI-INF/metatype/metatype.properties
@@ -0,0 +1,31 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+#
+
+
+#
+# This file contains localization strings for configuration labels and
+# descriptions as used in the metatype.xml descriptor generated by the
+# the Felix SCR plugin
+
+contentawaremime.service.name = Apache Sling Content Aware MIME Type Service
+contentawaremime.service.description = The Sling Content Aware MIME Type Service provides support for \
+determining the MIME type based on filename and its contents.
+filenameextractor.service.name = Apache Sling Filename extractor Service
+filenameextractor.service.description = The Sling Filename extractor Service provides support for \
+extracting the file's name from a url or path
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java
new file mode 100644
index 0000000..ece1156
--- /dev/null
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImplTest.java
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.sling.commons.contentdetection.internal;
+
+import org.apache.sling.commons.mime.MimeTypeService;
+import org.apache.tika.detect.Detector;
+import org.apache.tika.io.TikaInputStream;
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.mime.MediaType;
+import org.easymock.EasyMock;
+import org.easymock.EasyMockSupport;
+import org.easymock.TestSubject;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.api.easymock.PowerMock;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(TikaInputStream.class)
+public class ContentAwareMimeTypeServiceImplTest extends EasyMockSupport {
+
+    private Detector mockDetector = EasyMock.createMock(Detector.class);
+
+    private Metadata mockMetadata = EasyMock.createMock(Metadata.class);
+
+    private MimeTypeService mockMimeTypeService = EasyMock.createMock(MimeTypeService.class);
+
+    @TestSubject
+    private ContentAwareMimeTypeServiceImpl contentAwareMimeTypeService = new ContentAwareMimeTypeServiceImpl();
+
+    @Before
+    public void setUp() throws IOException {
+        contentAwareMimeTypeService.detector = mockDetector;
+        contentAwareMimeTypeService.mimeTypeService = mockMimeTypeService;
+    }
+
+    @Test
+    public void testGetMimeType() throws IOException {
+
+        //Initializations
+        String filename = "test.txt";
+        Metadata metadata = new Metadata();
+        metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
+        byte[] byteArray = new byte[]{};
+        InputStream content = new ByteArrayInputStream(byteArray);
+        TikaInputStream stream = TikaInputStream.get(content);
+        PowerMock.mockStatic(TikaInputStream.class);
+
+        //Record Expectations
+        EasyMock.expect(TikaInputStream.get(content)).andReturn(stream).once();
+        EasyMock.expect(mockDetector.detect(stream, metadata)).andReturn(MediaType.TEXT_PLAIN).once();
+
+        //Getting ready for run
+        PowerMock.replay(TikaInputStream.class);
+        EasyMock.replay(mockDetector);
+
+        //The test run
+        String mimeType = contentAwareMimeTypeService.getMimeType(filename, content);
+
+        //Verification of expectations
+        Assert.assertEquals(MediaType.TEXT_PLAIN.toString(), mimeType);
+        EasyMock.verify(mockDetector);
+        PowerMock.verify(TikaInputStream.class);
+    }
+
+    @Test
+    public void testGetMimeTypeWithNullContent() throws IOException {
+        //Initializations
+        String filename = "test.txt";
+        InputStream content = null;
+
+        //Record Expectations
+        EasyMock.expect(mockMimeTypeService.getMimeType(filename)).andReturn(MediaType.TEXT_PLAIN.getType()).once();
+
+        //Getting ready for run
+        EasyMock.replay(mockMimeTypeService);
+
+        //The test run
+        String mimeType = contentAwareMimeTypeService.getMimeType(filename, content);
+
+        //Verification of expectations
+        Assert.assertEquals(MediaType.TEXT_PLAIN.getType(), mimeType);
+        EasyMock.verify(mockMimeTypeService);
+    }
+
+    @After
+    public void tearDown() {
+    }
+}
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
new file mode 100644
index 0000000..c00cb5a
--- /dev/null
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImplTest.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.sling.commons.contentdetection.internal;
+
+import junit.framework.TestCase;
+import org.apache.sling.commons.contentdetection.FileNameExtractor;
+import org.junit.Assert;
+
+public class FileNameExtractorImplTest extends TestCase {
+
+    FileNameExtractor fileNameExtractor = new FileNameExtractorImpl();
+
+    public void testExtract() throws Exception {
+        String rawPath = "http://midches.com/images/uploads/default/demo.jpg#anchor?query=test";
+        String expectedFileName = "demo.jpg";
+        Assert.assertEquals(expectedFileName, fileNameExtractor.extract(rawPath));
+    }
+}
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 11/30: SLING-4757 - remove metatype.properties

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 2e2d4113d3807227aa0a1d37dc092a89e096acca
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Jun 1 13:52:04 2015 +0000

    SLING-4757 - remove metatype.properties
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682903 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            | 10 ++++++-
 .../internal/ContentAwareMimeTypeServiceImpl.java  |  4 +--
 .../internal/FileNameExtractorImpl.java            |  8 ++++--
 .../OSGI-INF/metatype/metatype.properties          | 31 ----------------------
 .../commons/contentdetection/internal/it/U.java    |  5 +++-
 5 files changed, 21 insertions(+), 37 deletions(-)

diff --git a/pom.xml b/pom.xml
index 297ce31..ebb4d85 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,13 +35,14 @@
     <description>Content-based MIME type detection</description>
 
     <properties>
-        <exam.version>3.4.0</exam.version>
+        <exam.version>3.5.0</exam.version>
         <url.version>1.5.2</url.version>
         <org.ops4j.pax.logging.DefaultServiceLog.level>INFO</org.ops4j.pax.logging.DefaultServiceLog.level>
         <bundle.file.name>${basedir}/target/${project.build.finalName}.jar</bundle.file.name>
         <sling.java.version>6</sling.java.version>
         <sling.launchpad.version>7</sling.launchpad.version>
         <powermock.version>1.6.2</powermock.version>
+        <pax.vm.options>-Xmx256M</pax.vm.options>
     </properties>
 
     <dependencies>
@@ -160,6 +161,12 @@
             <plugin>
                 <groupId>org.apache.rat</groupId>
                 <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>derby.log</exclude>
+                        <exclude>jackrabbit/**</exclude>
+                    </excludes>
+                </configuration>
             </plugin>
 
             <plugin>
@@ -180,6 +187,7 @@
                         <java.protocol.handler.pkgs>org.ops4j.pax.url</java.protocol.handler.pkgs>
                         <bundle.file.name>${bundle.file.name}</bundle.file.name>
                         <sling.launchpad.version>${sling.launchpad.version}</sling.launchpad.version>
+                        <pax.vm.options>${pax.vm.options}</pax.vm.options>
                     </systemPropertyVariables>
                     <classpathDependencyExcludes>
                         <!-- The osgi.org dependencies cause trouble with pax exam -->
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
index 81b9e4a..32e29e7 100644
--- a/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
+++ b/src/main/java/org/apache/sling/commons/contentdetection/internal/ContentAwareMimeTypeServiceImpl.java
@@ -31,11 +31,11 @@ import org.osgi.framework.Constants;
 import java.io.IOException;
 import java.io.InputStream;
 
-@Component(label = "%contentawaremime.service.name", description = "%contentawaremime.service.description")
+@Component
 @Service(value = {ContentAwareMimeTypeService.class})
-
 @Properties({
         @Property(name = Constants.SERVICE_DESCRIPTION, value = "Apache Sling Content Aware MIME Type Service"),
+        @Property(name = Constants.SERVICE_VENDOR, value = "The Apache Software Foundation"),
         @Property(name = "detection.mode", value = "tika") }
 )
 public class ContentAwareMimeTypeServiceImpl implements  ContentAwareMimeTypeService {
diff --git a/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java b/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java
index f4c3eda..23d9c78 100644
--- a/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java
+++ b/src/main/java/org/apache/sling/commons/contentdetection/internal/FileNameExtractorImpl.java
@@ -20,14 +20,18 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 
 import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.contentdetection.FileNameExtractor;
 import org.osgi.framework.Constants;
 
-@Component(metatype = true, label = "%filenameextractor.service.name", description = "%filenameextractor.service.description")
+@Component
 @Service(FileNameExtractor.class)
-@Property(name = Constants.SERVICE_DESCRIPTION, value = "Apache Sling Filename Extractor Service")
+@Properties({
+    @Property(name = Constants.SERVICE_DESCRIPTION, value = "Apache Sling Filename Extractor Service"),
+    @Property(name = Constants.SERVICE_VENDOR, value = "The Apache Software Foundation"),
+})
 public class FileNameExtractorImpl implements FileNameExtractor {
     public String extract(String name) {
         // If the name is a URL, skip the trailing query and fragment parts
diff --git a/src/main/resources/OSGI-INF/metatype/metatype.properties b/src/main/resources/OSGI-INF/metatype/metatype.properties
deleted file mode 100644
index 5572b18..0000000
--- a/src/main/resources/OSGI-INF/metatype/metatype.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-#
-
-
-#
-# This file contains localization strings for configuration labels and
-# descriptions as used in the metatype.xml descriptor generated by the
-# the Felix SCR plugin
-
-contentawaremime.service.name = Apache Sling Content Aware MIME Type Service
-contentawaremime.service.description = The Sling Content Aware MIME Type Service provides support for \
-determining the MIME type based on filename and its contents.
-filenameextractor.service.name = Apache Sling Filename extractor Service
-filenameextractor.service.description = The Sling Filename extractor Service provides support for \
-extracting the file's name from a url or path
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
index 33ecd38..a555177 100644
--- a/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
+++ b/src/test/java/org/apache/sling/commons/contentdetection/internal/it/U.java
@@ -28,9 +28,12 @@ public class U {
     public static Option[] paxConfig() {
         final File thisProjectsBundle = new File(System.getProperty( "bundle.file.name", "BUNDLE_FILE_NOT_SET" ));
         final String launchpadVersion = System.getProperty("sling.launchpad.version", "LAUNCHPAD_VERSION_NOT_SET");
+        final String paxVmOptions = System.getProperty("pax.vm.options", "PAX_VM_OPTIONS_NOT_SET");
         return new DefaultCompositeOption(
                 SlingPaxOptions.defaultLaunchpadOptions(launchpadVersion),
-                CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString()))
+                CoreOptions.provision(CoreOptions.bundle(thisProjectsBundle.toURI().toString())),
+                CoreOptions.vmOption(paxVmOptions)
+                
         ).getOptions();
     }
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-contentdetection] 02/30: SLING-4694 - remove files which are not needed

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.contentdetection-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-contentdetection.git

commit 70081de1104f5910bebcd6cfa13bc47adc0d6459
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Wed May 27 14:16:49 2015 +0000

    SLING-4694 - remove files which are not needed
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/contentdetection@1682037 13f79535-47bb-0310-9956-ffa450edef68
---
 .../ContentAwareMimeTypeServiceImplTest.java       |  34 ---
 src/main/resources/META-INF/LICENSE                | 234 ---------------------
 src/main/resources/META-INF/NOTICE                 |   8 -
 3 files changed, 276 deletions(-)

diff --git a/src/main/java/org/apache/sling/commons/contentdetection/serversidetests/ContentAwareMimeTypeServiceImplTest.java b/src/main/java/org/apache/sling/commons/contentdetection/serversidetests/ContentAwareMimeTypeServiceImplTest.java
deleted file mode 100644
index 1a48b5a..0000000
--- a/src/main/java/org/apache/sling/commons/contentdetection/serversidetests/ContentAwareMimeTypeServiceImplTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.sling.commons.contentdetection.serversidetests;
-
-import org.apache.sling.commons.contentdetection.ContentAwareMimeTypeService;
-import org.apache.sling.junit.annotations.SlingAnnotationsTestRunner;
-import org.apache.sling.junit.annotations.TestReference;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-//Right now this is just a placeholder for future serverside tests.
-//Current test coverage is in plain UTs
-@RunWith(SlingAnnotationsTestRunner.class)
-public class ContentAwareMimeTypeServiceImplTest {
-
-    @TestReference
-    ContentAwareMimeTypeService contentAwareMimeTypeService;
-
-}
diff --git a/src/main/resources/META-INF/LICENSE b/src/main/resources/META-INF/LICENSE
deleted file mode 100644
index ef13dba..0000000
--- a/src/main/resources/META-INF/LICENSE
+++ /dev/null
@@ -1,234 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-APACHE SLING SUBCOMPONENTS:
-
-Apache Sling includes subcomponents with separate copyright notices and
-license terms. Your use of these subcomponents is subject to the terms
-and conditions of the following licenses.
-
-JQuery TreeTable plugin
-
-    Copyright (c) 2009 Ludo van den Boom
-    
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use,
-    copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the
-    Software is furnished to do so, subject to the following
-    conditions:
-    
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-    
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-    OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-    OTHER DEALINGS IN THE SOFTWARE.
diff --git a/src/main/resources/META-INF/NOTICE b/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index 921deb8..0000000
--- a/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,8 +0,0 @@
-Apache Sling content detection support
-Copyright 2008-2009 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-Apache Sling is based on source code originally developed
-by Day Software (http://www.day.com/).

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.