Skip to content

Commit

Permalink
Merge pull request #5790 from Pandrex247/FISH-6034
Browse files Browse the repository at this point in the history
FISH-6034 Rework Eclipse Transformer Integration into an Extension
  • Loading branch information
Pandrex247 authored Jul 21, 2022
2 parents c28c2fa + fc3965d commit c41e566
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 136 deletions.
6 changes: 5 additions & 1 deletion nucleus/deployment/admin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
only if the new code is made subject to such option by the copyright
holder.
Portions Copyright [2019] [Payara Foundation and/or its affiliates]
Portions Copyright 2019-2022 Payara Foundation and/or its affiliates
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
Expand Down Expand Up @@ -134,5 +134,9 @@
<groupId>org.eclipse.transformer</groupId>
<artifactId>org.eclipse.transformer.payara</artifactId>
</dependency>
<dependency>
<groupId>fish.payara.deployment.transformer</groupId>
<artifactId>deployment-transformer-api</artifactId>
</dependency>
</dependencies>
</project>

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,14 @@

package org.glassfish.deployment.admin;

import fish.payara.deployment.transformer.api.JakartaNamespaceDeploymentTransformer;
import fish.payara.deployment.transformer.api.JakartaNamespaceDeploymentTransformerConstants;
import fish.payara.nucleus.hotdeploy.HotDeployService;
import fish.payara.nucleus.hotdeploy.ApplicationState;
import com.sun.enterprise.config.serverbeans.*;
import com.sun.enterprise.deploy.shared.ArchiveFactory;
import com.sun.enterprise.deploy.shared.FileArchive;
import com.sun.enterprise.util.LocalStringManagerImpl;
import fish.payara.deployment.admin.PayaraTransformer;
import static fish.payara.deployment.admin.PayaraTransformer.TRANSFORM_NAMESPACE;
import fish.payara.enterprise.config.serverbeans.DeploymentGroup;
import java.io.File;
import java.io.FileOutputStream;
Expand Down Expand Up @@ -510,25 +510,44 @@ public void execute(AdminCommandContext context) {
source(initialContext.getSource())
.archiveHandler(archiveHandler)
.build(initialContext);

Optional<JakartaNamespaceDeploymentTransformer> jakartaNamespaceDeploymentTransformerOptional =
Optional.empty();
try {
jakartaNamespaceDeploymentTransformerOptional = ServiceLoader.load(JakartaNamespaceDeploymentTransformer.class).findFirst();
} catch (NoClassDefFoundError exception) {
// ClassNotFoundException gets thrown if we've found a service but couldn't instantiate it
logger.log(Level.WARNING,
"Caught exception trying to instantiate a deployment transformer, skipping...",
exception);
}

if (jakartaNamespaceDeploymentTransformerOptional.isPresent()) {
JakartaNamespaceDeploymentTransformer jakartaNamespaceDeploymentTransformerService =
jakartaNamespaceDeploymentTransformerOptional.get();
String transformNS = System.getProperty(
JakartaNamespaceDeploymentTransformerConstants.TRANSFORM_NAMESPACE);
Types types = deployment.getDeployableTypes(deploymentContext);
if (Boolean.valueOf(transformNS) || (transformNS == null &&
!jakartaNamespaceDeploymentTransformerService.isJakartaEEApplication(types))) {
span.start(DeploymentTracing.AppStage.TRANSFORM_ARCHIVE);
deploymentContext.getSource().close();
File output = jakartaNamespaceDeploymentTransformerService.transformApplication(
path, context, isDirectoryDeployed);
if (output == null) {
return;
}

String transformNS = System.getProperty(TRANSFORM_NAMESPACE);
Types types = deployment.getDeployableTypes(deploymentContext);
if (Boolean.valueOf(transformNS)) {
span.start(DeploymentTracing.AppStage.TRANSFORM_ARCHIVE);
deploymentContext.getSource().close();
File output = PayaraTransformer.transformApplication(path, context, isDirectoryDeployed);
if (output == null) {
return;
}
deploymentContext.setSource((FileArchive)archiveFactory.createArchive(output));

deploymentContext.setSource((FileArchive)archiveFactory.createArchive(output));

// reset transient and module data of orignal deployed archive
deploymentContext.removeTransientAppMetaData(Types.class.getName());
deploymentContext.removeTransientAppMetaData(Parser.class.getName());
deploymentContext.resetModuleMetaData();
structuredTracing.register(deploymentContext);
// reset transient and module data of orignal deployed archive
deploymentContext.removeTransientAppMetaData(Types.class.getName());
deploymentContext.removeTransientAppMetaData(Parser.class.getName());
deploymentContext.resetModuleMetaData();
structuredTracing.register(deploymentContext);
}
}

// reset the properties (might be null) set by the deployers when undeploying.
if (undeployProps != null) {
deploymentContext.getAppProps().putAll(undeployProps);
Expand Down
8 changes: 7 additions & 1 deletion nucleus/packager/nucleus/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
holder.
-->
<!-- Portions Copyright [2018-2019] Payara Foundation and/or affiliates -->
<!-- Portions Copyright 2018-2022 Payara Foundation and/or affiliates -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
Expand Down Expand Up @@ -127,6 +127,12 @@
<dependency>
<groupId>org.eclipse.transformer</groupId>
<artifactId>org.eclipse.transformer.payara</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>fish.payara.deployment.transformer</groupId>
<artifactId>deployment-transformer-api</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>fish.payara.server.internal.deployment</groupId>
Expand Down
7 changes: 6 additions & 1 deletion nucleus/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -963,7 +963,12 @@ Parent is ${project.parent}</echo>
<dependency>
<groupId>org.eclipse.transformer</groupId>
<artifactId>org.eclipse.transformer.payara</artifactId>
<version>${payara.transformer}</version>
<version>${payara.transformer.version}</version>
</dependency>
<dependency>
<groupId>fish.payara.deployment.transformer</groupId>
<artifactId>deployment-transformer-api</artifactId>
<version>${payara.deployment.transformer.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
Expand Down
5 changes: 3 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
only if the new code is made subject to such option by the copyright
holder.
Portions Copyright [2017-2022] Payara Foundation and/or affiliates
Portions Copyright 2017-2022 Payara Foundation and/or affiliates
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
Expand Down Expand Up @@ -223,7 +223,8 @@
<monitoring-console-process.version>2.0.1</monitoring-console-process.version>
<monitoring-console-webapp.version>2.0.1</monitoring-console-webapp.version>
<validation.xml.root>${project.build.outputDirectory}</validation.xml.root>
<payara.transformer>0.2.7</payara.transformer>
<payara.transformer.version>0.2.7</payara.transformer.version>
<payara.deployment.transformer.version>1.0</payara.deployment.transformer.version>
<osgi.version>7.0.0</osgi.version>
<osgi.dto.version>1.1.1</osgi.dto.version>
</properties>
Expand Down

0 comments on commit c41e566

Please sign in to comment.