/*
* JBoss, Home of Professional Open Source.
* Copyright 2011, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.as.jpa.messages;
import static org.jboss.logging.Logger.Level.ERROR;
import static org.jboss.logging.Logger.Level.INFO;
import static org.jboss.logging.Logger.Level.WARN;
import javax.ejb.EJBException;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
import javax.persistence.TransactionRequiredException;
import org.jboss.as.server.deployment.DeploymentUnit;
import org.jboss.as.server.deployment.DeploymentUnitProcessingException;
import org.jboss.jandex.MethodInfo;
import org.jboss.logging.BasicLogger;
import org.jboss.logging.annotations.Cause;
import org.jboss.logging.annotations.LogMessage;
import org.jboss.logging.Logger;
import org.jboss.logging.annotations.Message;
import org.jboss.logging.annotations.MessageLogger;
import org.jboss.vfs.VirtualFile;
/**
* Date: 07.06.2011
*
* @author <a href="mailto:jperkins@redhat.com">James R. Perkins</a>
* @author <a href="mailto:david.lloyd@redhat.com">David M. Lloyd</a>
*/
@MessageLogger(projectCode = "WFLYJPA", length = 4)
public interface JpaLogger extends BasicLogger {
/**
* Default root level logger with the package name for he category.
*/
JpaLogger ROOT_LOGGER = Logger.getMessageLogger(JpaLogger.class, "org.jboss.as.jpa");
/**
* Logs a warning message indicating duplicate persistence.xml files were found.
*
* @param puName the persistence XML file.
* @param ogPuName the original persistence.xml file.
* @param dupPuName the duplicate persistence.xml file.
*/
@LogMessage(level = WARN)
@Message(id = 1, value = "Duplicate Persistence Unit definition for %s " +
"in application. One of the duplicate persistence.xml should be removed from the application." +
" Application deployment will continue with the persistence.xml definitions from %s used. " +
"The persistence.xml definitions from %s will be ignored.")
void duplicatePersistenceUnitDefinition(String puName, String ogPuName, String dupPuName);
/**
* Logs an informational message indicating the persistence.xml file is being read.
*
* @param puUnitName the persistence unit name.
*/
@LogMessage(level = INFO)
@Message(id = 2, value = "Read persistence.xml for %s")
void readingPersistenceXml(String puUnitName);
/**
* Logs an informational message indicating the service, represented by the {@code serviceName} parameter, is
* starting.
*
* @param serviceName the name of the service.
* @param name an additional name for the service.
*/
@LogMessage(level = INFO)
@Message(id = 3, value = "Starting %s Service '%s'")
void startingService(String serviceName, String name);
/**
* Logs an informational message indicating the service, represented by the {@code serviceName} parameter, is
* stopping.
*
* @param serviceName the name of the service.
* @param name an additional name for the service.
*/
@LogMessage(level = INFO)
@Message(id = 4, value = "Stopping %s Service '%s'")
void stoppingService(String serviceName, String name);
/**
* Logs an error message indicating an exception occurred while preloading the default persistence provider adapter module.
* Initialization continues after logging the error.
*
* @param cause the cause of the error.
*/
//@LogMessage(level = ERROR)
//@Message(id = 5, value = "Could not load default persistence provider adaptor module. Management attributes will not be registered for the adaptor")
//void errorPreloadingDefaultProviderAdaptor(@Cause Throwable cause);
/**
* Logs an error message indicating an exception occurred while preloading the default persistence provider module.
* Initialization continues after logging the error.
*
* @param cause the cause of the error.
*/
@LogMessage(level = ERROR)
@Message(id = 6, value = "Could not load default persistence provider module. ")
void errorPreloadingDefaultProvider(@Cause Throwable cause);
/**
* Logs an error message indicating the persistence unit was not stopped
*
* @param cause the cause of the error.
* @param name name of the persistence unit
*/
@LogMessage(level = ERROR)
@Message(id = 7, value = "Failed to stop persistence unit service %s")
void failedToStopPUService(@Cause Throwable cause, String name);
/**
* Creates an exception indicating a failure to get the module for the deployment unit represented by the
* {@code deploymentUnit} parameter.
*
* @param deploymentUnit the deployment unit that failed.
* @return a {@link org.jboss.as.server.deployment.DeploymentUnitProcessingException} for the error.
*/
@LogMessage(level = WARN)
@Message(id = 8, value = "Failed to get module attachment for %s")
void failedToGetModuleAttachment(DeploymentUnit deploymentUnit);
/**
* warn that the entity class could not be loaded with the
* {@link javax.persistence.spi.PersistenceUnitInfo#getClassLoader()}.
*
* @param cause the cause of the error.
* @param className the entity class name.
*/
//@LogMessage(level = WARN)
//@Message(id = 9, value = "Could not load entity class '%s', ignoring this error and continuing with application deployment")
//void cannotLoadEntityClass(@Cause Throwable cause, String className);
/**
* Logs an informational message indicating the persistence unit service is starting phase n of 2.
*
* @param phase is the phase number (1 or 2)
* @param name an additional name for the service.
*/
@LogMessage(level = INFO)
@Message(id = 10, value = "Starting Persistence Unit (phase %d of 2) Service '%s'")
void startingPersistenceUnitService(int phase, String name);
/**
* Logs an informational message indicating the service is stopping.
*
* @param phase is the phase number (1 or 2)
* @param name an additional name for the service.
*/
@LogMessage(level = INFO)
@Message(id = 11, value = "Stopping Persistence Unit (phase %d of 2) Service '%s'")
void stoppingPersistenceUnitService(int phase, String name);
/**
* Logs warning about unexpected problem gathering statistics.
*
* @param cause is the cause of the warning
*/
@LogMessage(level = WARN)
@Message(id = 12, value = "Unexpected problem gathering statistics")
void unexpectedStatisticsProblem(@Cause IllegalStateException cause);
/**
* Creates an exception indicating the inability ot add the integration, represented by the {@code name} parameter,
* module to the deployment.
*
* @param cause the cause of the error.
* @param name the name of the integration.
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 13, value = "Could not add %s integration module to deployment")
// RuntimeException cannotAddIntegration(@Cause Throwable cause, String name);
/**
* Creates an exception indicating the input stream reference cannot be changed.
*
* @return an {@link IllegalArgumentException} for the error.
*/
//@Message(id = 14, value = "Cannot change input stream reference.")
//IllegalArgumentException cannotChangeInputStream();
/**
* Creates an exception indicating the entity manager cannot be closed when it is managed by the container.
*
* @return an {@link IllegalStateException} for the error.
*/
@Message(id = 15, value = "Container managed entity manager can only be closed by the container " +
"(will happen when @remove method is invoked on containing SFSB)")
IllegalStateException cannotCloseContainerManagedEntityManager();
/**
* Creates an exception indicating only ExtendedEntityMangers can be closed.
*
* @param entityManagerTypeName the entity manager type name.
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 16, value = "Can only close SFSB XPC entity manager that are instances of ExtendedEntityManager %s")
//RuntimeException cannotCloseNonExtendedEntityManager(String entityManagerTypeName);
/**
* Creates an exception indicating the transactional entity manager cannot be closed when it is managed by the
* container.
*
* @return an {@link IllegalStateException} for the error.
*/
@Message(id = 17, value = "Container managed entity manager can only be closed by the container " +
"(auto-cleared at tx/invocation end and closed when owning component is closed.)")
IllegalStateException cannotCloseTransactionContainerEntityManger();
/**
* Creates an exception indicating the inability to create an instance of the adapter class represented by the
* {@code className} parameter.
*
* @param cause the cause of the error.
* @param className the adapter class name.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
@Message(id = 18, value = "Could not create instance of adapter class '%s'")
DeploymentUnitProcessingException cannotCreateAdapter(@Cause Throwable cause, String className);
/**
* Creates an exception indicating the application could not be deployed with the persistence provider, represented
* by the {@code providerName} parameter, packaged.
*
* @param cause the cause of the error.
* @param providerName the persistence provider.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
@Message(id = 19, value = "Could not deploy application packaged persistence provider '%s'")
DeploymentUnitProcessingException cannotDeployApp(@Cause Throwable cause, String providerName);
/**
* Creates an exception indicating a failure to get the Hibernate session factory from the entity manager.
*
* @param cause the cause of the error.
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 20, value = "Couldn't get Hibernate session factory from entity manager")
RuntimeException cannotGetSessionFactory(@Cause Throwable cause);
/**
* A message indicating the inability to inject a
* {@link javax.persistence.spi.PersistenceUnitTransactionType#RESOURCE_LOCAL} container managed EntityManager
* using the {@link javax.persistence.PersistenceContext} annotation.
*
* @return the message.
*/
@Message(id = 21, value = "Cannot inject RESOURCE_LOCAL container managed EntityManagers using @PersistenceContext")
String cannotInjectResourceLocalEntityManager();
/**
* Creates an exception indicating the inability to inject a
* {@link javax.persistence.spi.PersistenceUnitTransactionType#RESOURCE_LOCAL} entity manager, represented by the
* {@code unitName} parameter, using the {@code <persistence-context-ref>}.
*
* @param unitName the unit name.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
//@Message(id = 22, value = "Cannot inject RESOURCE_LOCAL entity manager %s using <persistence-context-ref>")
//DeploymentUnitProcessingException cannotInjectResourceLocalEntityManager(String unitName);
/**
* Creates an exception indicating the persistence provider adapter module, represented by the {@code adapterModule}
* parameter, had an error loading.
*
* @param cause the cause of the error.
* @param adapterModule the name of the adapter module.
* @param persistenceProviderClass the persistence provider class.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
//@Message(id = 23, value = "Persistence provider adapter module (%s) load error (class %s)")
//DeploymentUnitProcessingException cannotLoadAdapterModule(@Cause Throwable cause, String adapterModule, String persistenceProviderClass);
/**
* Creates an exception indicating the entity class could not be loaded with the
* {@link javax.persistence.spi.PersistenceUnitInfo#getClassLoader()}.
*
* @param cause the cause of the error.
* @param className the entity class name.
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 24, value = "Could not load entity class '%s' with PersistenceUnitInfo.getClassLoader()")
//RuntimeException cannotLoadEntityClass(@Cause Throwable cause, String className);
/**
* Creates an exception indicating the {@code injectionTypeName} could not be loaded from the JPA modules class
* loader.
*
* @param cause the cause of the error.
* @param injectionTypeName the name of the type.
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 25, value = "Couldn't load %s from JPA modules classloader")
RuntimeException cannotLoadFromJpa(@Cause Throwable cause, String injectionTypeName);
/**
* Creates an exception indicating the module, represented by the {@code moduleId} parameter, could not be loaded
* for the adapter, represented by the {@code name} parameter.
*
* @param cause the cause of the error.
* @param moduleId the module id that was attempting to be loaded.
* @param name the name of the adapter.
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 26, value = "Could not load module %s to add %s adapter to deployment")
//RuntimeException cannotLoadModule(@Cause Throwable cause, ModuleIdentifier moduleId, String name);
/**
* Creates an exception indicating the persistence provider module, represented by the
* {@code persistenceProviderModule} parameter, had an error loading.
*
* @param cause the cause of the error.
* @param persistenceProviderModule the name of the adapter module.
* @param persistenceProviderClass the persistence provider class.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
@Message(id = 27, value = "Persistence provider module load error %s (class %s)")
DeploymentUnitProcessingException cannotLoadPersistenceProviderModule(@Cause Throwable cause, String persistenceProviderModule, String persistenceProviderClass);
/**
* Creates an exception indicating the top of the stack could not be replaced because the stack is {@code null}.
*
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 28, value = "Internal error: Cannot replace top of stack as stack is null (same as being empty).")
//RuntimeException cannotReplaceStack();
/**
* Creates an exception indicating that both {@code key1} and {@code key2} cannot be specified for the object.
*
* @param key1 the first key/tag.
* @param value1 the first value.
* @param key2 the second key/tag.
* @param value2 the second value.
* @param parentTag the parent tag.
* @param object the object the values are being specified for.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
@Message(id = 29, value = "Cannot specify both %s (%s) and %s (%s) in %s for %s")
DeploymentUnitProcessingException cannotSpecifyBoth(String key1, Object value1, String key2, Object value2, String parentTag, Object object);
/**
* Creates an exception indicating the extended persistence context for the SFSB already exists.
*
* @param puScopedName the persistence unit name.
* @param existingEntityManager the existing transactional entity manager.
* @param self the entity manager attempting to be created.
* @return an {@link javax.ejb.EJBException} for the error.
*/
@Message(id = 30, value = "Found extended persistence context in SFSB invocation call stack but that cannot be used " +
"because the transaction already has a transactional context associated with it. " +
"This can be avoided by changing application code, either eliminate the extended " +
"persistence context or the transactional context. See JPA spec 2.0 section 7.6.3.1. " +
"Scoped persistence unit name=%s, persistence context already in transaction =%s, extended persistence context =%s.")
EJBException cannotUseExtendedPersistenceTransaction(String puScopedName, EntityManager existingEntityManager, EntityManager self);
/**
* Creates an exception indicating the child could not be found on the parent.
*
* @param child the child that could not be found.
* @param parent the parent.
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 31, value = "Could not find child '%s' on '%s'")
RuntimeException childNotFound(String child, VirtualFile parent);
/**
* Creates an exception indicating the class level annotation must provide the parameter specified.
*
* @param annotation the annotation.
* @param className the class name
* @param parameter the parameter.
* @return a string for the error.
*/
@Message(id = 32, value = "Class level %s annotation on class %s must provide a %s")
String classLevelAnnotationParameterRequired(String annotation, String className, String parameter);
/**
* A message indicating that the persistence unit, represented by the {@code path} parameter, could not be found at
* the current deployment unit, represented by the {@code deploymentUnit} parameter.
*
* @param puName the persistence unit name.
* @param deploymentUnit the deployment unit.
* @return the message.
*/
@Message(id = 33, value = "Can't find a persistence unit named %s in %s")
String persistenceUnitNotFound(String puName, DeploymentUnit deploymentUnit);
/**
* Creates an exception indicating that the persistence unit, represented by the {@code path} and {@code puName}
* parameters, could not be found at the current deployment unit, represented by the {@code deploymentUnit}
* parameter.
*
* @param path the path.
* @param puName the persistence unit name.
* @param deploymentUnit the deployment unit.
* @return an {@link IllegalArgumentException} for the error.
*/
@Message(id = 34, value = "Can't find a persistence unit named %s#%s at %s")
IllegalArgumentException persistenceUnitNotFound(String path, String puName, DeploymentUnit deploymentUnit);
/**
* Creates an exception indicating the parameter, likely a collection, is empty.
*
* @param parameterName the parameter name.
* @return an {@link IllegalArgumentException} for the error.
*/
//@Message(id = 35, value = "Parameter %s is empty")
//IllegalArgumentException emptyParameter(String parameterName);
/**
* Creates an exception indicating there was an error when trying to get the transaction associated with the
* current thread.
*
* @param cause the cause of the error.
* @return an {@link IllegalStateException} for the error.
*/
@Message(id = 36, value = "An error occurred while getting the transaction associated with the current thread: %s")
IllegalStateException errorGettingTransaction(Exception cause);
/**
* Creates an exception indicating a failure to get the adapter for the persistence provider.
*
* @param className the adapter class name.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
@Message(id = 37, value = "Failed to get adapter for persistence provider '%s'")
DeploymentUnitProcessingException failedToGetAdapter(String className);
/**
* Creates an exception indicating a failure to add the persistence unit service.
*
* @param cause the cause of the error.
* @param puName the persistence unit name.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
@Message(id = 38, value = "Failed to add persistence unit service for %s")
DeploymentUnitProcessingException failedToAddPersistenceUnit(@Cause Throwable cause, String puName);
/**
* Creates an exception indicating a failure to get the module for the deployment unit represented by the
* {@code deploymentUnit} parameter.
*
* @param deploymentUnit the deployment unit that failed.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
//@Message(id = 39, value = "Failed to get module attachment for %s")
//DeploymentUnitProcessingException failedToGetModuleAttachment(DeploymentUnit deploymentUnit);
/**
* A message indicating a failure to parse the file.
*
* @param file the file that could not be parsed.
* @return the message.
*/
@Message(id = 40, value = "Failed to parse %s")
String failedToParse(VirtualFile file);
/**
* Creates an exception indicating the entity manager factory implementation can only be a Hibernate version.
*
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 41, value = "Can only inject from a Hibernate EntityManagerFactoryImpl")
RuntimeException hibernateOnlyEntityManagerFactory();
/**
* Creates an exception indicating the entity manager factory implementation can only be a Hibernate version.
*
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 42, value = "File %s not found")
//RuntimeException fileNotFound(File file);
/**
* Creates an exception indicating the persistence unit name contains an invalid character.
*
* @param persistenceUnitName the persistence unit name.
* @param c the invalid character.
* @return an {@link IllegalArgumentException} for the error.
*/
@Message(id = 43, value = "Persistence unit name (%s) contains illegal '%s' character")
IllegalArgumentException invalidPersistenceUnitName(String persistenceUnitName, char c);
/**
* Creates an exception indicating the (custom) scoped persistence unit name is invalid.
*
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 44, value = "jboss.as.jpa.scopedname hint (%s) contains illegal '%s' character")
IllegalArgumentException invalidScopedName(String persistenceUnitName, char c);
/**
* Creates an exception indicating the inability to integrate the module, represented by the {@code integrationName}
* parameter, to the deployment as it expected a {@link java.net.JarURLConnection}.
*
* @param integrationName the name of the integration that could not be integrated.
* @param connection the invalid connection.
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 45, value = "Could not add %s integration module to deployment, did not get expected JarUrlConnection, got %s")
//RuntimeException invalidUrlConnection(String integrationName, URLConnection connection);
//@Message(id = 46, value = "Could not load %s")
//XMLStreamException errorLoadingJBossJPAFile(@Cause Throwable cause, String path);
/**
* Creates an exception indicating the persistence unit metadata likely because thread local was not set.
*
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 47, value = "Missing PersistenceUnitMetadata (thread local wasn't set)")
//RuntimeException missingPersistenceUnitMetadata();
/**
* Creates an exception indicating the persistence provider adapter module, represented by the {@code adapterModule}
* parameter, has more than one adapter.
*
* @param adapterModule the adapter module name.
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 48, value = "Persistence provider adapter module (%s) has more than one adapter")
RuntimeException multipleAdapters(String adapterModule);
/**
* Creates an exception indicating more than one thread is invoking the stateful session bean at the same time.
*
* @param sessionBean the stateful session bean.
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 49, value = "More than one thread is invoking stateful session bean '%s' at the same time")
//RuntimeException multipleThreadsInvokingSfsb(Object sessionBean);
/**
* Creates an exception indicating more than one thread is using the entity manager instance at the same time.
*
* @param entityManager the entity manager.
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 50, value = "More than one thread is using EntityManager instance '%s' at the same time")
//RuntimeException multipleThreadsUsingEntityManager(EntityManager entityManager);
/**
* Creates an exception indicating the {@code name} was not set in the {@link org.jboss.invocation.InterceptorContext}.
*
* @param name the name of the field not set.
* @param context the context.
* @return an {@link IllegalArgumentException} for the error.
*/
//@Message(id = 51, value = "%s not set in InterceptorContext: %s")
//IllegalArgumentException notSetInInterceptorContext(String name, InterceptorContext context);
/**
* Creates an exception indicating the method is not yet implemented.
*
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 52, value = "Not yet implemented")
//RuntimeException notYetImplemented();
/**
* Creates an exception indicating the {@code description} is {@code null}.
*
* @param description the description of the parameter.
* @param parameterName the parameter name.
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 53, value = "Internal %s error, null %s passed in")
RuntimeException nullParameter(String description, String parameterName);
/**
* Creates an exception indicating the variable is {@code null}.
*
* @param varName the variable name.
* @return an {@link IllegalArgumentException} for the error.
*/
//@Message(id = 54, value = "Parameter %s is null")
//IllegalArgumentException nullVar(String varName);
/**
* A message indicating the object for the class ({@code cls} has been defined and is not {@code null}.
*
* @param cls the class for the object.
* @param previous the previously defined object.
* @return the message.
*/
//@Message(id = 55, value = "Previous object for class %s is %s instead of null")
//String objectAlreadyDefined(Class<?> cls, Object previous);
/**
* Creates an exception indicating the parameter must be an ExtendedEntityManager
*
* @param gotClass
* @return a {@link RuntimeException} for the error.
*/
//@Message(id = 56, value = "Internal error, expected parameter of type ExtendedEntityManager but instead got %s")
//RuntimeException parameterMustBeExtendedEntityManager(String gotClass);
/**
* Creates an exception indicating the persistence provider could not be found.
*
* @param providerName the provider name.
* @return a {@link javax.persistence.PersistenceException} for the error.
*/
@Message(id = 57, value = "PersistenceProvider '%s' not found")
PersistenceException persistenceProviderNotFound(String providerName);
/**
* Creates an exception indicating the relative path could not be found.
*
* @param cause the cause of the error.
* @param path the path that could not be found.
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 58, value = "Could not find relative path: %s")
RuntimeException relativePathNotFound(@Cause Throwable cause, String path);
/**
* A message indicating the annotation is only valid on setter method targets.
*
* @param annotation the annotation.
* @param methodInfo the method information.
* @return the message.
*/
@Message(id = 59, value = "%s injection target is invalid. Only setter methods are allowed: %s")
String setterMethodOnlyAnnotation(String annotation, MethodInfo methodInfo);
/**
* Creates an exception indicating a transaction is required for the operation.
*
* @return a {@link javax.persistence.TransactionRequiredException} for the error.
*/
@Message(id = 60, value = "Transaction is required to perform this operation (either use a transaction or extended persistence context)")
TransactionRequiredException transactionRequired();
/**
* JBoss 4 prevented applications from referencing the persistence unit without specifying the pu name, if there
* were multiple persistence unit definitions in the app. JBoss 5 loosened the checking up, to let applications,
* just use any PU definition that they find. For AS7, we are strictly enforcing this again just like we did in
* JBoss 4.
* AS7-2275
*
* @param deploymentUnit the deployment unit.
* @param puCount is number of persistence units defined in application
*
* @return an {@link IllegalArgumentException} for the error.
*/
@Message(id = 61, value = "Persistence unitName was not specified and there are %d persistence unit definitions in application deployment %s."+
" Either change the application deployment to have only one persistence unit definition or specify the unitName for each reference to a persistence unit.")
IllegalArgumentException noPUnitNameSpecifiedAndMultiplePersistenceUnits(int puCount, DeploymentUnit deploymentUnit);
/**
* Creates an exception indicating the persistence provider could not be instantiated ,
*
* @param cause the cause of the error.
* @param providerClassName
*
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 62, value = "Could not create instance of persistence provider class %s")
RuntimeException couldNotCreateInstanceProvider(@Cause Throwable cause, String providerClassName);
/**
* internal error indicating that the number of stateful session beans associated with a
* extended persistence context has reached a negative count.
*
* @return a {@link RuntimeException} for the error
*/
@Message(id = 63, value = "internal error, the number of stateful session beans (%d) associated " +
"with an extended persistence context (%s) cannot be a negative number.")
RuntimeException referenceCountedEntityManagerNegativeCount(int referenceCount, String scopedPuName);
/**
* Can't use a new unsynchronization persistence context when transaction already has a synchronized persistence context.
*
* @param puScopedName the persistence unit name.
* @return an {@link IllegalStateException} for the error.
*/
@Message(id = 64, value =
"JTA transaction already has a 'SynchronizationType.UNSYNCHRONIZED' persistence context (EntityManager) joined to it " +
"but a component with a 'SynchronizationType.SYNCHRONIZED' is now being used. " +
"Change the calling component code to join the persistence context (EntityManager) to the transaction or "+
"change the called component code to also use 'SynchronizationType.UNSYNCHRONIZED'. "+
"See JPA spec 2.1 section 7.6.4.1. " +
"Scoped persistence unit name=%s.")
IllegalStateException badSynchronizationTypeCombination(String puScopedName);
@Message(id = 65, value = "Resources of type %s cannot be registered")
UnsupportedOperationException resourcesOfTypeCannotBeRegistered(String key);
@Message(id = 66, value = "Resources of type %s cannot be removed")
UnsupportedOperationException resourcesOfTypeCannotBeRemoved(String key);
/**
* Only one persistence provider adapter per (persistence provider or application) classloader is allowed
*
* @param classloader
* @return a {@link RuntimeException} for the error.
*/
@Message(id = 67, value = "Classloader '%s' has more than one Persistence provider adapter")
RuntimeException classloaderHasMultipleAdapters(String classloader);
/**
* Likely cause is that the application deployment did not complete successfully
*
* @param scopedPuName
* @return
*/
@Message(id = 68, value = "Persistence unit '%s' is not available")
IllegalStateException PersistenceUnitNotAvailable(String scopedPuName);
/**
* persistence provider adaptor module load error
*
* @param cause the cause of the error.
* @param adaptorModule name of persistence provider adaptor module that couldn't be loaded.
* @return
*/
@Message(id = 69, value = "Persistence provider adapter module load error %s")
DeploymentUnitProcessingException persistenceProviderAdaptorModuleLoadError(@Cause Throwable cause, String adaptorModule);
/**
* extended persistence context can only be used within a stateful session bean. WFLY-69
*
* @param scopedPuName
* @return
*/
@Message(id = 70, value = "A container-managed extended persistence context can only be initiated within the scope of a stateful session bean (persistence unit '%s').")
IllegalStateException xpcOnlyFromSFSB(String scopedPuName);
@Message(id = 71, value = "Deployment '%s' specified more than one Hibernate Search module name ('%s','%s')")
DeploymentUnitProcessingException differentSearchModuleDependencies(String deployment, String searchModuleName1, String searchModuleName2);
// id = 72, value = "Could not obtain TransactionListenerRegistry from transaction manager")
}