Skip to content
Open
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 @@ -21,8 +21,11 @@
import java.io.ByteArrayInputStream;
import java.io.Closeable;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;

Expand Down Expand Up @@ -113,6 +116,10 @@ private void watchRecursive(String path) {

private void onChanged(String path, EndpointDescription endpoint) {
EndpointDescription old = endpoints.put(path, endpoint);
if (old != null && getChangedProps(old.getProperties(), endpoint.getProperties()).isEmpty()) {
LOG.trace("ignoring endpoint that hasn't changed: {}", endpoint);
return;
}
int type = old == null ? EndpointEvent.ADDED : EndpointEvent.MODIFIED;
EndpointEvent event = new EndpointEvent(type, endpoint);
listener.accept(event);
Expand All @@ -136,4 +143,18 @@ private EndpointDescription read(String path) throws KeeperException, Interrupte
}
}

private static Set<String> getChangedProps(Map<String, Object> p1, Map<String, Object> p2) {
Set<String> changed = new LinkedHashSet<>();
for (Map.Entry<String, Object> entry : p1.entrySet()) {
Object v = p2.get(entry.getKey());
if (!Objects.deepEquals(entry.getValue(), v) || v == null && !p2.containsKey(entry.getKey()))
changed.add(entry.getKey());
}
for (String k : p2.keySet()) {
if (!p1.containsKey(k))
changed.add(k);
}
return changed;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
address=localhost:7668
peers=localhost:7669
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
zookeeper.timeout=300000
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# if this config exists, the zookeeper server will be started
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uri=tcp://0.0.0.0:2543
27 changes: 27 additions & 0 deletions itests/tck/configs/framework1/org.ops4j.pax.logging.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Root log level
log4j2.rootLogger.level = WARN

# Console appender (keep it, but quieter)
log4j2.rootLogger.appenderRef.console.ref = console
log4j2.appender.console.type = Console
log4j2.appender.console.name = console
log4j2.appender.console.layout.type = PatternLayout
log4j2.appender.console.layout.pattern = %d{HH:mm:ss.SSS} FW1 %-5p [%t] %c - %m%n

# File appender
log4j2.rootLogger.appenderRef.file.ref = file
log4j2.appender.file.type = RollingFile
log4j2.appender.file.name = file
log4j2.appender.file.fileName = target/framework1.log
log4j2.appender.file.filePattern = target/framework1-%i.log
log4j2.appender.file.layout.type = PatternLayout
log4j2.appender.file.layout.pattern = %d{ISO8601} %-5p [%t] %c - %m%n
log4j2.appender.file.policies.type = Policies
log4j2.appender.file.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.file.policies.size.size = 100MB
log4j2.appender.file.strategy.type = DefaultRolloverStrategy
log4j2.appender.file.strategy.max = 5

# Per-package overrides
log4j2.logger.aries.name = org.apache.aries.rsa
log4j2.logger.aries.level = WARN
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
address=localhost:7669
peers=localhost:7668
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
zookeeper.timeout=300000
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uri=tcp://0.0.0.0:2544
27 changes: 27 additions & 0 deletions itests/tck/configs/framework2/org.ops4j.pax.logging.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Root log level
log4j2.rootLogger.level = WARN

# Console appender (keep it, but quieter)
log4j2.rootLogger.appenderRef.console.ref = console
log4j2.appender.console.type = Console
log4j2.appender.console.name = console
log4j2.appender.console.layout.type = PatternLayout
log4j2.appender.console.layout.pattern = %d{HH:mm:ss.SSS} FW2 %-5p [%t] %c - %m%n

# File appender
log4j2.rootLogger.appenderRef.file.ref = file
log4j2.appender.file.type = RollingFile
log4j2.appender.file.name = file
log4j2.appender.file.fileName = target/framework2.log
log4j2.appender.file.filePattern = target/framework2-%i.log
log4j2.appender.file.layout.type = PatternLayout
log4j2.appender.file.layout.pattern = %d{ISO8601} %-5p [%t] %c - %m%n
log4j2.appender.file.policies.type = Policies
log4j2.appender.file.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.file.policies.size.size = 100MB
log4j2.appender.file.strategy.type = DefaultRolloverStrategy
log4j2.appender.file.strategy.max = 5

# Per-package overrides
log4j2.logger.aries.name = org.apache.aries.rsa
log4j2.logger.aries.level = WARN
88 changes: 81 additions & 7 deletions itests/tck/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,80 @@
<artifactId>org.apache.aries.rsa.discovery.tcp</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.aries.rsa.discovery</groupId>
<artifactId>org.apache.aries.rsa.discovery.zookeeper</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.aries.rsa.provider</groupId>
<artifactId>org.apache.aries.rsa.provider.tcp</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.aries.rsa.provider</groupId>
<artifactId>org.apache.aries.rsa.provider.fastbin</artifactId>
<version>${project.version}</version>
</dependency>

<!-- ZooKeeper discovery dependencies -->
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
</dependency>
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-common</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-resolver</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-unix-common</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec</artifactId>
<version>${netty.version}</version>
</dependency>

<!-- fastbin provider dependencies -->
<dependency>
<groupId>org.fusesource.hawtbuf</groupId>
<artifactId>hawtbuf</artifactId>
</dependency>
<dependency>
<groupId>org.fusesource.hawtdispatch</groupId>
<artifactId>hawtdispatch</artifactId>
</dependency>
<dependency>
<groupId>org.fusesource.hawtbuf</groupId>
<artifactId>hawtbuf-proto</artifactId>
</dependency>

<!-- JAXB dependencies (used by e.g. discovery.local) -->
<dependency>
Expand Down Expand Up @@ -154,6 +223,16 @@
</dependency>

<!-- OSGi compendium services -->
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr</artifactId>
<version>2.2.18</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.fileinstall</artifactId>
<version>3.7.4</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.configadmin</artifactId>
Expand All @@ -164,11 +243,6 @@
<artifactId>org.apache.felix.eventadmin</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr</artifactId>
<version>2.2.18</version>
</dependency>

</dependencies>

Expand Down Expand Up @@ -196,7 +270,8 @@
<version>${bnd.version}</version>
<configuration>
<bndruns>
<bndrun>tck.bndrun</bndrun>
<bndrun>tck-tcp-tcp.bndrun</bndrun>
<bndrun>tck-zookeeper-fastbin.bndrun</bndrun>
</bndruns>
<failOnChanges>false</failOnChanges>
<!-- enables passing -Dtck.test=<TestClass> on maven command line to run specific tests -->
Expand All @@ -215,4 +290,3 @@
</build>

</project>

63 changes: 35 additions & 28 deletions itests/tck/tck.bndrun → itests/tck/tck-tcp-tcp.bndrun
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
# under the License.
#-standalone: target/index.xml


# runs the TCK test suite with TCP discovery and TCP distribution provider


-runtrace: true

-target: org.osgi.test.cases.remoteserviceadmin
Expand All @@ -26,7 +30,7 @@
osgi.resolverMode="strict",\
rsa.ct.timeout=30000,\
rsa.ct.timeout.factor=3,\
rsa.tck.timeout=10000,\
rsa.tck.timeout=30000,\
service.exported.configs="aries.tcp",\
org.osgi.framework.system.packages.extra="\
org.osgi.service.remoteserviceadmin",\
Expand All @@ -35,37 +39,39 @@
junit.framework",\
org.osgi.test.cases.remoteserviceadmin.serverconfig="service.exported.configs",\
org.osgi.test.cases.remoteserviceadmin.bundles="\
${repo;org.apache.aries.rsa.core;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.spi;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.topology-manager;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.discovery.local;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.discovery.tcp;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.provider.tcp;2.0.0.SNAPSHOT},\
${repo;org.ops4j.pax.logging.pax-logging-api;2.3.3},\
${repo;org.ops4j.pax.logging.pax-logging-log4j2;2.3.3},\
${repo;org.osgi.service.component;1.5.1},\
${repo;org.osgi.util.function;1.2.0},\
${repo;org.osgi.util.promise;1.3.0},\
${repo;org.apache.felix.scr;2.2.18},\
${repo;org.apache.felix.fileinstall;3.7.4},\
${repo;org.apache.felix.configadmin;1.9.26},\
${repo;org.apache.felix.eventadmin;1.6.4},\
${repo;org.apache.felix.scr;2.2.18},\
${repo;org.glassfish.hk2.osgi-resource-locator;3.0.0},\
${repo;org.apache.servicemix.bundles.junit;4.13.2},\
${repo;org.ops4j.pax.logging.pax-logging-api;2.3.3},\
${repo;org.ops4j.pax.logging.pax-logging-log4j2;2.3.3},\
${repo;jakarta.activation-api;2.1.4},\
${repo;jakarta.xml.bind-api;4.0.5},\
${repo;com.sun.xml.bind.jaxb-impl;4.0.8},\
${repo;com.sun.xml.bind.jaxb-core;4.0.8},\
${repo;com.sun.xml.bind.jaxb-impl;4.0.8},\
${repo;com.sun.istack.commons-runtime;4.2.0},\
${repo;org.glassfish.hk2.osgi-resource-locator;3.0.0}",\
org.apache.aries.rsa.discovery.tcp.address=localhost:7668,\
org.apache.aries.rsa.discovery.tcp.peers=localhost:7669,\
${repo;org.apache.aries.rsa.spi;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.discovery.local;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.discovery.tcp;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.provider.tcp;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.core;2.0.0.SNAPSHOT},\
${repo;org.apache.aries.rsa.topology-manager;2.0.0.SNAPSHOT}",\
felix.fileinstall.dir=${.}/configs/framework1,\
felix.fileinstall.noInitialDelay=true,\
org.apache.aries.rsa.bridge=true,\
org.osgi.test.cases.remoteserviceadmin.framework.properties="\
org.apache.aries.rsa.discovery.tcp.address=localhost:7669,\
org.apache.aries.rsa.discovery.tcp.peers=localhost:7668,\
felix.fileinstall.dir=${.}/configs/framework2,\
felix.fileinstall.noInitialDelay=true,\
org.apache.aries.rsa.bridge=true"

-runvm:\
-Xmx512m
-Xmx512m,\
-Dorg.ops4j.pax.logging.DefaultServiceLog.level=WARN
#,"-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"

-runsystempackages:\
Expand All @@ -81,27 +87,28 @@
-runblacklist:\
osgi.identity;filter:='(osgi.identity=osgi.cmpn)'
-runbundles:\
org.apache.aries.rsa.core;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.spi;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.topology-manager;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.discovery.local;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.discovery.tcp;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.provider.tcp;version='[2.0.0,2.0.1)',\
org.ops4j.pax.logging.pax-logging-api;version='[2.3.3,2.3.4)',\
org.ops4j.pax.logging.pax-logging-log4j2;version='[2.3.3,2.3.4)',\
org.osgi.service.component;version='[1.5.1,1.5.2)',\
org.osgi.util.function;version='[1.2.0,1.2.1)',\
org.osgi.util.promise;version='[1.3.0,1.3.1)',\
org.apache.felix.scr;version='[2.2.18,2.2.19)',\
org.apache.felix.fileinstall;version='[3.7.4,3.7.5)',\
org.apache.felix.configadmin;version='[1.9.26,1.9.27)',\
org.apache.felix.eventadmin;version='[1.6.4,1.6.5)',\
org.apache.felix.scr;version='[2.2.18,2.2.19)',\
org.glassfish.hk2.osgi-resource-locator;version='[3.0.0,3.0.1)',\
org.apache.servicemix.bundles.junit;version='[4.13.2,4.13.3)',\
assertj-core;version='[3.27.7,3.27.8)',\
net.bytebuddy.byte-buddy;version='[1.18.8,1.18.9)',\
org.ops4j.pax.logging.pax-logging-api;version='[2.3.3,2.3.4)',\
org.ops4j.pax.logging.pax-logging-log4j2;version='[2.3.3,2.3.4)',\
jakarta.activation-api;version='[2.1.4,2.1.5)',\
jakarta.xml.bind-api;version='[4.0.5,4.0.6)',\
com.sun.xml.bind.jaxb-impl;version='[4.0.8,4.0.9)',\
com.sun.xml.bind.jaxb-core;version='[4.0.8,4.0.9)',\
com.sun.xml.bind.jaxb-impl;version='[4.0.8,4.0.9)',\
com.sun.istack.commons-runtime;version='[4.2.0,4.2.1)',\
org.glassfish.hk2.osgi-resource-locator;version='[3.0.0,3.0.1)',\
org.apache.aries.rsa.spi;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.discovery.local;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.discovery.tcp;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.provider.tcp;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.core;version='[2.0.0,2.0.1)',\
org.apache.aries.rsa.topology-manager;version='[2.0.0,2.0.1)',\
org.osgi.test.cases.remoteserviceadmin;version='[8.1.0,8.1.1)'
Loading