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