/*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
package org.mxchange.jjobs.validator.user;
import java.text.MessageFormat;
+import javax.enterprise.inject.spi.CDI;
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.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import org.mxchange.jcoreee.validator.number.BaseLongValidator;
-import org.mxchange.jusercore.model.user.UserSessionBeanRemote;
+import org.mxchange.jcoreee.validator.number.BaseNumberValidator;
+import org.mxchange.jjobs.beans.user.JobsUserWebRequestBean;
+import org.mxchange.jjobs.beans.user.JobsUserWebRequestController;
/**
* A validator for user ids
* @author Roland Häder<roland@mxchange.org>
*/
@FacesValidator ("UserIdValidator")
-public class JobsUserIdValidator extends BaseLongValidator implements Validator {
+public class JobsUserIdValidator extends BaseNumberValidator {
/**
- * Remote bean
+ * User backing bean
*/
- private static UserSessionBeanRemote USER_BEAN;
+ private static JobsUserWebRequestController USER_CONTROLLER;
/**
* Serial number
*/
private static final long serialVersionUID = 12_869_569_314_764_690L;
- /**
- * Initialization of this converter
- */
- public JobsUserIdValidator () {
- }
-
@Override
public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
// All accepted, required fields
- String[] requiredFields = {"userId"}; //NOI18N
+ final String[] requiredFields = {"userId"}; //NOI18N
// Pre-validation (example: not null, not a string, empty string ...)
super.preValidate(context, component, value, requiredFields, false);
- // 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
- }
+ // Is the instance there?
+ if (null == USER_CONTROLLER) {
+ // Get bean from CDI directly
+ USER_CONTROLLER = CDI.current().select(JobsUserWebRequestBean.class).get();
}
+ // Cast value
+ final Long userId = (Long) value;
+
// Define variable
- Boolean ifUserExists = JobsUserIdValidator.USER_BEAN.ifUserIdExists(userId);
+ final Boolean ifUserExists = USER_CONTROLLER.ifUserIdExists(userId);
// Is the user id valid?
if (!ifUserExists) {