Skip to content

Commit

Permalink
[scanning] add a filter applied very early in the scanning (before cd…
Browse files Browse the repository at this point in the history
…i one)
  • Loading branch information
rmannibucau committed Jun 26, 2024
1 parent 0e0a29c commit 5095ef0
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 0 deletions.
7 changes: 7 additions & 0 deletions bundlebee-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@
<name>BundleBee :: Core</name>

<dependencies>
<dependency>
<groupId>org.apache.geronimo.arthur</groupId>
<artifactId>arthur-api</artifactId>
<version>${arthur.version}</version>
<scope>provided</scope>
</dependency>

<dependency> <!-- todo: replace it by something lighter without the mapping feature? -->
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import io.yupiik.fusion.framework.handlebars.HandlebarsCompiler;
import io.yupiik.fusion.framework.handlebars.compiler.accessor.MapAccessor;

import javax.enterprise.inject.Vetoed;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
Expand All @@ -29,6 +30,7 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.stream.Collectors.toMap;

@Vetoed
public class HandlebarsInterpolator {
private final Manifest.Alveolus alveolus;
private final AlveolusHandler.LoadedDescriptor descriptor;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* Copyright (c) 2021 - present - Yupiik SAS - https://www.yupiik.com
* 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.
*/
package io.yupiik.bundlebee.core.openwebbeans;

import org.apache.geronimo.arthur.api.RegisterClass;
import org.apache.xbean.finder.filter.Filter;

/**
* Drop at raw scanning time - and not CDI reflection based scanning time - packages we know we don't need.
* <p>
* Most important one is handlebars since it leads to a warning otherwise since without the additional dep it will not load.
*/
@RegisterClass(allPublicConstructors = true)
public class BundleBeeFilter implements Filter {
@Override
public boolean accept(final String clazz) {
return !clazz.startsWith("io.yupiik.bundlebee.core.cli.")
&& !clazz.startsWith("io.yupiik.bundlebee.core.configuration.")
&& !clazz.startsWith("io.yupiik.bundlebee.core.descriptor.")
&& !clazz.startsWith("io.yupiik.bundlebee.core.event.")
&& !clazz.startsWith("io.yupiik.bundlebee.core.handlebars.")
&& !clazz.startsWith("io.yupiik.bundlebee.core.openwebbeans.");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ org.apache.webbeans.spi.DefiningClassService = org.apache.webbeans.service.Class
org.apache.webbeans.spi.ApplicationBoundaryService = org.apache.webbeans.corespi.se.SimpleApplicationBoundaryService
org.apache.webbeans.spi.deployer.skipVetoedOnPackages = true
org.apache.webbeans.scanBeansXmlOnly = true
# avoid warnings when some classes are not there
org.apache.xbean.finder.filter.Filter = io.yupiik.bundlebee.core.openwebbeans.BundleBeeFilter

0 comments on commit 5095ef0

Please sign in to comment.