Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,13 @@ public <T> Set<T> findByType(Class<T> type) {
return answer;
}

@Override
public void add(String name, Object object) {
if (null != registryList.get(0)) {
registryList.get(0).add(name, object);
}
}

public Object lookup(String name) {
return lookupByName(name);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,11 @@ public <T> Set<T> findByType(Class<T> type) {
return answer;
}

@Override
public void add(String name, Object object) {
bind(name, object);
}

public Object lookup(String name) {
return lookupByName(name);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@ public <T> Set<T> findByType(Class<T> type) {
return delegate.findByType(type);
}

@Override
public void add(String name, Object object) {
delegate.add(name, object);
}

public Object lookup(String name) {
return lookupByName(name);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ public <T> Set<T> findByType(Class<T> type) {
return result;
}

@Override
public void add(String name, Object object) {
put(name, object);
}

public Object lookup(String name) {
return lookupByName(name);
}
Expand Down
9 changes: 8 additions & 1 deletion camel-core/src/main/java/org/apache/camel/spi/Registry.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,14 @@ public interface Registry {
*/
<T> Set<T> findByType(Class<T> type);

/**
* Adds a service in the registry.
*
* @param name the name of the service
* @param object the service object to add
*/
void add(String name, Object object);

/**
* Looks up a service in the registry based purely on name,
* returning the service or <tt>null</tt> if it could not be found.
Expand Down Expand Up @@ -95,5 +103,4 @@ public interface Registry {
*/
@Deprecated
<T> Map<String, T> lookupByType(Class<T> type);

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,18 @@ public void createContext() throws Exception {
registry = new CompositeRegistry();
registry.addRegistry(sr2);
registry.addRegistry(sr1);
registry.add("direct", "something");
}

@Test
public void testGetNameAndType() throws Exception {
Object result = registry.lookupByNameAndType("name", String.class);
assertNotNull(result);
assertEquals("Get a wrong result", result, "12");

result = registry.lookup("direct");
assertNotNull(result);
assertEquals("something", result);

result = registry.lookup("test", Integer.class);
assertNull(result);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,12 @@ public void testLookupByType() throws Exception {
JndiRegistry jndi = new JndiRegistry(JndiTest.createInitialContext());
jndi.bind("foo", new SimpleLanguage());
jndi.bind("bar", "Hello bar");
jndi.add("direct", "something");

assertEquals("Hello bar", jndi.lookup("bar"));
assertEquals("Hello bar", jndi.lookupByName("bar"));
assertEquals("Hello bar", jndi.lookupByNameAndType("bar", String.class));
assertEquals("something", jndi.lookup("direct"));
assertNull(jndi.lookup("unknown"));
assertNull(jndi.lookupByName("unknown"));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,12 @@ protected void setUp() throws Exception {
registry = new SimpleRegistry();
registry.put("a", "b");
registry.put("c", 1);
registry.add("direct", "something");
}

public void testLookupByName() {
assertEquals("b", registry.lookupByName("a"));
assertEquals("something", registry.lookup("direct"));
}

public void testLookupByWrongName() {
Expand All @@ -56,10 +58,10 @@ public void testLookupByNameAndWrongType() {

public void testLookupByType() {
Map<?, ?> map = registry.findByTypeWithName(String.class);
assertEquals(1, map.size());
assertEquals(2, map.size());
assertEquals("b", map.get("a"));
map = registry.findByTypeWithName(Object.class);
assertEquals(2, map.size());
assertEquals(3, map.size());
assertEquals("b", map.get("a"));
assertEquals(1, map.get("c"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ public <T> Set<T> findByType(Class<T> type) {
return beans;
}

@Override
public void add(String name, Object object) {
// not implemented
}

@Override
public Object lookup(String name) {
return lookupByName(name);
Expand Down