本文整理汇总了Java中org.apache.felix.connect.launch.PojoServiceRegistry类的典型用法代码示例。如果您正苦于以下问题:Java PojoServiceRegistry类的具体用法?Java PojoServiceRegistry怎么用?Java PojoServiceRegistry使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
PojoServiceRegistry类属于org.apache.felix.connect.launch包,在下文中一共展示了PojoServiceRegistry类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createBundleContext
import org.apache.felix.connect.launch.PojoServiceRegistry; //导入依赖的package包/类
public static BundleContext createBundleContext(String name, String bundleFilter, TinyBundle bundle) throws Exception {
// ensure felix-connect stores bundles in an unique target directory
String uid = "" + System.currentTimeMillis();
String tempDir = "target/bundles/" + uid;
System.setProperty("org.osgi.framework.storage", tempDir);
createDirectory(tempDir);
// use another directory for the jar of the bundle as it cannot be in the same directory
// as it has a file lock during running the tests which will cause the temp dir to not be
// fully deleted between tests
createDirectory("target/test-bundles");
List<BundleDescriptor> bundles = new LinkedList<>();
if (bundle != null) {
String jarName = name.toLowerCase(Locale.ENGLISH) + "-" + uid + ".jar";
bundles.add(getBundleDescriptor("target/test-bundles/" + jarName, bundle));
}
List<BundleDescriptor> bundleDescriptors = getBundleDescriptors(bundleFilter);
// let's put configadmin before blueprint.core
int idx1 = -1;
int idx2 = -1;
for (int i = 0; i < bundleDescriptors.size(); i++) {
BundleDescriptor bd = bundleDescriptors.get(i);
if ("org.apache.felix.configadmin".equals(bd.getHeaders().get("Bundle-SymbolicName"))) {
idx1 = i;
}
if ("org.apache.aries.blueprint.core".equals(bd.getHeaders().get("Bundle-SymbolicName"))) {
idx2 = i;
}
}
if (idx1 >= 0 && idx2 >= 0 && idx1 > idx2) {
bundleDescriptors.add(idx2, bundleDescriptors.remove(idx1));
}
// get the bundles
bundles.addAll(bundleDescriptors);
if (LOG.isDebugEnabled()) {
for (int i = 0; i < bundles.size(); i++) {
BundleDescriptor desc = bundles.get(i);
LOG.debug("Bundle #{} -> {}", i, desc);
}
}
// setup felix-connect to use our bundles
Map<String, Object> config = new HashMap<String, Object>();
config.put(PojoServiceRegistryFactory.BUNDLE_DESCRIPTORS, bundles);
// create pojorsr osgi service registry
PojoServiceRegistry reg = new PojoServiceRegistryFactoryImpl().newPojoServiceRegistry(config);
return reg.getBundleContext();
}