git://wamblee.org
/
utils
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
8b23e27
)
provided interface now sets its own unique id.
author
erik
<erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Wed, 4 Jun 2008 20:08:00 +0000
(20:08 +0000)
committer
erik
<erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Wed, 4 Jun 2008 20:08:00 +0000
(20:08 +0000)
system/general/src/main/java/org/wamblee/system/core/DefaultProvidedInterface.java
patch
|
blob
|
history
system/general/src/main/java/org/wamblee/system/core/DefaultScope.java
patch
|
blob
|
history
system/general/src/main/java/org/wamblee/system/core/ProvidedInterface.java
patch
|
blob
|
history
system/general/src/test/java/org/wamblee/system/container/ContainerTest.java
patch
|
blob
|
history
system/general/src/test/java/org/wamblee/system/core/DefaultScopeTest.java
patch
|
blob
|
history
diff --git
a/system/general/src/main/java/org/wamblee/system/core/DefaultProvidedInterface.java
b/system/general/src/main/java/org/wamblee/system/core/DefaultProvidedInterface.java
index 10b8f6184cbbf5c5c50ce192720b8037b7132138..d3a40bfe227f4aec5d449f2e262b1e76670a093c 100644
(file)
--- a/
system/general/src/main/java/org/wamblee/system/core/DefaultProvidedInterface.java
+++ b/
system/general/src/main/java/org/wamblee/system/core/DefaultProvidedInterface.java
@@
-19,6
+19,7
@@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.UUID;
/**
/**
@@
-43,7
+44,7
@@
public class DefaultProvidedInterface implements ProvidedInterface {
public DefaultProvidedInterface(String aName, Class[] aInterfaces) {
_name = aName;
_interfaces = Arrays.copyOf(aInterfaces, aInterfaces.length);
public DefaultProvidedInterface(String aName, Class[] aInterfaces) {
_name = aName;
_interfaces = Arrays.copyOf(aInterfaces, aInterfaces.length);
- _uniqueId =
null
;
+ _uniqueId =
UUID.randomUUID().toString()
;
}
@Override
}
@Override
@@
-55,11
+56,6
@@
public class DefaultProvidedInterface implements ProvidedInterface {
public Class[] getInterfaceTypes() {
return _interfaces;
}
public Class[] getInterfaceTypes() {
return _interfaces;
}
-
- @Override
- public void setUniqueId(String aId) {
- _uniqueId = aId;
- }
@Override
public String getUniqueId() {
@Override
public String getUniqueId() {
diff --git
a/system/general/src/main/java/org/wamblee/system/core/DefaultScope.java
b/system/general/src/main/java/org/wamblee/system/core/DefaultScope.java
index 51949ca1570df5dd755a905edb1a4e5049a92a71..18f26cc8d0a1e8ddaa75a3b88affd2c81422bf5b 100644
(file)
--- a/
system/general/src/main/java/org/wamblee/system/core/DefaultScope.java
+++ b/
system/general/src/main/java/org/wamblee/system/core/DefaultScope.java
@@
-81,10
+81,8
@@
public class DefaultScope implements Scope {
@Override
synchronized public void publishInterface(ProvidedInterface aInterface,
Object aImplementation) {
@Override
synchronized public void publishInterface(ProvidedInterface aInterface,
Object aImplementation) {
- String id = UUID.randomUUID().toString();
- _provided.put(id, new ProvidedInterfaceImplementation(aInterface,
+ _provided.put(aInterface.getUniqueId(), new ProvidedInterfaceImplementation(aInterface,
aImplementation));
aImplementation));
- aInterface.setUniqueId(id);
}
@Override
}
@Override
diff --git
a/system/general/src/main/java/org/wamblee/system/core/ProvidedInterface.java
b/system/general/src/main/java/org/wamblee/system/core/ProvidedInterface.java
index fe7f7d26a73483907d0102b29050c86455f8d55c..aa2621f7f017e70bbb8e8a4eb19f7f9e71fbabfd 100644
(file)
--- a/
system/general/src/main/java/org/wamblee/system/core/ProvidedInterface.java
+++ b/
system/general/src/main/java/org/wamblee/system/core/ProvidedInterface.java
@@
-36,17
+36,9
@@
public interface ProvidedInterface {
* @return Service type.
*/
Class[] getInterfaceTypes();
* @return Service type.
*/
Class[] getInterfaceTypes();
-
- /**
- * Sets a unique id of the provided interface to identify it within a given scope.
- * Will be called by the container as part of calling {@link #publish(Object, Scope)}.
- * @param aId Unique id.
- */
- void setUniqueId(String aId);
/**
/**
- * Gets the unique if of the provided interface. This is set by the container
- * using {@link #setUniqueId(String)}.
+ * Gets the unique if of the provided interface.
*/
String getUniqueId();
*/
String getUniqueId();
diff --git
a/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java
b/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java
index cc18db2e50bac0a1c11fe3886fc10583db8e393c..83abf3c2302debf477dc907efb5b0ffa7a6358d4 100644
(file)
--- a/
system/general/src/test/java/org/wamblee/system/container/ContainerTest.java
+++ b/
system/general/src/test/java/org/wamblee/system/container/ContainerTest.java
@@
-201,7
+201,6
@@
public class ContainerTest extends TestCase {
return;
}
fail();
return;
}
fail();
-
}
public void testDuplicateComponent() {
}
public void testDuplicateComponent() {
@@
-216,6
+215,7
@@
public class ContainerTest extends TestCase {
fail();
}
fail();
}
+
public void testInconsistentHierarchy() {
try {
Component comp = new Application();
public void testInconsistentHierarchy() {
try {
Component comp = new Application();
@@
-527,74
+527,79
@@
public class ContainerTest extends TestCase {
Thread.currentThread()).toArray(new String[0]));
}
Thread.currentThread()).toArray(new String[0]));
}
-
- public void testNonUniqueRequiredInterface() {
+
+ public void testNonUniqueRequiredInterface() {
final Container container = new Container("top");
final Container container = new Container("top");
- container.addRequiredInterface(new DefaultRequiredInterface("i", Integer.class));
- container.addRequiredInterface(new DefaultRequiredInterface("x", String.class));
- container.addRequiredInterface(new DefaultRequiredInterface("y", String.class));
-
+ container.addRequiredInterface(new DefaultRequiredInterface("i",
+ Integer.class));
+ container.addRequiredInterface(new DefaultRequiredInterface("x",
+ String.class));
+ container.addRequiredInterface(new DefaultRequiredInterface("y",
+ String.class));
+
Application app = new Application("1");
container.addComponent(app);
Application app = new Application("1");
container.addComponent(app);
-
- AssertionUtils.assertException(new AssertionUtils.ErroneousCode() {
+ AssertionUtils.assertException(new AssertionUtils.ErroneousCode() {
@Override
public void run() throws Exception {
@Override
public void run() throws Exception {
- container.start();
+ container.start();
}
}, SystemAssemblyException.class);
}
}, SystemAssemblyException.class);
-
- container.connectExternalRequired("1", app.getRequiredInterfaces()[0]
.getName(),
- "y");
-
+
+ container.connectExternalRequired("1", app.getRequiredInterfaces()[0]
+
.getName(),
"y");
+
ProvidedInterface i = new DefaultProvidedInterface("i", Integer.class);
ProvidedInterface x = new DefaultProvidedInterface("x", String.class);
ProvidedInterface y = new DefaultProvidedInterface("y", String.class);
ProvidedInterface i = new DefaultProvidedInterface("i", Integer.class);
ProvidedInterface x = new DefaultProvidedInterface("x", String.class);
ProvidedInterface y = new DefaultProvidedInterface("y", String.class);
-
+
Scope externalScope = new DefaultScope(new ProvidedInterface[0]);
Scope externalScope = new DefaultScope(new ProvidedInterface[0]);
-
+
externalScope.publishInterface(i, 100);
externalScope.publishInterface(x, "x-value");
externalScope.publishInterface(y, "y-value");
externalScope.publishInterface(i, 100);
externalScope.publishInterface(x, "x-value");
externalScope.publishInterface(y, "y-value");
-
+
container.getRequiredInterfaces()[0].setProvider(i);
container.getRequiredInterfaces()[1].setProvider(x);
container.getRequiredInterfaces()[2].setProvider(y);
container.getRequiredInterfaces()[0].setProvider(i);
container.getRequiredInterfaces()[1].setProvider(x);
container.getRequiredInterfaces()[2].setProvider(y);
-
+
Scope runtime = container.start(externalScope);
Scope runtime = container.start(externalScope);
-
+
assertEquals("y-value", app.getString());
assertEquals("y-value", app.getString());
-
+
}
}
-
- public void testNonUniqueProvidedInterface() {
-
- final Container container = new Container("top").addProvidedInterface(new DefaultProvidedInterface("external", String.class));
+
+ public void testNonUniqueProvidedInterface() {
+
+ final Container container = new Container("top")
+ .addProvidedInterface(new DefaultProvidedInterface("external",
+ String.class));
Environment env1 = new Environment("env1");
Environment env2 = new Environment("env2");
Environment env1 = new Environment("env1");
Environment env2 = new Environment("env2");
-
-
- container.addComponent(env1);
+
+ container.addComponent(env1);
container.addComponent(env2);
container.addComponent(env2);
-
- AssertionUtils.assertException(new AssertionUtils.ErroneousCode() {
+
+ AssertionUtils.assertException(new AssertionUtils.ErroneousCode() {
@Override
public void run() throws Exception {
@Override
public void run() throws Exception {
- container.start();
+ container.start();
}
}, SystemAssemblyException.class);
}
}, SystemAssemblyException.class);
-
+
// now choose env2
// now choose env2
-
- container.connectExternalProvided(container.getProvidedInterfaces()[0].getName(),
- env2.getName(), env2.getProvidedInterfaces()[0].getName());
-
+
+ container.connectExternalProvided(container.getProvidedInterfaces()[0]
+ .getName(), env2.getName(), env2.getProvidedInterfaces()[0]
+ .getName());
+
Scope scope = container.start();
Scope scope = container.start();
-
+
// check the value of the provided interface of the container
// check the value of the provided interface of the container
-
- String value = scope.getInterfaceImplementation(container.getProvidedInterfaces()[0], String.class);
+
+ String value = scope.getInterfaceImplementation(container
+ .getProvidedInterfaces()[0], String.class);
assertNotNull(value);
assertEquals(value, env2.getString());
assertFalse(value.equals(env1.getString()));
assertNotNull(value);
assertEquals(value, env2.getString());
assertFalse(value.equals(env1.getString()));
diff --git
a/system/general/src/test/java/org/wamblee/system/core/DefaultScopeTest.java
b/system/general/src/test/java/org/wamblee/system/core/DefaultScopeTest.java
index 8458c326e5265d483feda55dc0d6e4895a85be60..d07ccd456819de128e35165d852e4df370ea1840 100644
(file)
--- a/
system/general/src/test/java/org/wamblee/system/core/DefaultScopeTest.java
+++ b/
system/general/src/test/java/org/wamblee/system/core/DefaultScopeTest.java
@@
-22,10
+22,10
@@
public class DefaultScopeTest extends TestCase {
public void testLookup() {
ProvidedInterface provider = new DefaultProvidedInterface("x", Integer.class);
Scope scope = new DefaultScope(new ProvidedInterface[0]);
public void testLookup() {
ProvidedInterface provider = new DefaultProvidedInterface("x", Integer.class);
Scope scope = new DefaultScope(new ProvidedInterface[0]);
-
- assertNull(provider.getUniqueId());
+
scope.publishInterface(provider, 100);
assertNotNull(provider.getUniqueId());
scope.publishInterface(provider, 100);
assertNotNull(provider.getUniqueId());
+ assertEquals(100, scope.getInterfaceImplementation(provider, Integer.class).intValue());
}
public void testNestedLookup() {
}
public void testNestedLookup() {