package org.infinispan.query.logging;
import static org.jboss.logging.Logger.Level.DEBUG;
import static org.jboss.logging.Logger.Level.ERROR;
import static org.jboss.logging.Logger.Level.INFO;
import static org.jboss.logging.Logger.Level.TRACE;
import static org.jboss.logging.Logger.Level.WARN;
import java.io.IOException;
import java.util.List;
import javax.transaction.Transaction;
import org.hibernate.search.backend.LuceneWork;
import org.infinispan.commons.CacheException;
import org.infinispan.objectfilter.ParsingException;
import org.infinispan.remoting.transport.Address;
import org.jboss.logging.annotations.Cause;
import org.jboss.logging.annotations.LogMessage;
import org.jboss.logging.annotations.Message;
import org.jboss.logging.annotations.MessageLogger;
/**
* Log abstraction for the query module. For this module, message ids
* ranging from 14001 to 14800 inclusively have been reserved.
*
* @author Galder ZamarreƱo
* @author Sanne Grinovero
* @since 5.0
*/
@MessageLogger(projectCode = "ISPN")
public interface Log extends org.infinispan.util.logging.Log {
@LogMessage(level = ERROR)
@Message(value = "Could not locate key class %s", id = 14001)
void keyClassNotFound(String keyClassName, @Cause Exception e);
@LogMessage(level = ERROR)
@Message(value = "Cannot instantiate Transformer class %s", id = 14002)
void couldNotInstantiaterTransformerClass(Class<?> transformer, @Cause Exception e);
@LogMessage(level = INFO)
@Message(value = "Registering Query interceptor for cache %s", id = 14003)
void registeringQueryInterceptor(String cacheName);
@LogMessage(level = DEBUG)
@Message(value = "Custom commands backend initialized backing index %s", id = 14004)
void commandsBackendInitialized(String indexName);
@LogMessage(level = TRACE)
@Message(value = "Sent list of LuceneWork %s to node %s", id = 14005)
void workListRemotedTo(Object workList, Address primaryNodeAddress);
@LogMessage(level = TRACE)
@Message(value = "Apply list of LuceneWork %s delegating to local indexing engine", id = 14006)
void applyingChangeListLocally(List<LuceneWork> workList);
@LogMessage(level = DEBUG)
@Message(value = "Going to ship list of LuceneWork %s to a remote master indexer", id = 14007)
void applyingChangeListRemotely(List<LuceneWork> workList);
@LogMessage(level = WARN)
@Message(value = "Index named '%1$s' is ignoring configuration option 'directory_provider' set '%2$s':" +
" overridden to use the Infinispan Directory", id = 14008)
void ignoreDirectoryProviderProperty(String indexName, String directoryOption);
@LogMessage(level = WARN)
@Message(value = "Indexed type '%1$s' is using a default Transformer. This is slow! Register a custom implementation using @Transformable", id = 14009)
void typeIsUsingDefaultTransformer(Class<?> keyClass);
@Message(value = "An IOException happened where none where expected", id = 14010)
CacheException unexpectedIOException(@Cause IOException e);
@LogMessage(level = WARN)
@Message(value = "Some indexing work was lost because of an InterruptedException", id = 14011)
void interruptedWhileBufferingWork(@Cause InterruptedException e);
@LogMessage(level = DEBUG)
@Message(value = "Waiting for index lock was successful: '%1$s'", id = 14012)
void waitingForLockAcquired(boolean waitForAvailabilityInternal);
@Message(value = "Cache named '%1$s' is being shut down. No longer accepting remote commands.", id = 14013)
CacheException cacheIsStoppingNoCommandAllowed(String cacheName);
@LogMessage(level = INFO)
@Message(value = "Reindexed %1$d entities", id = 14014)
void indexingEntitiesCompleted(long nbrOfEntities);
@LogMessage(level = INFO)
@Message(value = "%1$d documents indexed in %2$d ms", id = 14015)
void indexingDocumentsCompleted(long doneCount, long elapsedMs);
@LogMessage(level = INFO)
@Message(value = "Purging instances of '%s' from the index", id = 14016)
void purgingIndex(String entityType);
@LogMessage(level = INFO)
@Message(value = "Flushing index '%s'", id = 14017)
void flushingIndex(String entityType);
@Message(value = "Error executing MassIndexer", id = 14018)
CacheException errorExecutingMassIndexer(@Cause Throwable cause);
@Message(value = "Cannot run Lucene queries on a cache '%s' that does not have indexing enabled", id = 14019)
IllegalStateException cannotRunLuceneQueriesIfNotIndexed(String cacheName);
@Message(value = "Queries containing grouping and aggregation functions must use projections.", id = 14021)
ParsingException groupingAndAggregationQueriesMustUseProjections();
@Message(value = "Cannot have aggregate functions in GROUP BY clause", id = 14022)
IllegalStateException cannotHaveAggregationsInGroupByClause();
@Message(value = "Using the multi-valued property path '%s' in the GROUP BY clause is not currently supported", id = 14023)
ParsingException multivaluedPropertyCannotBeUsedInGroupBy(String propertyPath);
@Message(value = "The property path '%s' cannot be used in the ORDER BY clause because it is multi-valued", id = 14024)
ParsingException multivaluedPropertyCannotBeUsedInOrderBy(String propertyPath);
@Message(value = "The query must not use grouping or aggregation", id = 14025)
IllegalStateException queryMustNotUseGroupingOrAggregation();
@Message(value = "The expression '%s' must be part of an aggregate function or it should be included in the GROUP BY clause", id = 14026)
ParsingException expressionMustBePartOfAggregateFunctionOrShouldBeIncludedInGroupByClause(String propertyPath);
@Message(value = "The property path '%s' cannot be projected because it is multi-valued", id = 14027)
ParsingException multivaluedPropertyCannotBeProjected(String propertyPath);
@LogMessage(level = INFO)
@Message(value = "Autodetected a new indexed entity type in cache %s: %s.", id = 14028)
void detectedUnknownIndexedEntity(String cacheName, String className);
@LogMessage(level = WARN)
@Message(value = "Found undeclared indexable types in cache %s : %s. No indexes were created for these types because autodetection is not enabled for this cache.", id = 14029)
void detectedUnknownIndexedEntities(String cacheName, String classNames);
@Message(value = "The type %s is not an indexed entity.", id = 14030)
IllegalArgumentException getNoIndexedEntityException(String typeName);
@Message(value = "Could not locate error handler class %s", id = 14032)
IllegalArgumentException unsupportedErrorHandlerConfigurationValueType(Class<?> type);
@Message(value = "Unable to resume suspended transaction %s", id = 14033)
CacheException unableToResumeSuspendedTx(Transaction transaction, @Cause Throwable cause);
@Message(value = "Unable to suspend transaction", id = 14034)
CacheException unableToSuspendTx(@Cause Throwable cause);
@LogMessage(level = WARN)
@Message(value = "Error occurred while applying changes to the index", id = 14035)
void errorOccurredApplyingChanges(@Cause Throwable cause);
@Message(value = "Prefix, wildcard or regexp queries cannot be fuzzy: %s", id = 14036)
ParsingException getPrefixWildcardOrRegexpQueriesCannotBeFuzzy(String s); //todo [anistor] this should be thrown earlier at parsing time
@Message(value = "Invalid boolean literal '%s'", id = 14037)
ParsingException getInvalidBooleanLiteralException(String value);
@Message(value = "infinispan-query.jar module is in the classpath but has not been properly initialised!", id = 14038)
CacheException queryModuleNotInitialised();
}