/*
* 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.jaxrs.logging;
import org.jboss.as.jaxrs.deployment.JaxrsSpringProcessor;
import javax.ws.rs.core.Application;
import org.jboss.as.server.deployment.DeploymentUnitProcessingException;
import org.jboss.jandex.AnnotationTarget;
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 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.util.List;
/**
* @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 = "WFLYRS", length = 4)
public interface JaxrsLogger extends BasicLogger {
/**
* A logger with the category {@code org.jboss.jaxrs}.
*/
JaxrsLogger JAXRS_LOGGER = Logger.getMessageLogger(JaxrsLogger.class, "org.jboss.as.jaxrs");
/**
* Logs a warning message indicating the annotation, represented by the {@code annotation} parameter, not on Class,
* represented by the {@code target} parameter.
*
* @param annotation the missing annotation.
* @param target the target.
*/
@LogMessage(level = WARN)
@Message(id = 1, value = "%s annotation not on Class: %s")
void classAnnotationNotFound(String annotation, AnnotationTarget target);
/**
* Logs a warning message indicating the annotation, represented by the {@code annotation} parameter, not on Class
* or Method, represented by the {@code target} parameter.
*
* @param annotation the missing annotation.
* @param target the target.
*/
@LogMessage(level = WARN)
@Message(id = 2, value = "%s annotation not on Class or Method: %s")
void classOrMethodAnnotationNotFound(String annotation, AnnotationTarget target);
/**
* Logs an error message indicating more than one mapping found for JAX-RS servlet, represented by the
* {@code servletName} parameter, the second mapping, represented by the {@code pattern} parameter, will not work.
*
* @param servletName the name of the servlet.
* @param pattern the pattern.
*/
@LogMessage(level = ERROR)
@Message(id = 3, value = "More than one mapping found for JAX-RS servlet: %s the second mapping %s will not work")
void moreThanOneServletMapping(String servletName, String pattern);
/**
* Logs a warning message indicating no servlet mappings found for the JAX-RS application, represented by the
* {@code servletName} parameter, either annotate with {@link javax.ws.rs.ApplicationPath @ApplicationPath} or add
* a {@code servlet-mapping} in the web.xml.
*
* @param servletName the servlet name.
*/
@LogMessage(level = WARN)
@Message(id = 4, value = "No Servlet mappings found for JAX-RS application: %s either annotate it with @ApplicationPath or add a servlet-mapping in web.xml")
void noServletMappingFound(String servletName);
/**
* Logs a warning message indicating that {@code resteasy.scan} was found in the {@code web.xml} and is not
* necessary.
*/
@LogMessage(level = WARN)
@Message(id = 5, value = "%s found and ignored in web.xml. This is not necessary, as Resteasy will use the container integration in the JAX-RS 1.1 specification in section 2.3.2")
void resteasyScanWarning(String param);
/**
* Creates an exception indicating the JAX-RS application class could not be loaded.
*
* @param cause the cause of the error.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
@Message(id = 6, value = "Could not load JAX-RS Application class")
DeploymentUnitProcessingException cannotLoadApplicationClass(@Cause Throwable cause);
/**
* Creates an exception indicating more than one application class found in deployment.
*
* @param app1 the first application.
* @param app2 the second application.
* @return a {@link DeploymentUnitProcessingException} for the error.
*/
@Message(id = 7, value = "More than one Application class found in deployment %s and %s")
DeploymentUnitProcessingException moreThanOneApplicationClassFound(Class<? extends Application> app1, Class<? extends Application> app2);
/**
* A message indicating only one JAX-RS application class is allowed.
*
* @param sb a builder with application classes.
* @return the message.
*/
@Message(id = 8, value = "Only one JAX-RS Application Class allowed. %s")
String onlyOneApplicationClassAllowed(StringBuilder sb);
/**
* A message indicating the incorrect mapping config.
*
* @return the message.
*/
@Message(id = 9, value = "Please use either @ApplicationPath or servlet mapping for url path config.")
String conflictUrlMapping();
/**
* JAX-RS resource @Path annotation is on a class or interface that is not a view
*
*
* @param type The class with the annotation
* @param ejbName The ejb
* @return
*/
@Message(id = 10, value = "JAX-RS resource %s does not correspond to a view on the EJB %s. @Path annotations can only be placed on classes or interfaces that represent a local, remote or no-interface view of an EJB.")
DeploymentUnitProcessingException typeNameNotAnEjbView(List<Class<?>> type, String ejbName);
@Message(id = 11, value = "Invalid value for parameter %s: %s")
DeploymentUnitProcessingException invalidParamValue(String param, String value);
@Message(id = 12, value = "No spring integration jar found")
DeploymentUnitProcessingException noSpringIntegrationJar();
@LogMessage(level = WARN)
@Message(id = 13, value = "The context param " + JaxrsSpringProcessor.DISABLE_PROPERTY + " is deprecated, and will be removed in a future release. Please use " + JaxrsSpringProcessor.ENABLE_PROPERTY + " instead")
void disablePropertyDeprecated();
@LogMessage(level = ERROR)
@Message(id = 14, value = "Failed to register management view for REST resource class: %s")
void failedToRegisterManagementViewForRESTResources(String resClass, @Cause Exception e);
@LogMessage(level = WARN)
@Message(id = 15, value = "No Servlet declaration found for JAX-RS application. In %s either provide a class that extends javax.ws.rs.core.Application or declare a servlet class in web.xml.")
void noServletDeclaration(String archiveName);
@LogMessage(level = INFO)
@Message(id = 16, value = "RESTEasy version %s")
void resteasyVersion(String version);
}