From a71d2fe257aceb3ab48a9fe45caaaa9008aa9177 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 --- .../JobsBusinessContactConverter.java | 28 +++------------- .../JobsCompanyEmployeeConverter.java | 28 +++------------- .../JobsCompanyHeadquartersConverter.java | 28 +++------------- .../contact/JobsContactConverter.java | 28 +++------------- .../country/JobsCountryConverter.java | 28 +++------------- .../converter/fax/JobsFaxNumberConverter.java | 28 +++------------- .../landline/JobsLandLineNumberConverter.java | 28 +++------------- .../mobile/JobsMobileNumberConverter.java | 28 +++------------- .../JobsMobileProviderConverter.java | 29 +++-------------- .../converter/user/JobsUserConverter.java | 28 +++------------- .../basicdata/JobsCompanyNameValidator.java | 32 ++++--------------- .../JobsEmailAddressValidator.java | 25 +++------------ .../validator/user/JobsUserIdValidator.java | 32 ++++--------------- 13 files changed, 68 insertions(+), 302 deletions(-) diff --git a/src/java/org/mxchange/jjobs/converter/business/basicdata/JobsBusinessContactConverter.java b/src/java/org/mxchange/jjobs/converter/business/basicdata/JobsBusinessContactConverter.java index 6183845a..4354ee61 100644 --- a/src/java/org/mxchange/jjobs/converter/business/basicdata/JobsBusinessContactConverter.java +++ b/src/java/org/mxchange/jjobs/converter/business/basicdata/JobsBusinessContactConverter.java @@ -16,15 +16,12 @@ */ package org.mxchange.jjobs.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.basicdata.BusinessBasicData; import org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote; import org.mxchange.jcontactsbusiness.exceptions.basicdata.BusinessDataNotFoundException; @@ -34,13 +31,14 @@ import org.mxchange.jcontactsbusiness.exceptions.basicdata.BusinessDataNotFoundE *

* @author Roland Häder */ -@FacesConverter (value = "BusinessContactConverter") +@FacesConverter ("BusinessContactConverter") public class JobsBusinessContactConverter implements Converter { /** * Business contact EJB */ - private static BusinessDataSessionBeanRemote BASIC_DATA_BEAN; + @EJB (lookup = "java:global/jfinancials-ejb/businessData!org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote") + private BusinessDataSessionBeanRemote basicDataBean; /** * Default constructor @@ -59,22 +57,6 @@ public class JobsBusinessContactConverter implements Converter * @author Roland Häder */ -@FacesConverter (value = "CompanyEmployeeConverter") +@FacesConverter ("CompanyEmployeeConverter") public class JobsCompanyEmployeeConverter 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 +57,6 @@ public class JobsCompanyEmployeeConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == JobsCompanyEmployeeConverter.COMPANY_EMPLOYEE_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - JobsCompanyEmployeeConverter.COMPANY_EMPLOYEE_BEAN = (CompanyEmployeeSessionBeanRemote) initialContext.lookup("java:global/jjobs-ejb/companyEmployee!org.mxchange.jcontactsbusiness.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 +65,7 @@ public class JobsCompanyEmployeeConverter implements Converter { Long employeeId = Long.valueOf(submittedValue); // Try to get user instance from it - companyEmployee = JobsCompanyEmployeeConverter.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/jjobs/converter/business/headquarters/JobsCompanyHeadquartersConverter.java b/src/java/org/mxchange/jjobs/converter/business/headquarters/JobsCompanyHeadquartersConverter.java index bf3d0a52..98dab59d 100644 --- a/src/java/org/mxchange/jjobs/converter/business/headquarters/JobsCompanyHeadquartersConverter.java +++ b/src/java/org/mxchange/jjobs/converter/business/headquarters/JobsCompanyHeadquartersConverter.java @@ -16,15 +16,12 @@ */ package org.mxchange.jjobs.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.headquarters.CompanyHeadquartersSessionBeanRemote; import org.mxchange.jcontactsbusiness.headquarters.HeadquartersData; @@ -34,13 +31,14 @@ import org.mxchange.jcontactsbusiness.headquarters.HeadquartersData; *

* @author Roland Häder */ -@FacesConverter (value = "CompanyHeadquartersConverter") +@FacesConverter ("CompanyHeadquartersConverter") public class JobsCompanyHeadquartersConverter 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 JobsCompanyHeadquartersConverter implements Converter * @author Roland Häder */ -@FacesConverter (value = "ContactConverter") +@FacesConverter ("ContactConverter") public class JobsContactConverter 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 JobsContactConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == JobsContactConverter.CONTACT_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - JobsContactConverter.CONTACT_BEAN = (ContactSessionBeanRemote) initialContext.lookup("java:global/jjobs-ejb/contact!org.mxchange.jcontacts.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 JobsContactConverter implements Converter { Long contactId = Long.valueOf(submittedValue); // Try to get user instance from it - contact = JobsContactConverter.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/jjobs/converter/country/JobsCountryConverter.java b/src/java/org/mxchange/jjobs/converter/country/JobsCountryConverter.java index b03055e5..645957d5 100644 --- a/src/java/org/mxchange/jjobs/converter/country/JobsCountryConverter.java +++ b/src/java/org/mxchange/jjobs/converter/country/JobsCountryConverter.java @@ -16,17 +16,14 @@ */ package org.mxchange.jjobs.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.data.Country; import org.mxchange.jcountry.data.CountrySingletonBeanRemote; @@ -35,13 +32,14 @@ import org.mxchange.jcountry.data.CountrySingletonBeanRemote; *

* @author Roland Häder */ -@FacesConverter (value = "CountryConverter") +@FacesConverter ("CountryConverter") public class JobsCountryConverter 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 JobsCountryConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == JobsCountryConverter.COUNTRY_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and country bean - JobsCountryConverter.COUNTRY_BEAN = (CountrySingletonBeanRemote) initialContext.lookup("java:global/jjobs-ejb/country!org.mxchange.jcountry.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 = JobsCountryConverter.COUNTRY_BEAN.allCountries(); + List countryList = this.countryBean.allCountries(); // Init value Country country = null; diff --git a/src/java/org/mxchange/jjobs/converter/fax/JobsFaxNumberConverter.java b/src/java/org/mxchange/jjobs/converter/fax/JobsFaxNumberConverter.java index 5b5e6812..7e5436e8 100644 --- a/src/java/org/mxchange/jjobs/converter/fax/JobsFaxNumberConverter.java +++ b/src/java/org/mxchange/jjobs/converter/fax/JobsFaxNumberConverter.java @@ -16,15 +16,12 @@ */ package org.mxchange.jjobs.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.phonenumbers.fax.DialableFaxNumber; import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; @@ -34,13 +31,14 @@ import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; *

* @author Roland Häder */ -@FacesConverter (value = "FaxNumberConverter") +@FacesConverter ("FaxNumberConverter") public class JobsFaxNumberConverter 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 JobsFaxNumberConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == JobsFaxNumberConverter.PHONE_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - JobsFaxNumberConverter.PHONE_BEAN = (PhoneSessionBeanRemote) initialContext.lookup("java:global/jjobs-ejb/phone!org.mxchange.jphone.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 JobsFaxNumberConverter 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 = JobsFaxNumberConverter.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/jjobs/converter/landline/JobsLandLineNumberConverter.java b/src/java/org/mxchange/jjobs/converter/landline/JobsLandLineNumberConverter.java index 4ef3f81f..ef407685 100644 --- a/src/java/org/mxchange/jjobs/converter/landline/JobsLandLineNumberConverter.java +++ b/src/java/org/mxchange/jjobs/converter/landline/JobsLandLineNumberConverter.java @@ -16,15 +16,12 @@ */ package org.mxchange.jjobs.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.phonenumbers.landline.DialableLandLineNumber; import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; @@ -34,13 +31,14 @@ import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; *

* @author Roland Häder */ -@FacesConverter (value = "LandLineNumberConverter") +@FacesConverter ("LandLineNumberConverter") public class JobsLandLineNumberConverter 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 JobsLandLineNumberConverter implements Converter * @author Roland Häder */ -@FacesConverter (value = "MobileNumberConverter") +@FacesConverter ("MobileNumberConverter") public class JobsMobileNumberConverter 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 JobsMobileNumberConverter implements Converter * @author Roland Häder */ -@FacesConverter (value = "MobileProviderConverter") +@FacesConverter ("MobileProviderConverter") public class JobsMobileProviderConverter 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 JobsMobileProviderConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == JobsMobileProviderConverter.MOBILE_PROVIDER_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - /// and mobile provider controller - JobsMobileProviderConverter.MOBILE_PROVIDER_BEAN = (MobileProviderSingletonBeanRemote) initialContext.lookup("java:global/jjobs-ejb/mobileprovider!org.mxchange.jphone.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 = JobsMobileProviderConverter.MOBILE_PROVIDER_BEAN.allMobileProvider(); + List providerList = this.mobileProviderBean.allMobileProvider(); // Init value MobileProvider provider = null; diff --git a/src/java/org/mxchange/jjobs/converter/user/JobsUserConverter.java b/src/java/org/mxchange/jjobs/converter/user/JobsUserConverter.java index e06a2d32..3704b454 100644 --- a/src/java/org/mxchange/jjobs/converter/user/JobsUserConverter.java +++ b/src/java/org/mxchange/jjobs/converter/user/JobsUserConverter.java @@ -16,15 +16,12 @@ */ package org.mxchange.jjobs.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 JobsUserConverter 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 JobsUserConverter implements Converter { return null; } - // Is the bean there? - // @TODO Requires this synchronization or is it (sync) confusing the container? - if (null == JobsUserConverter.USER_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - JobsUserConverter.USER_BEAN = (UserSessionBeanRemote) initialContext.lookup("java:global/jjobs-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 JobsUserConverter implements Converter { Long userId = Long.valueOf(submittedValue); // Try to get user instance from it - user = JobsUserConverter.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/jjobs/validator/business/basicdata/JobsCompanyNameValidator.java b/src/java/org/mxchange/jjobs/validator/business/basicdata/JobsCompanyNameValidator.java index bbebec9f..a5230f64 100644 --- a/src/java/org/mxchange/jjobs/validator/business/basicdata/JobsCompanyNameValidator.java +++ b/src/java/org/mxchange/jjobs/validator/business/basicdata/JobsCompanyNameValidator.java @@ -17,15 +17,12 @@ package org.mxchange.jjobs.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.basicdata.BusinessDataSessionBeanRemote; import org.mxchange.jcoreee.validator.string.BaseStringValidator; @@ -38,14 +35,15 @@ import org.mxchange.jcoreee.validator.string.BaseStringValidator; public class JobsCompanyNameValidator extends BaseStringValidator { /** - * Business contact EJB + * Serial number */ - private static BusinessDataSessionBeanRemote 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 +74,8 @@ public class JobsCompanyNameValidator 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 == JobsCompanyNameValidator.BASIC_DATA_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - JobsCompanyNameValidator.BASIC_DATA_BEAN = (BusinessDataSessionBeanRemote) initialContext.lookup("java:global/jjobs-ejb/businessData!org.mxchange.jcontactsbusiness.basicdata.BusinessDataSessionBeanRemote"); //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 = JobsCompanyNameValidator.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/jjobs/validator/emailaddress/JobsEmailAddressValidator.java b/src/java/org/mxchange/jjobs/validator/emailaddress/JobsEmailAddressValidator.java index 639cbab7..57f93ffa 100644 --- a/src/java/org/mxchange/jjobs/validator/emailaddress/JobsEmailAddressValidator.java +++ b/src/java/org/mxchange/jjobs/validator/emailaddress/JobsEmailAddressValidator.java @@ -18,14 +18,12 @@ package org.mxchange.jjobs.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.jcoreee.validator.string.BaseStringValidator; @@ -40,7 +38,8 @@ public class JobsEmailAddressValidator 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 JobsEmailAddressValidator 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 == JobsEmailAddressValidator.CONTACT_BEAN) { - // Try it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // Try to lookup - JobsEmailAddressValidator.CONTACT_BEAN = (ContactSessionBeanRemote) initialContext.lookup("java:global/jjobs-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 = JobsEmailAddressValidator.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/jjobs/validator/user/JobsUserIdValidator.java b/src/java/org/mxchange/jjobs/validator/user/JobsUserIdValidator.java index 6660e660..99a1b7a3 100644 --- a/src/java/org/mxchange/jjobs/validator/user/JobsUserIdValidator.java +++ b/src/java/org/mxchange/jjobs/validator/user/JobsUserIdValidator.java @@ -17,15 +17,12 @@ package org.mxchange.jjobs.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 JobsUserIdValidator 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 JobsUserIdValidator 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 == JobsUserIdValidator.USER_BEAN) { - // Try to get it - try { - // Get initial context - Context initialContext = new InitialContext(); - - // ... and user controller - JobsUserIdValidator.USER_BEAN = (UserSessionBeanRemote) initialContext.lookup("java:global/jjobs-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 = JobsUserIdValidator.USER_BEAN.ifUserIdExists(userId); + Boolean ifUserExists = this.userBean.ifUserIdExists(userId); // Is the user id valid? if (!ifUserExists) { -- 2.39.5