SLING-9380 - Bundles should be able to provide both precompiled script units and regular scripts

* removed the artificial separation between precompiled script units
and bundled scripts
diff --git a/src/main/java/org/apache/sling/scripting/bundle/tracker/TypeProvider.java b/src/main/java/org/apache/sling/scripting/bundle/tracker/TypeProvider.java
index cbb89fb..f508c52 100644
--- a/src/main/java/org/apache/sling/scripting/bundle/tracker/TypeProvider.java
+++ b/src/main/java/org/apache/sling/scripting/bundle/tracker/TypeProvider.java
@@ -42,10 +42,4 @@
      */
     @NotNull Bundle getBundle();
 
-    /**
-     * Returns {@code true} if the bundle provides precompiled scripts.
-     *
-     * @return {@code true} if the bundle provides precompiled scripts, {@code false} otherwise
-     */
-    boolean isPrecompiled();
 }
diff --git a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptFinder.java b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptFinder.java
index 6cf351c..e2b28f3 100644
--- a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptFinder.java
+++ b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptFinder.java
@@ -52,9 +52,7 @@
                 String scriptExtension = capability.getScriptExtension();
                 String scriptEngineName = capability.getScriptEngineName();
                 if (StringUtils.isNotEmpty(scriptExtension) && StringUtils.isNotEmpty(scriptEngineName)) {
-                    Executable executable =
-                            getExecutable(provider.getBundle(), provider.isPrecompiled(), match, scriptEngineName, scriptExtension,
-                                    providers);
+                    Executable executable = getExecutable(provider.getBundle(), match, scriptEngineName, scriptExtension, providers);
                     if (executable != null) {
                         return executable;
                     }
@@ -64,30 +62,27 @@
         return null;
     }
 
-    Executable getScript(@NotNull Bundle bundle, boolean precompiled, @NotNull String path, @NotNull String scriptEngineName,
+    Executable getScript(@NotNull Bundle bundle, @NotNull String path, @NotNull String scriptEngineName,
                          @NotNull Set<TypeProvider> providers) {
-        if (precompiled) {
-            String className = JavaEscapeHelper.makeJavaPackage(path);
-            try {
-                Class<?> clazz = bundle.loadClass(className);
-                return new PrecompiledScript(providers, bundle, path, clazz, scriptEngineName);
-            } catch (ClassNotFoundException ignored) {
-                // do nothing here
-            }
-        } else {
+        String className = JavaEscapeHelper.makeJavaPackage(path);
+        try {
+            Class<?> clazz = bundle.loadClass(className);
+            return new PrecompiledScript(providers, bundle, path, clazz, scriptEngineName);
+        } catch (ClassNotFoundException ignored) {
             URL bundledScriptURL = bundle.getEntry(NS_JAVAX_SCRIPT_CAPABILITY + (path.startsWith("/") ? "" : SLASH) + path);
             if (bundledScriptURL != null) {
                 return new Script(providers, bundle, path, bundledScriptURL, scriptEngineName);
-            }
+            }    // do nothing here
         }
+
         return null;
     }
 
     @Nullable
-    private Executable getExecutable(@NotNull Bundle bundle, boolean precompiled, @NotNull String match, @NotNull String scriptEngineName,
+    private Executable getExecutable(@NotNull Bundle bundle, @NotNull String match, @NotNull String scriptEngineName,
                                      @NotNull String scriptExtension, @NotNull Set<TypeProvider> providers) {
         String path = match + DOT + scriptExtension;
-        return getScript(bundle, precompiled, path, scriptEngineName, providers);
+        return getScript(bundle, path, scriptEngineName, providers);
     }
 
     private List<String> buildScriptMatches(Set<ResourceType> resourceTypes, String[] selectors, String method, String extension) {
diff --git a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptTracker.java b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptTracker.java
index a3d6048..5bf7e67 100644
--- a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptTracker.java
+++ b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/BundledScriptTracker.java
@@ -177,7 +177,7 @@
                             bundledRenderUnitCapability.getScriptEngineName())) {
                         Set<TypeProvider> aggregate =
                                 Stream.concat(inheritanceChain.stream(), requiresChain.stream()).collect(Collectors.toCollection(LinkedHashSet::new));
-                        executable = bundledScriptFinder.getScript(baseTypeProvider.getBundle(), baseTypeProvider.isPrecompiled(),
+                        executable = bundledScriptFinder.getScript(baseTypeProvider.getBundle(),
                                 bundledRenderUnitCapability.getPath(), bundledRenderUnitCapability.getScriptEngineName(), aggregate);
                     }
                     List<ServiceRegistration<Servlet>> regs = new ArrayList<>();
diff --git a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/TypeProviderImpl.java b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/TypeProviderImpl.java
index 27fb136..fe04d66 100644
--- a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/TypeProviderImpl.java
+++ b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/TypeProviderImpl.java
@@ -28,12 +28,10 @@
 
     private final BundledRenderUnitCapability bundledRenderUnitCapability;
     private final Bundle bundle;
-    private final boolean precompiled;
 
     TypeProviderImpl(BundledRenderUnitCapability bundledRenderUnitCapability, Bundle bundle) {
         this.bundledRenderUnitCapability = bundledRenderUnitCapability;
         this.bundle = bundle;
-        precompiled = Boolean.parseBoolean(bundle.getHeaders().get("Sling-ResourceType-Precompiled"));
     }
 
     @NotNull
@@ -49,13 +47,8 @@
     }
 
     @Override
-    public boolean isPrecompiled() {
-        return precompiled;
-    }
-
-    @Override
     public int hashCode() {
-        return Objects.hash(bundle, bundledRenderUnitCapability, precompiled);
+        return Objects.hash(bundle, bundledRenderUnitCapability);
     }
 
     @Override
@@ -65,15 +58,13 @@
         }
         if (obj instanceof TypeProviderImpl) {
             TypeProviderImpl other = (TypeProviderImpl) obj;
-            return Objects.equals(bundle, other.bundle) && Objects.equals(bundledRenderUnitCapability, other.bundledRenderUnitCapability) &&
-                    Objects.equals(precompiled, other.precompiled);
+            return Objects.equals(bundle, other.bundle) && Objects.equals(bundledRenderUnitCapability, other.bundledRenderUnitCapability);
         }
         return false;
     }
 
     @Override
     public String toString() {
-        return String.format("TypeProvider{ bundledRenderUnitCapability=%s; bundle=%s; precompiled=%s }", bundledRenderUnitCapability,
-                bundle.getSymbolicName(), precompiled);
+        return String.format("TypeProvider{ bundledRenderUnitCapability=%s; bundle=%s }", bundledRenderUnitCapability, bundle.getSymbolicName());
     }
 }