diff --git a/.gitignore b/.gitignore index f214db16..f5c018eb 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ hs_err_pid* # VS Code / Eclipse artefacts .settings/ .vscode/ +.idea/ .classpath .factorypath .project diff --git a/payara-cloud-maven-plugin/src/main/java/fish/payara/maven/plugins/cloud/UploadMojo.java b/payara-cloud-maven-plugin/src/main/java/fish/payara/maven/plugins/cloud/UploadMojo.java new file mode 100644 index 00000000..28992563 --- /dev/null +++ b/payara-cloud-maven-plugin/src/main/java/fish/payara/maven/plugins/cloud/UploadMojo.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2024 Payara Foundation and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://github.com/payara/Payara/blob/master/LICENSE.txt + * See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at glassfish/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * The Payara Foundation designates this particular file as subject to the "Classpath" + * exception as provided by the Payara Foundation in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ +package fish.payara.maven.plugins.cloud; + +import fish.payara.tools.cloud.ApplicationContext; +import fish.payara.tools.cloud.DeployApplication; +import fish.payara.tools.cloud.UploadApplication; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; + +import java.io.File; + +/** + * @author Gaurav Gupta + */ +@Mojo(name = "upload") +public class UploadMojo extends BasePayaraMojo { + + + @Parameter(defaultValue = "${project.build.directory}/${project.build.finalName}.war", property = "applicationPath", required = true) + protected File applicationPath; + + @Parameter(property = "deploy", defaultValue = "false") + protected Boolean deploy; + + protected ApplicationContext context; + + @Override + public void execute() throws MojoExecutionException { + if (context == null) { + context = getApplicationContextBuilder().build(); + } + try { + if (skip) { + getLog().info("Upload mojo execution is skipped"); + return; + } + UploadApplication controller = new UploadApplication(context, applicationPath, deploy); + controller.call(); + }catch (Exception ex) { + context.getOutput().error(ex.toString(), ex); + } + } + +}