X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fpizzaapplication%2Fapplication%2FPizzaServiceApplication.java;h=d8253814c2c7a000741ccc59f10bb1774ccbd29c;hb=ad3a217eb62ab36fab7004786b42e44edc063171;hp=c74d2592255c9d2053d95ddbc95e20c8997e471c;hpb=5d01eaa7ecfc3b341eb72f8342ad2cd5a582564a;p=pizzaservice-war.git diff --git a/src/java/org/mxchange/pizzaapplication/application/PizzaServiceApplication.java b/src/java/org/mxchange/pizzaapplication/application/PizzaServiceApplication.java index c74d2592..d8253814 100644 --- a/src/java/org/mxchange/pizzaapplication/application/PizzaServiceApplication.java +++ b/src/java/org/mxchange/pizzaapplication/application/PizzaServiceApplication.java @@ -93,13 +93,20 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P if (object instanceof PizzaApplication) { // Instance is set, so casting should work instance = (PizzaApplication) object; + + // Debug message + instance.getLogger().debug(MessageFormat.format("Using existing instance {0} ...", object)); //NOI18N } else if (object instanceof Object) { // Not correct instance throw new ServletException("app is not set correctly"); //NOI18N } else { try { // "service" is null, so initialize it - instance = new PizzaServiceApplication(context); + instance = new PizzaServiceApplication(); + instance.init(context); + + // Debug message + instance.getLogger().debug(MessageFormat.format("Created new instance {0} ...", object)); //NOI18N } catch (final UnsupportedDatabaseBackendException | SQLException | IOException | BadTokenException ex) { throw new ServletException(ex); } @@ -125,12 +132,8 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P new PizzaServiceApplication().start(); } - /** - * Constructor with servet configuration - * - * @param context Servlet context - */ - private PizzaServiceApplication (final ServletContext context) throws UnsupportedDatabaseBackendException, SQLException, IOException, BadTokenException { + @Override + public void init (final ServletContext context) throws UnsupportedDatabaseBackendException, SQLException, IOException, BadTokenException { // Temporary initialize default bundle // @TODO The JSF may have better internatialization support this.initBundle(); @@ -366,7 +369,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P } // Get attribute - Object object = this.getValueFromSession(product, session, HTTP_PARAM_CHOOSE); + Object object = this.getValueFromSession(product, session, HTTP_PARAM_ITEM_ID); // Is the object null? if (object == null) { @@ -403,8 +406,14 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P throw new NullPointerException("session is null"); //NOI18N } + // Get "enabled" from request scope + Boolean enabled = Boolean.parseBoolean((String) request.getAttribute("enabled")); //NOI18N + + // Debug message + this.getLogger().debug(MessageFormat.format("enabled={0}", enabled)); //NOI18N + // Is something selected? - if (this.calculateTotalAmount(request, session) > 0) { + if ((enabled) || (this.calculateTotalAmount(request, session) > 0)) { // Trace message this.getLogger().trace("Returning empty string - EXIT!"); //NOI18N @@ -833,7 +842,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P // Mark it as ordered by setting flag this.getLogger().debug(MessageFormat.format("Marking product={0} as choosen.", product.getId())); //NOI18N - this.setValueInSession(product, session, HTTP_PARAM_CHOOSE, "1"); //NOI18N + this.setValueInSession(product, session, HTTP_PARAM_ITEM_ID, "1"); //NOI18N // Trace message this.getLogger().trace("EXIT!"); //NOI18N @@ -910,7 +919,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P // Mark it as ordered by setting flag this.getLogger().debug(MessageFormat.format("Unmarking product={0} as choosen.", product.getId())); //NOI18N - this.clearSessionAttribute(product, session, HTTP_PARAM_CHOOSE); + this.clearSessionAttribute(product, session, HTTP_PARAM_ITEM_ID); // Trace message this.getLogger().trace("EXIT!"); //NOI18N @@ -1056,14 +1065,14 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P } // Get reqzest element - object = request.getParameter(String.format(HTTP_PARAM_MASK, HTTP_PARAM_CHOOSE, product.getId())); + object = request.getParameter(String.format(HTTP_PARAM_MASK, HTTP_PARAM_ITEM_ID, product.getId())); this.getLogger().debug(MessageFormat.format("product={0},object={1}", product.getId(), object)); //NOI18N // Is it null? if (object == null) { // Unset session this.getLogger().debug(MessageFormat.format("Unsetting session for product={0} ...", product.getId())); //NOI18N - this.clearSessionAttribute(product, session, HTTP_PARAM_CHOOSE); + this.clearSessionAttribute(product, session, HTTP_PARAM_ITEM_ID); this.clearSessionAttribute(product, session, HTTP_PARAM_AMOUNT); // Return empty string @@ -1071,7 +1080,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P } // Then set it in session - this.setValueInSession(product, session, HTTP_PARAM_CHOOSE, object); + this.setValueInSession(product, session, HTTP_PARAM_ITEM_ID, object); // Cast to string and return it this.getLogger().debug(MessageFormat.format("product={0} - Returning {1} ...", product.getId(), object)); //NOI18N @@ -1115,7 +1124,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P * * @param product Product instance * @param session HttpSession instance - * @return + * @return Whether the product has been ordered */ private boolean isProductOrdered (final Product product, final HttpSession session) { // Trace message @@ -1159,7 +1168,10 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P try { // Init properties this.initProperties(); - } catch (final IOException ex) { + + // And frontends + this.initDatabaseFrontends(); + } catch (final IOException | UnsupportedDatabaseBackendException | SQLException ex) { // Abort here this.abortProgramWithException(ex); } @@ -1302,7 +1314,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P String available = request.getParameter(PizzaProductDatabaseConstants.COLUMN_AVAILABLE); // Debug message - this.getLogger().debug(MessageFormat.format("title={0},price={1},category={2},available={3}", title, price, category, available)); + this.getLogger().debug(MessageFormat.format("title={0},price={1},category={2},available={3}", title, price, category, available)); //NOI18N // Variables for converting Long id = null; @@ -1407,12 +1419,12 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P @Override public String getPrintableProduktCategory (final Product product) throws ServletException { // Trace message - this.getLogger().trace("product=" + product + " - CALLED!"); + this.getLogger().trace(MessageFormat.format("product={0} - CALLED!", product)); //NOI18N // product must not be null if (product == null) { // Abort here - throw new NullPointerException("product is null"); + throw new NullPointerException("product is null"); //NOI18N } // Declare category @@ -1426,7 +1438,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P } // Debug message - this.getLogger().debug("category=" + category); + this.getLogger().debug(MessageFormat.format("category={0}", category)); //NOI18N String title = null; try { @@ -1438,7 +1450,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P } // Trace message - this.getLogger().trace("title=" + title + " - EXIT!"); + this.getLogger().trace(MessageFormat.format("title={0} - EXIT!", title)); //NOI18N // Return it return title; @@ -1459,7 +1471,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P */ private boolean isProductTitleUsed (final HttpServletRequest request) throws IOException, SQLException, BadTokenException, CorruptedDatabaseFileException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { // Trace message - this.getLogger().trace("request=" + request + " - CALLED!"); + this.getLogger().trace(MessageFormat.format("request={0} - CALLED!", request)); //NOI18N // Init title String title = request.getParameter(PizzaProductDatabaseConstants.COLUMN_TITLE); @@ -1467,7 +1479,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P // request must not be null and "title" must be found and non-empty if (request == null) { // Abort here - throw new NullPointerException("request is null"); + throw new NullPointerException("request is null"); //NOI18N } else if (title == null) { // title is not set throw new IllegalArgumentException(MessageFormat.format("{0} is not set.", PizzaProductDatabaseConstants.COLUMN_TITLE)); //NOI18N @@ -1480,7 +1492,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P boolean isUsed = this.isProductTitleUsed(title); // Trace message - this.getLogger().trace("isUsed=" + isUsed + " - EXIT!"); + this.getLogger().trace(MessageFormat.format("isUsed={0} - EXIT!", isUsed)); //NOI18N // Return it return isUsed; @@ -1495,15 +1507,15 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P @Override public void doAdminHandleProductForms (final HttpServletRequest request, final HttpServletResponse response) throws ServletException { // Trace message - this.getLogger().trace("request=" + request + ",response=" + response + " - CALLED!"); + this.getLogger().trace(MessageFormat.format("request={0},response={1} - CALLED!", request, response)); //NOI18N // request and response must both be set if (request == null) { // request is null - throw new NullPointerException("request is null"); + throw new NullPointerException("request is null"); //NOI18N } else if (response == null) { // response is null - throw new NullPointerException("response is null"); + throw new NullPointerException("response is null"); //NOI18N } // Try this operations @@ -1515,10 +1527,10 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P // Is it already added? if (this.isProductTitleUsed(request)) { // Debug message - this.getLogger().debug("Already used, redirecting ..."); + this.getLogger().debug("Already used, redirecting ..."); //NOI18N // Already added, so redirect here, else a ServletException will be thrown - response.sendRedirect(request.getContextPath() + "/admin/product.jsp?already=1"); + response.sendRedirect(String.format("%s/admin/product.jsp?already=1", request.getContextPath())); //NOI18N } else { // Add new product this.doAdminAddProduct(request); @@ -1539,7 +1551,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P } // Trace message - this.getLogger().trace("EXIT!"); + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -1551,15 +1563,15 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P @Override public void doAdminHandleCategoryForms (final HttpServletRequest request, final HttpServletResponse response) throws ServletException { // Trace message - this.getLogger().trace("request=" + request + ",response=" + response + " - CALLED!"); + this.getLogger().trace(MessageFormat.format("request={0},response={1} - CALLED!", request, response)); //NOI18N // request and response must both be set if (request == null) { // request is null - throw new NullPointerException("request is null"); + throw new NullPointerException("request is null"); //NOI18N } else if (response == null) { // response is null - throw new NullPointerException("response is null"); + throw new NullPointerException("response is null"); //NOI18N } // Try this operations @@ -1571,10 +1583,10 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P // Is the category title already used? if (this.isCategoryTitleUsed(request)) { // Debug message - this.getLogger().debug("Already used, redirecting ..."); + this.getLogger().debug("Already used, redirecting ..."); //NOI18N // Already added, so redirect here, else a ServletException will be thrown - response.sendRedirect(request.getContextPath() + "/admin/category.jsp?already=1"); + response.sendRedirect(String.format("%s/admin/category.jsp?already=1", request.getContextPath())); //NOI18N } else { // Add new category this.doAdminAddCategory(request); @@ -1595,7 +1607,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P } // Trace message - this.getLogger().trace("EXIT!"); + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -1613,7 +1625,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P */ private boolean isCategoryTitleUsed (final HttpServletRequest request) throws IOException, SQLException, BadTokenException, CorruptedDatabaseFileException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { // Trace message - this.getLogger().trace("request=" + request + " - CALLED!"); + this.getLogger().trace(MessageFormat.format("request={0} - CALLED!", request)); //NOI18N // Init title String title = request.getParameter(PizzaCategoryDatabaseConstants.COLUMN_TITLE); @@ -1621,7 +1633,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P // request must not be null and "title" must be found and non-empty if (request == null) { // Abort here - throw new NullPointerException("request is null"); + throw new NullPointerException("request is null"); //NOI18N } else if (title == null) { // title is not set throw new IllegalArgumentException(MessageFormat.format("{0} is not set.", PizzaCategoryDatabaseConstants.COLUMN_TITLE)); //NOI18N @@ -1634,7 +1646,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P boolean isUsed = this.isCategoryTitleUsed(title); // Trace message - this.getLogger().trace("isUsed=" + isUsed + " - EXIT!"); + this.getLogger().trace(MessageFormat.format("isUsed={0} - EXIT!", isUsed)); //NOI18N // Return it return isUsed;