You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@batchee.apache.org by Mark Struberg <st...@yahoo.de> on 2014/03/30 21:38:33 UTC

Re: git commit: BATCHEE-16 prevent to use actions when not holding batches - to enhance when embedded but there is another jira for that + reactivating war packaging

romain I'm really -1 to this commit!

It just brings NOTHING and adds just clumsy overhead. What is the benefit of it? You still fail to explain the benefit!
Give me a description of the environment you have and where having an empty WAR is beneficial and I'm good. Until then I gonna revert this.

LieGrue,
strub


On Sunday, 30 March 2014, 21:00, "rmannibucau@apache.org" <rm...@apache.org> wrote:
 
Repository: incubator-batchee
>Updated Branches:
>  refs/heads/master 2523e389a -> 23c4ecae4
>
>
>BATCHEE-16 prevent to use actions when not holding batches - to enhance when embedded but there is another jira for that + reactivating war packaging
>
>
>Project: http://git-wip-us.apache.org/repos/asf/incubator-batchee/repo
>Commit: http://git-wip-us.apache.org/repos/asf/incubator-batchee/commit/23c4ecae
>Tree: http://git-wip-us.apache.org/repos/asf/incubator-batchee/tree/23c4ecae
>Diff: http://git-wip-us.apache.org/repos/asf/incubator-batchee/diff/23c4ecae
>
>Branch: refs/heads/master
>Commit: 23c4ecae4e2c2144cbcc8a719e3c47f2043d0482
>Parents: 2523e38
>Author: Romain Manni-Bucau <rm...@gmail.com>
>Authored: Sun Mar 30 21:00:05 2014 +0200
>Committer: Romain Manni-Bucau <rm...@gmail.com>
>Committed: Sun Mar 30 21:00:05 2014 +0200
>
>----------------------------------------------------------------------
>gui/servlet/pom.xml                             |  1 +
>.../batchee/servlet/JBatchController.java       | 37 +++++++++++++++-----
>.../servlet/JBatchServletInitializer.java       | 15 +++++++-
>.../resources/internal/batchee/read-only.jsp    | 19 ++++++++++
>4 files changed, 63 insertions(+), 9 deletions(-)
>----------------------------------------------------------------------
>
>
>http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/23c4ecae/gui/servlet/pom.xml
>----------------------------------------------------------------------
>diff --git a/gui/servlet/pom.xml b/gui/servlet/pom.xml
>index 7c42298..d635301 100644
>--- a/gui/servlet/pom.xml
>+++ b/gui/servlet/pom.xml
>@@ -28,6 +28,7 @@
>
>   <artifactId>batchee-servlet</artifactId>
>   <name>BatchEE :: GUI :: Servlet</name>
>+  <packaging>war</packaging>
>
>   <dependencies>
>     <dependency>
>
>http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/23c4ecae/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java
>----------------------------------------------------------------------
>diff --git a/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java b/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java
>index 87cf32b..aaab084 100644
>--- a/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java
>+++ b/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java
>@@ -61,6 +61,7 @@ public class JBatchController extends HttpServlet {
>     private String context;
>     private String mapping = DEFAULT_MAPPING_SERVLET25;
>     private int executionByPage = DEFAULT_PAGE_SIZE;
>+    private boolean readOnly = false;
>
>     public JBatchController mapping(final String rawMapping) {
>         this.mapping = rawMapping.substring(0, rawMapping.length() - 2); // mapping pattern is /xxx/*
>@@ -72,6 +73,11 @@ public class JBatchController extends HttpServlet {
>         return this;
>     }
>
>+    public JBatchController readOnly(final boolean readOnly) {
>+        this.readOnly = readOnly;
>+        return this;
>+    }
>+
>     @Override
>     public void init(final ServletConfig config) throws ServletException {
>         this.operator = BatchRuntime.getJobOperator();
>@@ -103,15 +109,23 @@ public class JBatchController extends HttpServlet {
>             final String name = URLDecoder.decode(path.substring(VIEW_MAPPING.length()), "UTF-8");
>             view(req, name);
>         } else if (path != null && path.startsWith(START_MAPPING)) {
>-            final String name = URLDecoder.decode(path.substring(START_MAPPING.length()), "UTF-8");
>-            start(req, name);
>-        } else if (path != null && path.startsWith(DO_START_MAPPING)) {
>-            String name = URLDecoder.decode(path.substring(DO_START_MAPPING.length()), "UTF-8");
>-            if (name.isEmpty()) {
>-                name = req.getParameter(FORM_JOB_NAME);
>+            if (readOnly) {
>+                reportReadOnly(req);
>+            } else {
>+                final String name = URLDecoder.decode(path.substring(START_MAPPING.length()), "UTF-8");
>+                start(req, name);
>             }
>+        } else if (path != null && path.startsWith(DO_START_MAPPING)) {
>+            if (readOnly) {
>+                reportReadOnly(req);
>+            } else {
>+                String name = URLDecoder.decode(path.substring(DO_START_MAPPING.length()), "UTF-8");
>+                if (name.isEmpty()) {
>+                    name = req.getParameter(FORM_JOB_NAME);
>+                }
>
>-            doStart(req, name, readProperties(req));
>+                doStart(req, name, readProperties(req));
>+            }
>         } else {
>             listJobs(req);
>         }
>@@ -119,6 +133,10 @@ public class JBatchController extends HttpServlet {
>         req.getRequestDispatcher("/internal/batchee/layout.jsp").forward(req, resp);
>     }
>
>+    private void reportReadOnly(final HttpServletRequest req) {
>+        req.setAttribute("view", "read-only");
>+    }
>+
>     private void view(final HttpServletRequest req, final String name) {
>         req.setAttribute("name", name);
>         req.setAttribute("view", "view");
>@@ -169,7 +187,7 @@ public class JBatchController extends HttpServlet {
>     }
>
>     private void listExecutions(final HttpServletRequest req, final String name, final int pageSize, final int inStart) {
>-        { // can be an auto refresh asking for a stop
>+        if (!readOnly) { // can be an auto refresh asking for a stop
>             final String stopId = req.getParameter("stop");
>             if (stopId != null) {
>                 try {
>@@ -180,6 +198,9 @@ public class JBatchController extends HttpServlet {
>                     // no-op
>                 }
>             }
>+        } else {
>+            reportReadOnly(req);
>+            return;
>         }
>
>         final int jobInstanceCount = operator.getJobInstanceCount(name);
>
>http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/23c4ecae/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java
>----------------------------------------------------------------------
>diff --git a/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java b/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java
>index fc1ac72..808ed74 100644
>--- a/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java
>+++ b/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java
>@@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletRequest;
>import javax.servlet.http.HttpServletResponse;
>import java.io.IOException;
>import java.net.HttpURLConnection;
>+import java.util.Collections;
>import java.util.EnumSet;
>import java.util.Set;
>
>@@ -61,7 +62,11 @@ public class JBatchServletInitializer implements ServletContainerInitializer {
>             byPage += byPage;
>         }
>
>-        ctx.addServlet("JBatch Servlet", new JBatchController().mapping(mapping).executionByPage(Integer.parseInt(byPage))).addMapping(mapping);
>+        ctx.addServlet("JBatch Servlet", new JBatchController()
>+                                            .readOnly(isReadOnly(ctx.getClassLoader()))
>+                                            .mapping(mapping)
>+                                            .executionByPage(Integer.parseInt(byPage)))
>+                                            .addMapping(mapping);
>
>         final String activePrivateFilter = ctx.getInitParameter(ACTIVE_PRIVATE_FILTER);
>         if (activePrivateFilter == null || Boolean.parseBoolean(activePrivateFilter)) {
>@@ -70,6 +75,14 @@ public class JBatchServletInitializer implements ServletContainerInitializer {
>         }
>     }
>
>+    private static boolean isReadOnly(final ClassLoader classLoader) {
>+        try {
>+            return Collections.list(classLoader.getResources("META-INF/batch-jobs")).isEmpty();
>+        } catch (final IOException e) {
>+            return false;
>+        }
>+    }
>+
>     public static class PrivateFilter implements Filter {
>         @Override
>         public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
>
>http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/23c4ecae/gui/servlet/src/main/resources/META-INF/resources/internal/batchee/read-only.jsp
>----------------------------------------------------------------------
>diff --git a/gui/servlet/src/main/resources/META-INF/resources/internal/batchee/read-only.jsp b/gui/servlet/src/main/resources/META-INF/resources/internal/batchee/read-only.jsp
>new file mode 100644
>index 0000000..2ddee9a
>--- /dev/null
>+++ b/gui/servlet/src/main/resources/META-INF/resources/internal/batchee/read-only.jsp
>@@ -0,0 +1,19 @@
>+<%--
>+    Licensed to the Apache Software Foundation (ASF) under one or more
>+    contributor license agreements.  See the NOTICE file distributed with
>+    this work for additional information regarding copyright ownership.
>+    The ASF licenses this file to You under the Apache License, Version 2.0
>+    (the "License"); you may not use this file except in compliance with
>+    the License.  You may obtain a copy of the License at
>+
>+      http://www.apache.org/licenses/LICENSE-2.0
>+
>+    Unless required by applicable law or agreed to in writing, software
>+    distributed under the License is distributed on an "AS IS" BASIS,
>+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+    See the License for the specific language governing permissions and
>+    limitations under the License.
>+--%>
>+<%@ page session="false" %>
>+<p>This deployment is read only since deployed out of the JBatch application
>+so you can't run/stop batches.</p>
>
>
>
>

Re: git commit: BATCHEE-16 prevent to use actions when not holding batches - to enhance when embedded but there is another jira for that + reactivating war packaging

Posted by Romain Manni-Bucau <rm...@gmail.com>.
as explained several time as a read only solution the servlet is very
interesting since it just needs to be dropped. Thats what I want
first. To be more concrete if we remove all write action I'm still
fine. It was just convenient to have it but I don't need it yet in my
current workflow.
Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau



2014-03-30 21:38 GMT+02:00 Mark Struberg <st...@yahoo.de>:
> romain I'm really -1 to this commit!
>
> It just brings NOTHING and adds just clumsy overhead. What is the benefit of it? You still fail to explain the benefit!
> Give me a description of the environment you have and where having an empty WAR is beneficial and I'm good. Until then I gonna revert this.
>
> LieGrue,
> strub
>
>
> On Sunday, 30 March 2014, 21:00, "rmannibucau@apache.org" <rm...@apache.org> wrote:
>
> Repository: incubator-batchee
>>Updated Branches:
>>  refs/heads/master 2523e389a -> 23c4ecae4
>>
>>
>>BATCHEE-16 prevent to use actions when not holding batches - to enhance when embedded but there is another jira for that + reactivating war packaging
>>
>>
>>Project: http://git-wip-us.apache.org/repos/asf/incubator-batchee/repo
>>Commit: http://git-wip-us.apache.org/repos/asf/incubator-batchee/commit/23c4ecae
>>Tree: http://git-wip-us.apache.org/repos/asf/incubator-batchee/tree/23c4ecae
>>Diff: http://git-wip-us.apache.org/repos/asf/incubator-batchee/diff/23c4ecae
>>
>>Branch: refs/heads/master
>>Commit: 23c4ecae4e2c2144cbcc8a719e3c47f2043d0482
>>Parents: 2523e38
>>Author: Romain Manni-Bucau <rm...@gmail.com>
>>Authored: Sun Mar 30 21:00:05 2014 +0200
>>Committer: Romain Manni-Bucau <rm...@gmail.com>
>>Committed: Sun Mar 30 21:00:05 2014 +0200
>>
>>----------------------------------------------------------------------
>>gui/servlet/pom.xml                             |  1 +
>>.../batchee/servlet/JBatchController.java       | 37 +++++++++++++++-----
>>.../servlet/JBatchServletInitializer.java       | 15 +++++++-
>>.../resources/internal/batchee/read-only.jsp    | 19 ++++++++++
>>4 files changed, 63 insertions(+), 9 deletions(-)
>>----------------------------------------------------------------------
>>
>>
>>http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/23c4ecae/gui/servlet/pom.xml
>>----------------------------------------------------------------------
>>diff --git a/gui/servlet/pom.xml b/gui/servlet/pom.xml
>>index 7c42298..d635301 100644
>>--- a/gui/servlet/pom.xml
>>+++ b/gui/servlet/pom.xml
>>@@ -28,6 +28,7 @@
>>
>>   <artifactId>batchee-servlet</artifactId>
>>   <name>BatchEE :: GUI :: Servlet</name>
>>+  <packaging>war</packaging>
>>
>>   <dependencies>
>>     <dependency>
>>
>>http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/23c4ecae/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java
>>----------------------------------------------------------------------
>>diff --git a/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java b/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java
>>index 87cf32b..aaab084 100644
>>--- a/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java
>>+++ b/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchController.java
>>@@ -61,6 +61,7 @@ public class JBatchController extends HttpServlet {
>>     private String context;
>>     private String mapping = DEFAULT_MAPPING_SERVLET25;
>>     private int executionByPage = DEFAULT_PAGE_SIZE;
>>+    private boolean readOnly = false;
>>
>>     public JBatchController mapping(final String rawMapping) {
>>         this.mapping = rawMapping.substring(0, rawMapping.length() - 2); // mapping pattern is /xxx/*
>>@@ -72,6 +73,11 @@ public class JBatchController extends HttpServlet {
>>         return this;
>>     }
>>
>>+    public JBatchController readOnly(final boolean readOnly) {
>>+        this.readOnly = readOnly;
>>+        return this;
>>+    }
>>+
>>     @Override
>>     public void init(final ServletConfig config) throws ServletException {
>>         this.operator = BatchRuntime.getJobOperator();
>>@@ -103,15 +109,23 @@ public class JBatchController extends HttpServlet {
>>             final String name = URLDecoder.decode(path.substring(VIEW_MAPPING.length()), "UTF-8");
>>             view(req, name);
>>         } else if (path != null && path.startsWith(START_MAPPING)) {
>>-            final String name = URLDecoder.decode(path.substring(START_MAPPING.length()), "UTF-8");
>>-            start(req, name);
>>-        } else if (path != null && path.startsWith(DO_START_MAPPING)) {
>>-            String name = URLDecoder.decode(path.substring(DO_START_MAPPING.length()), "UTF-8");
>>-            if (name.isEmpty()) {
>>-                name = req.getParameter(FORM_JOB_NAME);
>>+            if (readOnly) {
>>+                reportReadOnly(req);
>>+            } else {
>>+                final String name = URLDecoder.decode(path.substring(START_MAPPING.length()), "UTF-8");
>>+                start(req, name);
>>             }
>>+        } else if (path != null && path.startsWith(DO_START_MAPPING)) {
>>+            if (readOnly) {
>>+                reportReadOnly(req);
>>+            } else {
>>+                String name = URLDecoder.decode(path.substring(DO_START_MAPPING.length()), "UTF-8");
>>+                if (name.isEmpty()) {
>>+                    name = req.getParameter(FORM_JOB_NAME);
>>+                }
>>
>>-            doStart(req, name, readProperties(req));
>>+                doStart(req, name, readProperties(req));
>>+            }
>>         } else {
>>             listJobs(req);
>>         }
>>@@ -119,6 +133,10 @@ public class JBatchController extends HttpServlet {
>>         req.getRequestDispatcher("/internal/batchee/layout.jsp").forward(req, resp);
>>     }
>>
>>+    private void reportReadOnly(final HttpServletRequest req) {
>>+        req.setAttribute("view", "read-only");
>>+    }
>>+
>>     private void view(final HttpServletRequest req, final String name) {
>>         req.setAttribute("name", name);
>>         req.setAttribute("view", "view");
>>@@ -169,7 +187,7 @@ public class JBatchController extends HttpServlet {
>>     }
>>
>>     private void listExecutions(final HttpServletRequest req, final String name, final int pageSize, final int inStart) {
>>-        { // can be an auto refresh asking for a stop
>>+        if (!readOnly) { // can be an auto refresh asking for a stop
>>             final String stopId = req.getParameter("stop");
>>             if (stopId != null) {
>>                 try {
>>@@ -180,6 +198,9 @@ public class JBatchController extends HttpServlet {
>>                     // no-op
>>                 }
>>             }
>>+        } else {
>>+            reportReadOnly(req);
>>+            return;
>>         }
>>
>>         final int jobInstanceCount = operator.getJobInstanceCount(name);
>>
>>http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/23c4ecae/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java
>>----------------------------------------------------------------------
>>diff --git a/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java b/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java
>>index fc1ac72..808ed74 100644
>>--- a/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java
>>+++ b/gui/servlet/src/main/java/org/apache/batchee/servlet/JBatchServletInitializer.java
>>@@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletRequest;
>>import javax.servlet.http.HttpServletResponse;
>>import java.io.IOException;
>>import java.net.HttpURLConnection;
>>+import java.util.Collections;
>>import java.util.EnumSet;
>>import java.util.Set;
>>
>>@@ -61,7 +62,11 @@ public class JBatchServletInitializer implements ServletContainerInitializer {
>>             byPage += byPage;
>>         }
>>
>>-        ctx.addServlet("JBatch Servlet", new JBatchController().mapping(mapping).executionByPage(Integer.parseInt(byPage))).addMapping(mapping);
>>+        ctx.addServlet("JBatch Servlet", new JBatchController()
>>+                                            .readOnly(isReadOnly(ctx.getClassLoader()))
>>+                                            .mapping(mapping)
>>+                                            .executionByPage(Integer.parseInt(byPage)))
>>+                                            .addMapping(mapping);
>>
>>         final String activePrivateFilter = ctx.getInitParameter(ACTIVE_PRIVATE_FILTER);
>>         if (activePrivateFilter == null || Boolean.parseBoolean(activePrivateFilter)) {
>>@@ -70,6 +75,14 @@ public class JBatchServletInitializer implements ServletContainerInitializer {
>>         }
>>     }
>>
>>+    private static boolean isReadOnly(final ClassLoader classLoader) {
>>+        try {
>>+            return Collections.list(classLoader.getResources("META-INF/batch-jobs")).isEmpty();
>>+        } catch (final IOException e) {
>>+            return false;
>>+        }
>>+    }
>>+
>>     public static class PrivateFilter implements Filter {
>>         @Override
>>         public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
>>
>>http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/23c4ecae/gui/servlet/src/main/resources/META-INF/resources/internal/batchee/read-only.jsp
>>----------------------------------------------------------------------
>>diff --git a/gui/servlet/src/main/resources/META-INF/resources/internal/batchee/read-only.jsp b/gui/servlet/src/main/resources/META-INF/resources/internal/batchee/read-only.jsp
>>new file mode 100644
>>index 0000000..2ddee9a
>>--- /dev/null
>>+++ b/gui/servlet/src/main/resources/META-INF/resources/internal/batchee/read-only.jsp
>>@@ -0,0 +1,19 @@
>>+<%--
>>+    Licensed to the Apache Software Foundation (ASF) under one or more
>>+    contributor license agreements.  See the NOTICE file distributed with
>>+    this work for additional information regarding copyright ownership.
>>+    The ASF licenses this file to You under the Apache License, Version 2.0
>>+    (the "License"); you may not use this file except in compliance with
>>+    the License.  You may obtain a copy of the License at
>>+
>>+      http://www.apache.org/licenses/LICENSE-2.0
>>+
>>+    Unless required by applicable law or agreed to in writing, software
>>+    distributed under the License is distributed on an "AS IS" BASIS,
>>+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>>+    See the License for the specific language governing permissions and
>>+    limitations under the License.
>>+--%>
>>+<%@ page session="false" %>
>>+<p>This deployment is read only since deployed out of the JBatch application
>>+so you can't run/stop batches.</p>
>>
>>
>>
>>