expect(bundleContext.registerService(aryEq(new String[] { KeystoreInstance.class.getName() }),
anyObject(), EasyMock.<Dictionary>anyObject())).andReturn(reg);
replay(bundleContext, bundle);
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(new String[] { "classpath:config.xml" }, false) {
protected DefaultListableBeanFactory createBeanFactory() {
DefaultListableBeanFactory f = super.createBeanFactory();
f.addBeanPostProcessor(new BundleContextAwareProcessor(bundleContext));
return f;
}
};
ctx.refresh();
verify(bundleContext, bundle);
// Test realm
Object obj = ctx.getBean("realm");
assertNotNull(obj);
assertTrue(obj instanceof Config);
Config cfg = (Config) obj;
assertNotNull(cfg.getBundleContext());
assertEquals("realm", cfg.getName());
assertNotNull(cfg.getModules());
assertEquals(1, cfg.getModules().length);
assertNotNull(cfg.getModules()[0]);
assertEquals("org.apache.servicemix.kernel.jaas.config.SimpleLoginModule", cfg.getModules()[0].getClassName());
assertEquals("required", cfg.getModules()[0].getFlags());
assertNotNull(cfg.getModules()[0].getOptions());
assertEquals(1, cfg.getModules()[0].getOptions().size());
assertEquals("value", cfg.getModules()[0].getOptions().get("key"));
AppConfigurationEntry[] entries = cfg.getEntries();
assertNotNull(entries);
assertEquals(1, entries.length);
assertNotNull(entries[0]);
assertEquals(ProxyLoginModule.class.getName(), entries[0].getLoginModuleName());
assertEquals(AppConfigurationEntry.LoginModuleControlFlag.REQUIRED, entries[0].getControlFlag());
Map<String,?> options = entries[0].getOptions();
assertNotNull(options);
assertEquals(3, options.size());
assertEquals("value", options.get("key"));
assertEquals("org.apache.servicemix.kernel.jaas.config.SimpleLoginModule", options.get(ProxyLoginModule.PROPERTY_MODULE));
assertEquals("32", options.get(ProxyLoginModule.PROPERTY_BUNDLE));
// Test keystore
obj = ctx.getBean("keystore");
assertNotNull(obj);
assertTrue(obj instanceof KeystoreInstance);
KeystoreInstance ks = (KeystoreInstance) obj;
assertEquals("ks", ks.getName());
assertEquals(1, ks.getRank());