* Initialization of this converter
*/
public AddressbookBusinessContactConverter () {
- // Try to get it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- // ... and user controller
- this.businessContactBean = (BusinessContactSessionBeanRemote) context.lookup("java:global/jfinancials-ejb/businessContact!org.mxchange.jcontactsbusiness.BusinessContactSessionBeanRemote"); //NOI18N
- } catch (final NamingException ex) {
- // Continue to throw it
- throw new ConverterException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
- }
}
@Override
return null;
}
+ synchronized (this) {
+ // Is the EJB instanciated?
+ if (null == this.businessContactBean) {
+ // Try to get it
+ try {
+ // Get initial context
+ Context initialContext = new InitialContext();
+
+ // ... and user controller
+ this.businessContactBean = (BusinessContactSessionBeanRemote) initialContext.lookup("java:global/addressbook-ejb/businessContact!org.mxchange.jcontactsbusiness.BusinessContactSessionBeanRemote"); //NOI18N
+ } catch (final NamingException ex) {
+ // Continue to throw it
+ throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
+ }
+ }
+ }
+
// Init instance
BusinessContact businessContact = null;
* Initialization of this converter
*/
public AddressbookContactConverter () {
- // Try to get it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- // ... and user controller
- this.contactBean = (ContactSessionBeanRemote) context.lookup("java:global/addressbook-ejb/contact!org.mxchange.jcontacts.contact.ContactSessionBeanRemote"); //NOI18N
- } catch (final NamingException ex) {
- // Continue to throw it
- throw new ConverterException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
- }
}
@Override
return null;
}
+ synchronized (this) {
+ // Is the EJB instanciated?
+ if (null == this.contactBean) {
+ // Try to get it
+ try {
+ // Get initial context
+ Context initialContext = new InitialContext();
+
+ // ... and user controller
+ this.contactBean = (ContactSessionBeanRemote) initialContext.lookup("java:global/addressbook-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;
/**
* Country bean
*/
- private CountrySingletonBeanRemote countryBean;
+ private CountrySingletonBeanRemote countryBean = null;
/**
* Initialization of this converter
*/
public AddressbookCountryConverter () {
- // Try to get it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- // ... and country bean
- this.countryBean = (CountrySingletonBeanRemote) context.lookup("java:global/addressbook-ejb/country!org.mxchange.jcountry.data.CountrySingletonBeanRemote"); //NOI18N
- } catch (final NamingException ex) {
- // Continue to throw it
- throw new ConverterException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
- }
}
@Override
return null;
}
+ synchronized (this) {
+ // Is the EJB instanciated?
+ if (null == this.countryBean) {
+ // Try to get it
+ try {
+ // Get initial context
+ Context initialContext = new InitialContext();
+
+ // ... and country bean
+ this.countryBean = (CountrySingletonBeanRemote) initialContext.lookup("java:global/addressbook-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<Country> countryList = this.countryBean.allCountries();
* Initialization of this converter
*/
public AddressbookMobileNumberConverter () {
- // Try to get it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- // ... and user controller
- this.phoneBean = (PhoneSessionBeanRemote) context.lookup("java:global/addressbook-ejb/phone!org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote"); //NOI18N
- } catch (final NamingException ex) {
- // Continue to throw it
- throw new ConverterException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
- }
}
@Override
return null;
}
+ synchronized (this) {
+ // Is the EJB instanciated?
+ if (null == this.phoneBean) {
+ // Try to get it
+ try {
+ // Get initial context
+ Context initialContext = new InitialContext();
+
+ // ... and user controller
+ this.phoneBean = (PhoneSessionBeanRemote) initialContext.lookup("java:global/addressbook-ejb/phone!org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote"); //NOI18N
+ } catch (final NamingException ex) {
+ // Continue to throw it
+ throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
+ }
+ }
+ }
+
// Init instance
DialableMobileNumber mobile = null;
* Initialization of this converter
*/
public AddressbookMobileProviderConverter () {
- // Try to get it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- /// and mobile provider controller
- this.mobileRemoteBean = (MobileProviderSingletonBeanRemote) context.lookup("java:global/addressbook-ejb/mobileprovider!org.mxchange.jphone.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote"); //NOI18N
- } catch (final NamingException ex) {
- // Continue to throw it
- throw new ConverterException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
- }
}
@Override
return null;
}
+ synchronized (this) {
+ // Is the EJB instanciated?
+ if (null == this.mobileRemoteBean) {
+ // Try to get it
+ try {
+ // Get initial context
+ Context initialContext = new InitialContext();
+
+ /// and mobile provider controller
+ this.mobileRemoteBean = (MobileProviderSingletonBeanRemote) initialContext.lookup("java:global/addressbook-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<MobileProvider> providerList = this.mobileRemoteBean.allMobileProvider();
* Initialization of this converter
*/
public AddressbookUserConverter () {
- // Try to get it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- // ... and user controller
- this.userBean = (UserSessionBeanRemote) context.lookup("java:global/addressbook-ejb/user!org.mxchange.jusercore.model.user.UserSessionBeanRemote"); //NOI18N
- } catch (final NamingException ex) {
- // Continue to throw it
- throw new RuntimeException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
- }
}
@Override
return null;
}
+ synchronized (this) {
+ // Is the EJB instanciated?
+ if (null == this.userBean) {
+ // Try to get it
+ try {
+ // Get initial context
+ Context initialContext = new InitialContext();
+
+ // ... and user controller
+ this.userBean = (UserSessionBeanRemote) initialContext.lookup("java:global/addressbook-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;
import org.mxchange.jaddressbook.exceptions.AddressbookNotFoundException;
import org.mxchange.jaddressbook.model.addressbook.Addressbook;
import org.mxchange.jcoreee.validator.number.BaseLongValidator;
-import org.mxchange.jcoreeelogger.beans.local.logger.Log;
-import org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal;
/**
* A validator for address book id verification
*/
private AddressbookSessionBeanRemote addressbookBean;
- /**
- * Logger instance
- */
- @Log
- private LoggerBeanLocal loggerBeanLocal;
-
/**
* Public consutructor
*/
public AddressbookIdValidator () {
- // Try to get it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- // Lookup logger
- this.loggerBeanLocal = (LoggerBeanLocal) context.lookup("java:global/jcore-logger-ejb/logger!org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal"); //NOI18N
-
- // ... and user controller
- this.addressbookBean = (AddressbookSessionBeanRemote) context.lookup("java:global/addressbook-ejb/addressbook!org.mxchange.addressbook.model.addressbook.AddressbookSessionBeanRemote"); //NOI18N
- } catch (final NamingException ex) {
- // Continue to throw it
- throw new RuntimeException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
- }
}
@Override
public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
- // Trace message
- this.loggerBeanLocal.logTrace(MessageFormat.format("validate: context={0},component={1},value={2} - CALLED!", context, component, value)); //NOI18N
-
// All accepted, required fields
String[] requiredFields = {"addressbookId"}; //NOI18N
// Pre-validation (example: not null, not a string, empty string ...)
super.preValidate(context, component, value, requiredFields, false);
+ synchronized (this) {
+ // Is the EJB instanciated?
+ if (null == this.addressbookBean) {
+ // Try to get it
+ try {
+ // Get initial context
+ Context initialContext = new InitialContext();
+
+ // ... and user controller
+ this.addressbookBean = (AddressbookSessionBeanRemote) initialContext.lookup("java:global/addressbook-ejb/addressbook!org.mxchange.addressbook.model.addressbook.AddressbookSessionBeanRemote"); //NOI18N
+ } catch (final NamingException ex) {
+ // Continue to throw it
+ throw new RuntimeException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
+ }
+ }
+ }
+
// Cast to long
Long addressbookId = (Long) value;
// Continue to throw
throw new ValidatorException(new FacesMessage(MessageFormat.format("Cannot find address book with id {0}", addressbookId)), ex); //NOI18N
}
-
- // Trace message
- this.loggerBeanLocal.logTrace("validate: EXIT!"); //NOI18N
}
+
}
// Try to get it
try {
// Get initial context
- Context context = new InitialContext();
+ Context initialContext = new InitialContext();
} catch (final NamingException ex) {
// Continue to throw it
- throw new ConverterException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
+ throw new ConverterException(MessageFormat.format("initialContext.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
}
}
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.Validator;
import javax.faces.validator.ValidatorException;
-import javax.faces.view.facelets.FaceletException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* Contact session-scoped bean
*/
- private final ContactSessionBeanRemote contactBean;
+ private ContactSessionBeanRemote contactBean;
/**
* Default constructor
*/
public AddressbookEmailAddressValidator () {
- // Try it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- // Try to lookup
- this.contactBean = (ContactSessionBeanRemote) context.lookup("java:global/addressbook-ejb/contact!org.mxchange.jcontacts.contact.ContactSessionBeanRemote"); //NOI18N
- } catch (final NamingException e) {
- // Throw again
- throw new FaceletException(e);
- }
}
@Override
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, message, message));
}
+ synchronized (this) {
+ // Is the EJB instanciated?
+ if (null == this.contactBean) {
+ // Try it
+ try {
+ // Get initial context
+ Context initialContext = new InitialContext();
+
+ // Try to lookup
+ this.contactBean = (ContactSessionBeanRemote) initialContext.lookup("java:global/addressbook-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
+ }
+ }
+ }
+
// Get client id (aka form id)
String clientId = component.getClientId();
// Pre-validation (example: not null, not a string, empty string ...)
super.preValidate(context, component, value, requiredFields, false);
}
+
}
package org.mxchange.addressbook.validator.user;
import java.text.MessageFormat;
-import java.util.Set;
-import java.util.TreeSet;
-import javax.enterprise.event.Observes;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.mxchange.jcoreee.validator.number.BaseLongValidator;
-import org.mxchange.jusercore.events.registration.ObservableUserRegisteredEvent;
-import org.mxchange.jusercore.model.user.User;
import org.mxchange.jusercore.model.user.UserSessionBeanRemote;
/**
@FacesValidator ("UserIdValidator")
public class AddressbookUserIdValidator extends BaseLongValidator implements Validator {
- /**
- * Cached user status
- */
- private static final Set<Long> cachedStatus = new TreeSet<>();
-
/**
* Serial number
*/
* Initialization of this converter
*/
public AddressbookUserIdValidator () {
- // Try to get it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- // ... and user controller
- this.userBean = (UserSessionBeanRemote) context.lookup("java:global/addressbook-ejb/user!org.mxchange.jusercore.model.user.UserSessionBeanRemote"); //NOI18N
- } catch (final NamingException ex) {
- // Continue to throw it
- throw new ConverterException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N
- }
- }
-
- /**
- * Event fired when the user registration is complete
- * <p>
- * @param event User registration event
- */
- public void afterUserRegistrationEvent (@Observes final ObservableUserRegisteredEvent event) {
- // event should not be null
- if (null == event) {
- // Throw NPE
- throw new NullPointerException("event is null"); //NOI18N
- } else if (event.getRegisteredUser() == null) {
- // Throw NPE again
- throw new NullPointerException("event.user is null"); //NOI18N
- } else if (event.getRegisteredUser().getUserId() == null) {
- // userId is null
- throw new NullPointerException("event.user.userId is null"); //NOI18N
- } else if (event.getRegisteredUser().getUserId() < 1) {
- // Not avalid id
- throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getRegisteredUser(), event.getRegisteredUser().getUserId())); //NOI18N
- }
-
- // Get user instance
- User registeredUser = event.getRegisteredUser();
-
- // Update cache
- AddressbookUserIdValidator.cachedStatus.add(registeredUser.getUserId());
}
@Override
// Cast value
Long userId = (Long) value;
- // Define variable
- Boolean ifUserExists;
-
- // Is a map entry there?
- if (AddressbookUserIdValidator.cachedStatus.contains(userId)) {
- // Get from cache
- ifUserExists = Boolean.TRUE;
- } else {
- // Get status
- ifUserExists = this.userBean.ifUserIdExists(userId);
+ synchronized (this) {
+ // Is the EJB instanciated?
+ if (null == this.userBean) {
+ // Try to get it
+ try {
+ // Get initial context
+ Context initialContext = new InitialContext();
+
+ // ... and user controller
+ this.userBean = (UserSessionBeanRemote) initialContext.lookup("java:global/addressbook-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 = this.userBean.ifUserIdExists(userId);
+
// Is the user id valid?
if (!ifUserExists) {
// Is not valid
throw new ValidatorException(new FacesMessage(MessageFormat.format("No user found with id {0}. Please check your link.", userId))); //NOI18N
}
-
- // Add to cache if valid
- AddressbookUserIdValidator.cachedStatus.add(userId);
}
}