private ModuleManager(File cacheRoot) { String systemPackagesSpec = FluentIterable.from(SYSTEM_PACKAGES).transform(appendVersion).join(COMMA_JOINER); Map<String, String> frameworkProps = ImmutableMap.<String, String>builder() .put(Constants.FRAMEWORK_SYSTEMPACKAGES_EXTRA, systemPackagesSpec) .put("org.osgi.framework.storage.clean", "onFirstInit") .put("felix.cache.rootdir", cacheRoot.getAbsolutePath()) .put("felix.cache.locking", Boolean.FALSE.toString()) .build(); LOG.info("Framework properties are: " + frameworkProps); FrameworkFactory frameworkFactory = ServiceLoader.load(FrameworkFactory.class).iterator().next(); m_framework = frameworkFactory.newFramework(frameworkProps); try { m_framework.start(); } catch (BundleException e) { LOG.error("Failed to start the felix OSGi framework", e); throw new SetUpException("Failed to start the felix OSGi framework", e); } m_bundles = new BundleRef(m_framework); }
@Override public Object deserialize(Writable w) throws SerDeException { if (!(w instanceof VoltRecord)) { throw new VoltSerdeException("expected an instance of VoltRecord"); } VoltRecord vr = (VoltRecord) w; return FluentIterable.from(vr).toList(); }