From 05f6123f93be6c968829565695621b00f33f15fb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sat, 2 Sep 2017 00:22:54 +0200 Subject: [PATCH] Please cherry-pick: - I accidently (oversaw it) used Converter which is JSF 2.3 (beta currently) way, now I could revert it, but better is to stay. - made all converters/validators that invoke business methods (EJB) managed so the annotation EJB will work again. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../FinancialsCompanyNameValidator.java | 35 +++++-------------- .../PizzaMobileProviderWebRequestBean.java | 2 +- .../PizzaBusinessContactConverter.java | 30 +++------------- .../PizzaCompanyEmployeeConverter.java | 30 +++------------- .../PizzaCompanyHeadquartersConverter.java | 28 +++------------ .../contact/PizzaContactConverter.java | 30 ++++------------ .../country/PizzaCountryConverter.java | 28 +++------------ .../fax/PizzaFaxNumberConverter.java | 28 +++------------ .../PizzaLandLineNumberConverter.java | 28 +++------------ .../mobile/PizzaMobileNumberConverter.java | 30 ++++------------ .../PizzaMobileProviderConverter.java | 29 +++------------ .../converter/user/PizzaUserConverter.java | 28 +++------------ .../PizzaEmailAddressValidator.java | 27 +++----------- .../validator/user/PizzaUserIdValidator.java | 32 ++++------------- 14 files changed, 73 insertions(+), 312 deletions(-) diff --git a/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java b/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java index 41bd9f76..e1f1b854 100644 --- a/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java +++ b/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java @@ -17,16 +17,12 @@ package org.mxchange.jfinancials.validator.business.basicdata; import java.text.MessageFormat; +import javax.ejb.EJB; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; -import javax.faces.convert.ConverterException; import javax.faces.validator.FacesValidator; import javax.faces.validator.ValidatorException; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; -import org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote; import org.mxchange.jcoreee.validator.string.BaseStringValidator; /** @@ -34,18 +30,19 @@ import org.mxchange.jcoreee.validator.string.BaseStringValidator; *

* @author Roland Häder */ -@FacesValidator ("CompanyNameValidator") +@FacesValidator (value = "CompanyNameValidator", managed = true) public class FinancialsCompanyNameValidator extends BaseStringValidator { /** - * Business contact EJB + * Serial number */ - private static BasicCompanyDataSessionBeanRemote BASIC_DATA_BEAN; + private static final long serialVersionUID = 57_283_657_476_561L; /** - * Serial number + * Business contact EJB */ - private static final long serialVersionUID = 57_283_657_476_561L; + @EJB (lookup = "java:global/jfinancials-ejb/businessData!org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote") + private BusinessDataSessionBeanRemote basicDataBean; @Override public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException { @@ -76,24 +73,8 @@ public class FinancialsCompanyNameValidator extends BaseStringValidator { checkExisting = Boolean.parseBoolean((String) attribute); } - // Is the bean not yet set? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == FinancialsCompanyNameValidator.BASIC_DATA_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - FinancialsCompanyNameValidator.BASIC_DATA_BEAN = (BasicCompanyDataSessionBeanRemote) initialContext.lookup("java:global/addressbook-ejb/basicCompanyData!org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote"); //NOI18N - } catch (final NamingException ex) { - // Continue to throw it - throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N - } - } - // Check if name is already used - Boolean nameExists = FinancialsCompanyNameValidator.BASIC_DATA_BEAN.isCompanyNameUsed(companyName); + Boolean nameExists = this.basicDataBean.isCompanyNameUsed(companyName); // Is the user id valid? if ((!nameExists) && (checkExisting)) { diff --git a/src/java/org/mxchange/pizzaapplication/beans/mobileprovider/PizzaMobileProviderWebRequestBean.java b/src/java/org/mxchange/pizzaapplication/beans/mobileprovider/PizzaMobileProviderWebRequestBean.java index 7406a224..b42f1bc1 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/mobileprovider/PizzaMobileProviderWebRequestBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/mobileprovider/PizzaMobileProviderWebRequestBean.java @@ -50,7 +50,7 @@ public class PizzaMobileProviderWebRequestBean extends BasePizzaController imple /** * Remote EJB for mobile providers (regular) */ - @EJB (lookup = "java:global/pizzaservice-ejb/mobileprovider!org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote") + @EJB (lookup = "java:global/pizzaservice-ejb/mobileProvider!org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote") private MobileProviderSingletonBeanRemote mobileRemoteBean; /** diff --git a/src/java/org/mxchange/pizzaapplication/converter/business/basicdata/PizzaBusinessContactConverter.java b/src/java/org/mxchange/pizzaapplication/converter/business/basicdata/PizzaBusinessContactConverter.java index 165d6e78..a1a771f2 100644 --- a/src/java/org/mxchange/pizzaapplication/converter/business/basicdata/PizzaBusinessContactConverter.java +++ b/src/java/org/mxchange/pizzaapplication/converter/business/basicdata/PizzaBusinessContactConverter.java @@ -16,17 +16,12 @@ */ package org.mxchange.pizzaapplication.converter.business.basicdata; -import java.text.MessageFormat; +import javax.ejb.EJB; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.ConverterException; import javax.faces.convert.FacesConverter; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; -import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData; -import org.mxchange.jcontactsbusiness.model.basicdata.BasicCompanyDataSessionBeanRemote; import org.mxchange.jcontactsbusiness.exceptions.basicdata.BasicCompanyDataNotFoundException; /** @@ -34,13 +29,14 @@ import org.mxchange.jcontactsbusiness.exceptions.basicdata.BasicCompanyDataNotFo *

* @author Roland Häder */ -@FacesConverter (value = "BusinessContactConverter") +@FacesConverter ("BusinessContactConverter") public class PizzaBusinessContactConverter implements Converter { /** * Business contact EJB */ - private static BasicCompanyDataSessionBeanRemote BASIC_DATA_BEAN; + @EJB (lookup = "java:global/jfinancials-ejb/businessData!org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote") + private BusinessDataSessionBeanRemote basicDataBean; /** * Default constructor @@ -59,22 +55,6 @@ public class PizzaBusinessContactConverter implements Converter * @author Roland Häder */ -@FacesConverter (value = "CompanyEmployeeConverter") +@FacesConverter ("CompanyEmployeeConverter") public class PizzaCompanyEmployeeConverter implements Converter { /** * CompanyEmployee EJB */ - private static CompanyEmployeeSessionBeanRemote COMPANY_EMPLOYEE_BEAN; + @EJB (lookup = "java:global/jfinancials-ejb/companyEmployee!org.mxchange.jcontactsbusiness.employee.CompanyEmployeeSessionBeanRemote") + private CompanyEmployeeSessionBeanRemote companyEmployeeBean; /** * Default constructor @@ -59,22 +55,6 @@ public class PizzaCompanyEmployeeConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == PizzaCompanyEmployeeConverter.COMPANY_EMPLOYEE_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - PizzaCompanyEmployeeConverter.COMPANY_EMPLOYEE_BEAN = (CompanyEmployeeSessionBeanRemote) initialContext.lookup("java:global/pizzaservice-ejb/companyEmployee!org.mxchange.jcontactsbusiness.model.employee.CompanyEmployeeSessionBeanRemote"); //NOI18N - } catch (final NamingException ex) { - // Continue to throw it - throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N - } - } - // Init instance Employee companyEmployee = null; @@ -83,7 +63,7 @@ public class PizzaCompanyEmployeeConverter implements Converter { Long employeeId = Long.valueOf(submittedValue); // Try to get user instance from it - companyEmployee = PizzaCompanyEmployeeConverter.COMPANY_EMPLOYEE_BEAN.findCompanyEmployeeById(employeeId); + companyEmployee = this.companyEmployeeBean.findCompanyEmployeeById(employeeId); } catch (final NumberFormatException ex) { // Throw again throw new ConverterException(ex); diff --git a/src/java/org/mxchange/pizzaapplication/converter/business/headquarters/PizzaCompanyHeadquartersConverter.java b/src/java/org/mxchange/pizzaapplication/converter/business/headquarters/PizzaCompanyHeadquartersConverter.java index 2bd8e3a4..1233fa4a 100644 --- a/src/java/org/mxchange/pizzaapplication/converter/business/headquarters/PizzaCompanyHeadquartersConverter.java +++ b/src/java/org/mxchange/pizzaapplication/converter/business/headquarters/PizzaCompanyHeadquartersConverter.java @@ -16,15 +16,12 @@ */ package org.mxchange.pizzaapplication.converter.business.headquarters; -import java.text.MessageFormat; +import javax.ejb.EJB; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.ConverterException; import javax.faces.convert.FacesConverter; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; import org.mxchange.jcontactsbusiness.exceptions.headquarters.CompanyHeadquartersNotFoundException; import org.mxchange.jcontactsbusiness.model.headquarters.CompanyHeadquartersSessionBeanRemote; import org.mxchange.jcontactsbusiness.model.headquarters.HeadquartersData; @@ -34,13 +31,14 @@ import org.mxchange.jcontactsbusiness.model.headquarters.HeadquartersData; *

* @author Roland Häder */ -@FacesConverter (value = "CompanyHeadquartersConverter") +@FacesConverter ("CompanyHeadquartersConverter") public class PizzaCompanyHeadquartersConverter implements Converter { /** * CompanyEmployee EJB */ - private static CompanyHeadquartersSessionBeanRemote COMPANY_HEADQUARTERS_BEAN; + @EJB (lookup = "java:global/jfinancials-ejb/companyEmployee!org.mxchange.jcontactsbusiness.headquarters.CompanyHeadquartersSessionBeanRemote") + private CompanyHeadquartersSessionBeanRemote companyHeadquartersBean; /** * Default constructor @@ -59,22 +57,6 @@ public class PizzaCompanyHeadquartersConverter implements Converter valid contact instance *

* @author Roland Häder */ -@FacesConverter (value = "ContactConverter") +@FacesConverter ("ContactConverter") public class PizzaContactConverter implements Converter { /** * User EJB */ - private static ContactSessionBeanRemote CONTACT_BEAN; + @EJB (lookup = "java:global/jfinancials-ejb/contact!org.mxchange.jcontacts.contact.ContactSessionBeanRemote") + private ContactSessionBeanRemote contactBean; /** * Default constructor @@ -59,22 +57,6 @@ public class PizzaContactConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == PizzaContactConverter.CONTACT_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - PizzaContactConverter.CONTACT_BEAN = (ContactSessionBeanRemote) initialContext.lookup("java:global/pizzaapplication-ejb/contact!org.mxchange.jcontacts.model.contact.ContactSessionBeanRemote"); //NOI18N - } catch (final NamingException ex) { - // Continue to throw it - throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N - } - } - // Init instance Contact contact = null; @@ -83,7 +65,7 @@ public class PizzaContactConverter implements Converter { Long contactId = Long.valueOf(submittedValue); // Try to get user instance from it - contact = PizzaContactConverter.CONTACT_BEAN.findContactById(contactId); + contact = this.contactBean.findContactById(contactId); } catch (final NumberFormatException ex) { // Throw again throw new ConverterException(ex); diff --git a/src/java/org/mxchange/pizzaapplication/converter/country/PizzaCountryConverter.java b/src/java/org/mxchange/pizzaapplication/converter/country/PizzaCountryConverter.java index 56e749bb..e63d29f2 100644 --- a/src/java/org/mxchange/pizzaapplication/converter/country/PizzaCountryConverter.java +++ b/src/java/org/mxchange/pizzaapplication/converter/country/PizzaCountryConverter.java @@ -16,17 +16,14 @@ */ package org.mxchange.pizzaapplication.converter.country; -import java.text.MessageFormat; import java.util.List; import java.util.Objects; +import javax.ejb.EJB; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.ConverterException; import javax.faces.convert.FacesConverter; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; import org.mxchange.jcountry.model.data.Country; import org.mxchange.jcountry.model.data.CountrySingletonBeanRemote; @@ -35,13 +32,14 @@ import org.mxchange.jcountry.model.data.CountrySingletonBeanRemote; *

* @author Roland Häder */ -@FacesConverter (value = "CountryConverter") +@FacesConverter ("CountryConverter") public class PizzaCountryConverter implements Converter { /** * Country bean */ - private static CountrySingletonBeanRemote COUNTRY_BEAN; + @EJB (lookup = "java:global/jfinancials-ejb/country!org.mxchange.jcountry.data.CountrySingletonBeanRemote") + private CountrySingletonBeanRemote countryBean; /** * Default constructor @@ -60,24 +58,8 @@ public class PizzaCountryConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == PizzaCountryConverter.COUNTRY_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and country bean - PizzaCountryConverter.COUNTRY_BEAN = (CountrySingletonBeanRemote) initialContext.lookup("java:global/pizzaapplication-ejb/country!org.mxchange.jcountry.model.data.CountrySingletonBeanRemote"); //NOI18N - } catch (final NamingException ex) { - // Continue to throw it - throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N - } - } - // Get full list - List countryList = PizzaCountryConverter.COUNTRY_BEAN.allCountries(); + List countryList = this.countryBean.allCountries(); // Init value Country country = null; diff --git a/src/java/org/mxchange/pizzaapplication/converter/fax/PizzaFaxNumberConverter.java b/src/java/org/mxchange/pizzaapplication/converter/fax/PizzaFaxNumberConverter.java index cbde7f55..7e947b23 100644 --- a/src/java/org/mxchange/pizzaapplication/converter/fax/PizzaFaxNumberConverter.java +++ b/src/java/org/mxchange/pizzaapplication/converter/fax/PizzaFaxNumberConverter.java @@ -16,15 +16,12 @@ */ package org.mxchange.pizzaapplication.converter.fax; -import java.text.MessageFormat; +import javax.ejb.EJB; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.ConverterException; import javax.faces.convert.FacesConverter; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; import org.mxchange.jphone.exceptions.PhoneEntityNotFoundException; import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber; import org.mxchange.jphone.model.phonenumbers.phone.PhoneSessionBeanRemote; @@ -34,13 +31,14 @@ import org.mxchange.jphone.model.phonenumbers.phone.PhoneSessionBeanRemote; *

* @author Roland Häder */ -@FacesConverter (value = "FaxNumberConverter") +@FacesConverter ("FaxNumberConverter") public class PizzaFaxNumberConverter implements Converter { /** * Phone EJB */ - private static PhoneSessionBeanRemote PHONE_BEAN; + @EJB(lookup = "java:global/jfinancials-ejb/phone!org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote") + private PhoneSessionBeanRemote phoneBean; /** * Default constructor @@ -62,22 +60,6 @@ public class PizzaFaxNumberConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == PizzaFaxNumberConverter.PHONE_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - PizzaFaxNumberConverter.PHONE_BEAN = (PhoneSessionBeanRemote) initialContext.lookup("java:global/pizzaapplication-ejb/phone!org.mxchange.jphone.model.phonenumbers.phone.PhoneSessionBeanRemote"); //NOI18N - } catch (final NamingException ex) { - // Continue to throw it - throw new RuntimeException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N - } - } - // Init instance DialableFaxNumber faxNumber = null; @@ -88,7 +70,7 @@ public class PizzaFaxNumberConverter implements Converter { // Log message // @TODO Not possible here: this.loggerBeanLocal.logDebug(MessageFormat.format("{0}.getAsObject: faxNumberId={1}", this.getClass().getSimpleName(), faxNumberId)); //NOI18N // Try to get mobile instance from it - faxNumber = PizzaFaxNumberConverter.PHONE_BEAN.findFaxNumberById(faxNumberId); + faxNumber = this.phoneBean.findFaxNumberById(faxNumberId); } catch (final NumberFormatException ex) { // Throw again throw new ConverterException(ex); diff --git a/src/java/org/mxchange/pizzaapplication/converter/landline/PizzaLandLineNumberConverter.java b/src/java/org/mxchange/pizzaapplication/converter/landline/PizzaLandLineNumberConverter.java index 4ee530f8..fb775054 100644 --- a/src/java/org/mxchange/pizzaapplication/converter/landline/PizzaLandLineNumberConverter.java +++ b/src/java/org/mxchange/pizzaapplication/converter/landline/PizzaLandLineNumberConverter.java @@ -16,15 +16,12 @@ */ package org.mxchange.pizzaapplication.converter.landline; -import java.text.MessageFormat; +import javax.ejb.EJB; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.ConverterException; import javax.faces.convert.FacesConverter; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; import org.mxchange.jphone.exceptions.PhoneEntityNotFoundException; import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber; import org.mxchange.jphone.model.phonenumbers.phone.PhoneSessionBeanRemote; @@ -34,13 +31,14 @@ import org.mxchange.jphone.model.phonenumbers.phone.PhoneSessionBeanRemote; *

* @author Roland Häder */ -@FacesConverter (value = "LandLineNumberConverter") +@FacesConverter ("LandLineNumberConverter") public class PizzaLandLineNumberConverter implements Converter { /** * Phone EJB */ - private static PhoneSessionBeanRemote PHONE_BEAN; + @EJB(lookup = "java:global/jfinancials-ejb/phone!org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote") + private PhoneSessionBeanRemote phoneBean; /** * Default constructor @@ -59,22 +57,6 @@ public class PizzaLandLineNumberConverter implements Converter * @author Roland Häder */ -@FacesConverter (value = "MobileNumberConverter") +@FacesConverter ("MobileNumberConverter") public class PizzaMobileNumberConverter implements Converter { /** * Phone EJB */ - private static PhoneSessionBeanRemote PHONE_BEAN; + @EJB (lookup = "java:global/jfinancials-ejb/phone!org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote") + private PhoneSessionBeanRemote phoneBean; /** * Default constructor @@ -59,22 +57,6 @@ public class PizzaMobileNumberConverter implements Converter { /** * Mobile provider bean */ - private static MobileProviderSingletonBeanRemote MOBILE_PROVIDER_BEAN; + @EJB(lookup = "java:global/jfinancials-ejb/mobileprovider!org.mxchange.jphone.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote") + private MobileProviderSingletonBeanRemote mobileProviderBean; /** * Default constructor @@ -60,24 +57,8 @@ public class PizzaMobileProviderConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == PizzaMobileProviderConverter.MOBILE_PROVIDER_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - /// and mobile provider controller - PizzaMobileProviderConverter.MOBILE_PROVIDER_BEAN = (MobileProviderSingletonBeanRemote) initialContext.lookup("java:global/pizzaapplication-ejb/mobileprovider!org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote"); //NOI18N - } catch (final NamingException ex) { - // Continue to throw it - throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N - } - } - // Get full list - List providerList = PizzaMobileProviderConverter.MOBILE_PROVIDER_BEAN.allMobileProvider(); + List providerList = this.mobileProviderBean.allMobileProviders(); // Init value MobileProvider provider = null; diff --git a/src/java/org/mxchange/pizzaapplication/converter/user/PizzaUserConverter.java b/src/java/org/mxchange/pizzaapplication/converter/user/PizzaUserConverter.java index d7910c07..6a718577 100644 --- a/src/java/org/mxchange/pizzaapplication/converter/user/PizzaUserConverter.java +++ b/src/java/org/mxchange/pizzaapplication/converter/user/PizzaUserConverter.java @@ -16,15 +16,12 @@ */ package org.mxchange.pizzaapplication.converter.user; -import java.text.MessageFormat; +import javax.ejb.EJB; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.ConverterException; import javax.faces.convert.FacesConverter; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; import org.mxchange.jusercore.exceptions.UserNotFoundException; import org.mxchange.jusercore.model.user.User; import org.mxchange.jusercore.model.user.UserSessionBeanRemote; @@ -34,13 +31,14 @@ import org.mxchange.jusercore.model.user.UserSessionBeanRemote; *

* @author Roland Häder */ -@FacesConverter (value = "UserConverter") +@FacesConverter ("UserConverter") public class PizzaUserConverter implements Converter { /** * User EJB */ - private static UserSessionBeanRemote USER_BEAN; + @EJB(lookup = "java:global/jfinancials-ejb/user!org.mxchange.jusercore.model.user.UserSessionBeanRemote") + private UserSessionBeanRemote userBean; /** * Default constructor @@ -59,22 +57,6 @@ public class PizzaUserConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == PizzaUserConverter.USER_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - PizzaUserConverter.USER_BEAN = (UserSessionBeanRemote) initialContext.lookup("java:global/pizzaapplication-ejb/user!org.mxchange.jusercore.model.user.UserSessionBeanRemote"); //NOI18N - } catch (final NamingException ex) { - // Continue to throw it - throw new RuntimeException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N - } - } - // Init instance User user = null; @@ -83,7 +65,7 @@ public class PizzaUserConverter implements Converter { Long userId = Long.valueOf(submittedValue); // Try to get user instance from it - user = PizzaUserConverter.USER_BEAN.findUserById(userId); + user = this.userBean.findUserById(userId); } catch (final NumberFormatException ex) { // Throw again throw new ConverterException(ex); diff --git a/src/java/org/mxchange/pizzaapplication/validator/emailaddress/PizzaEmailAddressValidator.java b/src/java/org/mxchange/pizzaapplication/validator/emailaddress/PizzaEmailAddressValidator.java index a6edb351..9f29d9c8 100644 --- a/src/java/org/mxchange/pizzaapplication/validator/emailaddress/PizzaEmailAddressValidator.java +++ b/src/java/org/mxchange/pizzaapplication/validator/emailaddress/PizzaEmailAddressValidator.java @@ -18,15 +18,13 @@ package org.mxchange.pizzaapplication.validator.emailaddress; import java.text.MessageFormat; import java.util.regex.Pattern; +import javax.ejb.EJB; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.FacesValidator; import javax.faces.validator.ValidatorException; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; -import org.mxchange.jcontacts.contact.ContactSessionBeanRemote; +import org.mxchange.jcontacts.model.contact.ContactSessionBeanRemote; import org.mxchange.jcoreee.validator.string.BaseStringValidator; /** @@ -40,7 +38,8 @@ public class PizzaEmailAddressValidator extends BaseStringValidator { /** * Contact session-scoped bean */ - private static ContactSessionBeanRemote CONTACT_BEAN; + @EJB (lookup = "java:global/jfinancials-ejb/contact!org.mxchange.jcontacts.contact.ContactSessionBeanRemote") + private ContactSessionBeanRemote contactBean; /** * Email pattern @@ -118,27 +117,11 @@ public class PizzaEmailAddressValidator extends BaseStringValidator { throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); } - // Is the bean not yet set? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == PizzaEmailAddressValidator.CONTACT_BEAN) { - // Try it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // Try to lookup - PizzaEmailAddressValidator.CONTACT_BEAN = (ContactSessionBeanRemote) initialContext.lookup("java:global/pizzaapplication-ejb/contact!org.mxchange.jcontacts.contact.ContactSessionBeanRemote"); //NOI18N - } catch (final NamingException ex) { - // Continue to throw it - throw new ValidatorException(new FacesMessage(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage())), ex); //NOI18N - } - } - // Get client id (aka form id) String clientId = component.getClientId(); // Is it registered? - Boolean isRegistered = PizzaEmailAddressValidator.CONTACT_BEAN.isEmailAddressRegistered(emailAddress); + Boolean isRegistered = this.contactBean.isEmailAddressRegistered(emailAddress); // Is the email address already registered? if ((!clientId.endsWith("resendEmailAddress")) && (isRegistered)) { //NOI18N diff --git a/src/java/org/mxchange/pizzaapplication/validator/user/PizzaUserIdValidator.java b/src/java/org/mxchange/pizzaapplication/validator/user/PizzaUserIdValidator.java index f72bcb94..57a8f6ec 100644 --- a/src/java/org/mxchange/pizzaapplication/validator/user/PizzaUserIdValidator.java +++ b/src/java/org/mxchange/pizzaapplication/validator/user/PizzaUserIdValidator.java @@ -17,15 +17,12 @@ package org.mxchange.pizzaapplication.validator.user; import java.text.MessageFormat; +import javax.ejb.EJB; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; -import javax.faces.convert.ConverterException; import javax.faces.validator.FacesValidator; import javax.faces.validator.ValidatorException; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; import org.mxchange.jcoreee.validator.number.BaseNumberValidator; import org.mxchange.jusercore.model.user.UserSessionBeanRemote; @@ -38,14 +35,15 @@ import org.mxchange.jusercore.model.user.UserSessionBeanRemote; public class PizzaUserIdValidator extends BaseNumberValidator { /** - * Remote bean + * Serial number */ - private static UserSessionBeanRemote USER_BEAN; + private static final long serialVersionUID = 12_869_569_314_764_690L; /** - * Serial number + * Remote bean */ - private static final long serialVersionUID = 12_869_569_314_764_690L; + @EJB (lookup = "java:global/jfinancials-ejb/user!org.mxchange.jusercore.model.user.UserSessionBeanRemote") + private UserSessionBeanRemote userBean; /** * Default constructor @@ -64,24 +62,8 @@ public class PizzaUserIdValidator extends BaseNumberValidator { // Cast value Long userId = (Long) value; - // Is the bean not yet set? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == PizzaUserIdValidator.USER_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - PizzaUserIdValidator.USER_BEAN = (UserSessionBeanRemote) initialContext.lookup("java:global/pizzaapplication-ejb/user!org.mxchange.jusercore.model.user.UserSessionBeanRemote"); //NOI18N - } catch (final NamingException ex) { - // Continue to throw it - throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N - } - } - // Define variable - Boolean ifUserExists = PizzaUserIdValidator.USER_BEAN.ifUserIdExists(userId); + Boolean ifUserExists = this.userBean.ifUserIdExists(userId); // Is the user id valid? if (!ifUserExists) { -- 2.39.5