Reputation: 1
I worked on the onos framework, i upgraded some codes, i kept some old mechanism such as pom.xml here're three bundles, onos-api, onos-core-net and onos-app-config. onos-api provides interface, onos-core-net provides implementation, and onos-app-config use some service references in the onos-api.
DynamicConfigManager.java(from bundle onos-app-config)
package org.onosproject.config.impl
@Component(immediate = true, service = DynamicConfigService.class)
public class DynamicConfigManager
extends AbstractListenerManager<DynamicConfigEvent, DynamicConfigListener>
implements DynamicConfigService {
@Activate
public void activate() {
log.info("DynamicConfigService eventDispatcher {}", eventDispatcher);
eventDispatcher.addSink(DynamicConfigEvent.class, listenerRegistry);
log.info("DynamicConfigService Started");
}
......
AbstractListenerManager.java(from bundle onos-api)
package org.onosproject.event;
public abstract class AbstractListenerManager<E extends Event, L extends EventListener<E>>
implements ListenerService<E, L> {
protected final ListenerRegistry<E, L> listenerRegistry = new ListenerRegistry<>();
@Reference(cardinality = ReferenceCardinality.MANDATORY)
protected EventDeliveryService eventDispatcher;
......
CoreEventDispatcher.java (from bundle onos-core-net)
package org.onosproject.event.impl
@Component(immediate = true, service = EventDeliveryService.class)
public class CoreEventDispatcher extends DefaultEventSinkRegistry
implements EventDeliveryService {
......
pom.xml (from bundle onos-app-config)
<dependency>
<groupId>org.onosproject</groupId>
<artifactId>onos-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.onosproject</groupId>
<artifactId>onos-core-net</artifactId>
<version>${project.version}</version>
</dependency>
when i started the project,the karaf log shows
877 2024-04-03T09:58:37,405 | INFO | features-3-thread-1 | CoreEventDispatcher | 22 8 - org.onosproject.onos-core-net - 3.0.0.SNAPSHOT | CoreEventDispatcher Started
......
1458 2024-04-03T09:58:54,568 | ERROR | SCR Component Actor | DynamicConfigManager | 20 8 - org.onosproject.onos-app-config - 3.0.0.SNAPSHOT | bundle org.onosproject.onos-app-config :3.0.0.SNAPSHOT (208)[org.onosproject.config.impl.DynamicConfigManager(133)] : The activate method has thrown an exception
1459 java.lang.NullPointerException: null
1460 at org.onosproject.config.impl.DynamicConfigManager.activate(DynamicConfigManager.java:61)
1461 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
1462 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
1463 at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI mpl.java:43)
1464 at java.lang.reflect.Method.invoke(Method.java:566)
1465 at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:244)
1466 at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41)
1467 at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:685)
1319 2024-04-03T09:58:51,901 | INFO | SCR Component Actor | NetworkConfigManager | 22 8 - org.onosproject.onos-core-net - 3.0.0.SNAPSHOT | NetworkConfigManager eventDispatcher:org .onosproject.event.impl.CoreEventDispatcher@230992e5
1320 2024-04-03T09:58:51,902 | INFO | SCR Component Actor | NetworkConfigManager | 22 8 - org.onosproject.onos-core-net - 3.0.0.SNAPSHOT | Started
(another bundle that use eventDispatcher)
I've tried use Import-Package or DynamicImport-Package, but it has nothing to do with the null pointer exception
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>4.1.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>
${project.groupId}.${project.artifactId}
</Bundle-SymbolicName>
<!--Import-Package>
org.onosproject.event,
org.onosproject.store,
org.onosproject.store.service,
org.onosproject.store.serializers,
org.slf4j,
org.onosproject.yang.model,
org.onosproject.config,
org.onlab.util,
</Import-Package-->
<DynamicImport-Package>
org.onosproject.event.*,
org.onosproject.store.*,
org.slf4j.*,
org.onosproject.yang.model.*,
org.onosproject.config.*,
org.onlab.util.*
</DynamicImport-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
here's the order bundle started
bundle205/bundle.info:mvn:org.onosproject/onos-api/3.0.0-SNAPSHOT
bundle208/bundle.info:mvn:org.onosproject/onos-app-config/3.0.0-SNAPSHOT
bundle228/bundle.info:mvn:org.onosproject/onos-core-net/3.0.0-SNAPSHOT
Upvotes: 0
Views: 42