diff --git a/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java b/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java index cac0eec3..88621fab 100644 --- a/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java +++ b/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java @@ -201,8 +201,6 @@ public class FrontendGradlePlugin implements Plugin { */ private static final String TASK_GROUP = "Frontend"; - public static final String BEAN_REGISTRY_BUILD_SERVICE_NAME_PREFIX = "beanRegistryBuildService"; - @Override public void apply(final Project project) { project.getPluginManager().apply(BasePlugin.class); @@ -263,8 +261,7 @@ protected Provider configureBeanRegistry(final Project return project .getGradle() .getSharedServices() - .registerIfAbsent(BEAN_REGISTRY_BUILD_SERVICE_NAME_PREFIX + project.getLayout().getProjectDirectory(), - BeanRegistryBuildService.class, + .registerIfAbsent(BeanRegistryBuildService.buildName(project), BeanRegistryBuildService.class, buildServiceSpec -> buildServiceSpec.getParameters().getBeanRegistry().set(beanRegistry)); } diff --git a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/AbstractRunCommandTaskType.java b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/AbstractRunCommandTaskType.java index 4599b013..a8aadbaa 100644 --- a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/AbstractRunCommandTaskType.java +++ b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/AbstractRunCommandTaskType.java @@ -1,7 +1,5 @@ package org.siouan.frontendgradleplugin.infrastructure.gradle; -import static org.siouan.frontendgradleplugin.FrontendGradlePlugin.BEAN_REGISTRY_BUILD_SERVICE_NAME_PREFIX; - import org.gradle.api.Project; import org.gradle.api.model.ObjectFactory; import org.gradle.api.provider.Provider; @@ -22,7 +20,7 @@ public abstract class AbstractRunCommandTaskType extends AbstractRunCommandTask .getGradle() .getSharedServices() .getRegistrations() - .named(BEAN_REGISTRY_BUILD_SERVICE_NAME_PREFIX + project.getLayout().getProjectDirectory()) + .named(BeanRegistryBuildService.buildName(project)) .flatMap(BuildServiceRegistration::getService); beanRegistryBuildService.set(beanRegistryBuildServiceProvider); packageJsonDirectory.set(frontendExtension.getPackageJsonDirectory().getAsFile()); diff --git a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/BeanRegistryBuildService.java b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/BeanRegistryBuildService.java index f5bbf1c6..ae698c08 100644 --- a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/BeanRegistryBuildService.java +++ b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/BeanRegistryBuildService.java @@ -1,6 +1,10 @@ package org.siouan.frontendgradleplugin.infrastructure.gradle; +import java.nio.charset.StandardCharsets; +import java.util.Base64; + import lombok.Getter; +import org.gradle.api.Project; import org.gradle.api.provider.Property; import org.gradle.api.services.BuildService; import org.gradle.api.services.BuildServiceParameters; @@ -14,6 +18,8 @@ @Getter public abstract class BeanRegistryBuildService implements BuildService { + public static final String BEAN_REGISTRY_BUILD_SERVICE_NAME_PREFIX = "fgpBeanRegistryBuildService"; + /** * The project bean registry. */ @@ -27,4 +33,21 @@ public interface Params extends BuildServiceParameters { Property getBeanRegistry(); } + + /** + * Gets the name of the build service instance registered in the given project. + * + * @param project Project. + * @return Name. + */ + public static String buildName(final Project project) { + return BEAN_REGISTRY_BUILD_SERVICE_NAME_PREFIX + Base64 + .getEncoder() + .encodeToString(project + .getLayout() + .getProjectDirectory() + .getAsFile() + .getAbsolutePath() + .getBytes(StandardCharsets.UTF_8)); + } }