Roland Haeder [Mon, 24 Aug 2015 09:49:47 +0000 (11:49 +0200)]
Converted private constructor to public init() method with context, still this cannot be converted to a bean as the context is somehow needed. :-(
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Sat, 22 Aug 2015 11:25:31 +0000 (13:25 +0200)]
The item bean must go into request scope, else all added items have same amount + began to cleanup rudimentary JSPs for a basket-based approach
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Thu, 20 Aug 2015 12:26:09 +0000 (14:26 +0200)]
update jcore.jar ... Yes, maybe a lot more updates now. This way the application is independent from latest jcore updates, means it is decentralized. If you add jcore as a project dependency, the application becomes directly depending on latest changes in jcore which centralizes it.
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Wed, 19 Aug 2015 15:38:31 +0000 (17:38 +0200)]
Some fixes:
- fixes for `updated` column as MariaDB doesn't seem to like ON UPDATE CURRENT_TIMESTAMP on one column *and* DEFAULT CURRENT_TIMESTAMP on other column in same table
- Again some properties fixed
- updated 'jcore.jar'
Roland Haeder [Wed, 19 Aug 2015 10:00:14 +0000 (12:00 +0200)]
Changed field 'surname' to 'firstName' as surname is an other word for family name + updated 'jcore.lib'
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Tue, 18 Aug 2015 13:22:35 +0000 (15:22 +0200)]
Continued with project:
- added filter for handling added basket items
- added frontend class for baskets (not their items) as they may be stored in database for later reusage
- Renamed "FooHttpFilter" to "FooServletFilter" as they actually are servlet filters
- Other minor improvements
- BaseServletFilter is now abstract and implements Filter, so all filters extendending (and re-implementing Filter) must implement at least doFilter(). Please call chain.doFilter() in your own filter
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Tue, 18 Aug 2015 09:45:36 +0000 (11:45 +0200)]
Continued with project:
- no flush, maybe better?
- space removed
- Renamed variable "value" to "customerGender" for making it more clear
- Some more debug logging
- Added missing error handler (but commented out for developing)
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Tue, 18 Aug 2015 04:59:47 +0000 (06:59 +0200)]
Continued with project:
- started to rewrite to a more flexible solution: a general item basket that will accept OrderableItem instances
- added parameter "type" for upcoming basket feature
- renamed "choose" to "id", this old thing will be completely rewritten
- added new script "add_item.jsp"
- added some more CSS for footer navigation
- Accessing the JSPs directly may not be a good idea, better is to have aliases (more about that later)
- added generic interface OrderableItem and BasketItem class (unfinished)
- added links in footer.jsp for new pages "privacy.jsp", "terms.jsp" and "imprint.jsp"
- using JSTL "fmt" for formatting currency values
- added project's license "GPL3"
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Mon, 17 Aug 2015 13:45:28 +0000 (15:45 +0200)]
Continued with project:
- added new pages "privacy.jsp" and "terms.jsp"
- form "register.jsp" is basicly finished
- added more CSS classes
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Mon, 17 Aug 2015 07:30:17 +0000 (09:30 +0200)]
Replace multiple-added strings/objects into MessageFormat.format() call to reduce string objects in string pool + ignored them for internationalization
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Sat, 15 Aug 2015 11:24:47 +0000 (13:24 +0200)]
Continued with project:
- added doAdminHandleCategoryForms() and doAdminHandleProductForms()
- isCategoryTitleUsed() and isProductTitleUsed() are now private and continue to throw all "low-level" exceptions and never a ServletException as this is thrown by publicc access methods (which servets may invoke)
Roland Haeder [Sat, 15 Aug 2015 10:25:32 +0000 (12:25 +0200)]
Continued with project:
- added showing product's category in admin area
- added method getPrintableProduktCategory() for this
- fixed logger XML file
- added method getCategory() of given Product instance to category database frontend
- added method isProductTitleUsed() to pre-check if the title has been used. This avoids an exception thrown in doAdminAddProduct() which expects that the product's title is not yet used.
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Fri, 14 Aug 2015 19:51:00 +0000 (21:51 +0200)]
Added more thrown exception (yes, again)Changed parameter type from String to Object + implemented one setter
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Fri, 14 Aug 2015 18:36:36 +0000 (20:36 +0200)]
Continued with project:
- moved PizzaProduct to own package and created BaseProduct from it. This class and interface Product are possible candidates for jcore
- Added Apache commons jar (for new jcore changes for having a non-proprietary implementation of BASE64 encoding and decoding
- Added newly thrown exception CorruptedDatabaseFileException
- Ignored some strings for internationalization
- Id needs to be initialized with zero, not null
- Method toStoreable() has been fully rewritten to a more flexible solution
- Removed some deprecated/unused methods
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Fri, 14 Aug 2015 13:39:12 +0000 (15:39 +0200)]
Continued with project:
- added install.sql
- Renamed method getProducts() to getAvailableProducts()
- Added method getAllProducts()
- Renamed parseLineToCategory() and parseLineToProduct() to parseLine()
- All products are now comparable + compareTo() implemented in BaseProduct
- Added column "id" for product database
- Implemented getPrintableProduktAvailability() very rudely
- Ids must be parsed as Long, not Integer, as the BASE64-encoded database backend does parse it so
- Added "available" to HTML form and all relevant methods
- Added method decodedTitle() to have a UTF8-decoded title
- Constructor PizzaProduct (id, title, price) is now deprecated
- Some other cleanups
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Fri, 14 Aug 2015 12:46:08 +0000 (14:46 +0200)]
Continued with project:
- Used "category" instead of "id" for category selection box
- Added method addProduct()
- Added method isProductTitleUsed()
- Added new exception ProductTitleAlreadyUsedException
- Changed parameter type of "parent" to Integer as it can be done (better type-hint)
- Rewrote addCategory() a bit for this
- Added database columns "category", "price" and "title" for products
- Renamed method isCategoryUsed() to isCategoryTitleUsed()
- Deleted do_products.jsp
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Fri, 14 Aug 2015 11:22:29 +0000 (13:22 +0200)]
Continued with project:
- Added parent_category_selection_box.jsp which holds the selection box for parent categories
- Added method generateLinkForParent()
- Fixed wrong use of COLUMN_PARENT for title
- Catched newly thrown CategoryTitleAlreadyUsedException
Roland Haeder [Fri, 14 Aug 2015 10:05:07 +0000 (12:05 +0200)]
Continued with project:
- Added new class BaseCategory and ProductCategory
- Implemented newly required method emptyStringToNull() in category database frontend
- Half-implemented newly required method emptyStringToNull() in product database frontend (unfinished)
- Category is now Comparable and asks for compareTo() method as well
- Added method addCategory() to database frontend
- doAdminAddCategory() should be "basicly finished" by now
- Better implement generateLinkForParent() to generate a HTML link for parent id. This links to product.jsp?category_id=x
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Fri, 14 Aug 2015 06:14:47 +0000 (08:14 +0200)]
Continued with project:
- Added method isCategoryUsed() and implemented it rudely in frontend, too.
- doAdminAddCategory() does now check request parameter if they exist and are not empty
Roland Haeder [Thu, 13 Aug 2015 11:42:33 +0000 (13:42 +0200)]
Continued with project:
- added doAdminAddCategory() and doAdminAddProduct()
- it is getParameter() for HttpServletRequest instances to get the actual POST/GET *parameter*
- Ignored more strings for internationalization
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Thu, 13 Aug 2015 11:21:21 +0000 (13:21 +0200)]
Continued with project:
- added placeholder class for category datbase constants
- added stub JSPs for handling category and product requests in admin area
- improved category handling a little more
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Thu, 13 Aug 2015 10:51:46 +0000 (12:51 +0200)]
Continued with project:
- added thrown exceptions
- Very rude implementation of getResultFromSet()
- getProducts() and getCategories() now only throw ServletException
- The above change allows to remove the try-catch block
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Thu, 13 Aug 2015 08:41:26 +0000 (10:41 +0200)]
Continued with project:
- Added new frontend class and interface for categories + rewritings
- Used <c:forEach> instead of for-loop where possible, else a while() loop has to be used with iterator.hasNext() and iterator.next()
Roland Haeder [Thu, 13 Aug 2015 07:37:43 +0000 (09:37 +0200)]
Continued with project:
- Added menu item (and JSP) for categories
- Renamed JSP to get rid of plural
- Started with refactoring of application, the whole product (and now category) list would be kept in RAM which is far to much wasting
- Got rid of getUnmarkedProducts(), better use generic getProducts()
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Wed, 12 Aug 2015 12:35:40 +0000 (14:35 +0200)]
Continued with project:
- Method getProducts() throws now more exceptions (from low-level classes)
- These need to be thrown until they reach the application server's exception handler
- Temporary commented out error pages
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Wed, 12 Aug 2015 11:48:30 +0000 (13:48 +0200)]
Continued with project:
- Added database.backend.storagepath for file-based database backends (very simple)
- Used getRealPath() to get server's full web path, but went 2 up to get away from web-reachable path
- Added catching of more thrown exceptions
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Wed, 12 Aug 2015 10:28:35 +0000 (12:28 +0200)]
Continued with project:
- Moved some classes to proper location
- Removed no longer glassfish-specific character encoding, because ..
- Added filter for setting character encoding to UTF-8
- Added "data" directory + ignored all files in it
- Rewrote initialization of properties so the context parameter from web.xml can be used to set needed properties for jcore database backend. Still this is not so satifying, maybe the method needs to be moved to jcore?
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Tue, 11 Aug 2015 12:06:41 +0000 (14:06 +0200)]
Continued with project:
- Moved call of markProductAsOrdered() to do_order.jsp
- Logged more data in some debug/trace messages
- If choose[product] is set in session, it can only be unset now, this saves some calls
- Added some trace messages
- Removed synchronized() check
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Tue, 11 Aug 2015 11:09:47 +0000 (13:09 +0200)]
Continued:
- Moved login/register to own path /customer/
- Added "static" include "login_form.jsp" and "gender_selection_box.jsp"
- Added form handler "do_preview.jsp" and moved code from preview.jsp to it
- style.css should be referenced with full path so all pages can have same HTML code
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Tue, 11 Aug 2015 09:22:13 +0000 (11:22 +0200)]
Now that instance product has no method to mark it as choosen (bad idea as all users will have it choosen then) there needs to be added a new method for this
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Mon, 10 Aug 2015 13:16:45 +0000 (15:16 +0200)]
Continued with project:
- I had a misunderstanding how beans work, so now it is fixed
- Always try to write against interfaces and also check against them (instanceof)
- Gender can also be taken directly from customer bean
- Use customer bean instead of ugly getPrintableValeFromSession() calls
- some other improvements
Signed-off-by:Roland Häder <roland@mxchange.org>
Roland Haeder [Fri, 7 Aug 2015 12:54:53 +0000 (14:54 +0200)]
Continued with project:
- rewrote iteration over Contact fields with an iterator from Map.Entry
- added default values in orderjsp (to output session-stored values)
- introduced getPrintableValueFromSession() which returns a value from session key or an empty string for null
- introduced getValueFromSession() which is a low-level method to get a value from session key (but sychronized)
Signed-off-by:Roland Häder <roland@mxchange.org>