dont require osgi-annotation in cp for @Header
diff --git a/pom.xml b/pom.xml
index b89db6a..0995c29 100644
--- a/pom.xml
+++ b/pom.xml
@@ -116,8 +116,8 @@
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.8.1</version>
         <configuration>
-          <source>11</source>
-          <target>11</target>
+          <source>8</source>
+          <target>8</target>
         </configuration>
       </plugin>
 
diff --git a/winegrower-core/src/main/java/org/apache/winegrower/scanner/StandaloneScanner.java b/winegrower-core/src/main/java/org/apache/winegrower/scanner/StandaloneScanner.java
index 8505805..9b3cfb2 100644
--- a/winegrower-core/src/main/java/org/apache/winegrower/scanner/StandaloneScanner.java
+++ b/winegrower-core/src/main/java/org/apache/winegrower/scanner/StandaloneScanner.java
@@ -40,6 +40,7 @@
 import java.util.stream.Stream;
 
 import org.apache.winegrower.Ripener;
+import org.apache.winegrower.scanner.manifest.ManifestContributor;
 import org.apache.winegrower.scanner.manifest.ManifestCreator;
 import org.apache.xbean.finder.AnnotationFinder;
 import org.apache.xbean.finder.ClassLoaders;
@@ -192,7 +193,7 @@
     }
 
     private Manifest tryLoadManifest(final Archive archive, final String name) {
-        final AnnotationFinder archiveFinder = new AnnotationFinder(archive, false);
+        final AnnotationFinder archiveFinder = new ManifestContributor.WinegrowerAnnotationFinder(archive, false);
         final ManifestCreator manifestCreator = new ManifestCreator(name);
         configuration.getManifestContributors()
                 .forEach(c -> c.contribute(archiveFinder, manifestCreator));
diff --git a/winegrower-core/src/main/java/org/apache/winegrower/scanner/manifest/HeaderManifestContributor.java b/winegrower-core/src/main/java/org/apache/winegrower/scanner/manifest/HeaderManifestContributor.java
index cae4442..ef1ef5d 100644
--- a/winegrower-core/src/main/java/org/apache/winegrower/scanner/manifest/HeaderManifestContributor.java
+++ b/winegrower-core/src/main/java/org/apache/winegrower/scanner/manifest/HeaderManifestContributor.java
@@ -13,14 +13,12 @@
  */
 package org.apache.winegrower.scanner.manifest;
 
-import static java.util.stream.Collectors.toMap;
-import static org.apache.xbean.asm8.ClassReader.SKIP_CODE;
-import static org.apache.xbean.asm8.ClassReader.SKIP_DEBUG;
-import static org.apache.xbean.asm8.ClassReader.SKIP_FRAMES;
-import static org.apache.xbean.asm8.Opcodes.ASM8;
+import org.apache.xbean.asm8.AnnotationVisitor;
+import org.apache.xbean.asm8.ClassReader;
+import org.apache.xbean.asm8.ClassVisitor;
+import org.apache.xbean.finder.AnnotationFinder;
 
 import java.io.InputStream;
-import java.lang.annotation.Annotation;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -31,10 +29,11 @@
 import java.util.jar.Manifest;
 import java.util.stream.Stream;
 
-import org.apache.xbean.asm8.AnnotationVisitor;
-import org.apache.xbean.asm8.ClassReader;
-import org.apache.xbean.asm8.ClassVisitor;
-import org.apache.xbean.finder.AnnotationFinder;
+import static java.util.stream.Collectors.toMap;
+import static org.apache.xbean.asm8.ClassReader.SKIP_CODE;
+import static org.apache.xbean.asm8.ClassReader.SKIP_DEBUG;
+import static org.apache.xbean.asm8.ClassReader.SKIP_FRAMES;
+import static org.apache.xbean.asm8.Opcodes.ASM8;
 
 public class HeaderManifestContributor implements ManifestContributor {
 
@@ -44,13 +43,9 @@
         final List<Class<?>> headerClasses;
         final List<Class<?>> headersClasses;
         try {
-            final Class<? extends Annotation> headerAnnotation = (Class<? extends Annotation>)
-                    loader.loadClass("org.osgi.annotation.bundle.Header");
-            final Class<? extends Annotation> headersAnnotation = (Class<? extends Annotation>)
-                    loader.loadClass("org.osgi.annotation.bundle.Headers");
-
-            headerClasses = finder.findAnnotatedClasses(headerAnnotation);
-            headersClasses = finder.findAnnotatedClasses(headersAnnotation);
+            final WinegrowerAnnotationFinder waf = WinegrowerAnnotationFinder.class.cast(finder); // temp, see impl
+            headerClasses = waf.findAnnotatedClasses("org.osgi.annotation.bundle.Header");
+            headersClasses = waf.findAnnotatedClasses("org.osgi.annotation.bundle.Headers");
             if (headerClasses.isEmpty() && headersClasses.isEmpty()) { // reuse the finder to ensure it exists
                 return;
             }
diff --git a/winegrower-core/src/main/java/org/apache/winegrower/scanner/manifest/ManifestContributor.java b/winegrower-core/src/main/java/org/apache/winegrower/scanner/manifest/ManifestContributor.java
index 6de3311..6d2f98f 100644
--- a/winegrower-core/src/main/java/org/apache/winegrower/scanner/manifest/ManifestContributor.java
+++ b/winegrower-core/src/main/java/org/apache/winegrower/scanner/manifest/ManifestContributor.java
@@ -13,11 +13,34 @@
  */
 package org.apache.winegrower.scanner.manifest;
 
+import org.apache.xbean.finder.AnnotationFinder;
+import org.apache.xbean.finder.archive.Archive;
+
+import java.util.List;
 import java.util.function.Supplier;
 import java.util.jar.Manifest;
 
-import org.apache.xbean.finder.AnnotationFinder;
+import static java.util.stream.Collectors.toList;
 
 public interface ManifestContributor {
     void contribute(final AnnotationFinder finder, final Supplier<Manifest> manifest);
+
+    class WinegrowerAnnotationFinder extends AnnotationFinder {
+        public WinegrowerAnnotationFinder(final Archive archive, final boolean checkRuntimeAnnotation) {
+            super(archive, checkRuntimeAnnotation);
+        }
+
+        // todo: port over xbean
+        public List<Class<?>> findAnnotatedClasses(final String annotation) {
+            return this.getAnnotationInfos(annotation).stream()
+                    .map(it -> {
+                        try {
+                            return AnnotationFinder.ClassInfo.class.cast(it).get();
+                        } catch (final ClassNotFoundException var8) {
+                            // skip
+                            return null;
+                        }
+                    }).collect(toList());
+        }
+    }
 }