@Override public void registerContribution( Object contribution, String extensionPoint, ComponentInstance contributor) { MockMemoryDirectoryDescriptor desc = (MockMemoryDirectoryDescriptor) contribution; String directoryName = desc.name; reg.put(directoryName, desc); try { DirectoryService directoryService = Framework.getService(DirectoryService.class); directoryService.registerDirectory(directoryName, this); } catch (Exception e) { throw new DirectoryException("Error in Directory Service lookup", e); } }
@Before public void setUp() throws Exception { // mem dir factory directoryService = Framework.getLocalService(DirectoryService.class); memoryDirectoryFactory = new MemoryDirectoryFactory(); directoryService.registerDirectory("memdirs", memoryDirectoryFactory); // create and register mem directories Map<String, Object> e; // dir 1 Set<String> schema1Set = new HashSet<String>(Arrays.asList("uid", "foo")); memdir1 = new MemoryDirectory("dir1", "schema1", schema1Set, "uid", "foo"); memoryDirectoryFactory.registerDirectory(memdir1); Session dir1 = memdir1.getSession(); e = new HashMap<String, Object>(); e.put("uid", "1"); e.put("foo", "foo1"); dir1.createEntry(e); e = new HashMap<String, Object>(); e.put("uid", "2"); e.put("foo", "foo2"); dir1.createEntry(e); // dir 2 Set<String> schema2Set = new HashSet<String>(Arrays.asList("id", "bar")); memdir2 = new MemoryDirectory("dir2", "schema2", schema2Set, "id", null); memoryDirectoryFactory.registerDirectory(memdir2); Session dir2 = memdir2.getSession(); e = new HashMap<String, Object>(); e.put("id", "1"); e.put("bar", "bar1"); dir2.createEntry(e); e = new HashMap<String, Object>(); e.put("id", "2"); e.put("bar", "bar2"); dir2.createEntry(e); // dir 3 Set<String> schema3Set = new HashSet<String>(Arrays.asList("uid", "thefoo", "thebar")); memdir3 = new MemoryDirectory("dir3", "schema3", schema3Set, "uid", "thefoo"); memoryDirectoryFactory.registerDirectory(memdir3); Session dir3 = memdir3.getSession(); e = new HashMap<String, Object>(); e.put("uid", "3"); e.put("thefoo", "foo3"); e.put("thebar", "bar3"); dir3.createEntry(e); e = new HashMap<String, Object>(); e.put("uid", "4"); e.put("thefoo", "foo4"); e.put("thebar", "bar4"); dir3.createEntry(e); // the multi directory multiDir = (MultiDirectory) directoryService.getDirectory("multi"); dir = (MultiDirectorySession) multiDir.getSession(); }