diff --git a/deegree-client/deegree-jsf-core/src/main/java/org/deegree/client/core/utils/ActionParams.java b/deegree-client/deegree-jsf-core/src/main/java/org/deegree/client/core/utils/ActionParams.java index cbca050eb77..2f82132d1db 100644 --- a/deegree-client/deegree-jsf-core/src/main/java/org/deegree/client/core/utils/ActionParams.java +++ b/deegree-client/deegree-jsf-core/src/main/java/org/deegree/client/core/utils/ActionParams.java @@ -34,73 +34,70 @@ ----------------------------------------------------------------------------*/ package org.deegree.client.core.utils; -import jakarta.el.ELContext; -import jakarta.el.ELResolver; import jakarta.enterprise.context.RequestScoped; -import jakarta.faces.application.Application; -import jakarta.faces.context.FacesContext; +import jakarta.faces.annotation.ManagedProperty; import jakarta.inject.Named; import java.io.Serializable; /** - * Utility class to provide a workaround for the missing parameters for action expressions - * in JSF versions before 2.2. + * Utility class to provide access to multiple parameters for action expressions. * * @author Markus Schneider + * @author Torsten Friebe */ @Named("actionParams") @RequestScoped public class ActionParams implements Serializable { + @ManagedProperty("#{param.param1}") private Object param1; + @ManagedProperty("#{param.param2}") private Object param2; + @ManagedProperty("#{param.param3}") private Object param3; + @ManagedProperty("#{param.param4}") private Object param4; public void setParam1(Object param1) { this.param1 = param1; } - public static Object getParam1() { - return getInstance().param1; + public Object getParam1() { + return param1; } public void setParam2(Object param2) { this.param2 = param2; } - public static Object getParam2() { - return getInstance().param2; + public Object getParam2() { + return param2; } public void setParam3(Object param3) { this.param3 = param3; } - public static Object getParam3() { - return getInstance().param3; + public Object getParam3() { + return param3; } public void setParam4(Object param4) { this.param4 = param4; } - public static Object getParam4() { - return getInstance().param4; + public Object getParam4() { + return param4; } - private static ActionParams getInstance() { - FacesContext facesContext = FacesContext.getCurrentInstance(); - Application application = facesContext.getApplication(); - - ELResolver elResolver = application.getELResolver(); - ELContext elContext = facesContext.getELContext(); - - return (ActionParams) elResolver.getValue(elContext, null, "actionParams"); + @Override + public String toString() { + return "ActionParams{" + "param1=" + param1 + ", param2=" + param2 + ", param3=" + param3 + ", param4=" + param4 + + '}'; } } \ No newline at end of file diff --git a/deegree-services/deegree-webservices/src/main/java/org/deegree/console/connection/sql/ConnectionTester.java b/deegree-services/deegree-webservices/src/main/java/org/deegree/console/connection/sql/ConnectionTester.java index 48041e84919..77abffbf90d 100644 --- a/deegree-services/deegree-webservices/src/main/java/org/deegree/console/connection/sql/ConnectionTester.java +++ b/deegree-services/deegree-webservices/src/main/java/org/deegree/console/connection/sql/ConnectionTester.java @@ -36,13 +36,13 @@ import static jakarta.faces.application.FacesMessage.SEVERITY_ERROR; import static jakarta.faces.application.FacesMessage.SEVERITY_INFO; -import static org.deegree.client.core.utils.ActionParams.getParam1; import jakarta.enterprise.context.SessionScoped; import jakarta.faces.application.FacesMessage; -import jakarta.faces.context.ExternalContext; import jakarta.faces.context.FacesContext; +import jakarta.inject.Inject; import jakarta.inject.Named; +import org.deegree.client.core.utils.ActionParams; import org.deegree.console.workspace.WorkspaceBean; import org.deegree.db.ConnectionProvider; import org.deegree.db.ConnectionProviderProvider; @@ -61,12 +61,15 @@ @SessionScoped public class ConnectionTester implements Serializable { + @Inject + private ActionParams params; + private Workspace getWorkspace() { return WorkspaceBean.getInstance().getActiveWorkspace().getNewWorkspace(); } public void test() { - String id = (String) getParam1(); + String id = (String) params.getParam1(); try { ConnectionProvider prov = getWorkspace().getResource(ConnectionProviderProvider.class, id); prov.getConnection().close(); @@ -81,7 +84,7 @@ public void test() { } public String testAndSave() { - String id = (String) getParam1(); + String id = (String) params.getParam1(); try { ConnectionProvider prov = getWorkspace().getResource(ConnectionProviderProvider.class, id); prov.getConnection().close(); diff --git a/deegree-services/deegree-webservices/src/main/java/org/deegree/console/workspace/WorkspaceBean.java b/deegree-services/deegree-webservices/src/main/java/org/deegree/console/workspace/WorkspaceBean.java index dca81d61568..05f8d42c109 100644 --- a/deegree-services/deegree-webservices/src/main/java/org/deegree/console/workspace/WorkspaceBean.java +++ b/deegree-services/deegree-webservices/src/main/java/org/deegree/console/workspace/WorkspaceBean.java @@ -38,7 +38,6 @@ import static jakarta.faces.application.FacesMessage.SEVERITY_INFO; import static org.apache.commons.io.IOUtils.closeQuietly; import static org.apache.commons.io.IOUtils.readLines; -import static org.deegree.client.core.utils.ActionParams.getParam1; import static org.deegree.commons.utils.net.HttpUtils.STREAM; import static org.deegree.console.JsfUtils.indicateException; import static org.deegree.services.controller.OGCFrontController.getModulesInfo; @@ -56,14 +55,16 @@ import jakarta.el.ELContext; import jakarta.el.ELResolver; -import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.context.RequestScoped; import jakarta.faces.application.Application; import jakarta.faces.application.FacesMessage; import jakarta.faces.context.FacesContext; +import jakarta.inject.Inject; import jakarta.inject.Named; import org.apache.commons.io.FileUtils; import org.apache.http.HttpResponse; +import org.deegree.client.core.utils.ActionParams; import org.deegree.commons.config.DeegreeWorkspace; import org.deegree.moduleinfo.ModuleInfo; import org.deegree.commons.utils.Pair; @@ -83,7 +84,7 @@ * @since 3.4 */ @Named("workspace") -@ApplicationScoped +@RequestScoped public class WorkspaceBean implements Serializable { private static Logger LOG = LoggerFactory.getLogger(WorkspaceBean.class); @@ -112,6 +113,9 @@ public class WorkspaceBean implements Serializable { private boolean modified; + @Inject + private ActionParams params; + public String getLastMessage() { return lastMessage; } @@ -191,7 +195,8 @@ public List getWorkspaceList() { } public void startWorkspace() { - String wsName = (String) getParam1(); + String wsName = (String) params.getParam1(); + LOG.debug("Starting workspace {}", wsName); try { OGCFrontController fc = OGCFrontController.getInstance(); fc.setActiveWorkspaceName(wsName); @@ -204,8 +209,9 @@ public void startWorkspace() { } public void deleteWorkspace() throws IOException { - String wsName = (String) getParam1(); + String wsName = (String) params.getParam1(); DeegreeWorkspace dw = DeegreeWorkspace.getInstance(wsName); + LOG.debug("Deleting workspace {}", wsName); if (dw.getLocation().isDirectory()) { FileUtils.deleteDirectory(dw.getLocation()); lastMessage = "Workspace has been deleted."; @@ -232,8 +238,9 @@ public String applyChanges() { } public void downloadWorkspace() { - String wsName = (String) getParam1(); + String wsName = (String) params.getParam1(); String location = workspaceLocations.get(wsName); + LOG.debug("Downloading workspace {}", wsName); InputStream in = null; try { setWorkspaceImportName(wsName); @@ -250,6 +257,8 @@ public void downloadWorkspace() { } private void importWorkspace(String location) { + if (location == null) + throw new IllegalArgumentException("location must not be null"); InputStream in = null; try { URL url = new URL(location); diff --git a/deegree-services/deegree-webservices/src/main/webapp/console/connection/sql/jdbc.xhtml b/deegree-services/deegree-webservices/src/main/webapp/console/connection/sql/jdbc.xhtml index 930de8fc4fe..6d365366357 100644 --- a/deegree-services/deegree-webservices/src/main/webapp/console/connection/sql/jdbc.xhtml +++ b/deegree-services/deegree-webservices/src/main/webapp/console/connection/sql/jdbc.xhtml @@ -55,7 +55,7 @@
- +
diff --git a/deegree-services/deegree-webservices/src/main/webapp/console/connection/sql/jdbcparams.xhtml b/deegree-services/deegree-webservices/src/main/webapp/console/connection/sql/jdbcparams.xhtml index 7150f903ad2..cdb3c937489 100644 --- a/deegree-services/deegree-webservices/src/main/webapp/console/connection/sql/jdbcparams.xhtml +++ b/deegree-services/deegree-webservices/src/main/webapp/console/connection/sql/jdbcparams.xhtml @@ -69,7 +69,7 @@
- + diff --git a/deegree-services/deegree-webservices/src/main/webapp/console/workspace/index.xhtml b/deegree-services/deegree-webservices/src/main/webapp/console/workspace/index.xhtml index 7644fa9a102..c4eeced90bd 100644 --- a/deegree-services/deegree-webservices/src/main/webapp/console/workspace/index.xhtml +++ b/deegree-services/deegree-webservices/src/main/webapp/console/workspace/index.xhtml @@ -36,12 +36,12 @@ - + - + @@ -58,7 +58,7 @@ - +