added log message to show jolkia path when available, also added a logger

This commit is contained in:
Andy Taylor 2015-12-22 14:49:11 +00:00 committed by Clebert Suconic
parent 3ef184aba5
commit 6e7ed2348f
4 changed files with 80 additions and 5 deletions

View File

@ -1,4 +1,4 @@
<!-- The web server is only bound to loalhost by default -->
<web bind="http://localhost:${http.port}" path="web">
<app url="jolokia" war="jolokia-war-1.3.1.war"/>
<app url="jolokia" war="jolokia-war-1.3.2.war"/>
</web>

View File

@ -32,6 +32,12 @@
</properties>
<dependencies>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging-processor</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-dto</artifactId>
@ -64,7 +70,13 @@
<version>${project.version}</version>
</dependency>
<!--
JBoss Logging
-->
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</dependency>
</dependencies>

View File

@ -0,0 +1,55 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.activemq.artemis;
import org.jboss.logging.BasicLogger;
import org.jboss.logging.Logger;
import org.jboss.logging.annotations.LogMessage;
import org.jboss.logging.annotations.Message;
import org.jboss.logging.annotations.MessageLogger;
/**
* Logger Code 24
*
* each message id must be 6 digits long starting with 18, the 3rd digit donates the level so
*
* INF0 1
* WARN 2
* DEBUG 3
* ERROR 4
* TRACE 5
* FATAL 6
*
* so an INFO message would be 181000 to 181999
*/
@MessageLogger(projectCode = "AMQ")
public interface ActiveMQWebLogger extends BasicLogger {
/**
* The aerogear logger.
*/
ActiveMQWebLogger LOGGER = Logger.getMessageLogger(ActiveMQWebLogger.class, ActiveMQWebLogger.class.getPackage().getName());
@LogMessage(level = Logger.Level.INFO)
@Message(id = 241001, value = "HTTP Server started at {0}", format = Message.Format.MESSAGE_FORMAT)
void webserverStarted(String bind);
@LogMessage(level = Logger.Level.INFO)
@Message(id = 241002, value = "Artemis Jolokia REST API available at {0}", format = Message.Format.MESSAGE_FORMAT)
void jolokiaAvailable(String bind);
}

View File

@ -18,6 +18,7 @@ package org.apache.activemq.artemis.component;
import java.net.URI;
import org.apache.activemq.artemis.ActiveMQWebLogger;
import org.apache.activemq.artemis.components.ExternalComponent;
import org.apache.activemq.artemis.dto.AppDTO;
import org.apache.activemq.artemis.dto.ComponentDTO;
@ -35,12 +36,14 @@ public class WebServerComponent implements ExternalComponent {
private Server server;
private HandlerList handlers;
private WebServerDTO webServerConfig;
private URI uri;
private String jolokiaUrl;
@Override
public void configure(ComponentDTO config, String artemisInstance, String artemisHome) throws Exception {
webServerConfig = (WebServerDTO) config;
String path = webServerConfig.path.startsWith("/") ? webServerConfig.path : "/" + webServerConfig.path;
URI uri = new URI(webServerConfig.bind);
uri = new URI(webServerConfig.bind);
server = new Server();
ServerConnector connector = new ServerConnector(server);
connector.setPort(uri.getPort());
@ -53,6 +56,9 @@ public class WebServerComponent implements ExternalComponent {
if (webServerConfig.apps != null) {
for (AppDTO app : webServerConfig.apps) {
deployWar(app.url, app.war, artemisHome, path);
if (app.war.startsWith("jolokia")) {
jolokiaUrl = webServerConfig.bind + "/" + app.url;
}
}
}
@ -77,8 +83,10 @@ public class WebServerComponent implements ExternalComponent {
@Override
public void start() throws Exception {
server.start();
System.out.println("HTTP Server started at " + webServerConfig.bind);
ActiveMQWebLogger.LOGGER.webserverStarted(webServerConfig.bind);
if (jolokiaUrl != null) {
ActiveMQWebLogger.LOGGER.jolokiaAvailable(jolokiaUrl);
}
}
@Override