-// private void registerWorkbench(final WorkbenchApplicationConfiguration wac) {
-// new Thread("Worbench Launcher") {
-// public void run() {
-// Hashtable<String, String> props = new Hashtable<String, String>();
-// props.put(ApplicationLauncher.PROPERTY_CONTEXT_NAME, "ui");
-// workbenchReg = bundleContext.registerService(
-// ApplicationConfiguration.class, wac, props);
-// }
-// }.start();
-// }
-
- private void directorsCut() {
- final long ms = 128l + (long) (Math.random() * 128d);
+ @Override
+ public void serviceChanged(ServiceEvent event) {
+ ServiceReference<?> sr = event.getServiceReference();
+ Object jcrRepoAlias = sr
+ .getProperty(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS);
+ if (jcrRepoAlias != null) {// JCR repository
+ String alias = jcrRepoAlias.toString();
+ Repository repository = (Repository) bundleContext.getService(sr);
+ if (ServiceEvent.REGISTERED == event.getType()) {
+ try {
+ nodeHttp.registerWebdavServlet(alias, repository, true);
+ nodeHttp.registerWebdavServlet(alias, repository, false);
+ nodeHttp.registerRemotingServlet(alias, repository, true);
+ nodeHttp.registerRemotingServlet(alias, repository, false);
+ } catch (Exception e) {
+ throw new CmsException("Could not publish JCR repository "
+ + alias, e);
+ }
+ } else if (ServiceEvent.UNREGISTERING == event.getType()) {
+ }
+ }
+
+ }
+
+ final private static void directorsCut(long initDuration) {
+ // final long ms = 128l + (long) (Math.random() * 128d);
+ long ms = initDuration / 10;