Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.0-alpha-1
-
None
-
None
Description
I've defined an annotation module. I define a service and contribute it to the EagerLoad configuration point, but EagerLoad throws a ClassCastException. If I define the contribution in an XML file, it works. The relevant code is included below.
Module
======
package com.praxeon.search.service;
import java.util.Collections;
import java.util.List;
import org.apache.hivemind.annotations.AbstractAnnotatedModule;
import org.apache.hivemind.annotations.definition.Configuration ;
import org.apache.hivemind.annotations.definition.Contribution;
import org.apache.hivemind.annotations.definition.Module;
import org.apache.hivemind.annotations.definition.Service;
import com.praxeon.api.index.IndexHome ;
import com.praxeon.api.index.SegmentHostListener;
import com.praxeon.index.service.StatusQueueSegmentHostListener;
import com.praxeon.sysutils.config.XMLConfiguration;
@Module(id="praxeon.search.annot ")
public class SearchModule extends AbstractAnnotatedModule {
@Configuration(id="QueueName")
public String getQueueName()
@Service(id="StatusQueueSegmentHostListener")
public SegmentHostListener getStatusQueueSegmentHostListener()
@Contribution(configurationId="hivemind.EagerLoad")
public List eagerLoad()
}
Exception
=========
java.lang.ClassCastException: $SegmentHostListener_1161fffc175
at org.apache.hivemind.service.impl.EagerLoader.run(EagerLoader.java:37)
at org.apache.hivemind.impl.StartupImpl.run( StartupImpl.java :45)
at org.apache.hivemind.impl.RegistryInfrastructureImpl.startup(RegistryInfrastructureImpl.java:435)
at org.apache.hivemind.impl.RegistryBuilder.constructRegistry(RegistryBuilder.java:170)
at com.praxeon.config.HivemindConfiguration.load (HivemindConfiguration.java:145)
XML contribution that works
===========================
<contribution configuration-id="hivemind.EagerLoad">
<load service-id="praxeon.search.annot.StatusQueueSegmentHostListener"/>
</contribution>