From 9265dd21838922c5e36ee2a3c9d171a8cbb56aee Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Fri, 20 May 2016 16:59:40 +0200 Subject: [PATCH] renamed to have project's name in + added missing dependencies juser-core/lib MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- lib/juser-core.jar | Bin 0 -> 58583 bytes lib/juser-lib.jar | Bin 0 -> 6078 bytes nbproject/project.properties | 6 + .../validator/user/PizzaUserIdValidator.java | 164 ++++++++++++++++++ 4 files changed, 170 insertions(+) create mode 100644 lib/juser-core.jar create mode 100644 lib/juser-lib.jar create mode 100644 src/org/mxchange/pizzaapplication/validator/user/PizzaUserIdValidator.java diff --git a/lib/juser-core.jar b/lib/juser-core.jar new file mode 100644 index 0000000000000000000000000000000000000000..986028fb0195fd4607765900a889d4514e2e4584 GIT binary patch literal 58583 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 literal 0 HcmV?d00001 diff --git a/lib/juser-lib.jar b/lib/juser-lib.jar new file mode 100644 index 0000000000000000000000000000000000000000..fc10e571e6d972f04b3eb41028eed1550ab225cf GIT binary patch literal 6078 zcmd5=PjB2*5Fe-8xY=ftG}$EmOVbuYLfLHE0)-|mY|<==noUBsttten9Pi84sn-s+ zw=`T(FFo`Vph_SP6*mM2P8|3EmAJrH;EE7mpkn4dum5dqZ&D<%4|cXHWzizyDP73Ow` z{@tnRyO%E(G{a$*q3DH;>9@xwRxL%<+1R{kZJUVNO~0$uY8JEY1VQK01nFj7 zGZF-hrwOoFU9)kg5@eiBlR?Ie@Gn+>%YWSkKzAjLKWvQ!vdui-(kfa9U1g3b#yV@5 z4x3VS#kQZn`1u!N8ADOMdz zGwL&wA4@Q(==w*T#${nP4o*x8>ZYUV#bq?jj08PZt!^kz(_#{gw-L;?i@%0UCz+T* za8hN{5(|^y&crggx97aRM+)Z(+eC0F8#)V$n`zfPc^lWz+^!)WgOn1K{|$X4JzF)K zmdeVSj@CHCmBeipnO%Zo>rKPa8tk@aYq)@tVVDk&0Ay~yf`>)6wNVs1jF$Uw4~9w7 zFTsGn@v9qKOm!s4^C8VFR+*(Ky7mPbwOaxSy6`@LZk5SM7)TG|9|^ia#!-y5__YV$ zvv8P?_X0(qF6iUG{V;&fZlpXC47wE3#{SMc_yI9M_dF6ME=_>>7NTjHV4dduBQo^M zFd)MbH1Y#n3+*~_msHh6n^)1yO*FC+yY;GRIErQB^upkI?= zc<8yob|jdM#f1pLP1MS_6oKFe5;ucL(A%0G%}#<^$I{w`?H6d6|3)yRX*PE}rNM-e zm_>Q-e8&@_YkVOz4MxarW%F(lvWVE#X^vlNxTDq^MB_q%K)4+B~ zhVwGKDMJDA?nWOs1N}Fsn3AE0^xxk`8!dz&Tv`=eupq=FuWQDAqLN^}bL4cI zA!V4B;Q|^+)MljTy5eAU)Vrw}HF}-fSwhfW2^Oo%CY7q4tGFnEjAsh5h(lQ3(!WlM z+S!&#ysCG$Q>|3$oKMQii};qoCrKLGg*p$z_;rLQnNg%U z8hJk!c|Yz-KM@!|iF~Ib@2|jVKEp9M!=Gp29Dly*K3{X6<0KE)^*aBZfJuB(b@>KW zmr_^$Kzu(8De)SBKTGuVT3(_%=CkhBA0r03o;{*=j>j74mL(~t{*|~$`LFnwoIipu^yKqtbT7HNeK13d?BmxLR#G~-+a;L9U06Q^(0Lci*&={ z1*3li1pl5USe$B;7ES#zagpWncuEf$-M5@rv{!{D$voQ<$^Gt5n#?AK@ixbZ_Rm@( zpFR32O. + */ +package org.mxchange.pizzaapplication.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.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.jcoreeelogger.beans.local.logger.Log; +import org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal; +import org.mxchange.jusercore.events.registration.UserRegisteredEvent; +import org.mxchange.jusercore.model.user.User; +import org.mxchange.jusercore.model.user.UserSessionBeanRemote; + +/** + * A validator for user ids + *

+ * @author Roland Haeder + */ +@FacesValidator (value = "UserIdValidator") +public class PizzaUserIdValidator extends BaseLongValidator implements Validator { + + /** + * Cached user status + */ + private static final Set cachedStatus = new TreeSet<>(); + + /** + * Serial number + */ + private static final long serialVersionUID = 12_869_569_314_764_690L; + + /** + * Logger instance + */ + @Log + private LoggerBeanLocal loggerBeanLocal; + + /** + * Remote bean + */ + private UserSessionBeanRemote userBean; + + /** + * Initialization of this converter + */ + public PizzaUserIdValidator () { + // 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.userBean = (UserSessionBeanRemote) context.lookup("java:global/jlandingpage-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 + } + } + + /** + * Event fired when the user registration is complete + *

+ * @param event User registration event + */ + public void afterRegistrationEvent (final @Observes UserRegisteredEvent event) { + // Trace message + this.loggerBeanLocal.logTrace(MessageFormat.format("UserIdValidator:afterRegistrationEvent: event={0} - CALLED!", event)); //NOI18N + + // 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(); + + // Debug message + this.loggerBeanLocal.logDebug(MessageFormat.format("UserIdValidator:afterRegistrationEvent: registeredUser={0}", registeredUser)); //NOI18N + + // Update cache + PizzaUserIdValidator.cachedStatus.add(registeredUser.getUserId()); + + // Trace message + this.loggerBeanLocal.logTrace("UserIdValidator:afterRegistrationEvent: EXIT!"); //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 = {"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; + + // Define variable + Boolean ifUserExists; + + // Is a map entry there? + if (PizzaUserIdValidator.cachedStatus.contains(userId)) { + // Get from cache + ifUserExists = Boolean.TRUE; + } else { + // Get status + 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 + PizzaUserIdValidator.cachedStatus.add(userId); + + // Trace message + this.loggerBeanLocal.logTrace("validate: EXIT!"); //NOI18N + } + +} -- 2.39.5