From: Roland Haeder Date: Sun, 17 Apr 2016 14:26:11 +0000 (+0200) Subject: This bean cannot be singleton as more than one admin may be logged in. It should... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=ab2edae59d9e0397efe6e10a9f4b7a516a18dbe4;p=addressbook-ejb.git This bean cannot be singleton as more than one admin may be logged in. It should also be initialized normally. --- diff --git a/lib/jphone-lib.jar b/lib/jphone-lib.jar index 2ef50fe..ff6e0d8 100644 Binary files a/lib/jphone-lib.jar and b/lib/jphone-lib.jar differ diff --git a/src/java/org/mxchange/jphone/phonenumbers/mobileprovider/AddressbookAdminMobileProviderSessionBean.java b/src/java/org/mxchange/jphone/phonenumbers/mobileprovider/AddressbookAdminMobileProviderSessionBean.java new file mode 100644 index 0000000..6c6297a --- /dev/null +++ b/src/java/org/mxchange/jphone/phonenumbers/mobileprovider/AddressbookAdminMobileProviderSessionBean.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2016 Roland Haeder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.mxchange.jphone.phonenumbers.mobileprovider; + +import java.text.MessageFormat; +import java.util.GregorianCalendar; +import javax.ejb.Stateless; +import org.mxchange.jcoreee.database.BaseDatabaseBean; +import org.mxchange.jphone.exceptions.MobileProviderAlreadyAddedException; + +/** + * An administrative singleton EJB for mobile provider informations + *

+ * @author Roland Haeder + */ +@Stateless (name = "adminmobileprovider", description = "A singleton session bean for mobile provider informations, admin-edition") +public class AddressbookAdminMobileProviderSessionBean extends BaseDatabaseBean implements AdminMobileProviderSessionBeanRemote { + + /** + * Serial number + */ + private static final long serialVersionUID = 15_846_983_298_691_207L; + + @Override + public MobileProvider addMobileProvider (final MobileProvider mobileProvider) throws MobileProviderAlreadyAddedException { + // Log trace message + this.getLoggerBeanLocal().logTrace(MessageFormat.format("addMobileProvider: mobileProvider={0} - CALLED!", mobileProvider)); //NOI18N + + // Is the instance valid? + if (null == mobileProvider) { + // Throw NPE + throw new NullPointerException("mobileProvider is null"); //NOI18N + } else if (mobileProvider.getProviderDialPrefix() == null) { + // Throw NPE again + throw new NullPointerException("mobileProvider.providerDialPrefix is null"); //NOI18N + } else if (mobileProvider.getProviderDialPrefix() < 1) { + // Not valid + throw new IllegalArgumentException(MessageFormat.format("mobileProvider.providerDialPrefix={0} is not valid.", mobileProvider.getProviderDialPrefix())); //NOI18N + } else if (mobileProvider.getProviderCountry() == null) { + // Throw again a NPE + throw new NullPointerException("mobileProvider.providerCountry is null"); //NOI18N + } else if (mobileProvider.getProviderMailPattern() == null) { + // ... and again ... + throw new NullPointerException("mobileProvider.providerMailPattern is null"); //NOI18N + } else if (mobileProvider.getProviderMailPattern().isEmpty()) { + // Empty pattern set (not allowed) + throw new IllegalArgumentException("mobileProvider.providerMailPattern is empty."); //NOI18N + } else if (!mobileProvider.getProviderMailPattern().contains("%s")) { //NOI18N + // No place-holder found + throw new IllegalArgumentException(MessageFormat.format("mobileProvider.providerMailPattern={0} does not contain '%s' which is need to be replaced with the full mobile number.", mobileProvider.getProviderMailPattern())); //NOI18N + } else if (mobileProvider.getProviderName() == null) { + // Throw NPE again + throw new NullPointerException("mobileProvider.providerName is null"); //NOI18N + } else if (mobileProvider.getProviderName().isEmpty()) { + // Empty name is not allowed + throw new IllegalArgumentException("mobileProvider.providerName is empty"); //NOI18N + } + + // Set creation timestamp + mobileProvider.setProviderEntryCreated(new GregorianCalendar()); + + // Persist it + this.getEntityManager().persist(mobileProvider); + + // ... and flush it to get id back + this.getEntityManager().flush(); + + // Log trace message + this.getLoggerBeanLocal().logTrace(MessageFormat.format("addMobileProvider: mobileProvider.providerId={0} - EXIT!", mobileProvider.getProviderId())); //NOI18N + + // Return updated + return mobileProvider; + } + +} diff --git a/src/java/org/mxchange/jphone/phonenumbers/mobileprovider/AddressbookAdminMobileProviderSingletonBean.java b/src/java/org/mxchange/jphone/phonenumbers/mobileprovider/AddressbookAdminMobileProviderSingletonBean.java deleted file mode 100644 index 6decac6..0000000 --- a/src/java/org/mxchange/jphone/phonenumbers/mobileprovider/AddressbookAdminMobileProviderSingletonBean.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2016 Roland Haeder - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package org.mxchange.jphone.phonenumbers.mobileprovider; - -import java.text.MessageFormat; -import java.util.GregorianCalendar; -import javax.ejb.Singleton; -import javax.ejb.Startup; -import org.mxchange.jcoreee.database.BaseDatabaseBean; -import org.mxchange.jphone.exceptions.MobileProviderAlreadyAddedException; - -/** - * An administrative singleton EJB for mobile provider informations - *

- * @author Roland Haeder - */ -@Startup -@Singleton (name = "adminmobileprovider", mappedName = "ejb/addressbook-singleton-admin-mobile-provider", description = "A singleton session bean for mobile provider informations, admin-edition") -public class AddressbookAdminMobileProviderSingletonBean extends BaseDatabaseBean implements AdminMobileProviderSingletonBeanRemote { - - /** - * Serial number - */ - private static final long serialVersionUID = 15_846_983_298_691_207L; - - @Override - public MobileProvider addMobileProvider (final MobileProvider mobileProvider) throws MobileProviderAlreadyAddedException { - // Log trace message - this.getLoggerBeanLocal().logTrace(MessageFormat.format("addMobileProvider: mobileProvider={0} - CALLED!", mobileProvider)); //NOI18N - - // Is the instance valid? - if (null == mobileProvider) { - // Throw NPE - throw new NullPointerException("mobileProvider is null"); //NOI18N - } else if (mobileProvider.getProviderDialPrefix() == null) { - // Throw NPE again - throw new NullPointerException("mobileProvider.providerDialPrefix is null"); //NOI18N - } else if (mobileProvider.getProviderDialPrefix() < 1) { - // Not valid - throw new IllegalArgumentException(MessageFormat.format("mobileProvider.providerDialPrefix={0} is not valid.", mobileProvider.getProviderDialPrefix())); //NOI18N - } else if (mobileProvider.getProviderCountry() == null) { - // Throw again a NPE - throw new NullPointerException("mobileProvider.providerCountry is null"); //NOI18N - } else if (mobileProvider.getProviderMailPattern() == null) { - // ... and again ... - throw new NullPointerException("mobileProvider.providerMailPattern is null"); //NOI18N - } else if (mobileProvider.getProviderMailPattern().isEmpty()) { - // Empty pattern set (not allowed) - throw new IllegalArgumentException("mobileProvider.providerMailPattern is empty."); //NOI18N - } else if (!mobileProvider.getProviderMailPattern().contains("%s")) { //NOI18N - // No place-holder found - throw new IllegalArgumentException(MessageFormat.format("mobileProvider.providerMailPattern={0} does not contain '%s' which is need to be replaced with the full mobile number.", mobileProvider.getProviderMailPattern())); //NOI18N - } else if (mobileProvider.getProviderName() == null) { - // Throw NPE again - throw new NullPointerException("mobileProvider.providerName is null"); //NOI18N - } else if (mobileProvider.getProviderName().isEmpty()) { - // Empty name is not allowed - throw new IllegalArgumentException("mobileProvider.providerName is empty"); //NOI18N - } - - // Set creation timestamp - mobileProvider.setProviderEntryCreated(new GregorianCalendar()); - - // Persist it - this.getEntityManager().persist(mobileProvider); - - // ... and flush it to get id back - this.getEntityManager().flush(); - - // Log trace message - this.getLoggerBeanLocal().logTrace(MessageFormat.format("addMobileProvider: mobileProvider.providerId={0} - EXIT!", mobileProvider.getProviderId())); //NOI18N - - // Return updated - return mobileProvider; - } - -}