public abstract class CollectiveImpl
extends java.lang.Object
implements net.e6tech.elements.common.resources.Startable, net.e6tech.elements.common.federation.Collective, net.e6tech.elements.common.federation.Registry
| Modifier and Type | Class and Description |
|---|---|
static class |
CollectiveImpl.Type |
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
apiAddress |
protected AuthObserver |
authObserver |
protected Beacon |
beacon |
protected int |
connectionTimeout |
protected int |
cycle |
protected java.lang.Long |
deadMemberRenewalInterval |
protected java.lang.String |
domainName |
protected long |
eventCacheExpire |
protected int |
eventCacheInitialCapacity |
protected long |
eventInterval |
protected int |
fanout |
protected java.lang.String |
hostAddress |
protected java.util.Map<java.lang.String,net.e6tech.elements.common.federation.Member> |
hostedMembers |
protected JaxRSLauncher |
launcher |
protected java.util.List<net.e6tech.elements.common.federation.MemberListener> |
listeners |
protected static net.e6tech.elements.common.logging.Logger |
logger |
protected net.e6tech.elements.common.resources.Provision |
provision |
protected int |
readTimeout |
protected java.lang.Long |
renewalInterval |
protected java.lang.Long |
renewalPadding |
protected long |
seedRefreshInterval |
protected java.lang.String[] |
seeds |
protected java.util.Map<java.lang.Class,Service> |
serviceMap |
protected java.util.List<Service> |
services |
protected long |
syncInterval |
| Constructor and Description |
|---|
CollectiveImpl() |
| Modifier and Type | Method and Description |
|---|---|
CollectiveImpl |
addHostedMember(net.e6tech.elements.common.federation.Member member) |
CollectiveImpl |
addHostedMember(java.lang.String memberId) |
CollectiveImpl |
addHostedMember(java.lang.String memberId,
java.lang.String name) |
void |
addListener(net.e6tech.elements.common.federation.MemberListener listener) |
void |
addService(Service service) |
<T> net.e6tech.elements.common.util.concurrent.Async<T> |
async(java.lang.String qualifier,
java.lang.Class<T> interfaceClass) |
<T> net.e6tech.elements.common.util.concurrent.Async<T> |
async(java.lang.String qualifier,
java.lang.Class<T> interfaceClass,
long timeout,
net.e6tech.elements.common.federation.Registry.Routing routing) |
protected void |
createLauncher() |
protected void |
createServices() |
java.util.Collection<net.e6tech.elements.common.federation.Frequency> |
frequencies() |
java.lang.String |
getApiAddress() |
AuthObserver |
getAuthObserver() |
net.e6tech.elements.common.subscribe.DefaultBroadcast |
getBroadcast() |
int |
getConnectionTimeout() |
int |
getCycle() |
java.lang.Long |
getDeadMemberRenewalInterval() |
java.lang.String |
getDomainName() |
long |
getEventCacheExpire() |
int |
getEventCacheInitialCapacity() |
long |
getEventInterval() |
java.util.concurrent.Executor |
getExecutor() |
int |
getFanout() |
java.lang.String |
getHostAddress() |
java.util.Map<java.lang.String,net.e6tech.elements.common.federation.Member> |
getHostedMembers() |
Host[] |
getHosts() |
java.util.List<net.e6tech.elements.common.federation.MemberListener> |
getListeners() |
net.e6tech.elements.common.resources.Provision |
getProvision() |
int |
getReadTimeout() |
java.lang.Long |
getRenewalInterval() |
java.lang.Long |
getRenewalPadding() |
long |
getSeedRefreshInterval() |
java.lang.String[] |
getSeeds() |
<T> T |
getServiceProvider(java.lang.Class<T> cls) |
SubZero |
getSubZero() |
long |
getSyncInterval() |
abstract CollectiveImpl.Type |
getType() |
java.util.Collection<net.e6tech.elements.common.federation.Member> |
members() |
void |
onAnnounced(Event event) |
abstract void |
onEvent(Event event) |
protected <T> void |
perInstanceService(java.lang.Class<T> cls) |
protected <T> void |
perInstanceService(T prototype) |
void |
publish(net.e6tech.elements.common.subscribe.Notice<?> notice) |
net.e6tech.elements.common.subscribe.Notice |
publishInternal(net.e6tech.elements.common.subscribe.Notice<?> notice) |
protected net.e6tech.elements.common.federation.Member |
refresh(net.e6tech.elements.common.federation.Member member) |
<T> java.util.List<java.lang.String> |
register(java.lang.String qualifier,
java.lang.Class<T> interfaceClass,
T implementation) |
<T> java.util.List<java.lang.String> |
register(java.lang.String qualifier,
java.lang.Class<T> interfaceClass,
T implementation,
java.lang.reflect.InvocationHandler invoker) |
void |
removeListener(net.e6tech.elements.common.federation.MemberListener listener) |
Service |
removeService(java.lang.Class cls) |
java.util.Collection |
routes(java.lang.String qualifier,
java.lang.Class interfaceClass) |
void |
setApiAddress(java.lang.String apiAddress) |
void |
setAuthObserver(AuthObserver authObserver) |
void |
setBroadcast(net.e6tech.elements.common.subscribe.DefaultBroadcast broadcast) |
void |
setConnectionTimeout(int connectionTimeout) |
void |
setCycle(int cycle) |
void |
setDeadMemberRenewalInterval(java.lang.Long deadMemberRenewalInterval) |
void |
setDomainName(java.lang.String domainName) |
void |
setEventCacheExpire(long eventCacheExpire) |
void |
setEventCacheInitialCapacity(int eventCacheInitialCapacity) |
void |
setEventInterval(long eventInterval) |
void |
setExecutor(java.util.concurrent.Executor executor) |
void |
setFanout(int fanout) |
void |
setHostAddress(java.lang.String address) |
void |
setHosts(Host[] hosts) |
void |
setListeners(java.util.List<net.e6tech.elements.common.federation.MemberListener> listeners) |
void |
setProvision(net.e6tech.elements.common.resources.Provision provision) |
void |
setReadTimeout(int readTimeout) |
void |
setRenewalInterval(java.lang.Long renewalInterval) |
void |
setRenewalPadding(java.lang.Long renewalPadding) |
void |
setSeedRefreshInterval(long seedRefreshInterval) |
void |
setSeeds(java.lang.String[] seeds) |
void |
setSubZero(SubZero subZero) |
void |
setSyncInterval(long syncInterval) |
protected void |
setupBeacon() |
protected void |
setupServices() |
protected <T> void |
sharedService(java.lang.Class<T> cls) |
void |
shutdown() |
void |
start() |
protected void |
startBeacon() |
protected void |
startServer() |
void |
subscribe(java.lang.String topic,
net.e6tech.elements.common.subscribe.Subscriber subscriber) |
void |
unsubscribe(java.lang.String topic,
net.e6tech.elements.common.subscribe.Subscriber subscriber) |
protected static net.e6tech.elements.common.logging.Logger logger
protected net.e6tech.elements.common.resources.Provision provision
protected java.lang.String domainName
protected java.lang.String hostAddress
protected java.lang.String apiAddress
protected java.lang.String[] seeds
protected java.util.Map<java.lang.String,net.e6tech.elements.common.federation.Member> hostedMembers
protected Beacon beacon
protected int fanout
protected int cycle
protected int eventCacheInitialCapacity
protected long eventCacheExpire
protected long seedRefreshInterval
protected long eventInterval
protected long syncInterval
protected java.lang.Long renewalInterval
protected java.lang.Long renewalPadding
protected java.lang.Long deadMemberRenewalInterval
protected int connectionTimeout
protected int readTimeout
protected JaxRSLauncher launcher
protected java.util.List<net.e6tech.elements.common.federation.MemberListener> listeners
protected AuthObserver authObserver
protected java.util.List<Service> services
protected java.util.Map<java.lang.Class,Service> serviceMap
public net.e6tech.elements.common.resources.Provision getProvision()
@Inject public void setProvision(net.e6tech.elements.common.resources.Provision provision)
public java.lang.String getDomainName()
getDomainName in interface net.e6tech.elements.common.federation.Collectivepublic void setDomainName(java.lang.String domainName)
public Host[] getHosts()
public void setHosts(Host[] hosts)
public java.util.Map<java.lang.String,net.e6tech.elements.common.federation.Member> getHostedMembers()
getHostedMembers in interface net.e6tech.elements.common.federation.Collectivepublic CollectiveImpl addHostedMember(java.lang.String memberId, java.lang.String name)
public CollectiveImpl addHostedMember(java.lang.String memberId)
public CollectiveImpl addHostedMember(net.e6tech.elements.common.federation.Member member)
public java.lang.String[] getSeeds()
public void setSeeds(java.lang.String[] seeds)
public java.lang.String getHostAddress()
getHostAddress in interface net.e6tech.elements.common.federation.Collectivepublic void setHostAddress(java.lang.String address)
public java.lang.String getApiAddress()
getApiAddress in interface net.e6tech.elements.common.federation.Collectivepublic void setApiAddress(java.lang.String apiAddress)
public int getFanout()
public void setFanout(int fanout)
public int getCycle()
public void setCycle(int cycle)
public int getEventCacheInitialCapacity()
public void setEventCacheInitialCapacity(int eventCacheInitialCapacity)
public long getEventCacheExpire()
public void setEventCacheExpire(long eventCacheExpire)
public long getSeedRefreshInterval()
public void setSeedRefreshInterval(long seedRefreshInterval)
public long getEventInterval()
public void setEventInterval(long eventInterval)
public long getSyncInterval()
public void setSyncInterval(long syncInterval)
public java.lang.Long getRenewalInterval()
public void setRenewalInterval(java.lang.Long renewalInterval)
public java.lang.Long getRenewalPadding()
public void setRenewalPadding(java.lang.Long renewalPadding)
public java.lang.Long getDeadMemberRenewalInterval()
public void setDeadMemberRenewalInterval(java.lang.Long deadMemberRenewalInterval)
public int getConnectionTimeout()
public void setConnectionTimeout(int connectionTimeout)
public int getReadTimeout()
public void setReadTimeout(int readTimeout)
public abstract CollectiveImpl.Type getType()
public java.util.Collection<net.e6tech.elements.common.federation.Member> members()
public java.util.Collection<net.e6tech.elements.common.federation.Frequency> frequencies()
frequencies in interface net.e6tech.elements.common.federation.Collectivepublic abstract void onEvent(@Nonnull
Event event)
public void onAnnounced(@Nonnull
Event event)
public java.util.List<net.e6tech.elements.common.federation.MemberListener> getListeners()
public void setListeners(java.util.List<net.e6tech.elements.common.federation.MemberListener> listeners)
public void addListener(net.e6tech.elements.common.federation.MemberListener listener)
addListener in interface net.e6tech.elements.common.federation.Collectivepublic void removeListener(net.e6tech.elements.common.federation.MemberListener listener)
removeListener in interface net.e6tech.elements.common.federation.Collectivepublic AuthObserver getAuthObserver()
@Inject(optional=true) public void setAuthObserver(AuthObserver authObserver)
public SubZero getSubZero()
public void setSubZero(SubZero subZero)
public java.util.concurrent.Executor getExecutor()
@Inject(optional=true) public void setExecutor(java.util.concurrent.Executor executor)
public net.e6tech.elements.common.subscribe.DefaultBroadcast getBroadcast()
public void setBroadcast(net.e6tech.elements.common.subscribe.DefaultBroadcast broadcast)
protected net.e6tech.elements.common.federation.Member refresh(net.e6tech.elements.common.federation.Member member)
public void start()
start in interface net.e6tech.elements.common.resources.Startableprotected void createLauncher()
public void addService(Service service)
public Service removeService(java.lang.Class cls)
public <T> T getServiceProvider(java.lang.Class<T> cls)
getServiceProvider in interface net.e6tech.elements.common.federation.Collectiveprotected void createServices()
protected void setupBeacon()
protected void setupServices()
protected <T> void sharedService(java.lang.Class<T> cls)
protected <T> void perInstanceService(java.lang.Class<T> cls)
protected <T> void perInstanceService(T prototype)
protected void startServer()
protected void startBeacon()
public void shutdown()
public void subscribe(java.lang.String topic,
net.e6tech.elements.common.subscribe.Subscriber subscriber)
subscribe in interface net.e6tech.elements.common.subscribe.Broadcastpublic void unsubscribe(java.lang.String topic,
net.e6tech.elements.common.subscribe.Subscriber subscriber)
unsubscribe in interface net.e6tech.elements.common.subscribe.Broadcastpublic void publish(net.e6tech.elements.common.subscribe.Notice<?> notice)
publish in interface net.e6tech.elements.common.subscribe.Broadcastpublic net.e6tech.elements.common.subscribe.Notice publishInternal(net.e6tech.elements.common.subscribe.Notice<?> notice)
public <T> java.util.List<java.lang.String> register(java.lang.String qualifier,
java.lang.Class<T> interfaceClass,
T implementation)
register in interface net.e6tech.elements.common.federation.Registrypublic <T> java.util.List<java.lang.String> register(java.lang.String qualifier,
java.lang.Class<T> interfaceClass,
T implementation,
java.lang.reflect.InvocationHandler invoker)
register in interface net.e6tech.elements.common.federation.Registrypublic java.util.Collection routes(java.lang.String qualifier,
java.lang.Class interfaceClass)
routes in interface net.e6tech.elements.common.federation.Registrypublic <T> net.e6tech.elements.common.util.concurrent.Async<T> async(java.lang.String qualifier,
java.lang.Class<T> interfaceClass)
async in interface net.e6tech.elements.common.federation.Registrypublic <T> net.e6tech.elements.common.util.concurrent.Async<T> async(java.lang.String qualifier,
java.lang.Class<T> interfaceClass,
long timeout,
net.e6tech.elements.common.federation.Registry.Routing routing)
async in interface net.e6tech.elements.common.federation.Registry