Hi all, I am currently working on SLING-132 and SLING-185 implementing the background thread for repository "polling".
Regards Felix Am Montag, den 03.03.2008, 14:15 +0000 schrieb [EMAIL PROTECTED]: > Author: bdelacretaz > Date: Mon Mar 3 06:15:04 2008 > New Revision: 633089 > > URL: http://svn.apache.org/viewvc?rev=633089&view=rev > Log: > SLING-294 - temporary fix to load nodetypes once a Repository is actually > available - SLING-132 will improve this > > Modified: > > incubator/sling/trunk/jcr/api/src/main/java/org/apache/sling/jcr/api/AbstractSlingRepository.java > > incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java > > incubator/sling/trunk/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/SlingServerRepository.java > > Modified: > incubator/sling/trunk/jcr/api/src/main/java/org/apache/sling/jcr/api/AbstractSlingRepository.java > URL: > http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/api/src/main/java/org/apache/sling/jcr/api/AbstractSlingRepository.java?rev=633089&r1=633088&r2=633089&view=diff > ============================================================================== > --- > incubator/sling/trunk/jcr/api/src/main/java/org/apache/sling/jcr/api/AbstractSlingRepository.java > (original) > +++ > incubator/sling/trunk/jcr/api/src/main/java/org/apache/sling/jcr/api/AbstractSlingRepository.java > Mon Mar 3 06:15:04 2008 > @@ -334,16 +334,6 @@ > this.loader = new Loader(this); > > componentContext.getBundleContext().addBundleListener(this); > - > - // TODO: Consider running this in the background !! > - Bundle[] bundles = componentContext.getBundleContext().getBundles(); > - for (int i = 0; i < bundles.length; i++) { > - if ((bundles[i].getState() & (Bundle.INSTALLED | > Bundle.UNINSTALLED)) == 0) { > - // load content for bundles which are neither INSTALLED nor > - // UNINSTALLED > - this.loader.registerBundle(bundles[i]); > - } > - } > } > > /** > @@ -365,6 +355,20 @@ > } > > this.componentContext = null; > + } > + > + /** TODO: temp fix for SLING-294: must be called by child classes to > perform tasks > + * that must happen only once a Repository becomes available > + */ > + protected void repositoryAvailable() { > + Bundle[] bundles = componentContext.getBundleContext().getBundles(); > + for (int i = 0; i < bundles.length; i++) { > + if ((bundles[i].getState() & (Bundle.INSTALLED | > Bundle.UNINSTALLED)) == 0) { > + // load content for bundles which are neither INSTALLED nor > + // UNINSTALLED > + this.loader.registerBundle(bundles[i]); > + } > + } > } > > /** > > Modified: > incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java > URL: > http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java?rev=633089&r1=633088&r2=633089&view=diff > ============================================================================== > --- > incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java > (original) > +++ > incubator/sling/trunk/jcr/jackrabbit-client/src/main/java/org/apache/sling/jcr/jackrabbit/client/SlingClientRepository.java > Mon Mar 3 06:15:04 2008 > @@ -75,6 +75,9 @@ > protected Repository getDelegatee() throws RepositoryException { > if (this.delegatee == null) { > this.delegatee = this.getRepository(); > + if(this.delegatee != null) { > + repositoryAvailable(); > + } > } > > return this.delegatee; > > Modified: > incubator/sling/trunk/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/SlingServerRepository.java > URL: > http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/SlingServerRepository.java?rev=633089&r1=633088&r2=633089&view=diff > ============================================================================== > --- > incubator/sling/trunk/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/SlingServerRepository.java > (original) > +++ > incubator/sling/trunk/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/SlingServerRepository.java > Mon Mar 3 06:15:04 2008 > @@ -110,6 +110,9 @@ > if (this.delegatee == null) { > try { > this.delegatee = this.getRepository(); > + if(this.delegatee != null) { > + repositoryAvailable(); > + } > } catch (IOException ioe) { > throw new RepositoryException(ioe.getMessage(), ioe); > } > >
