|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.remoting.support.RemoteExporter org.springframework.remoting.support.RemoteInvocationBasedExporter org.softamis.cluster4spring.rmi.AbstractRmiServiceExporter
public abstract class AbstractRmiServiceExporter
Abstract implementation of Service Exporter to export remote services via RMI
Field Summary | |
---|---|
static java.lang.String |
ATTRIBUTE_OWN_PROXY_SERVICE_NAME
|
protected boolean |
fAllowsAutoDiscovering
|
protected org.springframework.beans.factory.BeanFactory |
fBeanFactory
|
protected java.rmi.server.RMIClientSocketFactory |
fClientSocketFactory
|
protected java.rmi.Remote |
fExportedObject
|
protected java.lang.String[] |
fInterceptorNames
|
protected java.rmi.registry.Registry |
fRegistry
|
protected java.rmi.server.RMIClientSocketFactory |
fRegistryClientSocketFactory
|
protected java.lang.String |
fRegistryHost
|
protected int |
fRegistryPort
|
protected java.rmi.server.RMIServerSocketFactory |
fRegistryServerSocketFactory
|
protected org.aopalliance.intercept.MethodInterceptor |
fRemoteInvocationTraceInterceptor
|
protected java.rmi.server.RMIServerSocketFactory |
fServerSocketFactory
|
protected java.lang.String |
fServiceGroup
|
protected java.lang.String |
fServiceName
|
protected int |
fServicePort
|
Fields inherited from class org.springframework.remoting.support.RemoteExporter |
---|
logger |
Fields inherited from interface org.softamis.cluster4spring.AutoDiscoveredServiceExporter |
---|
DEFAULT_SERVICES_GROUP_PREFIX |
Constructor Summary | |
---|---|
AbstractRmiServiceExporter()
|
Method Summary | |
---|---|
void |
afterPropertiesSet()
|
protected org.aopalliance.intercept.MethodInterceptor |
createDefaultRemoteInvocationTraceInterceptor()
|
protected java.lang.String |
createServiceUrl(java.lang.String aServiceAddress,
int aServicePort)
|
void |
destroy()
Unbind the RMI service from the fRegistry on bean factory shutdown. |
protected void |
exportObject()
|
java.lang.String[] |
getInterceptorNames()
|
protected java.rmi.Remote |
getObjectToExport()
|
protected java.lang.Object |
getProxyForService()
Get a proxy for the given service object, implementing the specified service interface. |
java.rmi.registry.Registry |
getRegistry()
Returns RMI registry used for exporting remote objects |
protected java.rmi.registry.Registry |
getRegistry(int aRegistryPort)
Locate or create the RMI fRegistry for this exporter. |
protected java.rmi.registry.Registry |
getRegistry(int aRegistryPort,
java.rmi.server.RMIClientSocketFactory aClientSocketFactory,
java.rmi.server.RMIServerSocketFactory aServerSocketFactory)
Locate or create the RMI fRegistry for this exporter. |
protected java.rmi.registry.Registry |
getRegistry(java.lang.String aRegistryHost,
int aRegistryPort,
java.rmi.server.RMIClientSocketFactory aClientSocketFactory,
java.rmi.server.RMIServerSocketFactory aServerSocketFactory)
Locate or create the RMI fRegistry for this exporter. |
java.lang.String |
getRegistryHost()
Returns host where RMI Registry is located |
int |
getRegistryPort()
Returns port for RMI Registry |
java.lang.String |
getServiceGroup()
Services exporter by exporters may belong to serveral groups. |
java.lang.String |
getServiceName()
Returns name of the service |
int |
getServicePort()
|
boolean |
isAllowsAutoDiscovering()
Indicates whether particular exporter is available for publishing in auto-discoverable services. |
protected org.aopalliance.intercept.MethodInterceptor |
obtainRemoteInvocationTraceInterceptor()
|
protected void |
prepare()
|
protected void |
prepareRegistry()
|
void |
setAllowsAutoDiscovering(boolean aAllowsAutoDiscovering)
|
void |
setBeanFactory(org.springframework.beans.factory.BeanFactory aBeanFactory)
|
void |
setClientSocketFactory(java.rmi.server.RMIClientSocketFactory aClientSocketFactory)
Set a custom RMI client socket factory to use for exporting the service. |
void |
setInterceptorNames(java.lang.String[] aInterceptorNames)
|
void |
setRegistry(java.rmi.registry.Registry aRegistry)
Specify the RMI fRegistry to register the exported service with. |
void |
setRegistryClientSocketFactory(java.rmi.server.RMIClientSocketFactory aRegistryClientSocketFactory)
Set a custom RMI client socket factory to use for the RMI fRegistry. |
void |
setRegistryHost(java.lang.String aRegistryHost)
Set the port of the fRegistry for the exported RMI service, i.e. |
void |
setRegistryPort(int aRegistryPort)
Set the port of the fRegistry for the exported RMI service, i.e. |
void |
setRegistryServerSocketFactory(java.rmi.server.RMIServerSocketFactory aRegistryServerSocketFactory)
Set a custom RMI server socket factory to use for the RMI fRegistry. |
void |
setRemoteInvocationTraceInterceptor(org.aopalliance.intercept.MethodInterceptor aRemoteInvocationTraceInterceptor)
|
void |
setServerSocketFactory(java.rmi.server.RMIServerSocketFactory aServerSocketFactory)
Set a custom RMI server socket factory to use for exporting the service. |
void |
setServiceGroup(java.lang.String aServiceGroup)
|
void |
setServiceName(java.lang.String aServiceName)
Set the name of the exported RMI service, i.e. |
void |
setServicePort(int aServicePort)
Set the port that the exported RMI service will use. |
protected void |
testRegistry(java.rmi.registry.Registry aRegistry)
Test the given RMI fRegistry, calling some operation on it to check whether it is still active. |
protected void |
unexportObjectSilently(java.rmi.Remote aRemote)
Unexport the registered RMI object, logging any exception that arises. |
protected void |
unexportServiceObject(java.rmi.registry.Registry aRegistry,
java.lang.String aServiceName,
int aRegistryPort,
java.rmi.Remote aExportedObject)
|
Methods inherited from class org.springframework.remoting.support.RemoteInvocationBasedExporter |
---|
getRemoteInvocationExecutor, invoke, invokeAndCreateResult, setRemoteInvocationExecutor |
Methods inherited from class org.springframework.remoting.support.RemoteExporter |
---|
checkService, checkServiceInterface, getExporterName, getService, getServiceInterface, isRegisterTraceInterceptor, setBeanClassLoader, setRegisterTraceInterceptor, setService, setServiceInterface |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.softamis.cluster4spring.AutoDiscoveredServiceExporter |
---|
provideExportedServiceURLs |
Field Detail |
---|
protected java.lang.String fServiceName
protected java.rmi.server.RMIClientSocketFactory fClientSocketFactory
protected java.rmi.server.RMIServerSocketFactory fServerSocketFactory
protected boolean fAllowsAutoDiscovering
protected java.lang.String fServiceGroup
protected org.springframework.beans.factory.BeanFactory fBeanFactory
protected java.lang.String[] fInterceptorNames
protected java.rmi.server.RMIClientSocketFactory fRegistryClientSocketFactory
protected org.aopalliance.intercept.MethodInterceptor fRemoteInvocationTraceInterceptor
protected java.rmi.server.RMIServerSocketFactory fRegistryServerSocketFactory
protected int fServicePort
protected int fRegistryPort
protected java.rmi.registry.Registry fRegistry
protected java.lang.String fRegistryHost
protected java.rmi.Remote fExportedObject
public static final java.lang.String ATTRIBUTE_OWN_PROXY_SERVICE_NAME
Constructor Detail |
---|
public AbstractRmiServiceExporter()
Method Detail |
---|
public void setBeanFactory(org.springframework.beans.factory.BeanFactory aBeanFactory) throws org.springframework.beans.BeansException
setBeanFactory
in interface org.springframework.beans.factory.BeanFactoryAware
org.springframework.beans.BeansException
protected java.lang.Object getProxyForService()
Used to export a proxy that does not expose any internals but just a specific interface intended for remote access. Furthermore, a RemoteInvocationTraceInterceptor gets registered (by default).
getProxyForService
in class org.springframework.remoting.support.RemoteExporter
RemoteExporter.setServiceInterface(java.lang.Class)
,
RemoteExporter.setRegisterTraceInterceptor(boolean)
,
RemoteInvocationTraceInterceptor
protected org.aopalliance.intercept.MethodInterceptor obtainRemoteInvocationTraceInterceptor()
protected org.aopalliance.intercept.MethodInterceptor createDefaultRemoteInvocationTraceInterceptor()
protected void testRegistry(java.rmi.registry.Registry aRegistry) throws java.rmi.RemoteException
Default implementation calls Registry.list()
.
aRegistry
- the RMI fRegistry to test
java.rmi.RemoteException
- if thrown by fRegistry methodsRegistry.list()
protected void unexportServiceObject(java.rmi.registry.Registry aRegistry, java.lang.String aServiceName, int aRegistryPort, java.rmi.Remote aExportedObject)
protected void unexportObjectSilently(java.rmi.Remote aRemote)
aRemote
- remote object to unexportpublic void setAllowsAutoDiscovering(boolean aAllowsAutoDiscovering)
public java.lang.String getServiceGroup()
AutoDiscoveredServiceExporter
ServicePublishers
to select which
services should be published and also allows to precisly control discovered
services visibility on the client side.
getServiceGroup
in interface AutoDiscoveredServiceExporter
public void setServiceGroup(java.lang.String aServiceGroup)
public void setServiceName(java.lang.String aServiceName)
rmi://host:port/NAME
public java.lang.String getServiceName()
AutoDiscoveredServiceExporter
getServiceName
in interface AutoDiscoveredServiceExporter
public void setClientSocketFactory(java.rmi.server.RMIClientSocketFactory aClientSocketFactory)
If the given object also implements java.rmi.server.RMIServerSocketFactory
,
it will automatically be registered as server socket factory too.
setServerSocketFactory(java.rmi.server.RMIServerSocketFactory)
,
RMIClientSocketFactory
,
RMIServerSocketFactory
,
UnicastRemoteObject.exportObject(java.rmi.Remote,int,java.rmi.server.RMIClientSocketFactory,java.rmi.server.RMIServerSocketFactory)
public void setServerSocketFactory(java.rmi.server.RMIServerSocketFactory aServerSocketFactory)
Only needs to be specified when the client socket factory does not
implement java.rmi.server.RMIServerSocketFactory
already.
setClientSocketFactory(java.rmi.server.RMIClientSocketFactory)
,
RMIClientSocketFactory
,
RMIServerSocketFactory
,
UnicastRemoteObject.exportObject(java.rmi.Remote,int,java.rmi.server.RMIClientSocketFactory,java.rmi.server.RMIServerSocketFactory)
public java.lang.String[] getInterceptorNames()
public void setInterceptorNames(java.lang.String[] aInterceptorNames)
public void setRemoteInvocationTraceInterceptor(org.aopalliance.intercept.MethodInterceptor aRemoteInvocationTraceInterceptor)
public void setRegistryClientSocketFactory(java.rmi.server.RMIClientSocketFactory aRegistryClientSocketFactory)
If the given object also implements java.rmi.server.RMIServerSocketFactory
,
it will automatically be registered as server socket factory too.
setRegistryServerSocketFactory(java.rmi.server.RMIServerSocketFactory)
,
RMIClientSocketFactory
,
RMIServerSocketFactory
,
LocateRegistry.getRegistry(String,int,java.rmi.server.RMIClientSocketFactory)
public void setRegistryServerSocketFactory(java.rmi.server.RMIServerSocketFactory aRegistryServerSocketFactory)
Only needs to be specified when the client socket factory does not
implement java.rmi.server.RMIServerSocketFactory
already.
setRegistryClientSocketFactory(java.rmi.server.RMIClientSocketFactory)
,
RMIClientSocketFactory
,
RMIServerSocketFactory
,
LocateRegistry.createRegistry(int,java.rmi.server.RMIClientSocketFactory,java.rmi.server.RMIServerSocketFactory)
protected java.rmi.registry.Registry getRegistry(java.lang.String aRegistryHost, int aRegistryPort, java.rmi.server.RMIClientSocketFactory aClientSocketFactory, java.rmi.server.RMIServerSocketFactory aServerSocketFactory) throws java.rmi.RemoteException
aRegistryHost
- the fRegistry host to use (if this is specified,
no implicit creation of a RMI fRegistry will happen)aRegistryPort
- the fRegistry port to useaClientSocketFactory
- the RMI client socket factory for the fRegistry (if any)aServerSocketFactory
- the RMI server socket factory for the fRegistry (if any)
java.rmi.RemoteException
- if the fRegistry couldn't be located or createdprotected java.rmi.registry.Registry getRegistry(int aRegistryPort, java.rmi.server.RMIClientSocketFactory aClientSocketFactory, java.rmi.server.RMIServerSocketFactory aServerSocketFactory) throws java.rmi.RemoteException
aRegistryPort
- the fRegistry port to useaClientSocketFactory
- the RMI client socket factory for the fRegistry (if any)aServerSocketFactory
- the RMI server socket factory for the fRegistry (if any)
java.rmi.RemoteException
- if the fRegistry couldn't be located or createdprotected java.rmi.registry.Registry getRegistry(int aRegistryPort) throws java.rmi.RemoteException
aRegistryPort
- the fRegistry port to use
java.rmi.RemoteException
- if the fRegistry couldn't be located or createdpublic void afterPropertiesSet() throws java.rmi.RemoteException
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
java.rmi.RemoteException
protected void prepare() throws java.rmi.RemoteException
java.rmi.RemoteException
protected java.lang.String createServiceUrl(java.lang.String aServiceAddress, int aServicePort)
public int getServicePort()
public void setServicePort(int aServicePort)
Default is 0 (anonymous port).
public void setRegistryPort(int aRegistryPort)
rmi://host:PORT/name
Default is Registry.REGISTRY_PORT
(1099).
Registry.REGISTRY_PORT
public int getRegistryPort()
public boolean isAllowsAutoDiscovering()
AutoDiscoveredServiceExporter
ExporterAcceptor
,
however, this methods (if implementation of Exporter
is aware of
it) allows to disable automatic service publishing.
isAllowsAutoDiscovering
in interface AutoDiscoveredServiceExporter
true
if exporter could be published for auto-discoveringExporterAcceptor
protected void prepareRegistry() throws java.rmi.RemoteException
java.rmi.RemoteException
public void setRegistry(java.rmi.registry.Registry aRegistry)
Alternatively, you can specify all fRegistry properties locally. This exporter will then try to locate the specified fRegistry, automatically creating a new local one if appropriate.
Default is a local fRegistry at the default port (1099), created on the fly if necessary.
RmiRegistryFactoryBean
,
setRegistryHost(java.lang.String)
,
setRegistryPort(int)
,
setRegistryClientSocketFactory(java.rmi.server.RMIClientSocketFactory)
,
setRegistryServerSocketFactory(java.rmi.server.RMIServerSocketFactory)
public void setRegistryHost(java.lang.String aRegistryHost)
rmi://HOST:port/name
Default is localhost.
aRegistryHost
- public java.rmi.registry.Registry getRegistry()
public java.lang.String getRegistryHost()
public void destroy() throws java.rmi.RemoteException
destroy
in interface org.springframework.beans.factory.DisposableBean
java.rmi.RemoteException
protected void exportObject() throws java.rmi.RemoteException
java.rmi.RemoteException
protected java.rmi.Remote getObjectToExport()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |