Skip to content

Commit

Permalink
NMS-16486: Moved cache into maven module
Browse files Browse the repository at this point in the history
  • Loading branch information
christianpape committed Aug 27, 2024
1 parent 4808327 commit dfa7fb5
Show file tree
Hide file tree
Showing 13 changed files with 176 additions and 91 deletions.
1 change: 0 additions & 1 deletion container/features/src/main/resources/features-minion.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,6 @@
<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.registry/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.listeners/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry/org.opennms.features.telemetry.shell/${project.version}</bundle>
<bundle>mvn:org.opennms.core/org.opennms.core.cache/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.common/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols.bmp/org.opennms.features.telemetry.protocols.bmp.parser/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols.bmp/org.opennms.features.telemetry.protocols.bmp.transport/${project.version}</bundle>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@
<bundle>wrap:mvn:org.freemarker/freemarker/${freemarkerVersion}$Bundle-SymbolicName=org.freemarker&amp;Bundle-Version=${freemarkerVersion}</bundle>
<bundle>mvn:org.opennms.core/org.opennms.core.cache/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols.netflow/org.opennms.features.telemetry.protocols.netflow.transport/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.cache/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.common/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.flows/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols.netflow/org.opennms.features.telemetry.protocols.netflow.adapter/${project.version}</bundle>
Expand Down
1 change: 1 addition & 0 deletions container/features/src/main/resources/features.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1151,6 +1151,7 @@
-->
<bundle>mvn:com.google.protobuf/protobuf-java/${protobufVersion}</bundle>
<bundle>wrap:mvn:com.google.protobuf/protobuf-java-util/${protobufVersion}$overwrite=merge&amp;Import-Package=javax.annotation;version=!,*</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.cache/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.common/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols/org.opennms.features.telemetry.protocols.flows/${project.version}</bundle>
<bundle>mvn:org.opennms.features.telemetry.protocols.netflow/org.opennms.features.telemetry.protocols.netflow.parser/${project.version}</bundle>
Expand Down
5 changes: 5 additions & 0 deletions features/flows/processing/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@
<artifactId>org.opennms.features.telemetry.protocols.common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opennms.features.telemetry.protocols</groupId>
<artifactId>org.opennms.features.telemetry.protocols.cache</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opennms.dependencies</groupId>
<artifactId>oia-dependencies</artifactId>
Expand Down
5 changes: 5 additions & 0 deletions features/telemetry/protocols/adapters/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@
<groupId>org.opennms</groupId>
<artifactId>opennms-dao-api</artifactId>
</dependency>
<dependency>
<groupId>org.opennms.features.telemetry.protocols</groupId>
<artifactId>org.opennms.features.telemetry.protocols.cache</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
Expand Down
78 changes: 78 additions & 0 deletions features/telemetry/protocols/cache/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.opennms.features.telemetry</groupId>
<artifactId>org.opennms.features.telemetry.protocols</artifactId>
<version>31.0.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.opennms.features.telemetry.protocols</groupId>
<artifactId>org.opennms.features.telemetry.protocols.cache</artifactId>
<name>OpenNMS :: Features :: Telemetry :: Protocols :: Cache</name>
<packaging>bundle</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.opennms.features.telemetry</groupId>
<artifactId>org.opennms.features.telemetry.api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opennms.features.telemetry.config</groupId>
<artifactId>org.opennms.features.telemetry.config.api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opennms.features.telemetry</groupId>
<artifactId>org.opennms.features.telemetry.listeners</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opennms.core</groupId>
<artifactId>org.opennms.core.lib</artifactId>
</dependency>
<dependency>
<groupId>org.opennms.core.ipc.sink</groupId>
<artifactId>org.opennms.core.ipc.sink.api</artifactId>
</dependency>
<dependency>
<groupId>org.opennms.dependencies</groupId>
<artifactId>spring-dependencies</artifactId>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
</dependency>
<dependency>
<groupId>org.opennms.core.mate</groupId>
<artifactId>org.opennms.core.mate.api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opennms.core</groupId>
<artifactId>org.opennms.core.cache</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opennms.features.flows</groupId>
<artifactId>org.opennms.features.flows.api</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.1.0"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0
http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.1.0
http://aries.apache.org/schemas/blueprint-ext/blueprint-ext-1.1.xsd
">
<!-- Configuration properties -->
<cm:property-placeholder id="cacheConfigProperties" persistent-id="org.opennms.features.telemetry.protocols.common" update-strategy="reload">
<cm:default-properties>
<cm:property name="nodeInfoCache.enabled" value="true" /> <!-- Set to false to disable caching -->
<cm:property name="nodeInfoCache.maximumSize" value="10000"/> <!-- Set value for unlimited size -->
<cm:property name="nodeInfoCache.expireAfterWrite" value="0"/> <!-- in seconds. Set to 0 to never evict elements -->
<cm:property name="nodeInfoCache.recordStats" value="true"/> <!-- Set to false to not expose cache statistics via jmx -->

<cm:property name="nodeMetadataCache.enabled" value="true" /> <!-- Set to false to disable caching -->
<cm:property name="nodeMetadataCache.maximumSize" value="10000"/> <!-- Set value for unlimited size -->
<cm:property name="nodeMetadataCache.expireAfterWrite" value="0"/> <!-- in seconds. Set to 0 to never evict elements -->
<cm:property name="nodeMetadataCache.recordStats" value="true"/> <!-- Set to false to not expose cache statistics via jmx -->
</cm:default-properties>
</cm:property-placeholder>

<!-- Configure node cache -->
<bean id="nodeInfoCacheConfig" class="org.opennms.core.cache.CacheConfig">
<argument value="nodeInfoCache"/>
<property name="metricRegistry" ref="flowCacheMetricRegistry" />
<property name="enabled" value="${nodeInfoCache.enabled}" />
<property name="maximumSize" value="${nodeInfoCache.maximumSize}" />
<property name="expireAfterWrite" value="${nodeInfoCache.expireAfterWrite}" />
<property name="recordStats" value="${nodeInfoCache.recordStats}" />
</bean>

<bean id="nodeMetadataCacheConfig" class="org.opennms.core.cache.CacheConfig">
<argument value="nodeMetadataCache"/>
<property name="metricRegistry" ref="flowCacheMetricRegistry" />
<property name="enabled" value="${nodeMetadataCache.enabled}" />
<property name="maximumSize" value="${nodeMetadataCache.maximumSize}" />
<property name="expireAfterWrite" value="${nodeMetadataCache.expireAfterWrite}" />
<property name="recordStats" value="${nodeMetadataCache.recordStats}" />
</bean>

<!-- Configure references -->
<reference id="nodeDao" interface="org.opennms.netmgt.dao.api.NodeDao" availability="mandatory" />
<reference id="ipInterfaceDao" interface="org.opennms.netmgt.dao.api.IpInterfaceDao" availability="mandatory" />
<reference id="interfaceToNodeCache" interface="org.opennms.netmgt.dao.api.InterfaceToNodeCache" availability="mandatory" />

<!-- Configure NodeMetadataCache -->
<bean id="nodeMetadataCache" class="org.opennms.netmgt.telemetry.protocols.common.cache.NodeMetadataCacheImpl">
<argument ref="nodeInfoCacheConfig"/>
<argument ref="nodeMetadataCacheConfig"/>
<argument ref="flowCacheMetricRegistry"/>
<argument ref="nodeDao"/>
<argument ref="ipInterfaceDao"/>
<argument ref="interfaceToNodeCache"/>
</bean>
<service ref="nodeMetadataCache" interface="org.opennms.netmgt.telemetry.protocols.common.cache.NodeMetadataCache">
<service-properties>
<entry key="registration.export" value="true" />
</service-properties>
</service>

<!-- Configure Metrics -->
<bean id="flowCacheMetricRegistry" class="com.codahale.metrics.MetricRegistry"/>
<service ref="flowCacheMetricRegistry" interface="com.codahale.metrics.MetricSet">
<service-properties>
<entry key="name" value="org.opennms.netmgt.telemetry.protocols.common.cache" />
<entry key="description" value="Node Caches" />
</service-properties>
</service>
<bean id="flowCacheMetricRegistryJmxReporterBuilder" class="com.codahale.metrics.JmxReporter" factory-method="forRegistry">
<argument ref="flowCacheMetricRegistry"/>
</bean>
<bean id="flowCacheMetricRegistryDomainedJmxReporterBuilder" factory-ref="flowCacheMetricRegistryJmxReporterBuilder" factory-method="inDomain">
<argument value="org.opennms.netmgt.flows"/>
</bean>
<bean id="flowCacheMetricRegistryJmxReporter"
factory-ref="flowCacheMetricRegistryDomainedJmxReporterBuilder"
factory-method="build"
init-method="start"
destroy-method="stop" />

</blueprint>
15 changes: 0 additions & 15 deletions features/telemetry/protocols/common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,20 +59,5 @@
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
</dependency>
<dependency>
<groupId>org.opennms.core.mate</groupId>
<artifactId>org.opennms.core.mate.api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opennms.core</groupId>
<artifactId>org.opennms.core.cache</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opennms.features.flows</groupId>
<artifactId>org.opennms.features.flows.api</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -19,79 +19,4 @@
<entry key="registration.export" value="true" />
</service-properties>
</service>

<!-- Configuration properties -->
<cm:property-placeholder id="cacheConfigProperties" persistent-id="org.opennms.features.telemetry.protocols.common" update-strategy="reload">
<cm:default-properties>
<cm:property name="nodeInfoCache.enabled" value="true" /> <!-- Set to false to disable caching -->
<cm:property name="nodeInfoCache.maximumSize" value="10000"/> <!-- Set value for unlimited size -->
<cm:property name="nodeInfoCache.expireAfterWrite" value="0"/> <!-- in seconds. Set to 0 to never evict elements -->
<cm:property name="nodeInfoCache.recordStats" value="true"/> <!-- Set to false to not expose cache statistics via jmx -->

<cm:property name="nodeMetadataCache.enabled" value="true" /> <!-- Set to false to disable caching -->
<cm:property name="nodeMetadataCache.maximumSize" value="10000"/> <!-- Set value for unlimited size -->
<cm:property name="nodeMetadataCache.expireAfterWrite" value="0"/> <!-- in seconds. Set to 0 to never evict elements -->
<cm:property name="nodeMetadataCache.recordStats" value="true"/> <!-- Set to false to not expose cache statistics via jmx -->
</cm:default-properties>
</cm:property-placeholder>

<!-- Configure node cache -->
<bean id="nodeInfoCacheConfig" class="org.opennms.core.cache.CacheConfig">
<argument value="nodeInfoCache"/>
<property name="metricRegistry" ref="flowCacheMetricRegistry" />
<property name="enabled" value="${nodeInfoCache.enabled}" />
<property name="maximumSize" value="${nodeInfoCache.maximumSize}" />
<property name="expireAfterWrite" value="${nodeInfoCache.expireAfterWrite}" />
<property name="recordStats" value="${nodeInfoCache.recordStats}" />
</bean>

<bean id="nodeMetadataCacheConfig" class="org.opennms.core.cache.CacheConfig">
<argument value="nodeMetadataCache"/>
<property name="metricRegistry" ref="flowCacheMetricRegistry" />
<property name="enabled" value="${nodeMetadataCache.enabled}" />
<property name="maximumSize" value="${nodeMetadataCache.maximumSize}" />
<property name="expireAfterWrite" value="${nodeMetadataCache.expireAfterWrite}" />
<property name="recordStats" value="${nodeMetadataCache.recordStats}" />
</bean>

<!-- Configure references -->
<reference id="nodeDao" interface="org.opennms.netmgt.dao.api.NodeDao" availability="mandatory" />
<reference id="ipInterfaceDao" interface="org.opennms.netmgt.dao.api.IpInterfaceDao" availability="mandatory" />
<reference id="interfaceToNodeCache" interface="org.opennms.netmgt.dao.api.InterfaceToNodeCache" availability="mandatory" />

<!-- Configure NodeMetadataCache -->
<bean id="nodeMetadataCache" class="org.opennms.netmgt.telemetry.protocols.common.cache.NodeMetadataCacheImpl">
<argument ref="nodeInfoCacheConfig"/>
<argument ref="nodeMetadataCacheConfig"/>
<argument ref="flowCacheMetricRegistry"/>
<argument ref="nodeDao"/>
<argument ref="ipInterfaceDao"/>
<argument ref="interfaceToNodeCache"/>
</bean>
<service ref="nodeMetadataCache" interface="org.opennms.netmgt.telemetry.protocols.common.cache.NodeMetadataCache">
<service-properties>
<entry key="registration.export" value="true" />
</service-properties>
</service>

<!-- Configure Metrics -->
<bean id="flowCacheMetricRegistry" class="com.codahale.metrics.MetricRegistry"/>
<service ref="flowCacheMetricRegistry" interface="com.codahale.metrics.MetricSet">
<service-properties>
<entry key="name" value="org.opennms.netmgt.telemetry.protocols.common.cache" />
<entry key="description" value="Node Caches" />
</service-properties>
</service>
<bean id="flowCacheMetricRegistryJmxReporterBuilder" class="com.codahale.metrics.JmxReporter" factory-method="forRegistry">
<argument ref="flowCacheMetricRegistry"/>
</bean>
<bean id="flowCacheMetricRegistryDomainedJmxReporterBuilder" factory-ref="flowCacheMetricRegistryJmxReporterBuilder" factory-method="inDomain">
<argument value="org.opennms.netmgt.flows"/>
</bean>
<bean id="flowCacheMetricRegistryJmxReporter"
factory-ref="flowCacheMetricRegistryDomainedJmxReporterBuilder"
factory-method="build"
init-method="start"
destroy-method="stop" />

</blueprint>
1 change: 1 addition & 0 deletions features/telemetry/protocols/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
<modules>
<module>adapters</module>
<module>bmp</module>
<module>cache</module>
<module>common</module>
<module>flows</module>
<module>graphite</module>
Expand Down

0 comments on commit dfa7fb5

Please sign in to comment.