You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2014/05/19 14:32:29 UTC

svn commit: r1595865 - in /sling/trunk/bundles/jcr/jackrabbit-server: pom.xml src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/jmx/StatisticsMBeanImpl.java

Author: olli
Date: Mon May 19 12:32:28 2014
New Revision: 1595865

URL: http://svn.apache.org/r1595865
Log:
SLING-3575 SLING-3576 SLING-3577 optimize Sling JCR Jackrabbit Server

- upgrade the embedded jackrabbit-core to 2.6.5 and lucene-core to 3.6.2
- export all packages of embedded jackrabbit-core and lucene-core and
  align versions of org.apache.sling.jcr.jackrabbit.server.security and
  org.apache.sling.jcr.jackrabbit.server.security.accessmanager
- slim down bundle by not embedding dependencies twice (as lib and
  inlined) and make use of concurrent and commons-pool bundles

Modified:
    sling/trunk/bundles/jcr/jackrabbit-server/pom.xml
    sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/jmx/StatisticsMBeanImpl.java

Modified: sling/trunk/bundles/jcr/jackrabbit-server/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-server/pom.xml?rev=1595865&r1=1595864&r2=1595865&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/jackrabbit-server/pom.xml (original)
+++ sling/trunk/bundles/jcr/jackrabbit-server/pom.xml Mon May 19 12:32:28 2014
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -17,7 +17,7 @@
     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/maven-v4_0_0.xsd">
+<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">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.sling</groupId>
@@ -42,6 +42,11 @@
         <url>http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-server</url>
     </scm>
 
+    <properties>
+      <org.apache.jackrabbit.version>2.6.5</org.apache.jackrabbit.version>
+      <org.apache.lucene.version>3.6.2</org.apache.lucene.version>
+    </properties>
+
     <build>
         <plugins>
             <!-- generate the SCR descriptors -->
@@ -94,49 +99,18 @@
                             org.apache.sling.jcr.jackrabbit.server.impl.Activator
                         </Bundle-Activator>
                         <Export-Package>
-                             org.apache.sling.jcr.jackrabbit.server;version=2.1.0,
-                             org.apache.sling.jcr.jackrabbit.server.security;version=2.0.4-incubator,
-                             org.apache.sling.jcr.jackrabbit.server.security.accessmanager;version=2.1.0,
-                             org.apache.jackrabbit.core.security.principal;version=2.2.5
+                            org.apache.sling.jcr.jackrabbit.server;version=${project.version},
+                            org.apache.sling.jcr.jackrabbit.server.security;version=2.0.6,
+                            org.apache.sling.jcr.jackrabbit.server.security.accessmanager;version=2.0.6,
+                            org.apache.jackrabbit.core.*;version=${org.apache.jackrabbit.version},
+                            org.apache.lucene.*;version=${org.apache.lucene.version}
                         </Export-Package>
                         <Private-Package>
-                            org.apache.sling.jcr.jackrabbit.server.impl.*,
-                            org.apache.commons.*
+                            org.apache.sling.jcr.jackrabbit.server.impl.*
                         </Private-Package>
                         <Import-Package>
-                            <!-- Sling and OSGi -->
-                            org.apache.sling.*, org.osgi.*,
-                            <!-- JNDI, Security, Transactions -->
-                            javax.naming.*,
-                            javax.security.*,
-                            javax.sql.*,
-                            javax.transaction.xa,
-                            <!--  Helpers -->
-                            org.apache.commons.io.*,
-                            org.apache.commons.collections.*,
-                            <!-- JCR and Jackrabbit API -->
-                            javax.jcr.*, org.apache.jackrabbit.api.*,
-                            org.apache.jackrabbit.spi.*,
-
-                            <!-- Logging -->
-                            org.slf4j,
-                            <!-- XML stuff -->
-                            javax.xml.*, org.xml.sax.*, org.w3c.dom.*,
-                            <!-- JAR Service Registry for Query -->
-                            javax.imageio.spi,
-
                             <!-- Exclude package, see JCR-2412 -->
                             !org.apache.jackrabbit.test,
-
-                            <!-- playground imports -->
-                            org.apache.tika.*,
-
-                            <!-- Jackrabbit internals -->
-                            org.apache.jackrabbit.util,
-                            org.apache.jackrabbit.value,
-                            org.apache.jackrabbit.commons.*,
-                            org.apache.jackrabbit.spi.commons.*,
-
                             <!-- optional JDBC driver import -->
                             com.microsoft.sqlserver.jdbc;
                             oracle.jdbc;
@@ -144,26 +118,15 @@
                             org.gjt.mm.mysql;
                             org.h2;
                             org.postgresql;
-                                resolution:=optional,
-
-                            <!-- Required by concurrent lib SynchronizationTimer class -->
-                            javax.swing.*;resolution:=optional
+                                resolution:=optional
                         </Import-Package>
                         <DynamicImport-Package>*</DynamicImport-Package>
-
-                        <!-- Embedd some libraries -->
-                        <Embed-Transitive>true</Embed-Transitive>
                         <Embed-Dependency>
-                            jackrabbit-core,
-                            lucene-core,
-                            concurrent,
-                            commons-dbcp,
-                            commons-pool,
+                            *;scope=compile;inline=true,
                             org.apache.sling.commons.osgi;inline=org/apache/sling/commons/osgi/PropertiesUtil*
                         </Embed-Dependency>
                         <_removeheaders>
                             Embed-Dependency,
-                            Embed-Transitive,
                             Private-Package,
                             Include-Resource
                         </_removeheaders>
@@ -192,6 +155,7 @@
             <groupId>javax.jcr</groupId>
             <artifactId>jcr</artifactId>
             <version>2.0</version>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
@@ -203,23 +167,34 @@
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.jcr.base</artifactId>
             <version>2.2.3-SNAPSHOT</version>
-            <scope>compile</scope>
+            <scope>provided</scope>
         </dependency>
 
         <!-- The core repository implementation -->
         <dependency>
             <groupId>org.apache.jackrabbit</groupId>
             <artifactId>jackrabbit-api</artifactId>
-            <version>2.4.2</version>
+            <version>2.6.5</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.jackrabbit</groupId>
             <artifactId>jackrabbit-core</artifactId>
-            <version>2.4.2</version>
+            <version>${org.apache.jackrabbit.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.lucene</groupId>
+            <artifactId>lucene-core</artifactId>
+            <version>${org.apache.lucene.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-dbcp</groupId>
+            <artifactId>commons-dbcp</artifactId>
+            <version>1.4</version>
             <scope>compile</scope>
         </dependency>
-
         <!-- for SCR plugin supporting descriptor inheritance -->
         <dependency>
             <groupId>org.apache.sling</groupId>
@@ -238,14 +213,17 @@
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.compendium</artifactId>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.scr.annotations</artifactId>
+            <scope>provided</scope>
         </dependency>
     </dependencies>
 

Modified: sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/jmx/StatisticsMBeanImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/jmx/StatisticsMBeanImpl.java?rev=1595865&r1=1595864&r2=1595865&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/jmx/StatisticsMBeanImpl.java (original)
+++ sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/jmx/StatisticsMBeanImpl.java Mon May 19 12:32:28 2014
@@ -131,29 +131,29 @@ public class StatisticsMBeanImpl impleme
             return new AttributeList();
         }
         AttributeList al = new AttributeList();
-        Iterator<Entry<Type, TimeSeries>> statIter = statistics.iterator();
+        Iterator<Entry<String, TimeSeries>> statIter = statistics.iterator();
         while (statIter.hasNext()) {
-            Entry<Type, TimeSeries> entry = statIter.next();
+            Entry<String, TimeSeries> entry = statIter.next();
             long[] valuePerSecond = entry.getValue().getValuePerSecond();
-            al.add(new Attribute("PerSecond_" + entry.getKey().name(),
+            al.add(new Attribute("PerSecond_" + entry.getKey(),
                     valuePerSecond[valuePerSecond.length - 1]));
             al.add(new Attribute(
-                    "LastMinutePerSecond_" + entry.getKey().name(),
+                    "LastMinutePerSecond_" + entry.getKey(),
                     valuePerSecond));
             long[] valuePerMinute = entry.getValue().getValuePerMinute();
-            al.add(new Attribute("PerMinute" + entry.getKey().name(),
+            al.add(new Attribute("PerMinute" + entry.getKey(),
                     valuePerMinute[valuePerMinute.length - 1]));
-            al.add(new Attribute("LastHourPerMinute_" + entry.getKey().name(),
+            al.add(new Attribute("LastHourPerMinute_" + entry.getKey(),
                     valuePerMinute));
             long[] valuePerHour = entry.getValue().getValuePerHour();
-            al.add(new Attribute("PerHour_" + entry.getKey().name(),
+            al.add(new Attribute("PerHour_" + entry.getKey(),
                     valuePerHour[valuePerHour.length - 1]));
-            al.add(new Attribute("LastWeekPerHour_" + entry.getKey().name(),
+            al.add(new Attribute("LastWeekPerHour_" + entry.getKey(),
                     valuePerHour));
             long[] valuePerWeek = entry.getValue().getValuePerWeek();
-            al.add(new Attribute("PerWeek_" + entry.getKey().name(),
+            al.add(new Attribute("PerWeek_" + entry.getKey(),
                     valuePerWeek[valuePerWeek.length - 1]));
-            al.add(new Attribute("LastYearPerWeek_" + entry.getKey().name(),
+            al.add(new Attribute("LastYearPerWeek_" + entry.getKey(),
                     valuePerWeek));
         }
         return al;
@@ -170,50 +170,51 @@ public class StatisticsMBeanImpl impleme
                 "Repository Statistics Unavailable", null, null, null, null);
         }
         List<MBeanAttributeInfo> attributesList = new ArrayList<MBeanAttributeInfo>();
-        Set<Type> types = new HashSet<Type>();
-        Iterator<Entry<Type, TimeSeries>> statIter = statistics.iterator();
+        Set<String> typeNames = new HashSet<String>();
+        Iterator<Entry<String, TimeSeries>> statIter = statistics.iterator();
         while (statIter.hasNext()) {
-            Entry<Type, TimeSeries> entry = statIter.next();
+            Entry<String, TimeSeries> entry = statIter.next();
             attributesList.add(new MBeanAttributeInfo("PerSecond_"
-                    + entry.getKey().name(), long.class.getName(),
-                    "Current per second value of " + entry.getKey().name(),
+                    + entry.getKey(), long.class.getName(),
+                    "Current per second value of " + entry.getKey(),
                     true, false, false));
             attributesList.add(new MBeanAttributeInfo("LastMinutePerSecond_"
-                    + entry.getKey().name(), long[].class.getName(),
+                    + entry.getKey(), long[].class.getName(),
                     "Last minute of per seconds values of "
-                            + entry.getKey().name(), true, false, false));
+                            + entry.getKey(), true, false, false));
             attributesList.add(new MBeanAttributeInfo("PerMinute"
-                    + entry.getKey().name(), long.class.getName(),
-                    "Current per minute value of " + entry.getKey().name(),
+                    + entry.getKey(), long.class.getName(),
+                    "Current per minute value of " + entry.getKey(),
                     true, false, false));
             attributesList.add(new MBeanAttributeInfo("LastHourPerMinute_"
-                    + entry.getKey().name(), long[].class.getName(),
+                    + entry.getKey(), long[].class.getName(),
                     "Last hour of per minute values of "
-                            + entry.getKey().name(), true, false, false));
+                            + entry.getKey(), true, false, false));
             attributesList.add(new MBeanAttributeInfo("PerHour_"
-                    + entry.getKey().name(), long.class.getName(),
-                    "Current per hour value of " + entry.getKey().name(), true,
+                    + entry.getKey(), long.class.getName(),
+                    "Current per hour value of " + entry.getKey(), true,
                     false, false));
             attributesList.add(new MBeanAttributeInfo("LastWeekPerHour_"
-                    + entry.getKey().name(), long[].class.getName(),
-                    "Last week of per hour values of " + entry.getKey().name(),
+                    + entry.getKey(), long[].class.getName(),
+                    "Last week of per hour values of " + entry.getKey(),
                     true, false, false));
             attributesList.add(new MBeanAttributeInfo("PerWeek_"
-                    + entry.getKey().name(), long.class.getName(),
-                    "Current per week value of " + entry.getKey().name(), true,
+                    + entry.getKey(), long.class.getName(),
+                    "Current per week value of " + entry.getKey(), true,
                     false, false));
             attributesList.add(new MBeanAttributeInfo("LastYearPerWeek_"
-                    + entry.getKey().name(), long[].class.getName(),
-                    "Last year of per week values of " + entry.getKey().name(),
+                    + entry.getKey(), long[].class.getName(),
+                    "Last year of per week values of " + entry.getKey(),
                     true, false, false));
-            types.add(entry.getKey());
+            typeNames.add(entry.getKey());
         }
         for (Type t : Type.values()) {
-            if (!types.contains(t)) {
-                attributesList.add(new MBeanAttributeInfo(t.name(), long.class
-                        .getName(), "Current counter value of " + t.name(),
+            final String name = t.name();
+            if (!typeNames.contains(name)) {
+                attributesList.add(new MBeanAttributeInfo(name, long.class
+                        .getName(), "Current counter value of " + name,
                         true, false, false));
-                types.add(t);
+                typeNames.add(name);
             }
         }
         MBeanAttributeInfo[] attributes = attributesList