From d84242c4a9f089f596b24535356f3a30301aab8b Mon Sep 17 00:00:00 2001 From: Andrew Pielage Date: Mon, 2 Sep 2019 16:13:45 +0100 Subject: [PATCH 1/3] PAYARA-4096 Allow generating instance names from admin console --- appserver/admingui/cluster/osgi.bundle | 2 +- appserver/admingui/cluster/pom.xml | 6 ++++ .../admingui/PayaraClusterHandlers.java | 35 +++++++++++++++++++ .../src/main/resources/shared/instanceNew.inc | 4 ++- 4 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 appserver/admingui/cluster/src/main/java/fish/payara/cluster/admingui/PayaraClusterHandlers.java diff --git a/appserver/admingui/cluster/osgi.bundle b/appserver/admingui/cluster/osgi.bundle index 1928968be2f..8bf7c1177c2 100644 --- a/appserver/admingui/cluster/osgi.bundle +++ b/appserver/admingui/cluster/osgi.bundle @@ -38,4 +38,4 @@ # holder. # --exportcontents: org.glassfish.cluster.admingui; version=${project.osgi.version} +-exportcontents: org.glassfish.cluster.admingui; fish.payara.cluster.admingui; version=${project.osgi.version} diff --git a/appserver/admingui/cluster/pom.xml b/appserver/admingui/cluster/pom.xml index 74f4a077c44..d51f2ea6710 100644 --- a/appserver/admingui/cluster/pom.xml +++ b/appserver/admingui/cluster/pom.xml @@ -89,5 +89,11 @@ ${project.version} provided + + org.glassfish.main.cluster + cluster-common + ${project.version} + provided + diff --git a/appserver/admingui/cluster/src/main/java/fish/payara/cluster/admingui/PayaraClusterHandlers.java b/appserver/admingui/cluster/src/main/java/fish/payara/cluster/admingui/PayaraClusterHandlers.java new file mode 100644 index 00000000000..e10371a7ea8 --- /dev/null +++ b/appserver/admingui/cluster/src/main/java/fish/payara/cluster/admingui/PayaraClusterHandlers.java @@ -0,0 +1,35 @@ +package fish.payara.cluster.admingui; + +import com.sun.jsftemplating.annotation.Handler; +import com.sun.jsftemplating.annotation.HandlerInput; +import com.sun.jsftemplating.annotation.HandlerOutput; +import com.sun.jsftemplating.layout.descriptors.handler.HandlerContext; +import fish.payara.api.admin.config.NameGenerator; +import org.glassfish.admingui.common.util.GuiUtil; + +public class PayaraClusterHandlers { + + @Handler(id = "py.generateInstanceNameIfRequired", + input = { + @HandlerInput(name = "name", type = String.class, required = true), + @HandlerInput(name = "autoname", type = Boolean.class, required = true) + }, + output = { + @HandlerOutput(name = "instanceName", type = String.class)}) + public static void generateInstanceNameIfRequired(HandlerContext handlerCtx) { + String instanceName = (String) handlerCtx.getInputValue("name"); + Boolean autoname = (Boolean) handlerCtx.getInputValue("autoname"); + + if (GuiUtil.isEmpty(instanceName)) { + if (autoname) { + instanceName = NameGenerator.generateName(); + } else { + GuiUtil.prepareAlert("error", "No instance name provided, and Auto Name not enabled", null); + handlerCtx.getFacesContext().renderResponse(); + } + } + + handlerCtx.setOutputValue("instanceName", instanceName); + } + +} diff --git a/appserver/admingui/cluster/src/main/resources/shared/instanceNew.inc b/appserver/admingui/cluster/src/main/resources/shared/instanceNew.inc index 8e9f511a53e..f5f971c1e2f 100644 --- a/appserver/admingui/cluster/src/main/resources/shared/instanceNew.inc +++ b/appserver/admingui/cluster/src/main/resources/shared/instanceNew.inc @@ -51,6 +51,8 @@ - + From c0c74772acad4fb1f2f91fb60833951ebc48980c Mon Sep 17 00:00:00 2001 From: Andrew Pielage Date: Mon, 2 Sep 2019 16:16:08 +0100 Subject: [PATCH 2/3] PAYARA-4096 More accurate dependency --- appserver/admingui/cluster/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appserver/admingui/cluster/pom.xml b/appserver/admingui/cluster/pom.xml index d51f2ea6710..692cae46406 100644 --- a/appserver/admingui/cluster/pom.xml +++ b/appserver/admingui/cluster/pom.xml @@ -90,8 +90,8 @@ provided - org.glassfish.main.cluster - cluster-common + org.glassfish.main.common + glassfish-api ${project.version} provided From b749e39dee9dfb6775c122fc21dc987c4c4eef0f Mon Sep 17 00:00:00 2001 From: Andrew Pielage Date: Thu, 5 Sep 2019 10:44:36 +0100 Subject: [PATCH 3/3] PAYARA-4096 Help text and copyright --- appserver/admingui/cluster/osgi.bundle | 1 + .../admingui/PayaraClusterHandlers.java | 40 +++++++++++++++++++ .../cluster/admingui/Strings.properties | 1 + .../src/main/resources/shared/instanceNew.inc | 4 +- 4 files changed, 44 insertions(+), 2 deletions(-) diff --git a/appserver/admingui/cluster/osgi.bundle b/appserver/admingui/cluster/osgi.bundle index 8bf7c1177c2..0d98a49b539 100644 --- a/appserver/admingui/cluster/osgi.bundle +++ b/appserver/admingui/cluster/osgi.bundle @@ -37,5 +37,6 @@ # only if the new code is made subject to such option by the copyright # holder. # +#Portions Copyright [2019] [Payara Foundation and/or its affiliates.] -exportcontents: org.glassfish.cluster.admingui; fish.payara.cluster.admingui; version=${project.osgi.version} diff --git a/appserver/admingui/cluster/src/main/java/fish/payara/cluster/admingui/PayaraClusterHandlers.java b/appserver/admingui/cluster/src/main/java/fish/payara/cluster/admingui/PayaraClusterHandlers.java index e10371a7ea8..7ec5da79e7d 100644 --- a/appserver/admingui/cluster/src/main/java/fish/payara/cluster/admingui/PayaraClusterHandlers.java +++ b/appserver/admingui/cluster/src/main/java/fish/payara/cluster/admingui/PayaraClusterHandlers.java @@ -1,3 +1,43 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 2019 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.cluster.admingui; import com.sun.jsftemplating.annotation.Handler; diff --git a/appserver/admingui/cluster/src/main/resources/org/glassfish/cluster/admingui/Strings.properties b/appserver/admingui/cluster/src/main/resources/org/glassfish/cluster/admingui/Strings.properties index 7ce115c8cee..338afc0951a 100644 --- a/appserver/admingui/cluster/src/main/resources/org/glassfish/cluster/admingui/Strings.properties +++ b/appserver/admingui/cluster/src/main/resources/org/glassfish/cluster/admingui/Strings.properties @@ -447,3 +447,4 @@ clusters.ejbTimers.TimerCountCol=Timer Count general.serverNameCol=Server Name autoName=Auto Name +autoName.help=When enabled, will generate a name for your instance if none is provided, or will otherwise resolve any name conflicts. diff --git a/appserver/admingui/cluster/src/main/resources/shared/instanceNew.inc b/appserver/admingui/cluster/src/main/resources/shared/instanceNew.inc index f5f971c1e2f..5486f6dfe1e 100644 --- a/appserver/admingui/cluster/src/main/resources/shared/instanceNew.inc +++ b/appserver/admingui/cluster/src/main/resources/shared/instanceNew.inc @@ -38,7 +38,7 @@ only if the new code is made subject to such option by the copyright holder. - Portions Copyright [2018] [Payara Foundation and/or its affiliates] + Portions Copyright [2018-2019] [Payara Foundation and/or its affiliates] --> @@ -127,7 +127,7 @@ - +