/*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2022 Free Software Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
import java.util.List;
import java.util.Objects;
-import javax.ejb.EJB;
+import javax.faces.application.FacesMessage;
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.model.phonenumbers.mobileprovider.MobileProvider;
import org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote;
* <p>
* @author Roland Häder<roland@mxchange.org>
*/
-@FacesConverter (value = "MobileProviderConverter")
+@FacesConverter ( "MobileProviderConverter")
public class PizzaMobileProviderConverter implements Converter<MobileProvider> {
/**
* Mobile provider bean
*/
- @EJB(lookup = "java:global/jfinancials-ejb/mobileprovider!org.mxchange.jphone.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote")
- private MobileProviderSingletonBeanRemote mobileProviderBean;
-
- /**
- * Default constructor
- */
- public PizzaMobileProviderConverter () {
- }
+ private static MobileProviderSingletonBeanRemote MOBILE_PROVIDER_BEAN;
@Override
public MobileProvider getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) {
+ // Is the instance there?
+ if (MOBILE_PROVIDER_BEAN == null) {
+ try {
+ // Not yet, attempt lookup
+ final Context initial = new InitialContext();
+
+ // Lookup EJB
+ MOBILE_PROVIDER_BEAN = (MobileProviderSingletonBeanRemote) initial.lookup("java:global/pizzaservice-ejb/mobileProvider!org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProviderSingletonBeanRemote");
+ } catch (final NamingException ex) {
+ // Throw it again
+ throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex);
+ }
+ }
+
// Is the value null or empty?
if ((null == submittedValue) || (submittedValue.trim().isEmpty())) {
// Warning message
}
// Get full list
- List<MobileProvider> providerList = this.mobileProviderBean.allMobileProviders();
+ final List<MobileProvider> providerList = MOBILE_PROVIDER_BEAN.allMobileProviders();
// Init value
MobileProvider provider = null;
// Try this better
try {
// Convert it to long
- Long providerId = Long.parseLong(submittedValue);
+ final Long providerId = Long.parseLong(submittedValue);
// Category id should not be below 1
assert (providerId > 0) : "providerId is smaller than one: " + providerId; //NOI18N