diff --git a/.github/workflows/on-code-change.yml b/.github/workflows/on-code-change.yml index cf243ef9..8151ef57 100644 --- a/.github/workflows/on-code-change.yml +++ b/.github/workflows/on-code-change.yml @@ -18,13 +18,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: jahia/jahia-modules-action/static-analysis@v2 + - uses: jahia/jahia-modules-action/static-analysis@add-checkstyle-to-static-analysis-github-action with: node_version: 20 yarn_version: 4.7.0 yarn_test_version: 4.7.0 auditci_level: critical - + github_token: ${{ secrets.GH_API_TOKEN }} build: name: Build Module runs-on: self-hosted diff --git a/javascript-modules-engine-java/src/main/java/org/jahia/modules/javascript/modules/engine/JavascriptModuleListener.java b/javascript-modules-engine-java/src/main/java/org/jahia/modules/javascript/modules/engine/JavascriptModuleListener.java index 9c79172e..ddae0892 100644 --- a/javascript-modules-engine-java/src/main/java/org/jahia/modules/javascript/modules/engine/JavascriptModuleListener.java +++ b/javascript-modules-engine-java/src/main/java/org/jahia/modules/javascript/modules/engine/JavascriptModuleListener.java @@ -38,80 +38,80 @@ */ @Component(immediate = true) public class JavascriptModuleListener implements BundleListener { - private static final Logger logger = LoggerFactory.getLogger(JavascriptModuleListener.class); - private GraalVMEngine engine; - private final Queue registrars = new ConcurrentLinkedQueue<>(); - - @Reference(cardinality = ReferenceCardinality.MANDATORY) - public void setEngine(GraalVMEngine engine) { - this.engine = engine; - } - - @Reference(service = Registrar.class, policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE, policyOption = ReferencePolicyOption.GREEDY) - public void addRegistrar(Registrar registrar) { - for (Bundle bundle : getJavascriptModules()) { - registrar.register(bundle); - } - - registrars.add(registrar); - } - - public void removeRegistrar(Registrar registrar) { - registrars.remove(registrar); - - for (Bundle bundle : getJavascriptModules()) { - registrar.unregister(bundle); - } - } - - @Activate - public void activate(BundleContext context) { - for (Bundle bundle : getJavascriptModules()) { - engine.enableJavascriptModule(bundle); - } - - context.addBundleListener(this); - } - - @Deactivate - public void deactivate(BundleContext context) { - context.removeBundleListener(this); - - for (Bundle bundle : getJavascriptModules()) { - engine.disableJavascriptModule(bundle); - } - } - - @Override - public void bundleChanged(BundleEvent event) { - try { - Bundle bundle = event.getBundle(); - if (isJavascriptModule(bundle)) { - if (event.getType() == BundleEvent.STARTED) { - engine.enableJavascriptModule(bundle); - for (Registrar registrar : registrars) { - registrar.register(bundle); - } - } else if (event.getType() == BundleEvent.STOPPED) { - for (Registrar registrar : registrars) { - registrar.unregister(bundle); - } - engine.disableJavascriptModule(bundle); - } - } - } catch (Exception e) { - logger.error("Cannot handle event {}", event.toString(), e); - } - } - - public List getJavascriptModules() { - return Arrays.stream(engine.getBundleContext().getBundles()) - .filter(bundle -> bundle.getState() == Bundle.ACTIVE && isJavascriptModule(bundle)) - .collect(Collectors.toList()); - } - - public boolean isJavascriptModule(Bundle bundle) { - return bundle.getBundleId() != engine.getBundleContext().getBundle().getBundleId() && - bundle.getHeaders().get(BUNDLE_HEADER_JAVASCRIPT_INIT_SCRIPT) != null; - } + private static final Logger logger = LoggerFactory.getLogger(JavascriptModuleListener.class); + private GraalVMEngine engine; + private final Queue registrars = new ConcurrentLinkedQueue<>(); + + @Reference(cardinality = ReferenceCardinality.MANDATORY) + public void setEngine(GraalVMEngine engine) { + this.engine = engine; + } + + @Reference(service = Registrar.class, policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE, policyOption = ReferencePolicyOption.GREEDY) + public void addRegistrar(Registrar registrar) { + for (Bundle bundle : getJavascriptModules()) { + registrar.register(bundle); + } + + registrars.add(registrar); + } + + public void removeRegistrar(Registrar registrar) { + registrars.remove(registrar); + + for (Bundle bundle : getJavascriptModules()) { + registrar.unregister(bundle); + } + } + + @Activate + public void activate(BundleContext context) { + for (Bundle bundle : getJavascriptModules()) { + engine.enableJavascriptModule(bundle); + } + + context.addBundleListener(this); + } + + @Deactivate + public void deactivate(BundleContext context) { + context.removeBundleListener(this); + + for (Bundle bundle : getJavascriptModules()) { + engine.disableJavascriptModule(bundle); + } + } + + @Override + public void bundleChanged(BundleEvent event) { + try { + Bundle bundle = event.getBundle(); + if (isJavascriptModule(bundle)) { + if (event.getType() == BundleEvent.STARTED) { + engine.enableJavascriptModule(bundle); + for (Registrar registrar : registrars) { + registrar.register(bundle); + } + } else if (event.getType() == BundleEvent.STOPPED) { + for (Registrar registrar : registrars) { + registrar.unregister(bundle); + } + engine.disableJavascriptModule(bundle); + } + } + } catch (Exception e) { + logger.error("Cannot handle event {}", event.toString(), e); + } + } + + public List getJavascriptModules() { + return Arrays.stream(engine.getBundleContext().getBundles()) + .filter(bundle -> bundle.getState() == Bundle.ACTIVE && isJavascriptModule(bundle)) + .collect(Collectors.toList()); + } + + public boolean isJavascriptModule(Bundle bundle) { + return bundle.getBundleId() != engine.getBundleContext().getBundle().getBundleId() && + bundle.getHeaders().get(BUNDLE_HEADER_JAVASCRIPT_INIT_SCRIPT) != null; + } } diff --git a/javascript-modules-engine-java/src/main/java/org/jahia/modules/javascript/modules/engine/jshandler/JavascriptProtocolConnection.java b/javascript-modules-engine-java/src/main/java/org/jahia/modules/javascript/modules/engine/jshandler/JavascriptProtocolConnection.java index 4a0e9e0a..5816dbca 100644 --- a/javascript-modules-engine-java/src/main/java/org/jahia/modules/javascript/modules/engine/jshandler/JavascriptProtocolConnection.java +++ b/javascript-modules-engine-java/src/main/java/org/jahia/modules/javascript/modules/engine/jshandler/JavascriptProtocolConnection.java @@ -116,9 +116,8 @@ else if (packageRelativePath.equals("settings/template-thumbnail.png")) { jos.putNextEntry(new ZipEntry("images/template-preview/" + StringUtils.substringAfter(packageRelativePath, "settings/"))); } // Map everything else in settings/ to META-INF/ - else { + else jos.putNextEntry(new ZipEntry("META-INF/" + StringUtils.substringAfter(packageRelativePath, "settings/"))); - } } else if (packageRelativePath.startsWith("components") && packageRelativePath.endsWith(".png")) { String[] parts = StringUtils.split(packageRelativePath, "/"); String nodeTypeName = parts[2];