You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2016/12/04 22:41:09 UTC

svn commit: r1772582 - in /openwebbeans/meecrowave/trunk: ./ meecrowave-core/ meecrowave-doc/src/main/jbake/content/ meecrowave-doc/src/main/jbake/content/meecrowave-jolokia/ meecrowave-jolokia/ meecrowave-jolokia/src/ meecrowave-jolokia/src/main/ meec...

Author: rmannibucau
Date: Sun Dec  4 22:41:08 2016
New Revision: 1772582

URL: http://svn.apache.org/viewvc?rev=1772582&view=rev
Log:
adding jolokia module

Added:
    openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/meecrowave-jolokia/
    openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/meecrowave-jolokia/index.adoc
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/pom.xml
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/org/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/org/apache/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/org/apache/meecrowave/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/org/apache/meecrowave/jolokia/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/org/apache/meecrowave/jolokia/JolokiaInitializer.java
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/resources/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/resources/META-INF/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/resources/META-INF/services/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/org/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/org/apache/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/org/apache/meecrowave/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/org/apache/meecrowave/jolokia/
    openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/org/apache/meecrowave/jolokia/JolokiaInitializerTest.java
Modified:
    openwebbeans/meecrowave/trunk/meecrowave-core/pom.xml
    openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/components.adoc
    openwebbeans/meecrowave/trunk/pom.xml

Modified: openwebbeans/meecrowave/trunk/meecrowave-core/pom.xml
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-core/pom.xml?rev=1772582&r1=1772581&r2=1772582&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-core/pom.xml (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-core/pom.xml Sun Dec  4 22:41:08 2016
@@ -32,16 +32,6 @@
   <artifactId>meecrowave-core</artifactId>
   <name>Meecrowave :: Core</name>
 
-  <properties>
-    <tomcat.version>9.0.0.M13</tomcat.version>
-    <openwebbeans.version>1.7.1-SNAPSHOT</openwebbeans.version>
-    <cxf.version>3.1.9-SNAPSHOT</cxf.version>
-    <johnzon.version>0.9.5</johnzon.version>
-    <log4j2.version>2.7</log4j2.version>
-    <deltaspike.version>1.7.2</deltaspike.version>
-    <jaxb.version>2.2.11</jaxb.version>
-  </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>

Modified: openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/components.adoc
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/components.adoc?rev=1772582&r1=1772581&r2=1772582&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/components.adoc (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/components.adoc Sun Dec  4 22:41:08 2016
@@ -41,3 +41,10 @@ link:{context_rootpath}/meecrowave-gradl
 Meecrowave provides two main testing integration: a JUnit one and an Arquillian Container.
 
 link:{context_rootpath}/testing/index.html[Read More]
+
+== Meecrowave and Monitoring
+
+Meecrowave provides few integration for the monitoring:
+
+link:{context_rootpath}/meecrowave-jolokia/index.html[Jolokia (JMX)]
+

Added: openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/meecrowave-jolokia/index.adoc
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/meecrowave-jolokia/index.adoc?rev=1772582&view=auto
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/meecrowave-jolokia/index.adoc (added)
+++ openwebbeans/meecrowave/trunk/meecrowave-doc/src/main/jbake/content/meecrowave-jolokia/index.adoc Sun Dec  4 22:41:08 2016
@@ -0,0 +1,27 @@
+= Meecrowave Jolokia
+:jbake-date: 2016-12-04
+:jbake-type: page
+:jbake-status: published
+:jbake-meecrowavepdf:
+:jbake-meecrowavetitleicon: icon icon_puzzle_alt
+:jbake-meecrowavecolor: body-pink
+:icons: font
+
+Coordinates:
+
+[source,xml]
+----
+<dependency>
+  <groupId>org.apache.meecrowave</groupId>
+  <artifactId>meecrowave-jolokia</artifactId>
+  <version>${meecrowave.version}</version>
+</dependency>
+----
+
+It will deploy the jolokia servlet on `/jolokia/*` or the property `jolokia.web.mapping` set
+on the `Meecrowave.Builder`.
+
+IMPORTANT: don't forget to secure this endpoint cause it let you access all the JMX MBeans. See
+Meecrowave core configuration for more details.
+
+More on https://jolokia.org/reference/html/

Added: openwebbeans/meecrowave/trunk/meecrowave-jolokia/pom.xml
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-jolokia/pom.xml?rev=1772582&view=auto
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-jolokia/pom.xml (added)
+++ openwebbeans/meecrowave/trunk/meecrowave-jolokia/pom.xml Sun Dec  4 22:41:08 2016
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="
+            http://maven.apache.org/POM/4.0.0
+            http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <parent>
+    <artifactId>meecrowave</artifactId>
+    <groupId>org.apache.meecrowave</groupId>
+    <version>0.0.1-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>meecrowave-jolokia</artifactId>
+  <name>Meecrowave :: Jolokia</name>
+
+  <properties>
+    <jolokia.version>2.0.0-M3</jolokia.version>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>tomcat-servlet-api</artifactId>
+      <version>${tomcat.version}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.meecrowave</groupId>
+      <artifactId>meecrowave-core</artifactId>
+      <version>${project.version}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jolokia</groupId>
+      <artifactId>jolokia-server-core</artifactId>
+      <version>${jolokia.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jolokia</groupId>
+      <artifactId>jolokia-service-serializer</artifactId>
+      <version>${jolokia.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jolokia</groupId>
+      <artifactId>jolokia-service-jmx</artifactId>
+      <version>${jolokia.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.meecrowave</groupId>
+      <artifactId>meecrowave-junit</artifactId>
+      <version>${project.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>2.5</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Added: openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/org/apache/meecrowave/jolokia/JolokiaInitializer.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/org/apache/meecrowave/jolokia/JolokiaInitializer.java?rev=1772582&view=auto
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/org/apache/meecrowave/jolokia/JolokiaInitializer.java (added)
+++ openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/java/org/apache/meecrowave/jolokia/JolokiaInitializer.java Sun Dec  4 22:41:08 2016
@@ -0,0 +1,44 @@
+/*
+ * 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.meecrowave.jolokia;
+
+import org.apache.meecrowave.Meecrowave;
+import org.jolokia.server.core.http.AgentServlet;
+
+import javax.servlet.ServletContainerInitializer;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRegistration;
+import java.util.Set;
+
+import static java.util.Optional.ofNullable;
+
+public class JolokiaInitializer implements ServletContainerInitializer {
+    @Override
+    public void onStartup(final Set<Class<?>> set, final ServletContext servletContext) throws ServletException {
+        final Meecrowave.Builder builder = Meecrowave.Builder.class.cast(servletContext.getAttribute("meecrowave.configuration"));
+        final ServletRegistration.Dynamic jolokia = servletContext.addServlet("jolokia", AgentServlet.class);
+        jolokia.setLoadOnStartup(1);
+        final String mapping = ofNullable(builder.getProperties())
+                .map(p -> p.getProperty("jolokia.web.mapping"))
+                .orElse("/jolokia/*");
+        jolokia.addMapping(mapping);
+        servletContext.log("Installed Jolokia on " + mapping);
+    }
+}

Added: openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer?rev=1772582&view=auto
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer (added)
+++ openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer Sun Dec  4 22:41:08 2016
@@ -0,0 +1 @@
+org.apache.meecrowave.jolokia.JolokiaInitializer

Added: openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/org/apache/meecrowave/jolokia/JolokiaInitializerTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/org/apache/meecrowave/jolokia/JolokiaInitializerTest.java?rev=1772582&view=auto
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/org/apache/meecrowave/jolokia/JolokiaInitializerTest.java (added)
+++ openwebbeans/meecrowave/trunk/meecrowave-jolokia/src/test/java/org/apache/meecrowave/jolokia/JolokiaInitializerTest.java Sun Dec  4 22:41:08 2016
@@ -0,0 +1,44 @@
+/*
+ * 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.meecrowave.jolokia;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.meecrowave.junit.MeecrowaveRule;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+
+import static org.junit.Assert.assertTrue;
+
+public class JolokiaInitializerTest {
+    @ClassRule
+    public static final MeecrowaveRule RULE = new MeecrowaveRule();
+
+    @Test
+    public void run() throws IOException {
+        final String actual = IOUtils.toString(
+                new URL("http://localhost:" + RULE.getConfiguration().getHttpPort() + "/jolokia/read/java.lang:type=Memory/HeapMemoryUsage"),
+                StandardCharsets.UTF_8);
+        assertTrue(actual, actual.contains("\"status\":200"));
+        assertTrue(actual, actual.contains("\"mbean\":\"java.lang:type=Memory\""));
+    }
+}

Modified: openwebbeans/meecrowave/trunk/pom.xml
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/pom.xml?rev=1772582&r1=1772581&r2=1772582&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/pom.xml (original)
+++ openwebbeans/meecrowave/trunk/pom.xml Sun Dec  4 22:41:08 2016
@@ -41,6 +41,13 @@
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
     <junit.version>4.12</junit.version>
+    <tomcat.version>9.0.0.M13</tomcat.version>
+    <openwebbeans.version>1.7.1-SNAPSHOT</openwebbeans.version>
+    <cxf.version>3.1.9-SNAPSHOT</cxf.version>
+    <johnzon.version>0.9.5</johnzon.version>
+    <log4j2.version>2.7</log4j2.version>
+    <deltaspike.version>1.7.2</deltaspike.version>
+    <jaxb.version>2.2.11</jaxb.version>
   </properties>
 
   <modules>
@@ -50,6 +57,7 @@
     <module>meecrowave-junit</module>
     <module>meecrowave-arquillian</module>
     <module>meecrowave-jpa</module>
+    <module>meecrowave-jolokia</module>
     <module>meecrowave-doc</module>
   </modules>