/*
* JBoss, Home of Professional Open Source.
* Copyright 2017, 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.wildfly.extension.undertow.logging;
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 java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import org.jboss.as.server.deployment.DeploymentUnit;
import org.jboss.as.server.deployment.DeploymentUnitProcessingException;
import org.jboss.dmr.ModelNode;
import org.jboss.jandex.AnnotationTarget;
import org.jboss.jandex.ClassInfo;
import org.jboss.logging.BasicLogger;
import org.jboss.logging.Logger;
import org.jboss.logging.annotations.Cause;
import org.jboss.logging.annotations.LogMessage;
import org.jboss.logging.annotations.Message;
import org.jboss.logging.annotations.MessageLogger;
import org.jboss.msc.service.ServiceName;
import org.jboss.msc.service.StartException;
import org.jboss.vfs.VirtualFile;
/**
* @author <a href="mailto:jperkins@redhat.com">James R. Perkins</a>
*/
@MessageLogger(projectCode = "WFLYUT", length = 4)
public interface UndertowLogger extends BasicLogger {
/**
* A root logger with the category of the package name.
*/
UndertowLogger ROOT_LOGGER = Logger.getMessageLogger(UndertowLogger.class, "org.wildfly.extension.undertow");
/*
UNDERTOW messages start
*/
@LogMessage(level = Logger.Level.ERROR)
@Message(id = 1, value = "Could not initialize JSP")
void couldNotInitJsp(@Cause ClassNotFoundException e);
// @LogMessage(level = ERROR)
// @Message(id = 2, value = "Failed to purge EL cache.")
// void couldNotPurgeELCache(@Cause Exception exception);
@LogMessage(level = INFO)
@Message(id = 3, value = "Undertow %s starting")
void serverStarting(String version);
@LogMessage(level = INFO)
@Message(id = 4, value = "Undertow %s stopping")
void serverStopping(String version);
@LogMessage(level = WARN)
@Message(id = 5, value = "Secure listener for protocol: '%s' not found! Using non secure port!")
void secureListenerNotAvailableForPort(String protocol);
/**
* Creates an exception indicating the class, represented by the {@code className} parameter, cannot be accessed.
*
* @param name name of the listener
* @param address socket address
*/
@LogMessage(level = INFO)
@Message(id = 6, value = "Undertow %s listener %s listening on %s:%d")
void listenerStarted(String type, String name, String address, int port);
@LogMessage(level = INFO)
@Message(id = 7, value = "Undertow %s listener %s stopped, was bound to %s:%d")
void listenerStopped(String type, String name, String address, int port);
@LogMessage(level = INFO)
@Message(id = 8, value = "Undertow %s listener %s suspending")
void listenerSuspend(String type, String name);
@LogMessage(level = INFO)
@Message(id = 9, value = "Could not load class designated by HandlesTypes [%s].")
void cannotLoadDesignatedHandleTypes(ClassInfo classInfo, @Cause Exception e);
@LogMessage(level = WARN)
@Message(id = 10, value = "Could not load web socket endpoint %s.")
void couldNotLoadWebSocketEndpoint(String s, @Cause Exception e);
@LogMessage(level = WARN)
@Message(id = 11, value = "Could not load web socket application config %s.")
void couldNotLoadWebSocketConfig(String s, @Cause Exception e);
@LogMessage(level = INFO)
@Message(id = 12, value = "Started server %s.")
void startedServer(String name);
@LogMessage(level = WARN)
@Message(id = 13, value = "Could not create redirect URI.")
void invalidRedirectURI(@Cause Throwable cause);
@LogMessage(level = INFO)
@Message(id = 14, value = "Creating file handler for path '%s' with options [directory-listing: '%s', follow-symlink: '%s', case-sensitive: '%s', safe-symlink-paths: '%s']")
void creatingFileHandler(String path, boolean directoryListing, boolean followSymlink, boolean caseSensitive, List<String> safePaths);
// @LogMessage(level = TRACE)
// @Message(id = 15, value = "registering handler %s under path '%s'")
// void registeringHandler(HttpHandler value, String locationPath);
@LogMessage(level = WARN)
@Message(id = 16, value = "Could not resolve name in absolute ordering: %s")
void invalidAbsoluteOrdering(String name);
@LogMessage(level = WARN)
@Message(id = 17, value = "Could not delete servlet temp file %s")
void couldNotDeleteTempFile(File file);
@LogMessage(level = INFO)
@Message(id = 18, value = "Host %s starting")
void hostStarting(String version);
@LogMessage(level = INFO)
@Message(id = 19, value = "Host %s stopping")
void hostStopping(String version);
@LogMessage(level = WARN)
@Message(id = 20, value = "Clustering not supported, falling back to non-clustered session manager")
void clusteringNotSupported();
@LogMessage(level = INFO)
@Message(id = 21, value = "Registered web context: '%s' for server '%s'")
void registerWebapp(String webappPath, String serverName);
@LogMessage(level = INFO)
@Message(id = 22, value = "Unregistered web context: '%s' from server '%s'")
void unregisterWebapp(String webappPath, String serverName);
@LogMessage(level = INFO)
@Message(id = 23, value = "Skipped SCI for jar: %s.")
void skippedSCI(String jar, @Cause Exception e);
@LogMessage(level = Logger.Level.WARN)
@Message(id = 24, value = "Failed to persist session attribute %s with value %s for session %s")
void failedToPersistSessionAttribute(String attributeName, Object value, String sessionID, @Cause Exception e);
@LogMessage(level = ERROR)
@Message(id = 25, value = "Failed to register policy context handler for key %s")
void failedToRegisterPolicyContextHandler(String key, @Cause Exception e);
// @Message(id = 26, value = "Unknown handler '%s' encountered")
// XMLStreamException unknownHandler(String name, @Param Location location);
@Message(id = 27, value = "Failed to parse XML descriptor %s at [%s,%s]")
String failToParseXMLDescriptor(String xmlFile, Integer line, Integer column);
@Message(id = 28, value = "Failed to parse XML descriptor %s")
String failToParseXMLDescriptor(String xmlFile);
@Message(id = 29, value = "@WebServlet is only allowed at class level %s")
String invalidWebServletAnnotation(AnnotationTarget target);
@Message(id = 30, value = "@WebInitParam requires name and value on %s")
String invalidWebInitParamAnnotation(AnnotationTarget target);
@Message(id = 31, value = "@WebFilter is only allowed at class level %s")
String invalidWebFilterAnnotation(AnnotationTarget target);
@Message(id = 32, value = "@WebListener is only allowed at class level %s")
String invalidWebListenerAnnotation(AnnotationTarget target);
@Message(id = 33, value = "@RunAs needs to specify a role name on %s")
String invalidRunAsAnnotation(AnnotationTarget target);
@Message(id = 34, value = "@DeclareRoles needs to specify role names on %s")
String invalidDeclareRolesAnnotation(AnnotationTarget target);
@Message(id = 35, value = "@MultipartConfig is only allowed at class level %s")
String invalidMultipartConfigAnnotation(AnnotationTarget target);
@Message(id = 36, value = "@ServletSecurity is only allowed at class level %s")
String invalidServletSecurityAnnotation(AnnotationTarget target);
@Message(id = 37, value = "%s has the wrong component type, it cannot be used as a web component")
RuntimeException wrongComponentType(String clazz);
@Message(id = 38, value = "TLD file %s not contained in root %s")
String tldFileNotContainedInRoot(String tldPath, String rootPath);
@Message(id = 39, value = "Failed to resolve module for deployment %s")
DeploymentUnitProcessingException failedToResolveModule(DeploymentUnit deploymentUnit);
@Message(id = 40, value = "Duplicate others in absolute ordering")
String invalidMultipleOthers();
@Message(id = 41, value = "Invalid relative ordering")
String invalidRelativeOrdering();
@Message(id = 42, value = "Conflict occurred processing web fragment in JAR: %s")
String invalidWebFragment(String jar);
@Message(id = 43, value = "Relative ordering processing error with JAR: %s")
String invalidRelativeOrdering(String jar);
@Message(id = 44, value = "Ordering includes both before and after others in JAR: %s")
String invalidRelativeOrderingBeforeAndAfter(String jar);
@Message(id = 45, value = "Duplicate name declared in JAR: %s")
String invalidRelativeOrderingDuplicateName(String jar);
@LogMessage(level = WARN)
@Message(id = 46, value = "Unknown web fragment name declared in JAR: %s")
void invalidRelativeOrderingUnknownName(String jar);
@Message(id = 47, value = "Relative ordering conflict with JAR: %s")
String invalidRelativeOrderingConflict(String jar);
@Message(id = 48, value = "Failed to process WEB-INF/lib: %s")
String failToProcessWebInfLib(VirtualFile xmlFile);
@Message(id = 49, value = "Error loading SCI from module: %s")
DeploymentUnitProcessingException errorLoadingSCIFromModule(String identifier, @Cause Exception e);
@Message(id = 50, value = "Unable to resolve annotation index for deployment unit: %s")
DeploymentUnitProcessingException unableToResolveAnnotationIndex(DeploymentUnit deploymentUnit);
@Message(id = 51, value = "Deployment error processing SCI for jar: %s")
DeploymentUnitProcessingException errorProcessingSCI(String jar, @Cause Exception e);
@Message(id = 52, value = "Security context creation failed")
RuntimeException failToCreateSecurityContext(@Cause Throwable t);
@Message(id = 53, value = "No security context found")
IllegalStateException noSecurityContext();
@Message(id = 54, value = "Unknown metric %s")
String unknownMetric(Object metric);
@Message(id = 55, value = "Null default host")
IllegalArgumentException nullDefaultHost();
@Message(id = 56, value = "Null host name")
IllegalStateException nullHostName();
@Message(id = 57, value = "Null parameter %s")
IllegalArgumentException nullParamter(String id);
@Message(id = 58, value = "Cannot activate context: %s")
IllegalStateException cannotActivateContext(@Cause Throwable th, ServiceName service);
@Message(id = 59, value = "Could not construct handler for class: %s. with parameters %s")
RuntimeException cannotCreateHttpHandler(Class<?> handlerClass, ModelNode parameters, @Cause Throwable cause);
@Message(id = 60, value = "Invalid persistent sessions directory %s")
StartException invalidPersistentSessionDir(File baseDir);
@Message(id = 61, value = "Failed to create persistent sessions dir %s")
StartException failedToCreatePersistentSessionDir(File baseDir);
@Message(id = 62, value = "Could not create log directory: %s")
StartException couldNotCreateLogDirectory(Path directory, @Cause IOException e);
@Message(id = 63, value = "Could not find the port number listening for protocol %s")
IllegalStateException noPortListeningForProtocol(final String protocol);
@Message(id = 64, value = "Failed to configure handler %s")
RuntimeException failedToConfigureHandler(Class<?> handlerClass, @Cause Exception e);
@Message(id = 65, value = "Handler class %s was not a handler or a wrapper")
IllegalArgumentException handlerWasNotAHandlerOrWrapper(Class<?> handlerClass);
@Message(id = 66, value = "Failed to configure handler %s")
RuntimeException failedToConfigureHandlerClass(String handlerClass, @Cause Exception e);
@Message(id = 67, value = "Servlet class not defined for servlet %s")
IllegalArgumentException servletClassNotDefined(final String servletName);
@LogMessage(level = ERROR)
@Message(id = 68, value = "Error obtaining authorization helper")
void noAuthorizationHelper(@Cause Exception e);
@LogMessage(level = ERROR)
@Message(id = 69, value = "Ignoring shared-session-config in jboss-all.xml in deployment %s. This entry is only valid in top level deployments.")
void sharedSessionConfigNotInRootDeployment(String deployment);
@Message(id = 70, value = "Could not load handler %s from %s module")
RuntimeException couldNotLoadHandlerFromModule(String className, String moduleName, @Cause Exception e);
@LogMessage(level = WARN)
@Message(id = 71, value = "No ALPN provider found, HTTP/2 will not be enabled. To remove this message set enable-http2 to false on the listener %s in the Undertow subsystem.")
void alpnNotFound(String listener);
@Message(id = 72, value = "Could not find configured external path %s")
DeploymentUnitProcessingException couldNotFindExternalPath(File path);
@Message(id = 73, value = "mod_cluster advertise socket binding requires multicast address to be set")
StartException advertiseSocketBindingRequiresMulticastAddress();
@LogMessage(level = ERROR)
@Message(id = 74, value = "Could not find TLD %s")
void tldNotFound(String location);
@Message(id = 75, value = "Cannot register resource of type %s")
IllegalArgumentException cannotRegisterResourceOfType(String type);
@Message(id = 76, value = "Cannot remove resource of type %s")
IllegalArgumentException cannotRemoveResourceOfType(String type);
@LogMessage(level = ERROR)
@Message(id = 78, value = "Failed to register management view for websocket %s at %s")
void failedToRegisterWebsocket(Class endpoint, String path, @Cause Exception e);
@LogMessage(level = ERROR)
@Message(id = 77, value = "Error invoking secure response")
void errorInvokingSecureResponse(@Cause Exception e);
@Message(id = 79, value = "No SSL Context available from security realm '%s'. Either the realm is not configured for SSL, or the server has not been reloaded since the SSL config was added.")
IllegalStateException noSslContextInSecurityRealm(String securityRealm);
@LogMessage(level = WARN)
@Message(id = 80, value = "Valves are no longer supported, %s is not activated.")
void unsupportedValveFeature(String valve);
@LogMessage(level = WARN)
@Message(id = 81, value = "The deployment %s will not be distributable because this feature is disabled in web-fragment.xml of the module %s.")
void distributableDisabledInFragmentXml(String deployment, String module);
@Message(id = 82, value = "Could not start '%s' listener.")
StartException couldNotStartListener(String name, @Cause IOException e);
@Message(id = 83, value = "%s is not allowed to be null")
String nullNotAllowed(String name);
@Message(id = 84, value = "There are no mechanisms available from the HttpAuthenticationFactory.")
IllegalStateException noMechanismsAvailable();
@Message(id = 85, value = "The required mechanism '%s' is not available from the HttpAuthenticationFactory.")
IllegalStateException requiredMechanismNotAvailable(String mechanismName);
@Message(id = 86, value = "No authentication mechanisms have been selected.")
IllegalStateException noMechanismsSelected();
@Message(id = 87, value = "Duplicate default web module '%s' configured on server '%s', host '%s'")
IllegalArgumentException duplicateDefaultWebModuleMapping(String defaultDeploymentName, String serverName, String hostName);
// @LogMessage(level = WARN)
// @Message(id = 88, value = "HTTP/2 will not be enabled as TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 is not enabled. You may need to install JCE to enable strong ciphers to allow HTTP/2 to function.")
// void noStrongCiphers();
@Message(id = 89, value = "Predicate %s was not valid, message was: %s")
String predicateNotValid(String predicate, String error);
@Message(id = 90, value = "Key alias %s does not exist in the configured key store")
IllegalArgumentException missingKeyStoreEntry(String alias);
@Message(id = 91, value = "Key store entry %s is not a private key entry")
IllegalArgumentException keyStoreEntryNotPrivate(String alias);
@Message(id = 92, value = "Credential alias %s does not exist in the configured credential store")
IllegalArgumentException missingCredential(String alias);
@Message(id = 93, value = "Credential %s is not a clear text password")
IllegalArgumentException credentialNotClearPassword(String alias);
@Message(id = 94, value = "Configuration option [%s] ignored when using Elytron subsystem")
@LogMessage(level = WARN)
void configurationOptionIgnoredWhenUsingElytron(String option);
@Message(id = 95, value = "the path ['%s'] doesn't exist on file system")
String unableAddHandlerForPath(String path);
}