svn commit: r792830 - /sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java
Author: cziegeler Date: Fri Jul 10 08:30:35 2009 New Revision: 792830 URL: http://svn.apache.org/viewvc?rev=792830view=rev Log: SLING-1040 : Better make scheduler volatile. Modified: sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java Modified: sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java?rev=792830r1=792829r2=792830view=diff == --- sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java (original) +++ sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java Fri Jul 10 08:30:35 2009 @@ -83,7 +83,7 @@ static final String DATA_MAP_CONCURRENT_HANDLER = QuartzJobExecutor.ConcurrentHandler; /** Theq quartz scheduler. */ -protected org.quartz.Scheduler scheduler; +protected volatile org.quartz.Scheduler scheduler; /** List of registrations while this service is not activated yet. */ protected final ListRegistration registeredJobs = new ArrayListRegistration();
svn commit: r792833 - /sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java
Author: cziegeler Date: Fri Jul 10 08:35:21 2009 New Revision: 792833 URL: http://svn.apache.org/viewvc?rev=792833view=rev Log: Add new dispose method. Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java URL: http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java?rev=792833r1=792832r2=792833view=diff == --- sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java (original) +++ sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java Fri Jul 10 08:35:21 2009 @@ -177,5 +177,12 @@ return value; } } + +/** + * @see org.apache.sling.rewriter.Transformer#dispose() + */ +public void dispose() { +// nothing to do +} } }
svn commit: r792860 - in /sling/trunk/contrib/extensions/jcrinstall/service/src: main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverter.java test/java/org/apache/sling/jcr/jcrinstall/jcr
Author: bdelacretaz Date: Fri Jul 10 09:56:15 2009 New Revision: 792860 URL: http://svn.apache.org/viewvc?rev=792860view=rev Log: SLING-1044 - jcrinstall should only accept .jar, .cfg and .properties files as installable resources, work in progress Added: sling/trunk/contrib/extensions/jcrinstall/service/src/test/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverterTest.java (with props) Modified: sling/trunk/contrib/extensions/jcrinstall/service/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverter.java Modified: sling/trunk/contrib/extensions/jcrinstall/service/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/jcrinstall/service/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverter.java?rev=792860r1=792859r2=792860view=diff == --- sling/trunk/contrib/extensions/jcrinstall/service/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverter.java (original) +++ sling/trunk/contrib/extensions/jcrinstall/service/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverter.java Fri Jul 10 09:56:15 2009 @@ -1,3 +1,19 @@ +/* + * 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.jcr.jcrinstall.jcr.impl; import javax.jcr.Node; @@ -24,7 +40,7 @@ public InstallableData convertNode(Node n) throws RepositoryException { InstallableData result = null; if(n.hasProperty(FileInstallableData.JCR_CONTENT_DATA) n.hasProperty(FileInstallableData.JCR_CONTENT_LAST_MODIFIED)) { - if(filenameFilter.accept(n.getName())) { + if(acceptNodeName(n.getName())) { result = new FileInstallableData(n, bundleStartLevel); } else { log.debug(Node {} ignored due to {}, n.getPath(), filenameFilter); @@ -35,4 +51,8 @@ FileInstallableData.JCR_CONTENT_DATA + or + FileInstallableData.JCR_CONTENT_LAST_MODIFIED); return null; } + + boolean acceptNodeName(String name) { + return filenameFilter.accept(name); + } } \ No newline at end of file Added: sling/trunk/contrib/extensions/jcrinstall/service/src/test/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverterTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/jcrinstall/service/src/test/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverterTest.java?rev=792860view=auto == --- sling/trunk/contrib/extensions/jcrinstall/service/src/test/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverterTest.java (added) +++ sling/trunk/contrib/extensions/jcrinstall/service/src/test/java/org/apache/sling/jcr/jcrinstall/jcr/impl/FileNodeConverterTest.java Fri Jul 10 09:56:15 2009 @@ -0,0 +1,54 @@ +/* + * 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.jcr.jcrinstall.jcr.impl; + +import junit.framework.TestCase; + +public class FileNodeConverterTest extends TestCase { +private final FileNodeConverter fc = new FileNodeConverter(0); + +public void testAcceptedFilenames() { +final String [] filenames = { +
svn commit: r793010 - in /sling/trunk/contrib/extensions/jcrinstall: it/src/test/java/org/apache/sling/jcr/jcrinstall/it/ osgi/src/main/java/org/apache/sling/osgi/installer/ osgi/src/main/java/org/apa
Author: bdelacretaz Date: Fri Jul 10 16:21:25 2009 New Revision: 793010 URL: http://svn.apache.org/viewvc?rev=793010view=rev Log: SLING-1042 - Optimize jcrinstall retry cycles Added: sling/trunk/contrib/extensions/jcrinstall/osgi/src/main/java/org/apache/sling/osgi/installer/OsgiControllerStatistics.java (with props) sling/trunk/contrib/extensions/jcrinstall/osgi/src/main/java/org/apache/sling/osgi/installer/impl/EventsCounter.java (with props) sling/trunk/contrib/extensions/jcrinstall/osgi/src/main/java/org/apache/sling/osgi/installer/impl/EventsCounterImpl.java (with props) Modified: sling/trunk/contrib/extensions/jcrinstall/it/src/test/java/org/apache/sling/jcr/jcrinstall/it/OsgiControllerTest.java sling/trunk/contrib/extensions/jcrinstall/osgi/src/main/java/org/apache/sling/osgi/installer/impl/Activator.java sling/trunk/contrib/extensions/jcrinstall/osgi/src/main/java/org/apache/sling/osgi/installer/impl/OsgiControllerImpl.java sling/trunk/contrib/extensions/jcrinstall/osgi/src/main/java/org/apache/sling/osgi/installer/impl/OsgiControllerTask.java sling/trunk/contrib/extensions/jcrinstall/osgi/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleStartTask.java Modified: sling/trunk/contrib/extensions/jcrinstall/it/src/test/java/org/apache/sling/jcr/jcrinstall/it/OsgiControllerTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/jcrinstall/it/src/test/java/org/apache/sling/jcr/jcrinstall/it/OsgiControllerTest.java?rev=793010r1=793009r2=793010view=diff == --- sling/trunk/contrib/extensions/jcrinstall/it/src/test/java/org/apache/sling/jcr/jcrinstall/it/OsgiControllerTest.java (original) +++ sling/trunk/contrib/extensions/jcrinstall/it/src/test/java/org/apache/sling/jcr/jcrinstall/it/OsgiControllerTest.java Fri Jul 10 16:21:25 2009 @@ -30,12 +30,15 @@ import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption; import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.Dictionary; import java.util.Hashtable; import org.apache.sling.osgi.installer.DictionaryInstallableData; import org.apache.sling.osgi.installer.OsgiController; import org.apache.sling.osgi.installer.OsgiControllerServices; +import org.apache.sling.osgi.installer.OsgiControllerStatistics; import org.junit.Test; import org.junit.runner.RunWith; import org.ops4j.pax.exam.Inject; @@ -43,9 +46,12 @@ import org.ops4j.pax.exam.junit.JUnit4TestRunner; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; +import org.osgi.framework.FrameworkEvent; +import org.osgi.framework.FrameworkListener; import org.osgi.framework.ServiceReference; import org.osgi.service.cm.Configuration; import org.osgi.service.cm.ConfigurationAdmin; +import org.osgi.service.packageadmin.PackageAdmin; /** Test the OsgiController running in the OSGi framework * @@ -55,9 +61,10 @@ * */ @RunWith(JUnit4TestRunner.class) -public class OsgiControllerTest { +public class OsgiControllerTest implements FrameworkListener { public final static String POM_VERSION = System.getProperty(jcrinstall.pom.version); public final static String JAR_EXT = .jar; + private int packageRefreshEventsCount; @Inject protected BundleContext bundleContext; @@ -71,6 +78,61 @@ return result; } +protected void generateBundleEvent() throws Exception { +// install a bundle manually to generate a bundle event +final File f = getTestBundle(org.apache.sling.jcr.jcrinstall.it- + POM_VERSION + -testbundle-1.0.jar); +final InputStream is = new FileInputStream(f); +Bundle b = null; +try { +b = bundleContext.installBundle(getClass().getName(), is); +b.start(); +final long timeout = System.currentTimeMillis() + 2000L; +while(b.getState() != Bundle.ACTIVE System.currentTimeMillis() timeout) { +Thread.sleep(10L); +} +} finally { +if(is != null) { +is.close(); +} +if(b != null) { +b.uninstall(); +} +} +} + +public void frameworkEvent(FrameworkEvent event) { +if (event.getType() == FrameworkEvent.PACKAGES_REFRESHED) { +packageRefreshEventsCount++; +} +} + +protected void refreshPackages() { +bundleContext.addFrameworkListener(this); +final int MAX_REFRESH_PACKAGES_WAIT_SECONDS = 5; +final int targetEventCount = packageRefreshEventsCount + 1; +final long timeout = System.currentTimeMillis() + MAX_REFRESH_PACKAGES_WAIT_SECONDS * 1000L; + +final PackageAdmin pa = getService(PackageAdmin.class); +pa.refreshPackages(null); + +try { +while(true) { +