1 package org
.argeo
.cms
.ui
.jcr
;
3 import java
.util
.HashMap
;
6 import javax
.jcr
.Repository
;
8 import org
.osgi
.framework
.BundleContext
;
9 import org
.osgi
.framework
.FrameworkUtil
;
10 import org
.osgi
.framework
.ServiceReference
;
11 import org
.osgi
.util
.tracker
.ServiceTracker
;
13 public class OsgiRepositoryRegister
extends DefaultRepositoryRegister
{
14 private final static BundleContext bc
= FrameworkUtil
.getBundle(OsgiRepositoryRegister
.class).getBundleContext();
15 private final ServiceTracker
<Repository
, Repository
> repositoryTracker
;
17 public OsgiRepositoryRegister() {
18 repositoryTracker
= new ServiceTracker
<Repository
, Repository
>(bc
, Repository
.class, null) {
21 public Repository
addingService(ServiceReference
<Repository
> reference
) {
23 Repository repository
= super.addingService(reference
);
24 Map
<String
, Object
> props
= new HashMap
<>();
25 for (String key
: reference
.getPropertyKeys()) {
26 props
.put(key
, reference
.getProperty(key
));
28 register(repository
, props
);
33 public void removedService(ServiceReference
<Repository
> reference
, Repository service
) {
34 Map
<String
, Object
> props
= new HashMap
<>();
35 for (String key
: reference
.getPropertyKeys()) {
36 props
.put(key
, reference
.getProperty(key
));
38 unregister(service
, props
);
39 super.removedService(reference
, service
);
46 repositoryTracker
.open();
49 public void destroy() {
50 repositoryTracker
.close();