You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2013/05/28 17:46:17 UTC
svn commit: r1486973 - in /sling/trunk/launchpad/base/src:
main/java/org/apache/sling/launchpad/base/impl/StartupManager.java
test/java/org/apache/sling/launchpad/base/impl/StartupManagerTimestampTest.java
Author: bdelacretaz
Date: Tue May 28 15:46:17 2013
New Revision: 1486973
URL: http://svn.apache.org/r1486973
Log:
SLING-2889 - fix StartupManager.getTimeStampOfClass, with test
Added:
sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/base/impl/StartupManagerTimestampTest.java
Modified:
sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/StartupManager.java
Modified: sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/StartupManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/StartupManager.java?rev=1486973&r1=1486972&r2=1486973&view=diff
==============================================================================
--- sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/StartupManager.java (original)
+++ sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/StartupManager.java Tue May 28 15:46:17 2013
@@ -172,7 +172,7 @@ public class StartupManager {
/**
* Get the time stamp of a class through its url classloader (if possible)
*/
- private long getTimeStampOfClass(final Class<?> clazz, final long selfStamp) {
+ long getTimeStampOfClass(final Class<?> clazz, final long selfStamp) {
long timeStamp = selfStamp;
final ClassLoader loader = clazz.getClassLoader();
if (loader instanceof URLClassLoader) {
@@ -184,7 +184,7 @@ public class StartupManager {
final long stamp = urls[0].openConnection().getLastModified();
if ( stamp > selfStamp ) {
logger.log(Logger.LOG_INFO, String.format("Newer timestamp for %s from %s : %s", clazz.getName(), url, selfStamp));
- timeStamp = selfStamp;
+ timeStamp = stamp;
}
} catch (final IOException ignore) {}
}
Added: sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/base/impl/StartupManagerTimestampTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/base/impl/StartupManagerTimestampTest.java?rev=1486973&view=auto
==============================================================================
--- sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/base/impl/StartupManagerTimestampTest.java (added)
+++ sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/base/impl/StartupManagerTimestampTest.java Tue May 28 15:46:17 2013
@@ -0,0 +1,61 @@
+/*
+ * 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.sling.launchpad.base.impl;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.felix.framework.Logger;
+import org.apache.sling.launchpad.base.shared.SharedConstants;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.Constants;
+
+/** Test the timestamp functions of the StartupManager */
+public class StartupManagerTimestampTest {
+ private StartupManager startupManager;
+
+ @Before
+ public void setup() throws IOException {
+ final File tmpFile = File.createTempFile(getClass().getSimpleName(), "tmp");
+ final String tmpDirName = tmpFile.getParentFile().getAbsolutePath();
+ try {
+ final Map<String, String> properties = new HashMap<String, String>();
+ properties.put(SharedConstants.SLING_HOME, tmpDirName);
+ properties.put(Constants.FRAMEWORK_STORAGE, tmpDirName);
+ properties.put(Constants.FRAMEWORK_BEGINNING_STARTLEVEL, "42");
+
+ final Logger logger = new Logger();
+ startupManager = new StartupManager(properties, logger);
+ } finally {
+ tmpFile.delete();
+ }
+ }
+
+ @Test
+ public void testClassTimestamp() {
+ final int defaultValue = Integer.MIN_VALUE;
+ final long ts = startupManager.getTimeStampOfClass(getClass(), defaultValue);
+ assertTrue("Expecting non-default timestamp, got " + ts, ts > defaultValue);
+ }
+}