From 521ed108313131401e787ea088252664b9d36665 Mon Sep 17 00:00:00 2001 From: Mahmoud Aghvami Date: Sun, 21 Jun 2020 13:45:49 +0430 Subject: [PATCH 1/3] Create vjdbc_1_6_5 --- vjdbc_1_6_5 | 1 + 1 file changed, 1 insertion(+) create mode 100644 vjdbc_1_6_5 diff --git a/vjdbc_1_6_5 b/vjdbc_1_6_5 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/vjdbc_1_6_5 @@ -0,0 +1 @@ + From 7334c8f54c588afe0389a109e8f009ee6040e9e4 Mon Sep 17 00:00:00 2001 From: Mahmoud Aghvami Date: Sun, 21 Jun 2020 13:46:06 +0430 Subject: [PATCH 2/3] Delete vjdbc_1_6_5 --- vjdbc_1_6_5 | 1 - 1 file changed, 1 deletion(-) delete mode 100644 vjdbc_1_6_5 diff --git a/vjdbc_1_6_5 b/vjdbc_1_6_5 deleted file mode 100644 index 8b13789..0000000 --- a/vjdbc_1_6_5 +++ /dev/null @@ -1 +0,0 @@ - From 349d397c0655028a28e72f09f729e89909be7cb6 Mon Sep 17 00:00:00 2001 From: mahmoud Date: Sun, 21 Jun 2020 13:53:03 +0430 Subject: [PATCH 3/3] added my github name --- mx4j-3.0.2/Apache-LICENSE.txt | 53 + mx4j-3.0.2/BUILD-HOWTO.txt | 122 + mx4j-3.0.2/Jetty-LICENSE.txt | 202 + mx4j-3.0.2/Jython-LICENSE.txt | 142 + mx4j-3.0.2/LICENSE.txt | 52 + mx4j-3.0.2/README.txt | 162 + mx4j-3.0.2/RELEASE-NOTES-3.0.2.txt | 133 + mx4j-3.0.2/docs/api/allclasses-frame.html | 750 ++ mx4j-3.0.2/docs/api/allclasses-noframe.html | 750 ++ mx4j-3.0.2/docs/api/constant-values.html | 736 ++ mx4j-3.0.2/docs/api/deprecated-list.html | 169 + mx4j-3.0.2/docs/api/help-doc.html | 193 + mx4j-3.0.2/docs/api/index-all.html | 7004 +++++++++++++++++ mx4j-3.0.2/docs/api/index.html | 26 + .../docs/api/mx4j/AbstractDynamicMBean.html | 860 ++ .../api/mx4j/ImplementationException.html | 258 + .../docs/api/mx4j/MBeanDescription.html | 395 + .../api/mx4j/MBeanDescriptionAdapter.html | 463 ++ mx4j-3.0.2/docs/api/mx4j/MX4JSystemKeys.html | 444 ++ .../mx4j/class-use/AbstractDynamicMBean.html | 136 + .../class-use/ImplementationException.html | 136 + .../api/mx4j/class-use/MBeanDescription.html | 418 + .../class-use/MBeanDescriptionAdapter.html | 389 + .../api/mx4j/class-use/MX4JSystemKeys.html | 136 + .../loading/ClassLoaderObjectInputStream.html | 360 + .../api/mx4j/loading/MLetParseException.html | 256 + .../docs/api/mx4j/loading/MLetParser.html | 551 ++ mx4j-3.0.2/docs/api/mx4j/loading/MLetTag.html | 467 ++ .../mx4j/loading/RepositoryClassLoader.html | 283 + .../ClassLoaderObjectInputStream.html | 136 + .../loading/class-use/MLetParseException.html | 172 + .../mx4j/loading/class-use/MLetParser.html | 136 + .../api/mx4j/loading/class-use/MLetTag.html | 136 + .../class-use/RepositoryClassLoader.html | 136 + .../docs/api/mx4j/loading/package-frame.html | 49 + .../api/mx4j/loading/package-summary.html | 175 + .../docs/api/mx4j/loading/package-tree.html | 159 + .../docs/api/mx4j/loading/package-use.html | 162 + .../docs/api/mx4j/log/CommonsLogger.html | 315 + mx4j-3.0.2/docs/api/mx4j/log/FileLogger.html | 295 + mx4j-3.0.2/docs/api/mx4j/log/Log.html | 342 + mx4j-3.0.2/docs/api/mx4j/log/Log4JLogger.html | 338 + mx4j-3.0.2/docs/api/mx4j/log/Logger.html | 725 ++ .../log/LoggerBroadcaster.LoggerNotifier.html | 288 + .../docs/api/mx4j/log/LoggerBroadcaster.html | 561 ++ .../api/mx4j/log/LoggerBroadcasterMBean.html | 329 + mx4j-3.0.2/docs/api/mx4j/log/MBeanLogger.html | 301 + .../api/mx4j/log/class-use/CommonsLogger.html | 136 + .../api/mx4j/log/class-use/FileLogger.html | 136 + .../docs/api/mx4j/log/class-use/Log.html | 136 + .../api/mx4j/log/class-use/Log4JLogger.html | 136 + .../docs/api/mx4j/log/class-use/Logger.html | 505 ++ .../LoggerBroadcaster.LoggerNotifier.html | 136 + .../mx4j/log/class-use/LoggerBroadcaster.html | 136 + .../log/class-use/LoggerBroadcasterMBean.html | 172 + .../api/mx4j/log/class-use/MBeanLogger.html | 136 + .../docs/api/mx4j/log/package-frame.html | 57 + .../docs/api/mx4j/log/package-summary.html | 191 + .../docs/api/mx4j/log/package-tree.html | 156 + mx4j-3.0.2/docs/api/mx4j/log/package-use.html | 320 + ...MX4JCounterMonitor.CounterMonitorInfo.html | 482 ++ .../api/mx4j/monitor/MX4JCounterMonitor.html | 752 ++ .../mx4j/monitor/MX4JCounterMonitorMBean.html | 507 ++ .../MX4JGaugeMonitor.GaugeMonitorInfo.html | 444 ++ .../api/mx4j/monitor/MX4JGaugeMonitor.html | 680 ++ .../mx4j/monitor/MX4JGaugeMonitorMBean.html | 459 ++ .../mx4j/monitor/MX4JMonitor.MonitorInfo.html | 317 + .../docs/api/mx4j/monitor/MX4JMonitor.html | 1057 +++ .../api/mx4j/monitor/MX4JMonitorMBean.html | 418 + .../mx4j/monitor/MX4JMonitorNotification.html | 378 + .../MX4JStringMonitor.StringMonitorInfo.html | 444 ++ .../api/mx4j/monitor/MX4JStringMonitor.html | 584 ++ .../mx4j/monitor/MX4JStringMonitorMBean.html | 391 + ...MX4JCounterMonitor.CounterMonitorInfo.html | 136 + .../monitor/class-use/MX4JCounterMonitor.html | 136 + .../class-use/MX4JCounterMonitorMBean.html | 172 + .../MX4JGaugeMonitor.GaugeMonitorInfo.html | 136 + .../monitor/class-use/MX4JGaugeMonitor.html | 136 + .../class-use/MX4JGaugeMonitorMBean.html | 172 + .../class-use/MX4JMonitor.MonitorInfo.html | 309 + .../mx4j/monitor/class-use/MX4JMonitor.html | 188 + .../monitor/class-use/MX4JMonitorMBean.html | 228 + .../class-use/MX4JMonitorNotification.html | 136 + .../MX4JStringMonitor.StringMonitorInfo.html | 136 + .../monitor/class-use/MX4JStringMonitor.html | 136 + .../class-use/MX4JStringMonitorMBean.html | 172 + .../docs/api/mx4j/monitor/package-frame.html | 57 + .../api/mx4j/monitor/package-summary.html | 190 + .../docs/api/mx4j/monitor/package-tree.html | 168 + .../docs/api/mx4j/monitor/package-use.html | 192 + mx4j-3.0.2/docs/api/mx4j/package-frame.html | 58 + mx4j-3.0.2/docs/api/mx4j/package-summary.html | 185 + mx4j-3.0.2/docs/api/mx4j/package-tree.html | 159 + mx4j-3.0.2/docs/api/mx4j/package-use.html | 312 + .../docs/api/mx4j/persist/FilePersister.html | 330 + .../docs/api/mx4j/persist/MBeanPersister.html | 309 + .../docs/api/mx4j/persist/Persister.html | 243 + .../docs/api/mx4j/persist/PersisterMBean.html | 260 + .../mx4j/persist/class-use/FilePersister.html | 136 + .../persist/class-use/MBeanPersister.html | 136 + .../api/mx4j/persist/class-use/Persister.html | 180 + .../persist/class-use/PersisterMBean.html | 188 + .../docs/api/mx4j/persist/package-frame.html | 47 + .../api/mx4j/persist/package-summary.html | 170 + .../docs/api/mx4j/persist/package-tree.html | 153 + .../docs/api/mx4j/persist/package-use.html | 168 + .../api/mx4j/remote/AbstractHeartBeat.html | 444 ++ ...stractRemoteNotificationClientHandler.html | 622 ++ .../docs/api/mx4j/remote/ClientProxy.html | 274 + .../remote/ConnectionNotificationEmitter.html | 326 + .../api/mx4j/remote/ConnectionResolver.html | 458 ++ ...efaultRemoteNotificationServerHandler.html | 495 ++ .../docs/api/mx4j/remote/HeartBeat.html | 301 + .../api/mx4j/remote/MX4JRemoteConstants.html | 568 ++ .../docs/api/mx4j/remote/MX4JRemoteUtils.html | 332 + .../api/mx4j/remote/NotificationTuple.html | 430 + .../docs/api/mx4j/remote/ProviderFactory.html | 297 + .../docs/api/mx4j/remote/ProviderHelper.html | 344 + .../RemoteNotificationClientHandler.html | 358 + .../RemoteNotificationServerHandler.html | 348 + .../remote/class-use/AbstractHeartBeat.html | 201 + ...stractRemoteNotificationClientHandler.html | 201 + .../mx4j/remote/class-use/ClientProxy.html | 182 + .../ConnectionNotificationEmitter.html | 322 + .../remote/class-use/ConnectionResolver.html | 231 + ...efaultRemoteNotificationServerHandler.html | 136 + .../api/mx4j/remote/class-use/HeartBeat.html | 318 + .../remote/class-use/MX4JRemoteConstants.html | 136 + .../remote/class-use/MX4JRemoteUtils.html | 136 + .../remote/class-use/NotificationTuple.html | 288 + .../remote/class-use/ProviderFactory.html | 136 + .../mx4j/remote/class-use/ProviderHelper.html | 238 + .../RemoteNotificationClientHandler.html | 289 + .../RemoteNotificationServerHandler.html | 200 + .../docs/api/mx4j/remote/package-frame.html | 67 + .../docs/api/mx4j/remote/package-summary.html | 211 + .../docs/api/mx4j/remote/package-tree.html | 159 + .../docs/api/mx4j/remote/package-use.html | 355 + .../remote/provider/iiop/ClientProvider.html | 267 + .../remote/provider/iiop/ServerProvider.html | 269 + .../iiop/class-use/ClientProvider.html | 136 + .../iiop/class-use/ServerProvider.html | 136 + .../remote/provider/iiop/package-frame.html | 34 + .../remote/provider/iiop/package-summary.html | 152 + .../remote/provider/iiop/package-tree.html | 147 + .../remote/provider/iiop/package-use.html | 136 + .../remote/provider/rmi/ClientProvider.html | 267 + .../remote/provider/rmi/ServerProvider.html | 269 + .../rmi/class-use/ClientProvider.html | 136 + .../rmi/class-use/ServerProvider.html | 136 + .../remote/provider/rmi/package-frame.html | 34 + .../remote/provider/rmi/package-summary.html | 152 + .../remote/provider/rmi/package-tree.html | 147 + .../mx4j/remote/provider/rmi/package-use.html | 136 + .../mx4j/remote/resolver/iiop/Resolver.html | 515 ++ .../resolver/iiop/class-use/Resolver.html | 136 + .../remote/resolver/iiop/package-frame.html | 32 + .../remote/resolver/iiop/package-summary.html | 148 + .../remote/resolver/iiop/package-tree.html | 151 + .../remote/resolver/iiop/package-use.html | 136 + .../mx4j/remote/resolver/rmi/Resolver.html | 617 ++ .../resolver/rmi/class-use/Resolver.html | 172 + .../remote/resolver/rmi/package-frame.html | 32 + .../remote/resolver/rmi/package-summary.html | 148 + .../remote/resolver/rmi/package-tree.html | 149 + .../mx4j/remote/resolver/rmi/package-use.html | 162 + .../remote/rmi/ClientExceptionCatcher.html | 262 + .../api/mx4j/remote/rmi/ClientInvoker.html | 1052 +++ .../mx4j/remote/rmi/ClientUnmarshaller.html | 270 + .../docs/api/mx4j/remote/rmi/Marshaller.html | 265 + .../mx4j/remote/rmi/RMIConnectionInvoker.html | 1134 +++ .../mx4j/remote/rmi/RMIConnectionProxy.html | 278 + .../rmi/RMIConnectionSubjectInvoker.html | 273 + .../api/mx4j/remote/rmi/RMIHeartBeat.html | 284 + .../RMIRemoteNotificationClientHandler.html | 294 + .../rmi/class-use/ClientExceptionCatcher.html | 136 + .../remote/rmi/class-use/ClientInvoker.html | 136 + .../rmi/class-use/ClientUnmarshaller.html | 136 + .../mx4j/remote/rmi/class-use/Marshaller.html | 136 + .../rmi/class-use/RMIConnectionInvoker.html | 136 + .../rmi/class-use/RMIConnectionProxy.html | 173 + .../RMIConnectionSubjectInvoker.html | 136 + .../remote/rmi/class-use/RMIHeartBeat.html | 136 + .../RMIRemoteNotificationClientHandler.html | 136 + .../api/mx4j/remote/rmi/package-frame.html | 48 + .../api/mx4j/remote/rmi/package-summary.html | 185 + .../api/mx4j/remote/rmi/package-tree.html | 159 + .../docs/api/mx4j/remote/rmi/package-use.html | 162 + .../api/mx4j/server/BCELMBeanInvoker.html | 383 + .../server/CachingReflectionMBeanInvoker.html | 395 + .../api/mx4j/server/ChainedMBeanServer.html | 1377 ++++ .../server/ChainedMBeanServerBuilder.html | 350 + .../server/DefaultClassLoaderRepository.html | 403 + .../api/mx4j/server/MBeanIntrospector.html | 302 + .../docs/api/mx4j/server/MBeanInvoker.html | 303 + .../mx4j/server/MBeanMetaData.Factory.html | 261 + .../docs/api/mx4j/server/MBeanMetaData.html | 574 ++ .../docs/api/mx4j/server/MBeanRepository.html | 352 + .../docs/api/mx4j/server/MX4JMBeanServer.html | 1342 ++++ .../mx4j/server/MX4JMBeanServerBuilder.html | 299 + .../mx4j/server/MX4JMBeanServerDelegate.html | 311 + .../ModifiableClassLoaderRepository.html | 309 + .../mx4j/server/ReflectionMBeanInvoker.html | 597 ++ .../server/class-use/BCELMBeanInvoker.html | 136 + .../CachingReflectionMBeanInvoker.html | 172 + .../server/class-use/ChainedMBeanServer.html | 136 + .../class-use/ChainedMBeanServerBuilder.html | 136 + .../DefaultClassLoaderRepository.html | 136 + .../server/class-use/MBeanIntrospector.html | 136 + .../mx4j/server/class-use/MBeanInvoker.html | 228 + .../class-use/MBeanMetaData.Factory.html | 136 + .../mx4j/server/class-use/MBeanMetaData.html | 966 +++ .../server/class-use/MBeanRepository.html | 136 + .../server/class-use/MX4JMBeanServer.html | 136 + .../class-use/MX4JMBeanServerBuilder.html | 136 + .../class-use/MX4JMBeanServerDelegate.html | 136 + .../ModifiableClassLoaderRepository.html | 172 + .../class-use/ReflectionMBeanInvoker.html | 180 + ...textClassLoaderMBeanServerInterceptor.html | 643 ++ .../DefaultMBeanServerInterceptor.html | 753 ++ .../DefaultMBeanServerInterceptorMBean.html | 267 + ...BeanServerInterceptorMBeanDescription.html | 306 + .../InvokerMBeanServerInterceptor.html | 669 ++ .../InvokerMBeanServerInterceptorMBean.html | 246 + ...BeanServerInterceptorMBeanDescription.html | 306 + .../interceptor/MBeanServerInterceptor.html | 664 ++ .../MBeanServerInterceptorConfigurator.html | 506 ++ ...eanServerInterceptorConfiguratorMBean.html | 336 + ...terceptorConfiguratorMBeanDescription.html | 461 ++ ...icationListenerMBeanServerInterceptor.html | 478 ++ .../SecurityMBeanServerInterceptor.html | 667 ++ .../SecurityMBeanServerInterceptorMBean.html | 246 + ...BeanServerInterceptorMBeanDescription.html | 306 + ...textClassLoaderMBeanServerInterceptor.html | 136 + .../DefaultMBeanServerInterceptor.html | 198 + .../DefaultMBeanServerInterceptorMBean.html | 206 + ...BeanServerInterceptorMBeanDescription.html | 136 + .../InvokerMBeanServerInterceptor.html | 136 + .../InvokerMBeanServerInterceptorMBean.html | 172 + ...BeanServerInterceptorMBeanDescription.html | 136 + .../class-use/MBeanServerInterceptor.html | 290 + .../MBeanServerInterceptorConfigurator.html | 136 + ...eanServerInterceptorConfiguratorMBean.html | 172 + ...terceptorConfiguratorMBeanDescription.html | 136 + ...icationListenerMBeanServerInterceptor.html | 136 + .../SecurityMBeanServerInterceptor.html | 136 + .../SecurityMBeanServerInterceptorMBean.html | 173 + ...BeanServerInterceptorMBeanDescription.html | 136 + .../server/interceptor/package-frame.html | 69 + .../server/interceptor/package-summary.html | 216 + .../mx4j/server/interceptor/package-tree.html | 159 + .../mx4j/server/interceptor/package-use.html | 192 + .../docs/api/mx4j/server/package-frame.html | 69 + .../docs/api/mx4j/server/package-summary.html | 215 + .../docs/api/mx4j/server/package-tree.html | 167 + .../docs/api/mx4j/server/package-use.html | 205 + mx4j-3.0.2/docs/api/mx4j/timer/TimeQueue.html | 393 + mx4j-3.0.2/docs/api/mx4j/timer/TimeTask.html | 471 ++ mx4j-3.0.2/docs/api/mx4j/timer/TimerTask.html | 534 ++ .../api/mx4j/timer/class-use/TimeQueue.html | 136 + .../api/mx4j/timer/class-use/TimeTask.html | 196 + .../api/mx4j/timer/class-use/TimerTask.html | 136 + .../docs/api/mx4j/timer/package-frame.html | 36 + .../docs/api/mx4j/timer/package-summary.html | 156 + .../docs/api/mx4j/timer/package-tree.html | 148 + .../docs/api/mx4j/timer/package-use.html | 162 + .../adaptor/AdaptorServerSocketFactory.html | 237 + .../PlainAdaptorServerSocketFactory.html | 277 + .../class-use/AdaptorServerSocketFactory.html | 254 + .../PlainAdaptorServerSocketFactory.html | 136 + .../adaptor/http/CommandProcessorUtil.html | 374 + .../http/ConstructorsCommandProcessor.html | 324 + .../http/CreateMBeanCommandProcessor.html | 303 + .../tools/adaptor/http/DefaultProcessor.html | 484 ++ .../http/DeleteMBeanCommandProcessor.html | 300 + .../adaptor/http/EmptyCommandProcessor.html | 302 + .../http/GetAttributeCommandProcessor.html | 301 + .../mx4j/tools/adaptor/http/HttpAdaptor.html | 1253 +++ .../tools/adaptor/http/HttpAdaptorMBean.html | 754 ++ .../http/HttpAdaptorMBeanDescription.html | 461 ++ .../adaptor/http/HttpCommandProcessor.html | 273 + .../http/HttpCommandProcessorAdaptor.html | 375 + .../tools/adaptor/http/HttpConstants.html | 541 ++ .../tools/adaptor/http/HttpException.html | 333 + .../tools/adaptor/http/HttpInputStream.html | 662 ++ .../tools/adaptor/http/HttpOutputStream.html | 476 ++ .../api/mx4j/tools/adaptor/http/HttpUtil.html | 338 + .../http/InvokeOperationCommandProcessor.html | 300 + .../adaptor/http/MBeanCommandProcessor.html | 323 + .../tools/adaptor/http/ProcessorMBean.html | 354 + .../http/ProcessorMBeanDescription.html | 309 + .../http/RelationCommandProcessor.html | 350 + .../http/ServerByDomainCommandProcessor.html | 301 + .../adaptor/http/ServerCommandProcessor.html | 301 + .../http/SetAttributeCommandProcessor.html | 301 + .../http/SetAttributesCommandProcessor.html | 303 + .../tools/adaptor/http/XSLTProcessor.html | 861 ++ .../adaptor/http/XSLTProcessorMBean.html | 556 ++ .../http/XSLTProcessorMBeanDescription.html | 389 + .../http/class-use/CommandProcessorUtil.html | 136 + .../ConstructorsCommandProcessor.html | 136 + .../CreateMBeanCommandProcessor.html | 136 + .../http/class-use/DefaultProcessor.html | 136 + .../DeleteMBeanCommandProcessor.html | 136 + .../http/class-use/EmptyCommandProcessor.html | 136 + .../GetAttributeCommandProcessor.html | 136 + .../adaptor/http/class-use/HttpAdaptor.html | 136 + .../http/class-use/HttpAdaptorMBean.html | 172 + .../HttpAdaptorMBeanDescription.html | 136 + .../http/class-use/HttpCommandProcessor.html | 318 + .../HttpCommandProcessorAdaptor.html | 268 + .../adaptor/http/class-use/HttpConstants.html | 136 + .../adaptor/http/class-use/HttpException.html | 244 + .../http/class-use/HttpInputStream.html | 431 + .../http/class-use/HttpOutputStream.html | 294 + .../adaptor/http/class-use/HttpUtil.html | 136 + .../InvokeOperationCommandProcessor.html | 136 + .../http/class-use/MBeanCommandProcessor.html | 136 + .../http/class-use/ProcessorMBean.html | 244 + .../class-use/ProcessorMBeanDescription.html | 172 + .../class-use/RelationCommandProcessor.html | 136 + .../ServerByDomainCommandProcessor.html | 136 + .../class-use/ServerCommandProcessor.html | 136 + .../SetAttributeCommandProcessor.html | 136 + .../SetAttributesCommandProcessor.html | 136 + .../adaptor/http/class-use/XSLTProcessor.html | 136 + .../http/class-use/XSLTProcessorMBean.html | 172 + .../XSLTProcessorMBeanDescription.html | 136 + .../tools/adaptor/http/package-frame.html | 106 + .../tools/adaptor/http/package-summary.html | 288 + .../mx4j/tools/adaptor/http/package-tree.html | 182 + .../mx4j/tools/adaptor/http/package-use.html | 210 + .../api/mx4j/tools/adaptor/package-frame.html | 43 + .../mx4j/tools/adaptor/package-summary.html | 162 + .../api/mx4j/tools/adaptor/package-tree.html | 151 + .../api/mx4j/tools/adaptor/package-use.html | 200 + .../ssl/SSLAdaptorServerSocketFactory.html | 578 ++ .../SSLAdaptorServerSocketFactoryMBean.html | 463 ++ ...orServerSocketFactoryMBeanDescription.html | 410 + .../SSLAdaptorServerSocketFactory.html | 136 + .../SSLAdaptorServerSocketFactoryMBean.html | 172 + ...orServerSocketFactoryMBeanDescription.html | 136 + .../mx4j/tools/adaptor/ssl/package-frame.html | 45 + .../tools/adaptor/ssl/package-summary.html | 166 + .../mx4j/tools/adaptor/ssl/package-tree.html | 156 + .../mx4j/tools/adaptor/ssl/package-use.html | 162 + .../config/ConfigurationBuilder.Node.html | 338 + .../ConfigurationBuilder.ObjectsHolder.html | 258 + .../tools/config/ConfigurationBuilder.html | 245 + .../tools/config/ConfigurationException.html | 371 + .../tools/config/ConfigurationLoader.html | 430 + .../config/ConfigurationLoaderMBean.html | 244 + ...aultConfigurationBuilder.AbstractNode.html | 408 + .../DefaultConfigurationBuilder.Arg.html | 331 + .../DefaultConfigurationBuilder.Call.html | 388 + ...ultConfigurationBuilder.Configuration.html | 386 + .../DefaultConfigurationBuilder.Create.html | 334 + .../DefaultConfigurationBuilder.New.html | 290 + .../DefaultConfigurationBuilder.Object.html | 309 + .../DefaultConfigurationBuilder.Register.html | 293 + .../DefaultConfigurationBuilder.Shutdown.html | 271 + .../DefaultConfigurationBuilder.Startup.html | 271 + ...efaultConfigurationBuilder.Unregister.html | 293 + .../config/DefaultConfigurationBuilder.html | 418 + .../class-use/ConfigurationBuilder.Node.html | 332 + .../ConfigurationBuilder.ObjectsHolder.html | 172 + .../class-use/ConfigurationBuilder.html | 193 + .../class-use/ConfigurationException.html | 324 + .../config/class-use/ConfigurationLoader.html | 136 + .../class-use/ConfigurationLoaderMBean.html | 172 + ...aultConfigurationBuilder.AbstractNode.html | 244 + .../DefaultConfigurationBuilder.Arg.html | 136 + .../DefaultConfigurationBuilder.Call.html | 136 + ...ultConfigurationBuilder.Configuration.html | 136 + .../DefaultConfigurationBuilder.Create.html | 136 + .../DefaultConfigurationBuilder.New.html | 136 + .../DefaultConfigurationBuilder.Object.html | 136 + .../DefaultConfigurationBuilder.Register.html | 136 + .../DefaultConfigurationBuilder.Shutdown.html | 136 + .../DefaultConfigurationBuilder.Startup.html | 136 + ...efaultConfigurationBuilder.Unregister.html | 136 + .../DefaultConfigurationBuilder.html | 136 + .../api/mx4j/tools/config/package-frame.html | 84 + .../mx4j/tools/config/package-summary.html | 236 + .../api/mx4j/tools/config/package-tree.html | 161 + .../api/mx4j/tools/config/package-use.html | 192 + .../mx4j/tools/i18n/I18NStandardMBean.html | 733 ++ .../i18n/class-use/I18NStandardMBean.html | 136 + .../api/mx4j/tools/i18n/package-frame.html | 32 + .../api/mx4j/tools/i18n/package-summary.html | 148 + .../api/mx4j/tools/i18n/package-tree.html | 148 + .../docs/api/mx4j/tools/i18n/package-use.html | 136 + .../api/mx4j/tools/jython/JythonRunner.html | 770 ++ .../mx4j/tools/jython/JythonRunnerMBean.html | 462 ++ .../jython/JythonRunnerMBeanDescription.html | 332 + .../tools/jython/class-use/JythonRunner.html | 136 + .../jython/class-use/JythonRunnerMBean.html | 172 + .../JythonRunnerMBeanDescription.html | 136 + .../api/mx4j/tools/jython/package-frame.html | 45 + .../mx4j/tools/jython/package-summary.html | 166 + .../api/mx4j/tools/jython/package-tree.html | 154 + .../api/mx4j/tools/jython/package-use.html | 162 + mx4j-3.0.2/docs/api/mx4j/tools/mail/SMTP.html | 1229 +++ .../docs/api/mx4j/tools/mail/SMTPMBean.html | 897 +++ .../api/mx4j/tools/mail/class-use/SMTP.html | 136 + .../mx4j/tools/mail/class-use/SMTPMBean.html | 172 + .../api/mx4j/tools/mail/package-frame.html | 43 + .../api/mx4j/tools/mail/package-summary.html | 162 + .../api/mx4j/tools/mail/package-tree.html | 151 + .../docs/api/mx4j/tools/mail/package-use.html | 162 + .../mx4j/tools/naming/CosNamingService.html | 388 + .../tools/naming/CosNamingServiceMBean.html | 313 + .../CosNamingServiceMBeanDescription.html | 414 + .../api/mx4j/tools/naming/NamingService.html | 455 ++ .../mx4j/tools/naming/NamingServiceMBean.html | 367 + .../naming/NamingServiceMBeanDescription.html | 414 + .../naming/class-use/CosNamingService.html | 136 + .../class-use/CosNamingServiceMBean.html | 172 + .../CosNamingServiceMBeanDescription.html | 136 + .../tools/naming/class-use/NamingService.html | 136 + .../naming/class-use/NamingServiceMBean.html | 172 + .../NamingServiceMBeanDescription.html | 136 + .../api/mx4j/tools/naming/package-frame.html | 51 + .../mx4j/tools/naming/package-summary.html | 178 + .../api/mx4j/tools/naming/package-tree.html | 155 + .../api/mx4j/tools/naming/package-use.html | 168 + .../mx4j/tools/remote/AbstractConnection.html | 307 + .../remote/AbstractConnectionManager.html | 595 ++ .../tools/remote/AbstractJMXConnector.html | 718 ++ .../remote/AbstractJMXConnectorServer.html | 593 ++ .../tools/remote/AbstractServerInvoker.html | 945 +++ .../api/mx4j/tools/remote/Connection.html | 254 + .../mx4j/tools/remote/ConnectionManager.html | 308 + .../api/mx4j/tools/remote/JMXConnection.html | 825 ++ .../tools/remote/JMXConnectionHandler.html | 998 +++ .../JMXConnectionMBeanServerConnection.html | 1012 +++ .../tools/remote/PasswordAuthenticator.html | 421 + .../api/mx4j/tools/remote/SubjectInvoker.html | 391 + .../remote/caucho/CauchoClientInvoker.html | 313 + .../mx4j/tools/remote/caucho/CauchoInput.html | 361 + .../tools/remote/caucho/CauchoOutput.html | 373 + .../tools/remote/caucho/CauchoService.html | 316 + .../tools/remote/caucho/CauchoServlet.html | 529 ++ .../caucho/burlap/BurlapClientInvoker.html | 304 + .../remote/caucho/burlap/BurlapServlet.html | 402 + .../caucho/burlap/SSLBurlapServlet.html | 302 + .../burlap/class-use/BurlapClientInvoker.html | 136 + .../burlap/class-use/BurlapServlet.html | 172 + .../burlap/class-use/SSLBurlapServlet.html | 136 + .../remote/caucho/burlap/package-frame.html | 36 + .../remote/caucho/burlap/package-summary.html | 156 + .../remote/caucho/burlap/package-tree.html | 160 + .../remote/caucho/burlap/package-use.html | 162 + .../caucho/class-use/CauchoClientInvoker.html | 201 + .../remote/caucho/class-use/CauchoInput.html | 289 + .../remote/caucho/class-use/CauchoOutput.html | 272 + .../caucho/class-use/CauchoService.html | 217 + .../caucho/class-use/CauchoServlet.html | 217 + .../caucho/hessian/HessianClientInvoker.html | 304 + .../remote/caucho/hessian/HessianServlet.html | 402 + .../caucho/hessian/SSLHessianServlet.html | 302 + .../class-use/HessianClientInvoker.html | 136 + .../hessian/class-use/HessianServlet.html | 172 + .../hessian/class-use/SSLHessianServlet.html | 136 + .../remote/caucho/hessian/package-frame.html | 36 + .../caucho/hessian/package-summary.html | 156 + .../remote/caucho/hessian/package-tree.html | 160 + .../remote/caucho/hessian/package-use.html | 162 + .../tools/remote/caucho/package-frame.html | 49 + .../tools/remote/caucho/package-summary.html | 174 + .../tools/remote/caucho/package-tree.html | 162 + .../mx4j/tools/remote/caucho/package-use.html | 254 + .../serialization/JMXSerializerFactory.html | 301 + .../class-use/JMXSerializerFactory.html | 136 + .../caucho/serialization/package-frame.html | 32 + .../caucho/serialization/package-summary.html | 148 + .../caucho/serialization/package-tree.html | 147 + .../caucho/serialization/package-use.html | 136 + .../remote/class-use/AbstractConnection.html | 202 + .../class-use/AbstractConnectionManager.html | 172 + .../class-use/AbstractJMXConnector.html | 230 + .../class-use/AbstractJMXConnectorServer.html | 279 + .../class-use/AbstractServerInvoker.html | 173 + .../tools/remote/class-use/Connection.html | 336 + .../remote/class-use/ConnectionManager.html | 259 + .../tools/remote/class-use/JMXConnection.html | 494 ++ .../class-use/JMXConnectionHandler.html | 172 + .../JMXConnectionMBeanServerConnection.html | 173 + .../class-use/PasswordAuthenticator.html | 136 + .../remote/class-use/SubjectInvoker.html | 172 + .../tools/remote/http/HTTPClientInvoker.html | 1104 +++ .../tools/remote/http/HTTPConnection.html | 340 + .../remote/http/HTTPConnectionHandler.html | 402 + .../HTTPConnectionMBeanServerConnection.html | 352 + .../remote/http/HTTPConnectionManager.html | 370 + .../mx4j/tools/remote/http/HTTPConnector.html | 471 ++ .../remote/http/HTTPConnectorServer.html | 437 + .../mx4j/tools/remote/http/HTTPHeartBeat.html | 284 + .../HTTPRemoteNotificationClientHandler.html | 288 + .../mx4j/tools/remote/http/HTTPResolver.html | 585 ++ .../tools/remote/http/HTTPServerInvoker.html | 422 + .../mx4j/tools/remote/http/HTTPService.html | 1270 +++ .../tools/remote/http/HTTPSubjectInvoker.html | 270 + .../mx4j/tools/remote/http/WebContainer.html | 307 + .../http/class-use/HTTPClientInvoker.html | 230 + .../remote/http/class-use/HTTPConnection.html | 455 ++ .../http/class-use/HTTPConnectionHandler.html | 136 + .../HTTPConnectionMBeanServerConnection.html | 136 + .../http/class-use/HTTPConnectionManager.html | 136 + .../remote/http/class-use/HTTPConnector.html | 172 + .../http/class-use/HTTPConnectorServer.html | 136 + .../remote/http/class-use/HTTPHeartBeat.html | 136 + .../HTTPRemoteNotificationClientHandler.html | 136 + .../remote/http/class-use/HTTPResolver.html | 172 + .../http/class-use/HTTPServerInvoker.html | 136 + .../remote/http/class-use/HTTPService.html | 211 + .../http/class-use/HTTPSubjectInvoker.html | 136 + .../remote/http/class-use/WebContainer.html | 203 + .../remote/http/jetty/JettyWebContainer.html | 434 + .../jetty/class-use/JettyWebContainer.html | 136 + .../remote/http/jetty/package-frame.html | 32 + .../remote/http/jetty/package-summary.html | 148 + .../tools/remote/http/jetty/package-tree.html | 146 + .../tools/remote/http/jetty/package-use.html | 136 + .../mx4j/tools/remote/http/package-frame.html | 67 + .../tools/remote/http/package-summary.html | 212 + .../mx4j/tools/remote/http/package-tree.html | 195 + .../mx4j/tools/remote/http/package-use.html | 318 + .../tools/remote/local/LocalConnection.html | 314 + .../tools/remote/local/LocalConnector.html | 382 + .../remote/local/LocalConnectorServer.html | 384 + .../local/class-use/LocalConnection.html | 136 + .../local/class-use/LocalConnector.html | 136 + .../local/class-use/LocalConnectorServer.html | 136 + .../tools/remote/local/package-frame.html | 45 + .../tools/remote/local/package-summary.html | 166 + .../mx4j/tools/remote/local/package-tree.html | 163 + .../mx4j/tools/remote/local/package-use.html | 136 + .../api/mx4j/tools/remote/package-frame.html | 63 + .../mx4j/tools/remote/package-summary.html | 210 + .../api/mx4j/tools/remote/package-tree.html | 166 + .../api/mx4j/tools/remote/package-use.html | 390 + .../provider/burlap/ClientProvider.html | 267 + .../provider/burlap/ServerProvider.html | 269 + .../burlap/class-use/ClientProvider.html | 136 + .../burlap/class-use/ServerProvider.html | 136 + .../remote/provider/burlap/package-frame.html | 34 + .../provider/burlap/package-summary.html | 152 + .../remote/provider/burlap/package-tree.html | 147 + .../remote/provider/burlap/package-use.html | 136 + .../provider/burlap/ssl/ClientProvider.html | 267 + .../provider/burlap/ssl/ServerProvider.html | 269 + .../burlap/ssl/class-use/ClientProvider.html | 136 + .../burlap/ssl/class-use/ServerProvider.html | 136 + .../provider/burlap/ssl/package-frame.html | 34 + .../provider/burlap/ssl/package-summary.html | 152 + .../provider/burlap/ssl/package-tree.html | 147 + .../provider/burlap/ssl/package-use.html | 136 + .../provider/hessian/ClientProvider.html | 267 + .../provider/hessian/ServerProvider.html | 269 + .../hessian/class-use/ClientProvider.html | 136 + .../hessian/class-use/ServerProvider.html | 136 + .../provider/hessian/package-frame.html | 34 + .../provider/hessian/package-summary.html | 152 + .../remote/provider/hessian/package-tree.html | 147 + .../remote/provider/hessian/package-use.html | 136 + .../provider/hessian/ssl/ClientProvider.html | 267 + .../provider/hessian/ssl/ServerProvider.html | 269 + .../hessian/ssl/class-use/ClientProvider.html | 136 + .../hessian/ssl/class-use/ServerProvider.html | 136 + .../provider/hessian/ssl/package-frame.html | 34 + .../provider/hessian/ssl/package-summary.html | 152 + .../provider/hessian/ssl/package-tree.html | 147 + .../provider/hessian/ssl/package-use.html | 136 + .../remote/provider/local/ClientProvider.html | 267 + .../remote/provider/local/ServerProvider.html | 269 + .../local/class-use/ClientProvider.html | 136 + .../local/class-use/ServerProvider.html | 136 + .../remote/provider/local/package-frame.html | 34 + .../provider/local/package-summary.html | 152 + .../remote/provider/local/package-tree.html | 147 + .../remote/provider/local/package-use.html | 136 + .../remote/provider/soap/ClientProvider.html | 271 + .../remote/provider/soap/ServerProvider.html | 273 + .../soap/class-use/ClientProvider.html | 136 + .../soap/class-use/ServerProvider.html | 136 + .../remote/provider/soap/package-frame.html | 34 + .../remote/provider/soap/package-summary.html | 152 + .../remote/provider/soap/package-tree.html | 147 + .../remote/provider/soap/package-use.html | 136 + .../provider/soap/ssl/ClientProvider.html | 267 + .../provider/soap/ssl/ServerProvider.html | 269 + .../soap/ssl/class-use/ClientProvider.html | 136 + .../soap/ssl/class-use/ServerProvider.html | 136 + .../provider/soap/ssl/package-frame.html | 34 + .../provider/soap/ssl/package-summary.html | 152 + .../provider/soap/ssl/package-tree.html | 147 + .../remote/provider/soap/ssl/package-use.html | 136 + .../tools/remote/proxy/RemoteMBeanProxy.html | 708 ++ .../proxy/RemoteMBeanProxyException.html | 316 + .../proxy/class-use/RemoteMBeanProxy.html | 136 + .../class-use/RemoteMBeanProxyException.html | 136 + .../tools/remote/proxy/package-frame.html | 43 + .../tools/remote/proxy/package-summary.html | 162 + .../mx4j/tools/remote/proxy/package-tree.html | 155 + .../mx4j/tools/remote/proxy/package-use.html | 136 + .../remote/resolver/burlap/Resolver.html | 339 + .../resolver/burlap/class-use/Resolver.html | 172 + .../remote/resolver/burlap/package-frame.html | 32 + .../resolver/burlap/package-summary.html | 148 + .../remote/resolver/burlap/package-tree.html | 151 + .../remote/resolver/burlap/package-use.html | 162 + .../remote/resolver/burlap/ssl/Resolver.html | 337 + .../burlap/ssl/class-use/Resolver.html | 136 + .../resolver/burlap/ssl/package-frame.html | 32 + .../resolver/burlap/ssl/package-summary.html | 148 + .../resolver/burlap/ssl/package-tree.html | 153 + .../resolver/burlap/ssl/package-use.html | 136 + .../remote/resolver/hessian/Resolver.html | 339 + .../resolver/hessian/class-use/Resolver.html | 172 + .../resolver/hessian/package-frame.html | 32 + .../resolver/hessian/package-summary.html | 148 + .../remote/resolver/hessian/package-tree.html | 151 + .../remote/resolver/hessian/package-use.html | 162 + .../remote/resolver/hessian/ssl/Resolver.html | 337 + .../hessian/ssl/class-use/Resolver.html | 136 + .../resolver/hessian/ssl/package-frame.html | 32 + .../resolver/hessian/ssl/package-summary.html | 148 + .../resolver/hessian/ssl/package-tree.html | 153 + .../resolver/hessian/ssl/package-use.html | 136 + .../tools/remote/resolver/local/Resolver.html | 452 ++ .../resolver/local/class-use/Resolver.html | 136 + .../remote/resolver/local/package-frame.html | 32 + .../resolver/local/package-summary.html | 148 + .../remote/resolver/local/package-tree.html | 149 + .../remote/resolver/local/package-use.html | 136 + .../tools/remote/resolver/soap/Resolver.html | 393 + .../resolver/soap/class-use/Resolver.html | 172 + .../remote/resolver/soap/package-frame.html | 32 + .../remote/resolver/soap/package-summary.html | 148 + .../remote/resolver/soap/package-tree.html | 151 + .../remote/resolver/soap/package-use.html | 162 + .../remote/resolver/soap/ssl/Resolver.html | 315 + .../resolver/soap/ssl/class-use/Resolver.html | 136 + .../resolver/soap/ssl/package-frame.html | 32 + .../resolver/soap/ssl/package-summary.html | 148 + .../resolver/soap/ssl/package-tree.html | 153 + .../remote/resolver/soap/ssl/package-use.html | 136 + .../remote/rmi/SSLRMIClientSocketFactory.html | 311 + .../remote/rmi/SSLRMIServerSocketFactory.html | 281 + .../class-use/SSLRMIClientSocketFactory.html | 136 + .../class-use/SSLRMIServerSocketFactory.html | 136 + .../mx4j/tools/remote/rmi/package-frame.html | 34 + .../tools/remote/rmi/package-summary.html | 152 + .../mx4j/tools/remote/rmi/package-tree.html | 147 + .../mx4j/tools/remote/rmi/package-use.html | 136 + .../soap/ConnectionIDRequestHandler.html | 293 + .../tools/remote/soap/SOAPClientInvoker.html | 1081 +++ .../mx4j/tools/remote/soap/SOAPConnector.html | 315 + .../mx4j/tools/remote/soap/SOAPService.html | 326 + .../tools/remote/soap/SSLSOAPService.html | 287 + .../remote/soap/axis/ser/AttributeDeser.html | 357 + .../soap/axis/ser/AttributeDeserFactory.html | 274 + .../soap/axis/ser/AttributeListDeser.html | 357 + .../axis/ser/AttributeListDeserFactory.html | 274 + .../soap/axis/ser/AttributeListSer.html | 321 + .../axis/ser/AttributeListSerFactory.html | 274 + .../remote/soap/axis/ser/AttributeSer.html | 321 + .../soap/axis/ser/AttributeSerFactory.html | 274 + .../soap/axis/ser/AxisDeserializer.html | 473 ++ .../remote/soap/axis/ser/AxisSerializer.html | 386 + .../axis/ser/MBeanAttributeInfoDeser.html | 357 + .../ser/MBeanAttributeInfoDeserFactory.html | 274 + .../soap/axis/ser/MBeanAttributeInfoSer.html | 321 + .../ser/MBeanAttributeInfoSerFactory.html | 274 + .../axis/ser/MBeanConstructorInfoDeser.html | 357 + .../ser/MBeanConstructorInfoDeserFactory.html | 274 + .../axis/ser/MBeanConstructorInfoSer.html | 321 + .../ser/MBeanConstructorInfoSerFactory.html | 274 + .../remote/soap/axis/ser/MBeanInfoDeser.html | 357 + .../soap/axis/ser/MBeanInfoDeserFactory.html | 274 + .../remote/soap/axis/ser/MBeanInfoSer.html | 321 + .../soap/axis/ser/MBeanInfoSerFactory.html | 274 + .../axis/ser/MBeanNotificationInfoDeser.html | 357 + .../MBeanNotificationInfoDeserFactory.html | 274 + .../axis/ser/MBeanNotificationInfoSer.html | 321 + .../ser/MBeanNotificationInfoSerFactory.html | 274 + .../axis/ser/MBeanOperationInfoDeser.html | 357 + .../ser/MBeanOperationInfoDeserFactory.html | 274 + .../soap/axis/ser/MBeanOperationInfoSer.html | 321 + .../ser/MBeanOperationInfoSerFactory.html | 274 + .../axis/ser/MBeanParameterInfoDeser.html | 357 + .../ser/MBeanParameterInfoDeserFactory.html | 274 + .../soap/axis/ser/MBeanParameterInfoSer.html | 321 + .../ser/MBeanParameterInfoSerFactory.html | 274 + .../ser/MBeanServerNotificationDeser.html | 367 + .../MBeanServerNotificationDeserFactory.html | 274 + .../MBeanServerNotificationFilterDeser.html | 357 + ...nServerNotificationFilterDeserFactory.html | 274 + .../ser/MBeanServerNotificationFilterSer.html | 330 + ...eanServerNotificationFilterSerFactory.html | 274 + .../axis/ser/MBeanServerNotificationSer.html | 330 + .../MBeanServerNotificationSerFactory.html | 274 + .../axis/ser/MonitorNotificationDeser.html | 367 + .../ser/MonitorNotificationDeserFactory.html | 274 + .../soap/axis/ser/MonitorNotificationSer.html | 330 + .../ser/MonitorNotificationSerFactory.html | 274 + .../soap/axis/ser/NotificationDeser.html | 474 ++ .../axis/ser/NotificationDeserFactory.html | 274 + .../ser/NotificationFilterSupportDeser.html | 357 + ...NotificationFilterSupportDeserFactory.html | 274 + .../ser/NotificationFilterSupportSer.html | 348 + .../NotificationFilterSupportSerFactory.html | 274 + .../axis/ser/NotificationResultDeser.html | 357 + .../ser/NotificationResultDeserFactory.html | 274 + .../soap/axis/ser/NotificationResultSer.html | 321 + .../ser/NotificationResultSerFactory.html | 274 + .../remote/soap/axis/ser/NotificationSer.html | 348 + .../soap/axis/ser/NotificationSerFactory.html | 274 + .../soap/axis/ser/ObjectInstanceDeser.html | 357 + .../axis/ser/ObjectInstanceDeserFactory.html | 274 + .../soap/axis/ser/ObjectInstanceSer.html | 321 + .../axis/ser/ObjectInstanceSerFactory.html | 274 + .../remote/soap/axis/ser/ObjectNameDeser.html | 357 + .../soap/axis/ser/ObjectNameDeserFactory.html | 274 + .../remote/soap/axis/ser/ObjectNameSer.html | 321 + .../soap/axis/ser/ObjectNameSerFactory.html | 274 + .../remote/soap/axis/ser/PrincipalDeser.html | 357 + .../soap/axis/ser/PrincipalDeserFactory.html | 274 + .../remote/soap/axis/ser/PrincipalSer.html | 321 + .../soap/axis/ser/PrincipalSerFactory.html | 274 + .../axis/ser/RelationTypeSupportDeser.html | 357 + .../ser/RelationTypeSupportDeserFactory.html | 274 + .../soap/axis/ser/RelationTypeSupportSer.html | 321 + .../ser/RelationTypeSupportSerFactory.html | 274 + .../tools/remote/soap/axis/ser/RoleDeser.html | 360 + .../soap/axis/ser/RoleDeserFactory.html | 274 + .../remote/soap/axis/ser/RoleInfoDeser.html | 357 + .../soap/axis/ser/RoleInfoDeserFactory.html | 274 + .../remote/soap/axis/ser/RoleInfoSer.html | 321 + .../soap/axis/ser/RoleInfoSerFactory.html | 274 + .../remote/soap/axis/ser/RoleListDeser.html | 357 + .../soap/axis/ser/RoleListDeserFactory.html | 274 + .../remote/soap/axis/ser/RoleListSer.html | 321 + .../soap/axis/ser/RoleListSerFactory.html | 274 + .../remote/soap/axis/ser/RoleResultDeser.html | 357 + .../soap/axis/ser/RoleResultDeserFactory.html | 274 + .../remote/soap/axis/ser/RoleResultSer.html | 363 + .../soap/axis/ser/RoleResultSerFactory.html | 274 + .../tools/remote/soap/axis/ser/RoleSer.html | 366 + .../remote/soap/axis/ser/RoleSerFactory.html | 274 + .../soap/axis/ser/RoleUnresolvedDeser.html | 358 + .../axis/ser/RoleUnresolvedDeserFactory.html | 274 + .../axis/ser/RoleUnresolvedListDeser.html | 357 + .../ser/RoleUnresolvedListDeserFactory.html | 274 + .../soap/axis/ser/RoleUnresolvedListSer.html | 321 + .../ser/RoleUnresolvedListSerFactory.html | 274 + .../soap/axis/ser/RoleUnresolvedSer.html | 334 + .../axis/ser/RoleUnresolvedSerFactory.html | 274 + .../tools/remote/soap/axis/ser/SetDeser.html | 357 + .../remote/soap/axis/ser/SetDeserFactory.html | 274 + .../tools/remote/soap/axis/ser/SetSer.html | 321 + .../remote/soap/axis/ser/SetSerFactory.html | 274 + .../remote/soap/axis/ser/SubjectDeser.html | 357 + .../soap/axis/ser/SubjectDeserFactory.html | 274 + .../remote/soap/axis/ser/SubjectSer.html | 321 + .../soap/axis/ser/SubjectSerFactory.html | 274 + .../axis/ser/TargetedNotificationDeser.html | 357 + .../ser/TargetedNotificationDeserFactory.html | 274 + .../axis/ser/TargetedNotificationSer.html | 321 + .../ser/TargetedNotificationSerFactory.html | 274 + .../soap/axis/ser/TimerNotificationDeser.html | 367 + .../ser/TimerNotificationDeserFactory.html | 274 + .../soap/axis/ser/TimerNotificationSer.html | 330 + .../axis/ser/TimerNotificationSerFactory.html | 274 + .../axis/ser/class-use/AttributeDeser.html | 136 + .../ser/class-use/AttributeDeserFactory.html | 136 + .../ser/class-use/AttributeListDeser.html | 136 + .../class-use/AttributeListDeserFactory.html | 136 + .../axis/ser/class-use/AttributeListSer.html | 136 + .../class-use/AttributeListSerFactory.html | 136 + .../soap/axis/ser/class-use/AttributeSer.html | 136 + .../ser/class-use/AttributeSerFactory.html | 136 + .../axis/ser/class-use/AxisDeserializer.html | 388 + .../axis/ser/class-use/AxisSerializer.html | 388 + .../class-use/MBeanAttributeInfoDeser.html | 136 + .../MBeanAttributeInfoDeserFactory.html | 136 + .../ser/class-use/MBeanAttributeInfoSer.html | 136 + .../MBeanAttributeInfoSerFactory.html | 136 + .../class-use/MBeanConstructorInfoDeser.html | 136 + .../MBeanConstructorInfoDeserFactory.html | 136 + .../class-use/MBeanConstructorInfoSer.html | 136 + .../MBeanConstructorInfoSerFactory.html | 136 + .../axis/ser/class-use/MBeanInfoDeser.html | 136 + .../ser/class-use/MBeanInfoDeserFactory.html | 136 + .../soap/axis/ser/class-use/MBeanInfoSer.html | 136 + .../ser/class-use/MBeanInfoSerFactory.html | 136 + .../class-use/MBeanNotificationInfoDeser.html | 136 + .../MBeanNotificationInfoDeserFactory.html | 136 + .../class-use/MBeanNotificationInfoSer.html | 136 + .../MBeanNotificationInfoSerFactory.html | 136 + .../class-use/MBeanOperationInfoDeser.html | 136 + .../MBeanOperationInfoDeserFactory.html | 136 + .../ser/class-use/MBeanOperationInfoSer.html | 136 + .../MBeanOperationInfoSerFactory.html | 136 + .../class-use/MBeanParameterInfoDeser.html | 136 + .../MBeanParameterInfoDeserFactory.html | 136 + .../ser/class-use/MBeanParameterInfoSer.html | 136 + .../MBeanParameterInfoSerFactory.html | 136 + .../MBeanServerNotificationDeser.html | 136 + .../MBeanServerNotificationDeserFactory.html | 136 + .../MBeanServerNotificationFilterDeser.html | 136 + ...nServerNotificationFilterDeserFactory.html | 136 + .../MBeanServerNotificationFilterSer.html | 136 + ...eanServerNotificationFilterSerFactory.html | 136 + .../class-use/MBeanServerNotificationSer.html | 136 + .../MBeanServerNotificationSerFactory.html | 136 + .../class-use/MonitorNotificationDeser.html | 136 + .../MonitorNotificationDeserFactory.html | 136 + .../ser/class-use/MonitorNotificationSer.html | 136 + .../MonitorNotificationSerFactory.html | 136 + .../axis/ser/class-use/NotificationDeser.html | 188 + .../class-use/NotificationDeserFactory.html | 136 + .../NotificationFilterSupportDeser.html | 136 + ...NotificationFilterSupportDeserFactory.html | 136 + .../NotificationFilterSupportSer.html | 172 + .../NotificationFilterSupportSerFactory.html | 136 + .../class-use/NotificationResultDeser.html | 136 + .../NotificationResultDeserFactory.html | 136 + .../ser/class-use/NotificationResultSer.html | 136 + .../NotificationResultSerFactory.html | 136 + .../axis/ser/class-use/NotificationSer.html | 188 + .../ser/class-use/NotificationSerFactory.html | 136 + .../ser/class-use/ObjectInstanceDeser.html | 136 + .../class-use/ObjectInstanceDeserFactory.html | 136 + .../axis/ser/class-use/ObjectInstanceSer.html | 136 + .../class-use/ObjectInstanceSerFactory.html | 136 + .../axis/ser/class-use/ObjectNameDeser.html | 136 + .../ser/class-use/ObjectNameDeserFactory.html | 136 + .../axis/ser/class-use/ObjectNameSer.html | 136 + .../ser/class-use/ObjectNameSerFactory.html | 136 + .../axis/ser/class-use/PrincipalDeser.html | 136 + .../ser/class-use/PrincipalDeserFactory.html | 136 + .../soap/axis/ser/class-use/PrincipalSer.html | 136 + .../ser/class-use/PrincipalSerFactory.html | 136 + .../class-use/RelationTypeSupportDeser.html | 136 + .../RelationTypeSupportDeserFactory.html | 136 + .../ser/class-use/RelationTypeSupportSer.html | 136 + .../RelationTypeSupportSerFactory.html | 136 + .../soap/axis/ser/class-use/RoleDeser.html | 172 + .../axis/ser/class-use/RoleDeserFactory.html | 136 + .../axis/ser/class-use/RoleInfoDeser.html | 136 + .../ser/class-use/RoleInfoDeserFactory.html | 136 + .../soap/axis/ser/class-use/RoleInfoSer.html | 136 + .../ser/class-use/RoleInfoSerFactory.html | 136 + .../axis/ser/class-use/RoleListDeser.html | 136 + .../ser/class-use/RoleListDeserFactory.html | 136 + .../soap/axis/ser/class-use/RoleListSer.html | 136 + .../ser/class-use/RoleListSerFactory.html | 136 + .../axis/ser/class-use/RoleResultDeser.html | 136 + .../ser/class-use/RoleResultDeserFactory.html | 136 + .../axis/ser/class-use/RoleResultSer.html | 136 + .../ser/class-use/RoleResultSerFactory.html | 136 + .../soap/axis/ser/class-use/RoleSer.html | 172 + .../axis/ser/class-use/RoleSerFactory.html | 136 + .../ser/class-use/RoleUnresolvedDeser.html | 136 + .../class-use/RoleUnresolvedDeserFactory.html | 136 + .../class-use/RoleUnresolvedListDeser.html | 136 + .../RoleUnresolvedListDeserFactory.html | 136 + .../ser/class-use/RoleUnresolvedListSer.html | 136 + .../RoleUnresolvedListSerFactory.html | 136 + .../axis/ser/class-use/RoleUnresolvedSer.html | 136 + .../class-use/RoleUnresolvedSerFactory.html | 136 + .../soap/axis/ser/class-use/SetDeser.html | 136 + .../axis/ser/class-use/SetDeserFactory.html | 136 + .../soap/axis/ser/class-use/SetSer.html | 136 + .../axis/ser/class-use/SetSerFactory.html | 136 + .../soap/axis/ser/class-use/SubjectDeser.html | 136 + .../ser/class-use/SubjectDeserFactory.html | 136 + .../soap/axis/ser/class-use/SubjectSer.html | 136 + .../axis/ser/class-use/SubjectSerFactory.html | 136 + .../class-use/TargetedNotificationDeser.html | 136 + .../TargetedNotificationDeserFactory.html | 136 + .../class-use/TargetedNotificationSer.html | 136 + .../TargetedNotificationSerFactory.html | 136 + .../ser/class-use/TimerNotificationDeser.html | 136 + .../TimerNotificationDeserFactory.html | 136 + .../ser/class-use/TimerNotificationSer.html | 136 + .../TimerNotificationSerFactory.html | 136 + .../remote/soap/axis/ser/package-frame.html | 258 + .../remote/soap/axis/ser/package-summary.html | 600 ++ .../remote/soap/axis/ser/package-tree.html | 176 + .../remote/soap/axis/ser/package-use.html | 198 + .../class-use/ConnectionIDRequestHandler.html | 136 + .../soap/class-use/SOAPClientInvoker.html | 136 + .../remote/soap/class-use/SOAPConnector.html | 136 + .../remote/soap/class-use/SOAPService.html | 173 + .../remote/soap/class-use/SSLSOAPService.html | 136 + .../mx4j/tools/remote/soap/package-frame.html | 40 + .../tools/remote/soap/package-summary.html | 167 + .../mx4j/tools/remote/soap/package-tree.html | 159 + .../mx4j/tools/remote/soap/package-use.html | 163 + .../stats/AbstractStatisticsRecorder.html | 891 +++ .../stats/NotificationStatisticsRecorder.html | 420 + .../stats/ObserverStatisticsRecorder.html | 526 ++ .../ObserverStatisticsRecorderMBean.html | 315 + ...verStatisticsRecorderMBeanDescription.html | 293 + .../docs/api/mx4j/tools/stats/PointTime.html | 338 + .../tools/stats/StatisticsRecorderMBean.html | 422 + .../StatisticsRecorderMBeanDescription.html | 309 + .../tools/stats/TimedStatisticsRecorder.html | 508 ++ .../stats/TimedStatisticsRecorderMBean.html | 273 + ...medStatisticsRecorderMBeanDescription.html | 291 + .../tools/stats/ValueStatisticsRecorder.html | 386 + .../stats/ValueStatisticsRecorderMBean.html | 264 + ...lueStatisticsRecorderMBeanDescription.html | 290 + .../class-use/AbstractStatisticsRecorder.html | 199 + .../NotificationStatisticsRecorder.html | 136 + .../class-use/ObserverStatisticsRecorder.html | 182 + .../ObserverStatisticsRecorderMBean.html | 206 + ...verStatisticsRecorderMBeanDescription.html | 172 + .../mx4j/tools/stats/class-use/PointTime.html | 136 + .../class-use/StatisticsRecorderMBean.html | 239 + .../StatisticsRecorderMBeanDescription.html | 188 + .../class-use/TimedStatisticsRecorder.html | 136 + .../TimedStatisticsRecorderMBean.html | 173 + ...medStatisticsRecorderMBeanDescription.html | 136 + .../class-use/ValueStatisticsRecorder.html | 136 + .../ValueStatisticsRecorderMBean.html | 173 + ...lueStatisticsRecorderMBeanDescription.html | 136 + .../api/mx4j/tools/stats/package-frame.html | 67 + .../api/mx4j/tools/stats/package-summary.html | 213 + .../api/mx4j/tools/stats/package-tree.html | 171 + .../api/mx4j/tools/stats/package-use.html | 204 + .../docs/api/mx4j/util/Base64Codec.html | 273 + .../docs/api/mx4j/util/MethodTernaryTree.html | 319 + mx4j-3.0.2/docs/api/mx4j/util/Utils.html | 461 ++ .../api/mx4j/util/class-use/Base64Codec.html | 136 + .../util/class-use/MethodTernaryTree.html | 136 + .../docs/api/mx4j/util/class-use/Utils.html | 136 + .../docs/api/mx4j/util/package-frame.html | 36 + .../docs/api/mx4j/util/package-summary.html | 157 + .../docs/api/mx4j/util/package-tree.html | 145 + .../docs/api/mx4j/util/package-use.html | 136 + mx4j-3.0.2/docs/api/overview-frame.html | 140 + mx4j-3.0.2/docs/api/overview-summary.html | 340 + mx4j-3.0.2/docs/api/overview-tree.html | 421 + mx4j-3.0.2/docs/api/package-list | 50 + mx4j-3.0.2/docs/api/packages.html | 37 + mx4j-3.0.2/docs/api/resources/inherit.gif | Bin 0 -> 57 bytes mx4j-3.0.2/docs/api/serialized-form.html | 2793 +++++++ mx4j-3.0.2/docs/api/stylesheet.css | 29 + mx4j-3.0.2/docs/ch01.html | 61 + mx4j-3.0.2/docs/ch01s06.html | 63 + mx4j-3.0.2/docs/ch02.html | 98 + mx4j-3.0.2/docs/ch02s04.html | 34 + mx4j-3.0.2/docs/ch02s07.html | 255 + mx4j-3.0.2/docs/ch02s13.html | 192 + mx4j-3.0.2/docs/ch03.html | 49 + mx4j-3.0.2/docs/ch03s04.html | 280 + mx4j-3.0.2/docs/ch03s10.html | 291 + mx4j-3.0.2/docs/ch03s13.html | 79 + mx4j-3.0.2/docs/ch03s15.html | 171 + mx4j-3.0.2/docs/ch03s20.html | 151 + mx4j-3.0.2/docs/ch03s23.html | 130 + mx4j-3.0.2/docs/ch03s27.html | 125 + mx4j-3.0.2/docs/ch03s30.html | 83 + mx4j-3.0.2/docs/ch04.html | 117 + mx4j-3.0.2/docs/ch04s03.html | 206 + mx4j-3.0.2/docs/ch05.html | 413 + mx4j-3.0.2/docs/ch05s10.html | 146 + mx4j-3.0.2/docs/ch06.html | 224 + mx4j-3.0.2/docs/ch06s03.html | 229 + mx4j-3.0.2/docs/ch06s05.html | 142 + mx4j-3.0.2/docs/ch06s10.html | 64 + mx4j-3.0.2/docs/ch06s14.html | 74 + mx4j-3.0.2/docs/ch07.html | 92 + mx4j-3.0.2/docs/ch07s07.html | 201 + mx4j-3.0.2/docs/ch07s15.html | 147 + mx4j-3.0.2/docs/ch08.html | 26 + mx4j-3.0.2/docs/ch09.html | 229 + mx4j-3.0.2/docs/images/logo.gif | Bin 0 -> 2135 bytes mx4j-3.0.2/docs/index.html | 23 + mx4j-3.0.2/docs/styles.css | 118 + mx4j-3.0.2/examples/jndi.properties | 8 + mx4j-3.0.2/examples/key.store | Bin 0 -> 1307 bytes .../mbeans/dynamic/DynamicMBeanExample.java | 71 + .../mbeans/dynamic/DynamicService.java | 143 + .../mbeans/helloworld/HelloWorld.java | 66 + .../mbeans/helloworld/HelloWorldExample.java | 53 + .../mbeans/helloworld/HelloWorldMBean.java | 23 + .../mx4j/examples/mbeans/iiop/Hello.java | 23 + .../mx4j/examples/mbeans/iiop/HelloImpl.java | 69 + .../examples/mbeans/iiop/HelloImplMBean.java | 41 + .../mx4j/examples/mbeans/iiop/IIOPClient.java | 27 + .../mx4j/examples/mbeans/iiop/IIOPServer.java | 39 + .../mbeans/legacy/DynamicLegacyService.java | 200 + .../examples/mbeans/legacy/LegacyExample.java | 62 + .../examples/mbeans/legacy/LegacyService.java | 117 + .../mx4j/examples/mbeans/rmi/Client.java | 25 + .../examples/mbeans/rmi/MyRemoteService.java | 24 + .../mbeans/rmi/MyRemoteServiceObject.java | 67 + .../rmi/MyRemoteServiceObjectMBean.java | 27 + .../mx4j/examples/mbeans/rmi/Server.java | 40 + .../examples/remote/interception/Client.java | 46 + .../examples/remote/interception/Server.java | 98 + .../SubjectTrackingMBeanServer.java | 310 + .../examples/remote/notification/Client.java | 65 + .../examples/remote/notification/Server.java | 59 + .../mx4j/examples/remote/rmi/iiop/Client.java | 62 + .../mx4j/examples/remote/rmi/iiop/Server.java | 57 + .../mx4j/examples/remote/rmi/ssl/Client.java | 69 + .../mx4j/examples/remote/rmi/ssl/Server.java | 110 + .../mx4j/examples/remote/security/Client.java | 83 + .../mx4j/examples/remote/security/Server.java | 94 + .../examples/remote/security/server.policy | 63 + .../mx4j/examples/remote/simple/Client.java | 67 + .../mx4j/examples/remote/simple/Server.java | 48 + .../mx4j/examples/services/loading/Main.java | 155 + .../examples/services/loading/mbeans.mlet | 9 + .../relation/RelationServiceExample.java | 340 + .../services/relation/SimpleBooks.java | 38 + .../services/relation/SimpleOwner.java | 38 + .../relation/SimplePersonalLibrary.java | 49 + .../tools/adaptor/http/HttpAdaptor.java | 334 + .../adaptor/http/RelationServiceAdaptor.java | 324 + .../tools/adaptor/http/SSLHttpAdaptor.java | 197 + .../http/SimpleRelationTestSupport.java | 31 + .../tools/adaptor/http/SimpleStandard.java | 38 + .../tools/config/ConfigurationShutdown.java | 30 + .../tools/config/ConfigurationStartup.java | 76 + .../mx4j/examples/tools/config/config.xml | 18 + .../examples/tools/jython/ScriptExample.java | 57 + .../mx4j/examples/tools/mail/MailExample.java | 104 + .../examples/tools/persister/MBeanOne.java | 46 + .../examples/tools/persister/MBeanTwo.java | 61 + .../tools/persister/PersisterTest.java | 111 + .../examples/tools/remote/hessian/Client.java | 83 + .../examples/tools/remote/hessian/Server.java | 61 + .../tools/remote/hessian/ssl/Client.java | 87 + .../tools/remote/hessian/ssl/Server.java | 71 + .../examples/tools/remote/soap/Client.java | 90 + .../examples/tools/remote/soap/Server.java | 70 + .../examples/tools/xdoclet/MyService.java | 111 + mx4j-3.0.2/examples/trust.store | Bin 0 -> 900 bytes mx4j-3.0.2/lib/mx4j-examples.jar | Bin 0 -> 103976 bytes mx4j-3.0.2/lib/mx4j-impl.jar | Bin 0 -> 147294 bytes mx4j-3.0.2/lib/mx4j-jmx.jar | Bin 0 -> 262554 bytes mx4j-3.0.2/lib/mx4j-remote.jar | Bin 0 -> 172221 bytes mx4j-3.0.2/lib/mx4j-rimpl.jar | Bin 0 -> 100280 bytes mx4j-3.0.2/lib/mx4j-rjmx.jar | Bin 0 -> 72322 bytes mx4j-3.0.2/lib/mx4j-soap.war | Bin 0 -> 2258058 bytes mx4j-3.0.2/lib/mx4j-tools.jar | Bin 0 -> 497173 bytes mx4j-3.0.2/lib/mx4j.jar | Bin 0 -> 409467 bytes vjdbc_1_6_5/build.xml | 170 + vjdbc_1_6_5/changelog.txt | 230 + vjdbc_1_6_5/conf/ear/application.xml | 8 + vjdbc_1_6_5/conf/ejb/MANIFEST.MF | 1 + vjdbc_1_6_5/conf/ejb/ejb-jar.xml | 40 + vjdbc_1_6_5/conf/ejb/ibm-ejb-jar-bnd.xmi | 16 + vjdbc_1_6_5/conf/ejb/ibm-ejb-jar-ext.xmi | 10 + vjdbc_1_6_5/conf/ejb/jboss.xml | 13 + vjdbc_1_6_5/conf/log4j.properties | 9 + vjdbc_1_6_5/conf/servlet/applet.html | 15 + vjdbc_1_6_5/conf/servlet/index.html | 10 + vjdbc_1_6_5/conf/servlet/web.xml | 34 + vjdbc_1_6_5/deploy/readme.txt | 1 + vjdbc_1_6_5/docs/changelog.txt | 230 + vjdbc_1_6_5/docs/documentation/applet.htm | 129 + vjdbc_1_6_5/docs/documentation/contact.htm | 23 + vjdbc_1_6_5/docs/documentation/downloads.htm | 13 + vjdbc_1_6_5/docs/documentation/faq.htm | 13 + vjdbc_1_6_5/docs/documentation/overview.htm | 39 + .../docs/documentation/performance.htm | 157 + vjdbc_1_6_5/docs/documentation/quickstart.htm | 68 + vjdbc_1_6_5/docs/documentation/reference.css | 330 + vjdbc_1_6_5/docs/documentation/reference.htm | 1131 +++ vjdbc_1_6_5/docs/google_ads.htm | 22 + vjdbc_1_6_5/docs/img/email.gif | Bin 0 -> 1301 bytes vjdbc_1_6_5/docs/img/performance.gif | Bin 0 -> 20152 bytes vjdbc_1_6_5/docs/img/scenario1.gif | Bin 0 -> 9590 bytes vjdbc_1_6_5/docs/img/simplicit.png | Bin 0 -> 2522 bytes vjdbc_1_6_5/docs/img/simplicit_green.gif | Bin 0 -> 3940 bytes vjdbc_1_6_5/docs/img/tomcat1.gif | Bin 0 -> 140151 bytes vjdbc_1_6_5/docs/img/vjdbc.gif | Bin 0 -> 3139 bytes vjdbc_1_6_5/docs/img/vjdbc_icon.gif | Bin 0 -> 959 bytes vjdbc_1_6_5/docs/img/vjdbc_icon.ico | Bin 0 -> 14366 bytes vjdbc_1_6_5/docs/index.html | 27 + vjdbc_1_6_5/docs/leftmenu.htm | 24 + vjdbc_1_6_5/docs/mainfooter.htm | 31 + vjdbc_1_6_5/docs/mainheader.htm | 24 + vjdbc_1_6_5/docs/news.htm | 21 + .../de/simplicit/vjdbc/test/QuizApplet.java | 342 + vjdbc_1_6_5/docs/vjdbc.css | 59 + vjdbc_1_6_5/lgpl.txt | 504 ++ vjdbc_1_6_5/lib/commons-beanutils-core.jar | Bin 0 -> 168760 bytes vjdbc_1_6_5/lib/commons-codec-1.3.jar | Bin 0 -> 46725 bytes vjdbc_1_6_5/lib/commons-collections-3.2.jar | Bin 0 -> 571259 bytes vjdbc_1_6_5/lib/commons-dbcp-1.2.1.jar | Bin 0 -> 107631 bytes vjdbc_1_6_5/lib/commons-digester-1.7.jar | Bin 0 -> 139966 bytes vjdbc_1_6_5/lib/commons-httpclient-3.0.1.jar | Bin 0 -> 279781 bytes vjdbc_1_6_5/lib/commons-logging-1.1.jar | Bin 0 -> 52915 bytes vjdbc_1_6_5/lib/commons-pool-1.3.jar | Bin 0 -> 62103 bytes vjdbc_1_6_5/lib/j2ee_api.jar | Bin 0 -> 39275 bytes vjdbc_1_6_5/lib/jakarta-oro-2.0.8.jar | Bin 0 -> 65261 bytes vjdbc_1_6_5/lib/junit.jar | Bin 0 -> 121070 bytes vjdbc_1_6_5/lib/servlet-api.jar | Bin 0 -> 97703 bytes vjdbc_1_6_5/lib/vjdbc.jar | Bin 0 -> 184488 bytes vjdbc_1_6_5/lib/vjdbc_server.jar | Bin 0 -> 77576 bytes vjdbc_1_6_5/readme.txt | 48 + .../de/simplicit/vjdbc/VJdbcException.java | 17 + .../de/simplicit/vjdbc/VJdbcProperties.java | 22 + .../src/de/simplicit/vjdbc/VirtualBase.java | 31 + .../vjdbc/VirtualCallableStatement.java | 605 ++ .../de/simplicit/vjdbc/VirtualConnection.java | 284 + .../vjdbc/VirtualDatabaseMetaData.java | 876 +++ .../src/de/simplicit/vjdbc/VirtualDriver.java | 236 + .../vjdbc/VirtualPreparedStatement.java | 280 + .../de/simplicit/vjdbc/VirtualSavepoint.java | 27 + .../de/simplicit/vjdbc/VirtualStatement.java | 271 + .../vjdbc/cache/SimpleStatementParser.java | 104 + .../de/simplicit/vjdbc/cache/TableCache.java | 264 + .../CallableStatementGetArrayCommand.java | 59 + .../CallableStatementGetBlobCommand.java | 58 + .../CallableStatementGetClobCommand.java | 58 + .../CallableStatementGetObjectCommand.java | 94 + .../CallableStatementGetRefCommand.java | 59 + ...allableStatementSetAsciiStreamCommand.java | 68 + ...llableStatementSetBinaryStreamCommand.java | 68 + ...bleStatementSetCharacterStreamCommand.java | 68 + .../CallableStatementSetObjectCommand.java | 105 + .../vjdbc/command/CallingContextFactory.java | 15 + .../de/simplicit/vjdbc/command/Command.java | 16 + .../simplicit/vjdbc/command/CommandPool.java | 19 + .../simplicit/vjdbc/command/CommandSink.java | 23 + .../vjdbc/command/CommandSinkListener.java | 14 + .../command/ConnectionCommitCommand.java | 34 + .../vjdbc/command/ConnectionContext.java | 26 + .../command/ConnectionPrepareCallCommand.java | 75 + .../ConnectionPrepareStatementCommand.java | 75 + ...ectionPrepareStatementExtendedCommand.java | 71 + .../ConnectionReleaseSavepointCommand.java | 43 + ...onnectionRollbackWithSavepointCommand.java | 43 + .../vjdbc/command/DecoratedCommandSink.java | 201 + .../vjdbc/command/DestroyCommand.java | 75 + .../vjdbc/command/JdbcInterfaceType.java | 30 + .../vjdbc/command/NextRowPacketCommand.java | 35 + .../command/NullCallingContextFactory.java | 16 + .../command/NullCommandSinkListener.java | 13 + .../command/ParameterTypeCombinations.java | 111 + .../simplicit/vjdbc/command/PingCommand.java | 39 + .../PreparedStatementExecuteBatchCommand.java | 67 + .../PreparedStatementExecuteCommand.java | 48 + .../PreparedStatementQueryCommand.java | 65 + .../PreparedStatementUpdateCommand.java | 48 + .../vjdbc/command/ReflectiveCommand.java | 164 + .../command/ResultSetGetMetaDataCommand.java | 34 + .../command/ResultSetProducerCommand.java | 9 + .../StandardCallingContextFactory.java | 17 + .../vjdbc/command/StatementCancelCommand.java | 33 + .../command/StatementExecuteBatchCommand.java | 50 + .../command/StatementExecuteCommand.java | 40 + .../StatementExecuteExtendedCommand.java | 70 + .../StatementGetGeneratedKeysCommand.java | 37 + .../command/StatementGetResultSetCommand.java | 32 + .../vjdbc/command/StatementQueryCommand.java | 48 + .../vjdbc/command/StatementUpdateCommand.java | 40 + .../StatementUpdateExtendedCommand.java | 70 + .../simplicit/vjdbc/ejb/EjbCommandSink.java | 19 + .../vjdbc/ejb/EjbCommandSinkHome.java | 13 + .../vjdbc/ejb/EjbCommandSinkProxy.java | 42 + .../vjdbc/parameters/ArrayParameter.java | 47 + .../vjdbc/parameters/BigDecimalParameter.java | 45 + .../vjdbc/parameters/BlobParameter.java | 43 + .../vjdbc/parameters/BooleanParameter.java | 44 + .../vjdbc/parameters/ByteArrayParameter.java | 44 + .../vjdbc/parameters/ByteParameter.java | 44 + .../vjdbc/parameters/ByteStreamParameter.java | 92 + .../vjdbc/parameters/CharStreamParameter.java | 48 + .../vjdbc/parameters/ClobParameter.java | 47 + .../vjdbc/parameters/DateParameter.java | 54 + .../vjdbc/parameters/DoubleParameter.java | 44 + .../vjdbc/parameters/FloatParameter.java | 44 + .../vjdbc/parameters/IntegerParameter.java | 44 + .../vjdbc/parameters/LongParameter.java | 44 + .../vjdbc/parameters/NullParameter.java | 48 + .../vjdbc/parameters/ObjectParameter.java | 60 + .../PreparedStatementParameter.java | 16 + .../vjdbc/parameters/RefParameter.java | 43 + .../vjdbc/parameters/ShortParameter.java | 44 + .../vjdbc/parameters/StringParameter.java | 44 + .../vjdbc/parameters/TimeParameter.java | 54 + .../vjdbc/parameters/TimestampParameter.java | 54 + .../vjdbc/parameters/URLParameter.java | 45 + .../simplicit/vjdbc/rmi/CommandSinkRmi.java | 20 + .../vjdbc/rmi/CommandSinkRmiProxy.java | 52 + .../vjdbc/rmi/ConnectionBrokerRmi.java | 12 + .../vjdbc/rmi/KeepAliveTimerTask.java | 50 + .../vjdbc/rmi/SecureSocketFactory.java | 29 + .../simplicit/vjdbc/serial/ArrayAccess.java | 9 + .../vjdbc/serial/ArrayAccessors.java | 119 + .../vjdbc/serial/CallingContext.java | 40 + .../vjdbc/serial/FlattenedColumnValues.java | 129 + .../de/simplicit/vjdbc/serial/RowPacket.java | 304 + .../simplicit/vjdbc/serial/SerialArray.java | 90 + .../de/simplicit/vjdbc/serial/SerialBlob.java | 79 + .../de/simplicit/vjdbc/serial/SerialClob.java | 91 + .../vjdbc/serial/SerialJavaObject.java | 31 + .../de/simplicit/vjdbc/serial/SerialRef.java | 35 + .../vjdbc/serial/SerialResultSetMetaData.java | 366 + .../simplicit/vjdbc/serial/SerialStruct.java | 50 + .../vjdbc/serial/SerializableTransport.java | 95 + .../vjdbc/serial/StreamSerializer.java | 64 + .../vjdbc/serial/StreamingResultSet.java | 1475 ++++ .../src/de/simplicit/vjdbc/serial/UIDEx.java | 84 + .../src/de/simplicit/vjdbc/serial/Zipper.java | 67 + .../vjdbc/server/DataSourceProvider.java | 21 + .../simplicit/vjdbc/server/LoginHandler.java | 11 + .../server/command/CommandProcessor.java | 247 + .../vjdbc/server/command/ConnectionEntry.java | 328 + .../server/command/JdbcObjectHolder.java | 25 + .../vjdbc/server/command/ResultSetHolder.java | 134 + .../server/command/ReturnedObjectGuard.java | 36 + .../server/concurrent/BoundedChannel.java | 33 + .../vjdbc/server/concurrent/Channel.java | 304 + .../vjdbc/server/concurrent/Executor.java | 66 + .../vjdbc/server/concurrent/LinkedNode.java | 25 + .../server/concurrent/PooledExecutor.java | 903 +++ .../vjdbc/server/concurrent/Puttable.java | 64 + .../server/concurrent/SynchronousChannel.java | 375 + .../vjdbc/server/concurrent/Takable.java | 63 + .../server/concurrent/ThreadFactory.java | 31 + .../server/concurrent/ThreadFactoryUser.java | 58 + .../server/config/ConfigurationException.java | 17 + .../server/config/ConfigurationUtil.java | 38 + .../config/ConnectionConfiguration.java | 485 ++ .../config/ConnectionPoolConfiguration.java | 80 + .../DigesterConnectionConfiguration.java | 19 + .../config/DigesterOcctConfiguration.java | 15 + .../config/DigesterRmiConfiguration.java | 11 + .../config/LoggingGenericObjectPool.java | 37 + .../config/NamedQueryConfiguration.java | 47 + .../server/config/OcctConfiguration.java | 58 + .../config/QueryFilterConfiguration.java | 94 + .../vjdbc/server/config/RmiConfiguration.java | 115 + .../server/config/VJdbcConfiguration.java | 266 + .../vjdbc/server/ejb/EjbCommandSinkBean.java | 79 + .../vjdbc/server/rmi/CommandSinkRmiImpl.java | 39 + .../server/rmi/ConnectionBrokerRmiImpl.java | 28 + .../vjdbc/server/rmi/ConnectionServer.java | 102 + .../server/servlet/ServletCommandSink.java | 186 + .../AbstractServletCommandSinkClient.java | 35 + .../servlet/RelaxedHostnameVerifier.java | 14 + .../vjdbc/servlet/RequestEnhancer.java | 25 + .../vjdbc/servlet/RequestEnhancerFactory.java | 18 + .../vjdbc/servlet/RequestModifier.java | 19 + .../vjdbc/servlet/RequestModifierJdk.java | 34 + .../servlet/ServletCommandSinkIdentifier.java | 17 + .../ServletCommandSinkJdkHttpClient.java | 124 + .../servlet/jakarta/ConnectRequestEntity.java | 54 + .../servlet/jakarta/ProcessRequestEntity.java | 45 + .../RequestModifierJakartaHttpClient.java | 35 + .../ServletCommandSinkJakartaHttpClient.java | 150 + .../simplicit/vjdbc/test/junit/VJdbcTest.java | 298 + .../vjdbc/test/junit/db2/Db2AddressTest.java | 47 + .../vjdbc/test/junit/general/AddressTest.java | 378 + .../junit/general/CustomRmiSocketFactory.java | 43 + .../test/junit/general/CustomSocket.java | 23 + .../test/junit/hsqldb/HSqlDataSource.java | 43 + .../junit/hsqldb/HSqlDataSourceProvider.java | 16 + .../hsqldb/HSqlDbAddressTestDataSource.java | 47 + .../HSqlDbAddressTestDriverManager.java | 47 + .../hsqldb/HSqlDbConnectionPoolTest.java | 56 + .../test/junit/http/CheckPropertyFilter.java | 43 + .../test/junit/http/TestRequestEnhancer.java | 14 + .../http/TestRequestEnhancerFactory.java | 10 + .../junit/jdbcodbc/JdbcOdbcAddressTest.java | 47 + .../test/junit/mysql/MySqlDbAddressTest.java | 47 + .../vjdbc/test/junit/oracle/BlobClobTest.java | 96 + .../test/junit/oracle/NestedTableTest.java | 60 + .../vjdbc/test/junit/oracle/ObjectTest.java | 107 + .../vjdbc/test/junit/oracle/Oracle9iTest.java | 77 + .../test/junit/oracle/OracleAddressTest.java | 55 + .../de/simplicit/vjdbc/util/ClientInfo.java | 49 + .../simplicit/vjdbc/util/JavaVersionInfo.java | 12 + .../vjdbc/util/SQLExceptionHelper.java | 64 + .../de/simplicit/vjdbc/util/StreamCloser.java | 47 + vjdbc_1_6_5/test/readme.txt | 1 + vjdbc_1_6_5/vjdbc.dtd | 46 + 1289 files changed, 274841 insertions(+) create mode 100644 mx4j-3.0.2/Apache-LICENSE.txt create mode 100644 mx4j-3.0.2/BUILD-HOWTO.txt create mode 100644 mx4j-3.0.2/Jetty-LICENSE.txt create mode 100644 mx4j-3.0.2/Jython-LICENSE.txt create mode 100644 mx4j-3.0.2/LICENSE.txt create mode 100644 mx4j-3.0.2/README.txt create mode 100644 mx4j-3.0.2/RELEASE-NOTES-3.0.2.txt create mode 100644 mx4j-3.0.2/docs/api/allclasses-frame.html create mode 100644 mx4j-3.0.2/docs/api/allclasses-noframe.html create mode 100644 mx4j-3.0.2/docs/api/constant-values.html create mode 100644 mx4j-3.0.2/docs/api/deprecated-list.html create mode 100644 mx4j-3.0.2/docs/api/help-doc.html create mode 100644 mx4j-3.0.2/docs/api/index-all.html create mode 100644 mx4j-3.0.2/docs/api/index.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/AbstractDynamicMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/ImplementationException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/MBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/MBeanDescriptionAdapter.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/MX4JSystemKeys.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/class-use/AbstractDynamicMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/class-use/ImplementationException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/class-use/MBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/class-use/MBeanDescriptionAdapter.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/class-use/MX4JSystemKeys.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/ClassLoaderObjectInputStream.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/MLetParseException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/MLetParser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/MLetTag.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/RepositoryClassLoader.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/class-use/ClassLoaderObjectInputStream.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetParseException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetParser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetTag.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/class-use/RepositoryClassLoader.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/loading/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/CommonsLogger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/FileLogger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/Log.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/Log4JLogger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/Logger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcaster.LoggerNotifier.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcaster.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcasterMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/MBeanLogger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/class-use/CommonsLogger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/class-use/FileLogger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/class-use/Log.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/class-use/Log4JLogger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/class-use/Logger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcaster.LoggerNotifier.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcaster.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcasterMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/class-use/MBeanLogger.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/log/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitor.CounterMonitorInfo.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitor.GaugeMonitorInfo.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitor.MonitorInfo.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitorNotification.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitor.StringMonitorInfo.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitor.CounterMonitorInfo.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitor.GaugeMonitorInfo.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitor.MonitorInfo.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitorNotification.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitor.StringMonitorInfo.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/monitor/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/FilePersister.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/MBeanPersister.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/Persister.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/PersisterMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/class-use/FilePersister.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/class-use/MBeanPersister.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/class-use/Persister.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/class-use/PersisterMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/persist/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/AbstractHeartBeat.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/AbstractRemoteNotificationClientHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/ClientProxy.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/ConnectionNotificationEmitter.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/ConnectionResolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/DefaultRemoteNotificationServerHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/HeartBeat.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/MX4JRemoteConstants.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/MX4JRemoteUtils.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/NotificationTuple.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/ProviderFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/ProviderHelper.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/RemoteNotificationClientHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/RemoteNotificationServerHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/AbstractHeartBeat.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/AbstractRemoteNotificationClientHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/ClientProxy.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/ConnectionNotificationEmitter.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/ConnectionResolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/DefaultRemoteNotificationServerHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/HeartBeat.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/MX4JRemoteConstants.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/MX4JRemoteUtils.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/NotificationTuple.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/ProviderFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/ProviderHelper.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/RemoteNotificationClientHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/class-use/RemoteNotificationServerHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/class-use/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/class-use/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/class-use/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/class-use/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/class-use/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/class-use/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientExceptionCatcher.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientUnmarshaller.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/Marshaller.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionProxy.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionSubjectInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIHeartBeat.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIRemoteNotificationClientHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientExceptionCatcher.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientUnmarshaller.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/Marshaller.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionProxy.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionSubjectInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIHeartBeat.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIRemoteNotificationClientHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/BCELMBeanInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/CachingReflectionMBeanInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/ChainedMBeanServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/ChainedMBeanServerBuilder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/DefaultClassLoaderRepository.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/MBeanIntrospector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/MBeanInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/MBeanMetaData.Factory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/MBeanMetaData.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/MBeanRepository.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServerBuilder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServerDelegate.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/ModifiableClassLoaderRepository.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/ReflectionMBeanInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/BCELMBeanInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/CachingReflectionMBeanInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/ChainedMBeanServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/ChainedMBeanServerBuilder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/DefaultClassLoaderRepository.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanIntrospector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanMetaData.Factory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanMetaData.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanRepository.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServerBuilder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServerDelegate.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/ModifiableClassLoaderRepository.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/class-use/ReflectionMBeanInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/ContextClassLoaderMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfigurator.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/NotificationListenerMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/ContextClassLoaderMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfigurator.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfiguratorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfiguratorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/NotificationListenerMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/server/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/TimeQueue.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/TimeTask.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/TimerTask.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimeQueue.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimeTask.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimerTask.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/timer/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/AdaptorServerSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/PlainAdaptorServerSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/class-use/AdaptorServerSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/class-use/PlainAdaptorServerSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/CommandProcessorUtil.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ConstructorsCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/CreateMBeanCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/DefaultProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/DeleteMBeanCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/EmptyCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/GetAttributeCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpCommandProcessorAdaptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpConstants.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpInputStream.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpOutputStream.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpUtil.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/InvokeOperationCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/MBeanCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ProcessorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ProcessorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/RelationCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ServerByDomainCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ServerCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/SetAttributeCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/SetAttributesCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/CommandProcessorUtil.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ConstructorsCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/CreateMBeanCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/DefaultProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/DeleteMBeanCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/EmptyCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/GetAttributeCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpCommandProcessorAdaptor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpConstants.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpInputStream.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpOutputStream.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpUtil.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/InvokeOperationCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/MBeanCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ProcessorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ProcessorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/RelationCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ServerByDomainCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ServerCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/SetAttributeCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/SetAttributesCommandProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessor.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessorMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessorMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactoryMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactoryMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactoryMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactoryMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.Node.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.ObjectsHolder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationLoader.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationLoaderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.AbstractNode.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Arg.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Call.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Configuration.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Create.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.New.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Object.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Register.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Shutdown.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Startup.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Unregister.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.Node.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.ObjectsHolder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationLoader.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationLoaderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.AbstractNode.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Arg.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Call.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Configuration.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Create.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.New.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Object.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Register.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Shutdown.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Startup.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Unregister.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/config/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/i18n/I18NStandardMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/i18n/class-use/I18NStandardMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunner.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunnerMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunnerMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunner.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunnerMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunnerMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/jython/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/mail/SMTP.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/mail/SMTPMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/mail/class-use/SMTP.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/mail/class-use/SMTPMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/mail/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/mail/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/mail/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/mail/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingServiceMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingServiceMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingServiceMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingServiceMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingServiceMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingServiceMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingServiceMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingServiceMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/naming/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractConnectionManager.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractJMXConnector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractJMXConnectorServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractServerInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/Connection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/ConnectionManager.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnectionHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnectionMBeanServerConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/PasswordAuthenticator.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/SubjectInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoInput.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoOutput.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/BurlapClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/BurlapServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/SSLBurlapServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/BurlapClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/BurlapServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/SSLBurlapServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoInput.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoOutput.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/HessianClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/HessianServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/SSLHessianServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/HessianClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/HessianServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/SSLHessianServlet.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/JMXSerializerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/class-use/JMXSerializerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractConnectionManager.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractJMXConnector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractJMXConnectorServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractServerInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/Connection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/ConnectionManager.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnectionHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnectionMBeanServerConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/PasswordAuthenticator.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/SubjectInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionMBeanServerConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionManager.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectorServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPHeartBeat.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPRemoteNotificationClientHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPResolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPServerInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPSubjectInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/WebContainer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionMBeanServerConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionManager.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectorServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPHeartBeat.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPRemoteNotificationClientHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPResolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPServerInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPSubjectInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/WebContainer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/JettyWebContainer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/class-use/JettyWebContainer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnectorServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnection.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnectorServer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/class-use/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/class-use/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/class-use/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/class-use/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/class-use/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/class-use/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/class-use/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/class-use/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/class-use/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/class-use/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/class-use/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/class-use/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/class-use/ClientProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/class-use/ServerProvider.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/RemoteMBeanProxy.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/RemoteMBeanProxyException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/class-use/RemoteMBeanProxy.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/class-use/RemoteMBeanProxyException.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/class-use/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/class-use/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/class-use/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/class-use/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/class-use/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/class-use/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/class-use/Resolver.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/SSLRMIClientSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/SSLRMIServerSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/class-use/SSLRMIClientSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/class-use/SSLRMIServerSocketFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/ConnectionIDRequestHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPConnector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SSLSOAPService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AxisDeserializer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AxisSerializer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AxisDeserializer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AxisSerializer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationDeser.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationDeserFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationSer.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationSerFactory.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/ConnectionIDRequestHandler.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPClientInvoker.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPConnector.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SSLSOAPService.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/AbstractStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/NotificationStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorderMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/PointTime.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/StatisticsRecorderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/StatisticsRecorderMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorderMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorderMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/AbstractStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/NotificationStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorderMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/PointTime.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/StatisticsRecorderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/StatisticsRecorderMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorderMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorder.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorderMBean.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorderMBeanDescription.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/tools/stats/package-use.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/Base64Codec.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/MethodTernaryTree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/Utils.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/class-use/Base64Codec.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/class-use/MethodTernaryTree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/class-use/Utils.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/package-frame.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/package-summary.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/package-tree.html create mode 100644 mx4j-3.0.2/docs/api/mx4j/util/package-use.html create mode 100644 mx4j-3.0.2/docs/api/overview-frame.html create mode 100644 mx4j-3.0.2/docs/api/overview-summary.html create mode 100644 mx4j-3.0.2/docs/api/overview-tree.html create mode 100644 mx4j-3.0.2/docs/api/package-list create mode 100644 mx4j-3.0.2/docs/api/packages.html create mode 100644 mx4j-3.0.2/docs/api/resources/inherit.gif create mode 100644 mx4j-3.0.2/docs/api/serialized-form.html create mode 100644 mx4j-3.0.2/docs/api/stylesheet.css create mode 100644 mx4j-3.0.2/docs/ch01.html create mode 100644 mx4j-3.0.2/docs/ch01s06.html create mode 100644 mx4j-3.0.2/docs/ch02.html create mode 100644 mx4j-3.0.2/docs/ch02s04.html create mode 100644 mx4j-3.0.2/docs/ch02s07.html create mode 100644 mx4j-3.0.2/docs/ch02s13.html create mode 100644 mx4j-3.0.2/docs/ch03.html create mode 100644 mx4j-3.0.2/docs/ch03s04.html create mode 100644 mx4j-3.0.2/docs/ch03s10.html create mode 100644 mx4j-3.0.2/docs/ch03s13.html create mode 100644 mx4j-3.0.2/docs/ch03s15.html create mode 100644 mx4j-3.0.2/docs/ch03s20.html create mode 100644 mx4j-3.0.2/docs/ch03s23.html create mode 100644 mx4j-3.0.2/docs/ch03s27.html create mode 100644 mx4j-3.0.2/docs/ch03s30.html create mode 100644 mx4j-3.0.2/docs/ch04.html create mode 100644 mx4j-3.0.2/docs/ch04s03.html create mode 100644 mx4j-3.0.2/docs/ch05.html create mode 100644 mx4j-3.0.2/docs/ch05s10.html create mode 100644 mx4j-3.0.2/docs/ch06.html create mode 100644 mx4j-3.0.2/docs/ch06s03.html create mode 100644 mx4j-3.0.2/docs/ch06s05.html create mode 100644 mx4j-3.0.2/docs/ch06s10.html create mode 100644 mx4j-3.0.2/docs/ch06s14.html create mode 100644 mx4j-3.0.2/docs/ch07.html create mode 100644 mx4j-3.0.2/docs/ch07s07.html create mode 100644 mx4j-3.0.2/docs/ch07s15.html create mode 100644 mx4j-3.0.2/docs/ch08.html create mode 100644 mx4j-3.0.2/docs/ch09.html create mode 100644 mx4j-3.0.2/docs/images/logo.gif create mode 100644 mx4j-3.0.2/docs/index.html create mode 100644 mx4j-3.0.2/docs/styles.css create mode 100644 mx4j-3.0.2/examples/jndi.properties create mode 100644 mx4j-3.0.2/examples/key.store create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/dynamic/DynamicMBeanExample.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/dynamic/DynamicService.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/helloworld/HelloWorld.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/helloworld/HelloWorldExample.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/helloworld/HelloWorldMBean.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/Hello.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/HelloImpl.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/HelloImplMBean.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/IIOPClient.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/IIOPServer.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/DynamicLegacyService.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/LegacyExample.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/LegacyService.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteService.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteServiceObject.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteServiceObjectMBean.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/interception/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/interception/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/interception/SubjectTrackingMBeanServer.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/notification/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/notification/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/rmi/iiop/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/rmi/iiop/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/rmi/ssl/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/rmi/ssl/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/security/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/security/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/security/server.policy create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/simple/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/remote/simple/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/services/loading/Main.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/services/loading/mbeans.mlet create mode 100644 mx4j-3.0.2/examples/mx4j/examples/services/relation/RelationServiceExample.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/services/relation/SimpleBooks.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/services/relation/SimpleOwner.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/services/relation/SimplePersonalLibrary.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/HttpAdaptor.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/RelationServiceAdaptor.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SSLHttpAdaptor.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SimpleRelationTestSupport.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SimpleStandard.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/config/ConfigurationShutdown.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/config/ConfigurationStartup.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/config/config.xml create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/jython/ScriptExample.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/mail/MailExample.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/persister/MBeanOne.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/persister/MBeanTwo.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/persister/PersisterTest.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/ssl/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/ssl/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/remote/soap/Client.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/remote/soap/Server.java create mode 100644 mx4j-3.0.2/examples/mx4j/examples/tools/xdoclet/MyService.java create mode 100644 mx4j-3.0.2/examples/trust.store create mode 100644 mx4j-3.0.2/lib/mx4j-examples.jar create mode 100644 mx4j-3.0.2/lib/mx4j-impl.jar create mode 100644 mx4j-3.0.2/lib/mx4j-jmx.jar create mode 100644 mx4j-3.0.2/lib/mx4j-remote.jar create mode 100644 mx4j-3.0.2/lib/mx4j-rimpl.jar create mode 100644 mx4j-3.0.2/lib/mx4j-rjmx.jar create mode 100644 mx4j-3.0.2/lib/mx4j-soap.war create mode 100644 mx4j-3.0.2/lib/mx4j-tools.jar create mode 100644 mx4j-3.0.2/lib/mx4j.jar create mode 100644 vjdbc_1_6_5/build.xml create mode 100644 vjdbc_1_6_5/changelog.txt create mode 100644 vjdbc_1_6_5/conf/ear/application.xml create mode 100644 vjdbc_1_6_5/conf/ejb/MANIFEST.MF create mode 100644 vjdbc_1_6_5/conf/ejb/ejb-jar.xml create mode 100644 vjdbc_1_6_5/conf/ejb/ibm-ejb-jar-bnd.xmi create mode 100644 vjdbc_1_6_5/conf/ejb/ibm-ejb-jar-ext.xmi create mode 100644 vjdbc_1_6_5/conf/ejb/jboss.xml create mode 100644 vjdbc_1_6_5/conf/log4j.properties create mode 100644 vjdbc_1_6_5/conf/servlet/applet.html create mode 100644 vjdbc_1_6_5/conf/servlet/index.html create mode 100644 vjdbc_1_6_5/conf/servlet/web.xml create mode 100644 vjdbc_1_6_5/deploy/readme.txt create mode 100644 vjdbc_1_6_5/docs/changelog.txt create mode 100644 vjdbc_1_6_5/docs/documentation/applet.htm create mode 100644 vjdbc_1_6_5/docs/documentation/contact.htm create mode 100644 vjdbc_1_6_5/docs/documentation/downloads.htm create mode 100644 vjdbc_1_6_5/docs/documentation/faq.htm create mode 100644 vjdbc_1_6_5/docs/documentation/overview.htm create mode 100644 vjdbc_1_6_5/docs/documentation/performance.htm create mode 100644 vjdbc_1_6_5/docs/documentation/quickstart.htm create mode 100644 vjdbc_1_6_5/docs/documentation/reference.css create mode 100644 vjdbc_1_6_5/docs/documentation/reference.htm create mode 100644 vjdbc_1_6_5/docs/google_ads.htm create mode 100644 vjdbc_1_6_5/docs/img/email.gif create mode 100644 vjdbc_1_6_5/docs/img/performance.gif create mode 100644 vjdbc_1_6_5/docs/img/scenario1.gif create mode 100644 vjdbc_1_6_5/docs/img/simplicit.png create mode 100644 vjdbc_1_6_5/docs/img/simplicit_green.gif create mode 100644 vjdbc_1_6_5/docs/img/tomcat1.gif create mode 100644 vjdbc_1_6_5/docs/img/vjdbc.gif create mode 100644 vjdbc_1_6_5/docs/img/vjdbc_icon.gif create mode 100644 vjdbc_1_6_5/docs/img/vjdbc_icon.ico create mode 100644 vjdbc_1_6_5/docs/index.html create mode 100644 vjdbc_1_6_5/docs/leftmenu.htm create mode 100644 vjdbc_1_6_5/docs/mainfooter.htm create mode 100644 vjdbc_1_6_5/docs/mainheader.htm create mode 100644 vjdbc_1_6_5/docs/news.htm create mode 100644 vjdbc_1_6_5/docs/sample/de/simplicit/vjdbc/test/QuizApplet.java create mode 100644 vjdbc_1_6_5/docs/vjdbc.css create mode 100644 vjdbc_1_6_5/lgpl.txt create mode 100644 vjdbc_1_6_5/lib/commons-beanutils-core.jar create mode 100644 vjdbc_1_6_5/lib/commons-codec-1.3.jar create mode 100644 vjdbc_1_6_5/lib/commons-collections-3.2.jar create mode 100644 vjdbc_1_6_5/lib/commons-dbcp-1.2.1.jar create mode 100644 vjdbc_1_6_5/lib/commons-digester-1.7.jar create mode 100644 vjdbc_1_6_5/lib/commons-httpclient-3.0.1.jar create mode 100644 vjdbc_1_6_5/lib/commons-logging-1.1.jar create mode 100644 vjdbc_1_6_5/lib/commons-pool-1.3.jar create mode 100644 vjdbc_1_6_5/lib/j2ee_api.jar create mode 100644 vjdbc_1_6_5/lib/jakarta-oro-2.0.8.jar create mode 100644 vjdbc_1_6_5/lib/junit.jar create mode 100644 vjdbc_1_6_5/lib/servlet-api.jar create mode 100644 vjdbc_1_6_5/lib/vjdbc.jar create mode 100644 vjdbc_1_6_5/lib/vjdbc_server.jar create mode 100644 vjdbc_1_6_5/readme.txt create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VJdbcException.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VJdbcProperties.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VirtualBase.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VirtualCallableStatement.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VirtualConnection.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VirtualDatabaseMetaData.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VirtualDriver.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VirtualPreparedStatement.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VirtualSavepoint.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/VirtualStatement.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/cache/SimpleStatementParser.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/cache/TableCache.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallableStatementGetArrayCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallableStatementGetBlobCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallableStatementGetClobCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallableStatementGetObjectCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallableStatementGetRefCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallableStatementSetAsciiStreamCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallableStatementSetBinaryStreamCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallableStatementSetCharacterStreamCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallableStatementSetObjectCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CallingContextFactory.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/Command.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CommandPool.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CommandSink.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/CommandSinkListener.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ConnectionCommitCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ConnectionContext.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ConnectionPrepareCallCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ConnectionPrepareStatementCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ConnectionPrepareStatementExtendedCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ConnectionReleaseSavepointCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ConnectionRollbackWithSavepointCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/DecoratedCommandSink.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/DestroyCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/JdbcInterfaceType.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/NextRowPacketCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/NullCallingContextFactory.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/NullCommandSinkListener.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ParameterTypeCombinations.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/PingCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/PreparedStatementExecuteBatchCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/PreparedStatementExecuteCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/PreparedStatementQueryCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/PreparedStatementUpdateCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ReflectiveCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ResultSetGetMetaDataCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/ResultSetProducerCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StandardCallingContextFactory.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StatementCancelCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StatementExecuteBatchCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StatementExecuteCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StatementExecuteExtendedCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StatementGetGeneratedKeysCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StatementGetResultSetCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StatementQueryCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StatementUpdateCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/command/StatementUpdateExtendedCommand.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/ejb/EjbCommandSink.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/ejb/EjbCommandSinkHome.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/ejb/EjbCommandSinkProxy.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/ArrayParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/BigDecimalParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/BlobParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/BooleanParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/ByteArrayParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/ByteParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/ByteStreamParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/CharStreamParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/ClobParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/DateParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/DoubleParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/FloatParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/IntegerParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/LongParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/NullParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/ObjectParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/PreparedStatementParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/RefParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/ShortParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/StringParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/TimeParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/TimestampParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/parameters/URLParameter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/rmi/CommandSinkRmi.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/rmi/CommandSinkRmiProxy.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/rmi/ConnectionBrokerRmi.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/rmi/KeepAliveTimerTask.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/rmi/SecureSocketFactory.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/ArrayAccess.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/ArrayAccessors.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/CallingContext.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/FlattenedColumnValues.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/RowPacket.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/SerialArray.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/SerialBlob.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/SerialClob.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/SerialJavaObject.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/SerialRef.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/SerialResultSetMetaData.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/SerialStruct.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/SerializableTransport.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/StreamSerializer.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/StreamingResultSet.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/UIDEx.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/serial/Zipper.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/DataSourceProvider.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/LoginHandler.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/command/CommandProcessor.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/command/ConnectionEntry.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/command/JdbcObjectHolder.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/command/ResultSetHolder.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/command/ReturnedObjectGuard.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/BoundedChannel.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/Channel.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/Executor.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/LinkedNode.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/PooledExecutor.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/Puttable.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/SynchronousChannel.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/Takable.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/ThreadFactory.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/concurrent/ThreadFactoryUser.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/ConfigurationException.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/ConfigurationUtil.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/ConnectionConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/ConnectionPoolConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/DigesterConnectionConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/DigesterOcctConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/DigesterRmiConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/LoggingGenericObjectPool.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/NamedQueryConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/OcctConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/QueryFilterConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/RmiConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/config/VJdbcConfiguration.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/ejb/EjbCommandSinkBean.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/rmi/CommandSinkRmiImpl.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/rmi/ConnectionBrokerRmiImpl.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/rmi/ConnectionServer.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/server/servlet/ServletCommandSink.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/AbstractServletCommandSinkClient.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/RelaxedHostnameVerifier.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/RequestEnhancer.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/RequestEnhancerFactory.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/RequestModifier.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/RequestModifierJdk.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/ServletCommandSinkIdentifier.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/ServletCommandSinkJdkHttpClient.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/jakarta/ConnectRequestEntity.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/jakarta/ProcessRequestEntity.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/jakarta/RequestModifierJakartaHttpClient.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/servlet/jakarta/ServletCommandSinkJakartaHttpClient.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/VJdbcTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/db2/Db2AddressTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/general/AddressTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/general/CustomRmiSocketFactory.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/general/CustomSocket.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/hsqldb/HSqlDataSource.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/hsqldb/HSqlDataSourceProvider.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/hsqldb/HSqlDbAddressTestDataSource.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/hsqldb/HSqlDbAddressTestDriverManager.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/hsqldb/HSqlDbConnectionPoolTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/http/CheckPropertyFilter.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/http/TestRequestEnhancer.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/http/TestRequestEnhancerFactory.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/jdbcodbc/JdbcOdbcAddressTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/mysql/MySqlDbAddressTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/oracle/BlobClobTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/oracle/NestedTableTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/oracle/ObjectTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/oracle/Oracle9iTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/test/junit/oracle/OracleAddressTest.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/util/ClientInfo.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/util/JavaVersionInfo.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/util/SQLExceptionHelper.java create mode 100644 vjdbc_1_6_5/src/de/simplicit/vjdbc/util/StreamCloser.java create mode 100644 vjdbc_1_6_5/test/readme.txt create mode 100644 vjdbc_1_6_5/vjdbc.dtd diff --git a/mx4j-3.0.2/Apache-LICENSE.txt b/mx4j-3.0.2/Apache-LICENSE.txt new file mode 100644 index 0000000..8d0f7a3 --- /dev/null +++ b/mx4j-3.0.2/Apache-LICENSE.txt @@ -0,0 +1,53 @@ +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache BCEL" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * "Apache BCEL", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + */ diff --git a/mx4j-3.0.2/BUILD-HOWTO.txt b/mx4j-3.0.2/BUILD-HOWTO.txt new file mode 100644 index 0000000..7716e51 --- /dev/null +++ b/mx4j-3.0.2/BUILD-HOWTO.txt @@ -0,0 +1,122 @@ +Welcome to MX4J, an open source implementation of the +Java(TM) Management Extensions (JMX) (JSR 3) and of the +Java(TM) Management Extensions (JMX) remote API (JSR 160). + +For further information about JMX and JSR 3, see +http://java.sun.com/jmx and +http://jcp.org/en/jsr/detail?id=3 + +For further information about JMX remote and JSR 160, see +http://java.sun.com/jmx and +http://jcp.org/en/jsr/detail?id=160 + +Refer to the MX4J home page (http://mx4j.sourceforge.net) for +new releases and further information about the MX4J project. + +For up-to-date documentation see http://mx4j.sourceforge.net/docs. + + +Building MX4J from the sources +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To build an MX4J binary distribution from an MX4J source distribution, +you must have a J2SE(TM) version 1.3 or later installed +(see http://java.sun.com/j2se). +Unpack the MX4J source distribution into a directory that will be +referred to as $MX4J, and follow the instructions below. + + +Building JSR 3 (Java Management Extensions) classes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Download and install Ant version 1.5 or later from + http://ant.apache.org + The directory where Ant is installed will be referred to as + $ANT_HOME + +* Download BCEL version 5.0 or later from + http://jakarta.apache.org/bcel + Put bcel.jar into $MX4J/lib + +* Download Commons-Logging version 1.0 or later from + http://jakarta.apache.org/commons + Put commons-logging.jar into $MX4J/lib + +* Download Log4J version 1.2 or later from + http://jakarta.apache.org/log4j + Put log4j-*.jar into $MX4J/lib + ++ Issue the command + $ANT_HOME/bin/ant compile.jmx + from the $MX4J/build directory + + +Building JSR 160 (Java Management Extensions Remote API) classes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Follow the instruction given for building the JSR 3 classes, and +do the following: + +* [J2SE 1.3 only] + Download JAAS version 1.0 or later from + http://java.sun.com/products/jaas + Unpack jaas.jar into $MX4J/lib. This step is needed to workaround + a bug in the rmic compiler that is unable to load classes from + jars when compiling with the -iiop flag. + After this operation, there should be the directories + $MX4J/lib/javax/security/auth and subdirectories, and + $MX4J/lib/com/sun/security/auth and subdirectories, + containing the JAAS classes. + ++ Issue the command + $ANT_HOME/bin/ant compile.rjmx + from the $MX4J/build directory + + +Building MX4J Tools classes +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Warning: some MX4J tools depend on JDK 1.4, since they depend on +3rd party libraries that depend on JDK 1.4. +Follow the instruction given for building the JSR 160 classes, and +do the following: + +* Download Axis version 1.1 or later from + http://ws.apache.org/axis + Put axis.jar, commons-discovery.jar, jaxrpc.jar, saaj.jar and + wsdl4j.jar into $MX4J/lib + +* Download the servlet API classes version 2.3 or later from + http://java.sun.com/products/servlet/reference/api/index.html + Most likely, you have to rename the downloaded file from + servlet-2_3-fcs-classfiles.zip to servlet.jar and put it under + $MX4J/lib + +* Download Jetty version 4.2 or later from + http://jetty.mortbay.org + Put org.mortbay.jetty.jar into $MX4J/lib + +* [Optional] + Download JavaMail and the JavaBean Activation Framework from + http://java.sun.com/products/javamail + http://java.sun.com/beans/glasgow + Put mail.jar and activation.jar into $MX4J/lib + +* [Optional] + Download Jython from + http://www.jython.org + Put jython.jar into $MX4J/lib + +* [Requires J2SE 1.4] + Download Hessian from + http://www.caucho.com + Put hessian-*.jar into $MX4J/lib + +* [J2SE 1.3 only] + Download JSSE version 1.0 or later from + http://java.sun.com/products/jsse + Put jcert.jar, jnet.jar and jsse.jar into $MX4J/lib + ++ Issue the command + $ANT_HOME/bin/ant compile.tools + from the $MX4J/build directory diff --git a/mx4j-3.0.2/Jetty-LICENSE.txt b/mx4j-3.0.2/Jetty-LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/mx4j-3.0.2/Jetty-LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/mx4j-3.0.2/Jython-LICENSE.txt b/mx4j-3.0.2/Jython-LICENSE.txt new file mode 100644 index 0000000..c7ff937 --- /dev/null +++ b/mx4j-3.0.2/Jython-LICENSE.txt @@ -0,0 +1,142 @@ +HISTORY OF THE SOFTWARE +======================= + +JPython was created in late 1997 by Jim Hugunin. Jim was also the +primary developer while he was at CNRI. In February 1999 Barry Warsaw +took over as primary developer and released JPython version 1.1. +In October 2000 Barry helped move the software to SourceForge +where it was renamed to Jython. Jython 2.0 is developed by a group +of volunteers. + + +The standard library is covered by the BeOpen / CNRI license. See the +Lib/LICENSE file for details. + +The oro regular expresion matcher is covered by the apache license. +See the org/apache/LICENSE file for details. + +The zxJDBC package was written by Brian Zimmer and originally licensed +under the GNU Public License. The package is now covered by the Jython +Software License. + +Jython changes Software License. +================================ + +Copyright (c) 2000, Jython Developers +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + + - Neither the name of the Jython Developers nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + +JPython Software License. +========================= + +______________________________________________________________________ + +IMPORTANT: PLEASE READ THE FOLLOWING AGREEMENT CAREFULLY. + +BY CLICKING ON THE "ACCEPT" BUTTON WHERE INDICATED, OR BY INSTALLING, +COPYING OR OTHERWISE USING THE SOFTWARE, YOU ARE DEEMED TO HAVE AGREED TO +THE TERMS AND CONDITIONS OF THIS AGREEMENT. + +______________________________________________________________________ + +JPython version 1.1.x + + 1. This LICENSE AGREEMENT is between the Corporation for National Research + Initiatives, having an office at 1895 Preston White Drive, Reston, VA + 20191 ("CNRI"), and the Individual or Organization ("Licensee") + accessing and using JPython version 1.1.x in source or binary form and + its associated documentation as provided herein ("Software"). + + 2. Subject to the terms and conditions of this License Agreement, CNRI + hereby grants Licensee a non-exclusive, non-transferable, royalty-free, + world-wide license to reproduce, analyze, test, perform and/or display + publicly, prepare derivative works, distribute, and otherwise use the + Software alone or in any derivative version, provided, however, that + CNRI's License Agreement and CNRI's notice of copyright, i.e., + "Copyright ©1996-1999 Corporation for National Research Initiatives; + All Rights Reserved" are both retained in the Software, alone or in any + derivative version prepared by Licensee. + + Alternatively, in lieu of CNRI's License Agreement, Licensee may + substitute the following text (omitting the quotes), provided, however, + that such text is displayed prominently in the Software alone or in any + derivative version prepared by Licensee: "JPython (Version 1.1.x) is + made available subject to the terms and conditions in CNRI's License + Agreement. This Agreement may be located on the Internet using the + following unique, persistent identifier (known as a handle): + 1895.22/1006. The License may also be obtained from a proxy server on + the Web using the following URL: http://hdl.handle.net/1895.22/1006." + + 3. In the event Licensee prepares a derivative work that is based on or + incorporates the Software or any part thereof, and wants to make the + derivative work available to the public as provided herein, then + Licensee hereby agrees to indicate in any such work, in a prominently + visible way, the nature of the modifications made to CNRI's Software. + + 4. Licensee may not use CNRI trademarks or trade name, including JPython + or CNRI, in a trademark sense to endorse or promote products or + services of Licensee, or any third party. Licensee may use the mark + JPython in connection with Licensee's derivative versions that are + based on or incorporate the Software, but only in the form + "JPython-based ___________________," or equivalent. + + 5. CNRI is making the Software available to Licensee on an "AS IS" basis. + CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY + OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY + REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY + PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE + ANY THIRD PARTY RIGHTS. + + 6. CNRI SHALL NOT BE LIABLE TO LICENSEE OR OTHER USERS OF THE SOFTWARE FOR + ANY INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF + USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE + THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. SOME STATES DO NOT + ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY SO THE ABOVE DISCLAIMER + MAY NOT APPLY TO LICENSEE. + + 7. This License Agreement may be terminated by CNRI (i) immediately upon + written notice from CNRI of any material breach by the Licensee, if the + nature of the breach is such that it cannot be promptly remedied; or + (ii) sixty (60) days following notice from CNRI to Licensee of a + material remediable breach, if Licensee has not remedied such breach + within that sixty-day period. + + 8. This License Agreement shall be governed by and interpreted in all + respects by the law of the State of Virginia, excluding conflict of law + provisions. Nothing in this Agreement shall be deemed to create any + relationship of agency, partnership, or joint venture between CNRI and + Licensee. + + 9. By clicking on the "ACCEPT" button where indicated, or by installing, + copying or otherwise using the Software, Licensee agrees to be bound by + the terms and conditions of this License Agreement. + diff --git a/mx4j-3.0.2/LICENSE.txt b/mx4j-3.0.2/LICENSE.txt new file mode 100644 index 0000000..1d08838 --- /dev/null +++ b/mx4j-3.0.2/LICENSE.txt @@ -0,0 +1,52 @@ +/* ==================================================================== + * The MX4J License, Version 1.0 + * + * Copyright (c) 2001-2004 by the MX4J contributors. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * MX4J project (http://mx4j.sourceforge.net)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The name "MX4J" must not be used to endorse or promote + * products derived from this software without prior written + * permission. + * For written permission, please contact biorn_steedom@users.sourceforge.net + * + * 5. Products derived from this software may not be called "MX4J", + * nor may "MX4J" appear in their name, without prior written + * permission of Simone Bordet. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE MX4J CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the MX4J project. For more information on + * MX4J, please see + * . + */ diff --git a/mx4j-3.0.2/README.txt b/mx4j-3.0.2/README.txt new file mode 100644 index 0000000..d833c48 --- /dev/null +++ b/mx4j-3.0.2/README.txt @@ -0,0 +1,162 @@ + +Welcome to MX4J, an open source implementation of the +Java(TM) Management Extensions (JMX) (JSR 3) and of the +Java(TM) Management Extensions (JMX) remote API (JSR 160). + +For further information about JMX and JSR 3, see +http://java.sun.com/jmx and +http://jcp.org/en/jsr/detail?id=3 + +For further information about JMX remote and JSR 160, see +http://java.sun.com/jmx and +http://jcp.org/en/jsr/detail?id=160 + + +Refer to the MX4J home page (http://mx4j.sourceforge.net) for +new releases and further information about the MX4J project. + +For up-to-date documentation see http://mx4j.sourceforge.net/docs. + + + +The MX4J distribution +~~~~~~~~~~~~~~~~~~~~~ + +MX4J's binary distribution is bundled in a compressed file, that +contains documentation, examples, libraries. + +The structure of binary distribution is as follows, where ${release} +indicates the MX4J release of the distribution: + +/mx4j-${release}/ + docs/ contains the documentation + examples/ contains examples on how to use JMX + lib/ contains the MX4J implementation, + tools and examples jars + +MX4J's source distribution is bundled in a compressed file, that +contains the source code and an Ant build file, but no libraries. +Refer to the BUILD-HOWTO file for further information on how to +build MX4J from sources. + +The structure of source distribution is as follows, where ${release} +indicates the MX4J release of the distribution: + +/mx4j-${release}/ + build/ contains the Ant build file + lib/ put here the libraries needed to build MX4J + src/ contains the source files + + + +Installing MX4J +~~~~~~~~~~~~~~~ + +MX4J does not need to be installed. +It simply provides libraries in form of jars that can be used +to develop JMX applications. + + + +Running MX4J examples +~~~~~~~~~~~~~~~~~~~~~ + +MX4J examples source files are present in the /examples/ directory, while compiled +example classes are packaged in the /lib/mx4j-examples.jar file of the binary +distribution (see below). +MX4J examples include JSR 160 examples, under the mx4j.examples.remote package. +To run JSR 160 examples with J2SE 1.3, you need to download JAAS from +http://java.sun.com/products/jaas and put jaas.jar in the classpath. +MX4J examples run out of the box when using J2SE 1.4, since JAAS classes are already +included in standard Java Runtime. +Since J2SE 5.0 (JDK 1.5), JMX and JSR 160 classes are included in the standard Java +Runtime, so running the examples will pick up JDK classes, not MX4J's. To pick up +MX4J classes, you should put relevant MX4J jars in the boot classpath with the /p +option (normally this is done using: java -Xbootclasspath/p:). + + + +MX4J jars +~~~~~~~~~ + +Under the /lib/ directory of the binary distribution there are the following jars: ++ mx4j-jmx.jar --> contains the JSR 3 javax.management.* classes ++ mx4j-impl.jar --> contains the mx4j.* classes that implements + JSR 3 functionalities ++ mx4j.jar --> The mx4j-jmx.jar and mx4j-impl.jar packed together + ++ mx4j-rjmx.jar --> contains the JSR 160 javax.management.remote.* classes ++ mx4j-rimpl.jar --> contains the mx4j.* classes that implements + JSR 160 functionalities ++ mx4j-remote.jar --> The mx4j-rjmx.jar and mx4j-rimpl.jar packed together + ++ mx4j-tools.jar --> contains the MX4J tools ++ mx4j-soap.war --> contains a sample web application that deploys a JSR 160 + connector server over the soap protocol ++ mx4j-examples.jar --> contains the MX4J examples + + + +MX4J's Tools +~~~~~~~~~~~~ + ++ HTTP adaptor, shows the MBeanServer's status in XML. + By transforming with XSLT the XML, can be used to see the HTML view + of an MBeanServer in a browser ++ Configuration loader, an XML file format and loader to startup and shutdown + a JMX application ++ Naming MBeans, wrapping the rmiregistry and tnameserv ++ Statistics MBeans, to gather and show statistics about MBean's attributes ++ Mail MBean, to send email via the JavaMail API ++ Jython MBean, to run Python scripts ++ I18N StandardMBean, to show MBean metadata description in several languages ++ JSR 160 utilities such as: + * PasswordAuthenticator, to authenticate users over JSR 160 connectors + * A 'local' JSR 160 connector and connector server + * A 'soap' JSR 160 connector and connector server + * A 'hessian' JSR 160 connector and connector server + * A 'burlap' JSR 160 connector and connector server + * RemoteMBeanProxy, to proxy MBeans that reside on a remote MBeanServer + * RMI [Client|Server] SocketFactories over SSL + * Base classes to develop custom JSR 160 protocol connector and connector servers + + + +MX4J's Deprecated Tools +~~~~~~~~~~~~~~~~~~~~~~~ ++ The JRMPAdaptor and the IIOPAdaptor were tools that allowed connection with a + remote MBeanServer via plain RMI and via CORBA's IIOP protocol. + Since MX4J 2.x now implements the standard JMX Remote API (JSR 160), these + tools are not mantained anymore and they're not shipped with the binary + distribution, to protote use of the standard JMX Remote API. + They're still present in the source distribution and can be compiled using the + provided build file if needed. + Their usage is strongly discouraged, though, and they will not be supported + any longer. ++ The HeartBeat tool, which was dependent on the above JRMPAdaptor, is also + deprecated and not mantained nor supported anymore. + + + +MX4J's Documentation +~~~~~~~~~~~~~~~~~~~~ + +Refer to the included documentation under the /docs/ directory of the binary +distribution for further details on how to use MX4J, and to the online, +nightly updated, documentation for the latest changes. + + + +MX4J Development +~~~~~~~~~~~~~~~~ + +MX4J includes software that has been developed using +libraries from the following projects: ++ The Apache Software Foundation (http://www.apache.org) + * The Commons Logging project (http://jakarta.apache.org/commons) + * The Log4J project (http://jakarta.apache.org/log4j) + * The Byte Code Engineering Library project (http://jakarta.apache.org/bcel) + * The Axis project (http://ws.apache.org/axis) ++ The Jetty project (http://jetty.mortbay.org) ++ The Jython project (http://www.jython.org) ++ The Caucho project (http://www.caucho.com) diff --git a/mx4j-3.0.2/RELEASE-NOTES-3.0.2.txt b/mx4j-3.0.2/RELEASE-NOTES-3.0.2.txt new file mode 100644 index 0000000..b1fe4c2 --- /dev/null +++ b/mx4j-3.0.2/RELEASE-NOTES-3.0.2.txt @@ -0,0 +1,133 @@ +MX4J 3.0.2 is a bug fix release over 3.0.1, and fixes few bugs related to +JMX monitors, JMX remote connector over IIOP, and registration/deregistration +of JMX listeners. + +Below you can find the release notes for MX4J 3.0.0, reported here since +there have been important changes. + +NOTICE OF INCOMPATIBLE CHANGES +------------------------------ +MX4J was chosen as the JMX implementation for Apache Geronimo, the open +source J2EE application server of the Apache Software Foundation. +As part of the J2EE certification effort for Apache Geronimo, +MX4J was run through the Compatibility Test Suite (CTS) for JMX. +During this process a number of tests cases failed; some of these were cases +where MX4J deviated from the JMX specification, some were differences in +interpretation between MX4J, the JMX RI (now included in J2SE 5), and the +test suite. +To reduce inconsistency between MX4J and the Java platform, several +changes were made to MX4J that may cause backward compatibility issues +with versions prior to 3.0.0. +Below you can find a list of the major changes and an evaluation of the +impacts these may have on existing MX4J applications. + ++ Change in MBeanServer's default domain. + Prior to MX4J 3.0.0, if a null value was passed to + MBeanServerFactory.createMBeanServer(String) or to + MBeanServerFactory.newMBeanServer(String) then the default domain of the + newly created MBeanServer was the empty string "". The specification, + however, says that the default domain must be the string "DefaultDomain". + MX4J now uses the value from the specification. + + This change should not impact applications that did not specify the string + "DefaultDomain" as domain when creating ObjectName instances. + + MBeanServer server = MBeanServerFactory.newMBeanServer(null); + ObjectName name = ObjectName.getInstance("DefaultDomain:type=mymbean"); + server.registerMBean(mbean, name); + // Returned false in MX4J 2.x, returns true in MX4J 3.x + server.isRegistered(ObjectName.getInstance(":type=mymbean")); + ++ Change in default ObjectName for an MLet. + If no ObjectName is supplied when registering an MLet, then + MLet.preRegister() returns a default ObjectName ":type=MLet". + MX4J 2.x erroneously returned new ":service=:MLet". + + This change will impact applications that registered MLet without + providing an ObjectName at the moment of registration: + + MBeanServer server = MBeanServerFactory.newMBeanServer(null); + MLet mlet = new MLet(); + server.registerMBean(mlet, null); + ++ Parsing of MLet files. + The syntax rules used to parse MLet files have been relaxed to conform + with laxer rules in the specification. + + This change should not impact applications that used MX4J to parse MLet + files. + ++ Change in default MBeanPermission with 4-arg constructor. + MBeanPermission has a 4-arguments constructor that allows class, method, + and ObjectName patterns to be specified directly. If a null value is + supplied, then the specification defines the behaviour to be that of a + nilcard. + MX4J 2.x incorrectly treated this as a wildcard. + + This change should have no impact as the 4-arg constructor is intended for + internal use by JMX implementations when performing security checks. + ++ Stricter parameter checking for JMX APIs. + Many methods of the JMX API now have additional checks for illegal values. + + This change should not impact working applications that passed in correct + values. + ++ Changes in CounterMonitor behaviour. + Since the specification was vague in defining the exact behaviour in + certain cases, the MX4J team preferred to mimic the behaviour of the + Reference Implementation. + Specifically: + * Counter values can now be set to negative values, and a THRESHOLD_ERROR + event if no longer emitted in that case. + * A modulus value is now only applied when the counter value rolls over + (i.e. if V[t] < V[t-1]). If the counter value only increases and the + offset > 0 then the threshold will continually increase until the counter + is actually rolled over. + * Once a THRESHOLD_VALUE_EXCEEDED notification has been sent, no futher + THRESHOLD_VALUE_EXCEEDED notifications are sent until the counter value + falls beneath the threshold. + Previously the notification was resent if the counter value increased. + * Notification status is now reset if the Monitor is stopped; as a result, + notifications may be sent at the end of the first interval after a restart. + Previously the notification status was maintained across a restart. + ++ Failures in preRegister() and preDeregister() methods. + To conform with the MBean lifecycle, if the invocation of preRegister() or + preDeregister() terminates abnormally, then the (de)registration immedaitely + fails and the appropriate postRegister() or postDeregister() method is not + invoked. + Previously the postRegister() method was erroneously invoked with a failure + status. + + +USAGE OF MX4J UNDER J2SE 5 +-------------------------- + ++ Since J2SE 5 already includes an implementation of JSR 3 (JMX) and + JSR 160 (JMX Remote), you don't need mx4j.jar nor mx4j-remote.jar. + If you really want to use the MX4J implementation under J2SE 5, you must put + them in the boot classpath: + %JAVA_HOME/bin/java -Xbootclasspath/p:mx4j.jar;mx4j-remote.jar ... + ++ Running the SOAP connector under J2SE 5 requires setting up the XML provider, + since the default XML provider bundled with J2SE 5 may throw a + NullPointerException. + You should include Xerces in the classpath (xml-apis.jar and xercesImpl.jar) + and set this system property: + -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl + ++ There is no need anymore to put in the environment Map the provider packages + to load MX4J connectors (by specifying the properties + JMXConnectorServerFactory.PROTOCOL_PROVIDER_PACKAGES or + JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES). + MX4J 3.0.0 specifies the service providers under META-INF/services in + mx4j-tools.jar, so creating an MX4J connector requires nothing more than + putting mx4j-tools.jar in the classpath. + + +LIST OF CLOSED BUGS +------------------- +The list of closed bugs is available here: +http://sourceforge.net/tracker/?group_id=47745&atid=450647&_group=475150 +by choosing the "Closed" status. \ No newline at end of file diff --git a/mx4j-3.0.2/docs/api/allclasses-frame.html b/mx4j-3.0.2/docs/api/allclasses-frame.html new file mode 100644 index 0000000..d69ae68 --- /dev/null +++ b/mx4j-3.0.2/docs/api/allclasses-frame.html @@ -0,0 +1,750 @@ + + + + + + +All Classes (MX4J API) + + + + + + + + + + +All Classes +
+ + + + + +
AbstractConnection +
+AbstractConnectionManager +
+AbstractDynamicMBean +
+AbstractHeartBeat +
+AbstractJMXConnector +
+AbstractJMXConnectorServer +
+AbstractRemoteNotificationClientHandler +
+AbstractServerInvoker +
+AbstractStatisticsRecorder +
+AdaptorServerSocketFactory +
+AttributeDeser +
+AttributeDeserFactory +
+AttributeListDeser +
+AttributeListDeserFactory +
+AttributeListSer +
+AttributeListSerFactory +
+AttributeSer +
+AttributeSerFactory +
+AxisDeserializer +
+AxisSerializer +
+BCELMBeanInvoker +
+Base64Codec +
+BurlapClientInvoker +
+BurlapServlet +
+CachingReflectionMBeanInvoker +
+CauchoClientInvoker +
+CauchoInput +
+CauchoOutput +
+CauchoService +
+CauchoServlet +
+ChainedMBeanServer +
+ChainedMBeanServerBuilder +
+ClassLoaderObjectInputStream +
+ClientExceptionCatcher +
+ClientInvoker +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProxy +
+ClientUnmarshaller +
+CommandProcessorUtil +
+CommonsLogger +
+ConfigurationBuilder +
+ConfigurationBuilder.Node +
+ConfigurationBuilder.ObjectsHolder +
+ConfigurationException +
+ConfigurationLoader +
+ConfigurationLoaderMBean +
+Connection +
+ConnectionIDRequestHandler +
+ConnectionManager +
+ConnectionNotificationEmitter +
+ConnectionResolver +
+ConstructorsCommandProcessor +
+ContextClassLoaderMBeanServerInterceptor +
+CosNamingService +
+CosNamingServiceMBean +
+CosNamingServiceMBeanDescription +
+CreateMBeanCommandProcessor +
+DefaultClassLoaderRepository +
+DefaultConfigurationBuilder +
+DefaultConfigurationBuilder.AbstractNode +
+DefaultConfigurationBuilder.Arg +
+DefaultConfigurationBuilder.Call +
+DefaultConfigurationBuilder.Configuration +
+DefaultConfigurationBuilder.Create +
+DefaultConfigurationBuilder.New +
+DefaultConfigurationBuilder.Object +
+DefaultConfigurationBuilder.Register +
+DefaultConfigurationBuilder.Shutdown +
+DefaultConfigurationBuilder.Startup +
+DefaultConfigurationBuilder.Unregister +
+DefaultMBeanServerInterceptor +
+DefaultMBeanServerInterceptorMBean +
+DefaultMBeanServerInterceptorMBeanDescription +
+DefaultProcessor +
+DefaultRemoteNotificationServerHandler +
+DeleteMBeanCommandProcessor +
+EmptyCommandProcessor +
+FileLogger +
+FilePersister +
+GetAttributeCommandProcessor +
+HTTPClientInvoker +
+HTTPConnection +
+HTTPConnectionHandler +
+HTTPConnectionMBeanServerConnection +
+HTTPConnectionManager +
+HTTPConnector +
+HTTPConnectorServer +
+HTTPHeartBeat +
+HTTPRemoteNotificationClientHandler +
+HTTPResolver +
+HTTPServerInvoker +
+HTTPService +
+HTTPSubjectInvoker +
+HeartBeat +
+HessianClientInvoker +
+HessianServlet +
+HttpAdaptor +
+HttpAdaptorMBean +
+HttpAdaptorMBeanDescription +
+HttpCommandProcessor +
+HttpCommandProcessorAdaptor +
+HttpConstants +
+HttpException +
+HttpInputStream +
+HttpOutputStream +
+HttpUtil +
+I18NStandardMBean +
+ImplementationException +
+InvokeOperationCommandProcessor +
+InvokerMBeanServerInterceptor +
+InvokerMBeanServerInterceptorMBean +
+InvokerMBeanServerInterceptorMBeanDescription +
+JMXConnection +
+JMXConnectionHandler +
+JMXConnectionMBeanServerConnection +
+JMXSerializerFactory +
+JettyWebContainer +
+JythonRunner +
+JythonRunnerMBean +
+JythonRunnerMBeanDescription +
+LocalConnection +
+LocalConnector +
+LocalConnectorServer +
+Log +
+Log4JLogger +
+Logger +
+LoggerBroadcaster +
+LoggerBroadcaster.LoggerNotifier +
+LoggerBroadcasterMBean +
+MBeanAttributeInfoDeser +
+MBeanAttributeInfoDeserFactory +
+MBeanAttributeInfoSer +
+MBeanAttributeInfoSerFactory +
+MBeanCommandProcessor +
+MBeanConstructorInfoDeser +
+MBeanConstructorInfoDeserFactory +
+MBeanConstructorInfoSer +
+MBeanConstructorInfoSerFactory +
+MBeanDescription +
+MBeanDescriptionAdapter +
+MBeanInfoDeser +
+MBeanInfoDeserFactory +
+MBeanInfoSer +
+MBeanInfoSerFactory +
+MBeanIntrospector +
+MBeanInvoker +
+MBeanLogger +
+MBeanMetaData +
+MBeanMetaData.Factory +
+MBeanNotificationInfoDeser +
+MBeanNotificationInfoDeserFactory +
+MBeanNotificationInfoSer +
+MBeanNotificationInfoSerFactory +
+MBeanOperationInfoDeser +
+MBeanOperationInfoDeserFactory +
+MBeanOperationInfoSer +
+MBeanOperationInfoSerFactory +
+MBeanParameterInfoDeser +
+MBeanParameterInfoDeserFactory +
+MBeanParameterInfoSer +
+MBeanParameterInfoSerFactory +
+MBeanPersister +
+MBeanRepository +
+MBeanServerInterceptor +
+MBeanServerInterceptorConfigurator +
+MBeanServerInterceptorConfiguratorMBean +
+MBeanServerInterceptorConfiguratorMBeanDescription +
+MBeanServerNotificationDeser +
+MBeanServerNotificationDeserFactory +
+MBeanServerNotificationFilterDeser +
+MBeanServerNotificationFilterDeserFactory +
+MBeanServerNotificationFilterSer +
+MBeanServerNotificationFilterSerFactory +
+MBeanServerNotificationSer +
+MBeanServerNotificationSerFactory +
+MLetParseException +
+MLetParser +
+MLetTag +
+MX4JCounterMonitor +
+MX4JCounterMonitorMBean +
+MX4JGaugeMonitor +
+MX4JGaugeMonitorMBean +
+MX4JMBeanServer +
+MX4JMBeanServerBuilder +
+MX4JMBeanServerDelegate +
+MX4JMonitor +
+MX4JMonitorMBean +
+MX4JMonitorNotification +
+MX4JRemoteConstants +
+MX4JRemoteUtils +
+MX4JStringMonitor +
+MX4JStringMonitorMBean +
+MX4JSystemKeys +
+Marshaller +
+MethodTernaryTree +
+ModifiableClassLoaderRepository +
+MonitorNotificationDeser +
+MonitorNotificationDeserFactory +
+MonitorNotificationSer +
+MonitorNotificationSerFactory +
+NamingService +
+NamingServiceMBean +
+NamingServiceMBeanDescription +
+NotificationDeser +
+NotificationDeserFactory +
+NotificationFilterSupportDeser +
+NotificationFilterSupportDeserFactory +
+NotificationFilterSupportSer +
+NotificationFilterSupportSerFactory +
+NotificationListenerMBeanServerInterceptor +
+NotificationResultDeser +
+NotificationResultDeserFactory +
+NotificationResultSer +
+NotificationResultSerFactory +
+NotificationSer +
+NotificationSerFactory +
+NotificationStatisticsRecorder +
+NotificationTuple +
+ObjectInstanceDeser +
+ObjectInstanceDeserFactory +
+ObjectInstanceSer +
+ObjectInstanceSerFactory +
+ObjectNameDeser +
+ObjectNameDeserFactory +
+ObjectNameSer +
+ObjectNameSerFactory +
+ObserverStatisticsRecorder +
+ObserverStatisticsRecorderMBean +
+ObserverStatisticsRecorderMBeanDescription +
+PasswordAuthenticator +
+Persister +
+PersisterMBean +
+PlainAdaptorServerSocketFactory +
+PointTime +
+PrincipalDeser +
+PrincipalDeserFactory +
+PrincipalSer +
+PrincipalSerFactory +
+ProcessorMBean +
+ProcessorMBeanDescription +
+ProviderFactory +
+ProviderHelper +
+RMIConnectionInvoker +
+RMIConnectionProxy +
+RMIConnectionSubjectInvoker +
+RMIHeartBeat +
+RMIRemoteNotificationClientHandler +
+ReflectionMBeanInvoker +
+RelationCommandProcessor +
+RelationTypeSupportDeser +
+RelationTypeSupportDeserFactory +
+RelationTypeSupportSer +
+RelationTypeSupportSerFactory +
+RemoteMBeanProxy +
+RemoteMBeanProxyException +
+RemoteNotificationClientHandler +
+RemoteNotificationServerHandler +
+RepositoryClassLoader +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+RoleDeser +
+RoleDeserFactory +
+RoleInfoDeser +
+RoleInfoDeserFactory +
+RoleInfoSer +
+RoleInfoSerFactory +
+RoleListDeser +
+RoleListDeserFactory +
+RoleListSer +
+RoleListSerFactory +
+RoleResultDeser +
+RoleResultDeserFactory +
+RoleResultSer +
+RoleResultSerFactory +
+RoleSer +
+RoleSerFactory +
+RoleUnresolvedDeser +
+RoleUnresolvedDeserFactory +
+RoleUnresolvedListDeser +
+RoleUnresolvedListDeserFactory +
+RoleUnresolvedListSer +
+RoleUnresolvedListSerFactory +
+RoleUnresolvedSer +
+RoleUnresolvedSerFactory +
+SMTP +
+SMTPMBean +
+SOAPClientInvoker +
+SOAPConnector +
+SOAPService +
+SSLAdaptorServerSocketFactory +
+SSLAdaptorServerSocketFactoryMBean +
+SSLAdaptorServerSocketFactoryMBeanDescription +
+SSLBurlapServlet +
+SSLHessianServlet +
+SSLRMIClientSocketFactory +
+SSLRMIServerSocketFactory +
+SSLSOAPService +
+SecurityMBeanServerInterceptor +
+SecurityMBeanServerInterceptorMBean +
+SecurityMBeanServerInterceptorMBeanDescription +
+ServerByDomainCommandProcessor +
+ServerCommandProcessor +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+SetAttributeCommandProcessor +
+SetAttributesCommandProcessor +
+SetDeser +
+SetDeserFactory +
+SetSer +
+SetSerFactory +
+StatisticsRecorderMBean +
+StatisticsRecorderMBeanDescription +
+SubjectDeser +
+SubjectDeserFactory +
+SubjectInvoker +
+SubjectSer +
+SubjectSerFactory +
+TargetedNotificationDeser +
+TargetedNotificationDeserFactory +
+TargetedNotificationSer +
+TargetedNotificationSerFactory +
+TimeQueue +
+TimeTask +
+TimedStatisticsRecorder +
+TimedStatisticsRecorderMBean +
+TimedStatisticsRecorderMBeanDescription +
+TimerNotificationDeser +
+TimerNotificationDeserFactory +
+TimerNotificationSer +
+TimerNotificationSerFactory +
+TimerTask +
+Utils +
+ValueStatisticsRecorder +
+ValueStatisticsRecorderMBean +
+ValueStatisticsRecorderMBeanDescription +
+WebContainer +
+XSLTProcessor +
+XSLTProcessorMBean +
+XSLTProcessorMBeanDescription +
+
+ + + diff --git a/mx4j-3.0.2/docs/api/allclasses-noframe.html b/mx4j-3.0.2/docs/api/allclasses-noframe.html new file mode 100644 index 0000000..2047205 --- /dev/null +++ b/mx4j-3.0.2/docs/api/allclasses-noframe.html @@ -0,0 +1,750 @@ + + + + + + +All Classes (MX4J API) + + + + + + + + + + +All Classes +
+ + + + + +
AbstractConnection +
+AbstractConnectionManager +
+AbstractDynamicMBean +
+AbstractHeartBeat +
+AbstractJMXConnector +
+AbstractJMXConnectorServer +
+AbstractRemoteNotificationClientHandler +
+AbstractServerInvoker +
+AbstractStatisticsRecorder +
+AdaptorServerSocketFactory +
+AttributeDeser +
+AttributeDeserFactory +
+AttributeListDeser +
+AttributeListDeserFactory +
+AttributeListSer +
+AttributeListSerFactory +
+AttributeSer +
+AttributeSerFactory +
+AxisDeserializer +
+AxisSerializer +
+BCELMBeanInvoker +
+Base64Codec +
+BurlapClientInvoker +
+BurlapServlet +
+CachingReflectionMBeanInvoker +
+CauchoClientInvoker +
+CauchoInput +
+CauchoOutput +
+CauchoService +
+CauchoServlet +
+ChainedMBeanServer +
+ChainedMBeanServerBuilder +
+ClassLoaderObjectInputStream +
+ClientExceptionCatcher +
+ClientInvoker +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProvider +
+ClientProxy +
+ClientUnmarshaller +
+CommandProcessorUtil +
+CommonsLogger +
+ConfigurationBuilder +
+ConfigurationBuilder.Node +
+ConfigurationBuilder.ObjectsHolder +
+ConfigurationException +
+ConfigurationLoader +
+ConfigurationLoaderMBean +
+Connection +
+ConnectionIDRequestHandler +
+ConnectionManager +
+ConnectionNotificationEmitter +
+ConnectionResolver +
+ConstructorsCommandProcessor +
+ContextClassLoaderMBeanServerInterceptor +
+CosNamingService +
+CosNamingServiceMBean +
+CosNamingServiceMBeanDescription +
+CreateMBeanCommandProcessor +
+DefaultClassLoaderRepository +
+DefaultConfigurationBuilder +
+DefaultConfigurationBuilder.AbstractNode +
+DefaultConfigurationBuilder.Arg +
+DefaultConfigurationBuilder.Call +
+DefaultConfigurationBuilder.Configuration +
+DefaultConfigurationBuilder.Create +
+DefaultConfigurationBuilder.New +
+DefaultConfigurationBuilder.Object +
+DefaultConfigurationBuilder.Register +
+DefaultConfigurationBuilder.Shutdown +
+DefaultConfigurationBuilder.Startup +
+DefaultConfigurationBuilder.Unregister +
+DefaultMBeanServerInterceptor +
+DefaultMBeanServerInterceptorMBean +
+DefaultMBeanServerInterceptorMBeanDescription +
+DefaultProcessor +
+DefaultRemoteNotificationServerHandler +
+DeleteMBeanCommandProcessor +
+EmptyCommandProcessor +
+FileLogger +
+FilePersister +
+GetAttributeCommandProcessor +
+HTTPClientInvoker +
+HTTPConnection +
+HTTPConnectionHandler +
+HTTPConnectionMBeanServerConnection +
+HTTPConnectionManager +
+HTTPConnector +
+HTTPConnectorServer +
+HTTPHeartBeat +
+HTTPRemoteNotificationClientHandler +
+HTTPResolver +
+HTTPServerInvoker +
+HTTPService +
+HTTPSubjectInvoker +
+HeartBeat +
+HessianClientInvoker +
+HessianServlet +
+HttpAdaptor +
+HttpAdaptorMBean +
+HttpAdaptorMBeanDescription +
+HttpCommandProcessor +
+HttpCommandProcessorAdaptor +
+HttpConstants +
+HttpException +
+HttpInputStream +
+HttpOutputStream +
+HttpUtil +
+I18NStandardMBean +
+ImplementationException +
+InvokeOperationCommandProcessor +
+InvokerMBeanServerInterceptor +
+InvokerMBeanServerInterceptorMBean +
+InvokerMBeanServerInterceptorMBeanDescription +
+JMXConnection +
+JMXConnectionHandler +
+JMXConnectionMBeanServerConnection +
+JMXSerializerFactory +
+JettyWebContainer +
+JythonRunner +
+JythonRunnerMBean +
+JythonRunnerMBeanDescription +
+LocalConnection +
+LocalConnector +
+LocalConnectorServer +
+Log +
+Log4JLogger +
+Logger +
+LoggerBroadcaster +
+LoggerBroadcaster.LoggerNotifier +
+LoggerBroadcasterMBean +
+MBeanAttributeInfoDeser +
+MBeanAttributeInfoDeserFactory +
+MBeanAttributeInfoSer +
+MBeanAttributeInfoSerFactory +
+MBeanCommandProcessor +
+MBeanConstructorInfoDeser +
+MBeanConstructorInfoDeserFactory +
+MBeanConstructorInfoSer +
+MBeanConstructorInfoSerFactory +
+MBeanDescription +
+MBeanDescriptionAdapter +
+MBeanInfoDeser +
+MBeanInfoDeserFactory +
+MBeanInfoSer +
+MBeanInfoSerFactory +
+MBeanIntrospector +
+MBeanInvoker +
+MBeanLogger +
+MBeanMetaData +
+MBeanMetaData.Factory +
+MBeanNotificationInfoDeser +
+MBeanNotificationInfoDeserFactory +
+MBeanNotificationInfoSer +
+MBeanNotificationInfoSerFactory +
+MBeanOperationInfoDeser +
+MBeanOperationInfoDeserFactory +
+MBeanOperationInfoSer +
+MBeanOperationInfoSerFactory +
+MBeanParameterInfoDeser +
+MBeanParameterInfoDeserFactory +
+MBeanParameterInfoSer +
+MBeanParameterInfoSerFactory +
+MBeanPersister +
+MBeanRepository +
+MBeanServerInterceptor +
+MBeanServerInterceptorConfigurator +
+MBeanServerInterceptorConfiguratorMBean +
+MBeanServerInterceptorConfiguratorMBeanDescription +
+MBeanServerNotificationDeser +
+MBeanServerNotificationDeserFactory +
+MBeanServerNotificationFilterDeser +
+MBeanServerNotificationFilterDeserFactory +
+MBeanServerNotificationFilterSer +
+MBeanServerNotificationFilterSerFactory +
+MBeanServerNotificationSer +
+MBeanServerNotificationSerFactory +
+MLetParseException +
+MLetParser +
+MLetTag +
+MX4JCounterMonitor +
+MX4JCounterMonitorMBean +
+MX4JGaugeMonitor +
+MX4JGaugeMonitorMBean +
+MX4JMBeanServer +
+MX4JMBeanServerBuilder +
+MX4JMBeanServerDelegate +
+MX4JMonitor +
+MX4JMonitorMBean +
+MX4JMonitorNotification +
+MX4JRemoteConstants +
+MX4JRemoteUtils +
+MX4JStringMonitor +
+MX4JStringMonitorMBean +
+MX4JSystemKeys +
+Marshaller +
+MethodTernaryTree +
+ModifiableClassLoaderRepository +
+MonitorNotificationDeser +
+MonitorNotificationDeserFactory +
+MonitorNotificationSer +
+MonitorNotificationSerFactory +
+NamingService +
+NamingServiceMBean +
+NamingServiceMBeanDescription +
+NotificationDeser +
+NotificationDeserFactory +
+NotificationFilterSupportDeser +
+NotificationFilterSupportDeserFactory +
+NotificationFilterSupportSer +
+NotificationFilterSupportSerFactory +
+NotificationListenerMBeanServerInterceptor +
+NotificationResultDeser +
+NotificationResultDeserFactory +
+NotificationResultSer +
+NotificationResultSerFactory +
+NotificationSer +
+NotificationSerFactory +
+NotificationStatisticsRecorder +
+NotificationTuple +
+ObjectInstanceDeser +
+ObjectInstanceDeserFactory +
+ObjectInstanceSer +
+ObjectInstanceSerFactory +
+ObjectNameDeser +
+ObjectNameDeserFactory +
+ObjectNameSer +
+ObjectNameSerFactory +
+ObserverStatisticsRecorder +
+ObserverStatisticsRecorderMBean +
+ObserverStatisticsRecorderMBeanDescription +
+PasswordAuthenticator +
+Persister +
+PersisterMBean +
+PlainAdaptorServerSocketFactory +
+PointTime +
+PrincipalDeser +
+PrincipalDeserFactory +
+PrincipalSer +
+PrincipalSerFactory +
+ProcessorMBean +
+ProcessorMBeanDescription +
+ProviderFactory +
+ProviderHelper +
+RMIConnectionInvoker +
+RMIConnectionProxy +
+RMIConnectionSubjectInvoker +
+RMIHeartBeat +
+RMIRemoteNotificationClientHandler +
+ReflectionMBeanInvoker +
+RelationCommandProcessor +
+RelationTypeSupportDeser +
+RelationTypeSupportDeserFactory +
+RelationTypeSupportSer +
+RelationTypeSupportSerFactory +
+RemoteMBeanProxy +
+RemoteMBeanProxyException +
+RemoteNotificationClientHandler +
+RemoteNotificationServerHandler +
+RepositoryClassLoader +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+Resolver +
+RoleDeser +
+RoleDeserFactory +
+RoleInfoDeser +
+RoleInfoDeserFactory +
+RoleInfoSer +
+RoleInfoSerFactory +
+RoleListDeser +
+RoleListDeserFactory +
+RoleListSer +
+RoleListSerFactory +
+RoleResultDeser +
+RoleResultDeserFactory +
+RoleResultSer +
+RoleResultSerFactory +
+RoleSer +
+RoleSerFactory +
+RoleUnresolvedDeser +
+RoleUnresolvedDeserFactory +
+RoleUnresolvedListDeser +
+RoleUnresolvedListDeserFactory +
+RoleUnresolvedListSer +
+RoleUnresolvedListSerFactory +
+RoleUnresolvedSer +
+RoleUnresolvedSerFactory +
+SMTP +
+SMTPMBean +
+SOAPClientInvoker +
+SOAPConnector +
+SOAPService +
+SSLAdaptorServerSocketFactory +
+SSLAdaptorServerSocketFactoryMBean +
+SSLAdaptorServerSocketFactoryMBeanDescription +
+SSLBurlapServlet +
+SSLHessianServlet +
+SSLRMIClientSocketFactory +
+SSLRMIServerSocketFactory +
+SSLSOAPService +
+SecurityMBeanServerInterceptor +
+SecurityMBeanServerInterceptorMBean +
+SecurityMBeanServerInterceptorMBeanDescription +
+ServerByDomainCommandProcessor +
+ServerCommandProcessor +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+ServerProvider +
+SetAttributeCommandProcessor +
+SetAttributesCommandProcessor +
+SetDeser +
+SetDeserFactory +
+SetSer +
+SetSerFactory +
+StatisticsRecorderMBean +
+StatisticsRecorderMBeanDescription +
+SubjectDeser +
+SubjectDeserFactory +
+SubjectInvoker +
+SubjectSer +
+SubjectSerFactory +
+TargetedNotificationDeser +
+TargetedNotificationDeserFactory +
+TargetedNotificationSer +
+TargetedNotificationSerFactory +
+TimeQueue +
+TimeTask +
+TimedStatisticsRecorder +
+TimedStatisticsRecorderMBean +
+TimedStatisticsRecorderMBeanDescription +
+TimerNotificationDeser +
+TimerNotificationDeserFactory +
+TimerNotificationSer +
+TimerNotificationSerFactory +
+TimerTask +
+Utils +
+ValueStatisticsRecorder +
+ValueStatisticsRecorderMBean +
+ValueStatisticsRecorderMBeanDescription +
+WebContainer +
+XSLTProcessor +
+XSLTProcessorMBean +
+XSLTProcessorMBeanDescription +
+
+ + + diff --git a/mx4j-3.0.2/docs/api/constant-values.html b/mx4j-3.0.2/docs/api/constant-values.html new file mode 100644 index 0000000..d287e24 --- /dev/null +++ b/mx4j-3.0.2/docs/api/constant-values.html @@ -0,0 +1,736 @@ + + + + + + +Constant Field Values (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Constant Field Values

+
+
+Contents + + + + + + +
+mx4j.*
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mx4j.MX4JSystemKeys
+public static final java.lang.StringMX4J_LOG_PRIORITY"mx4j.log.priority"
+public static final java.lang.StringMX4J_LOG_PROTOTYPE"mx4j.log.prototype"
+public static final java.lang.StringMX4J_MBEAN_INVOKER"mx4j.mbean.invoker"
+public static final java.lang.StringMX4J_MBEAN_METADATA"mx4j.mbean.metadata"
+public static final java.lang.StringMX4J_MBEANSERVER_CLASSLOADER_REPOSITORY"mx4j.mbeanserver.classloader.repository"
+public static final java.lang.StringMX4J_MBEANSERVER_REPOSITORY"mx4j.mbeanserver.repository"
+public static final java.lang.StringMX4J_OBJECTNAME_CACHING"mx4j.objectname.caching"
+public static final java.lang.StringMX4J_STRICT_MBEAN_INTERFACE"mx4j.strict.mbean.interface"
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mx4j.loading.MLetParser
+public static final java.lang.StringARCHIVE_ATTR"ARCHIVE"
+public static final java.lang.StringARG_TAG"ARG"
+public static final java.lang.StringCLOSE_BRACKET">"
+public static final java.lang.StringCLOSE_COMMENT"-->"
+public static final java.lang.StringCODE_ATTR"CODE"
+public static final java.lang.StringCODEBASE_ATTR"CODEBASE"
+public static final java.lang.StringMLET_TAG"MLET"
+public static final java.lang.StringNAME_ATTR"NAME"
+public static final java.lang.StringOBJECT_ATTR"OBJECT"
+public static final java.lang.StringOPEN_BRACKET"<"
+public static final java.lang.StringOPEN_COMMENT" +public static final java.lang.StringTYPE_ATTR"TYPE"
+public static final java.lang.StringVALUE_ATTR"VALUE"
+public static final java.lang.StringVERSION_ATTR"VERSION"
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mx4j.log.Logger
+public static final intDEBUG10
+public static final intERROR40
+public static final intFATAL50
+public static final intINFO20
+public static final intTRACE0
+public static final intWARN30
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mx4j.remote.MX4JRemoteConstants
+public static final java.lang.StringCLIENT_PROVIDER_CLASS"ClientProvider"
+public static final java.lang.StringCONNECTION_HEARTBEAT_PERIOD"jmx.remote.x.connection.heartbeat.period"
+public static final java.lang.StringCONNECTION_HEARTBEAT_RETRIES"jmx.remote.x.connection.heartbeat.retries"
+public static final java.lang.StringFETCH_NOTIFICATIONS_MAX_NUMBER"jmx.remote.x.client.max.notifications"
+public static final java.lang.StringFETCH_NOTIFICATIONS_SLEEP"jmx.remote.x.notification.fetch.sleep"
+public static final java.lang.StringFETCH_NOTIFICATIONS_TIMEOUT"jmx.remote.x.client.fetch.timeout"
+public static final java.lang.StringHTTP_SERVER_CONFIGURATION"jmx.remote.x.http.server.configuration"
+public static final java.lang.StringNOTIFICATION_BUFFER_CAPACITY"jmx.remote.x.buffer.size"
+public static final java.lang.StringNOTIFICATION_PURGE_DISTANCE"jmx.remote.x.notification.purge.distance"
+public static final java.lang.StringNOTIFICATION_QUEUE_CAPACITY"jmx.remote.x.queue.size"
+public static final java.lang.StringPROTOCOL_RESOLVER_PACKAGES"mx4j.remote.resolver.pkgs"
+public static final java.lang.StringPROVIDER_PACKAGES"mx4j.remote.provider|mx4j.tools.remote.provider"
+public static final java.lang.StringPROVIDER_PACKAGES_SEPARATOR"|"
+public static final java.lang.StringRESOLVER_CLASS"Resolver"
+public static final java.lang.StringRESOLVER_PACKAGES"mx4j.remote.resolver|mx4j.tools.remote.resolver"
+public static final java.lang.StringRESOLVER_PACKAGES_SEPARATOR"|"
+public static final java.lang.StringSERVER_PROVIDER_CLASS"ServerProvider"
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mx4j.server.interceptor.MBeanServerInterceptor
+public static final intPOST_DEREGISTER5
+public static final intPOST_REGISTER_FALSE3
+public static final intPOST_REGISTER_TRUE2
+public static final intPRE_DEREGISTER4
+public static final intPRE_REGISTER1
+ +

+ +

+ + + + + + + + + + + + +
mx4j.server.interceptor.MBeanServerInterceptorConfigurator
+public static final java.lang.StringOBJECT_NAME"JMImplementation:type=MBeanServerInterceptorConfigurator"
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mx4j.tools.adaptor.http.HttpConstants
+public static final java.lang.StringHTTP_VERSION"HTTP/1.0 "
+public static final java.lang.StringMETHOD_GET"GET"
+public static final java.lang.StringMETHOD_POST"POST"
+public static final java.lang.StringSERVER_INFO"MX4J-HTTPD/1.0"
+public static final intSTATUS_AUTHENTICATE401
+public static final intSTATUS_BAD_REQUEST400
+public static final intSTATUS_FORBIDDEN403
+public static final intSTATUS_INTERNAL_ERROR500
+public static final intSTATUS_MOVED_PERMANENTLY301
+public static final intSTATUS_MOVED_TEMPORARILY302
+public static final intSTATUS_NO_CONTENT204
+public static final intSTATUS_NOT_ALLOWED405
+public static final intSTATUS_NOT_FOUND404
+public static final intSTATUS_NOT_IMPLEMENTED501
+public static final intSTATUS_OKAY200
+ +

+ +

+ + + + + + + + + + + + + + + + + +
mx4j.tools.config.DefaultConfigurationBuilder
+public static final java.lang.StringRESTART_COMMAND"restart"
+public static final java.lang.StringSHUTDOWN_COMMAND"shutdown"
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + +
mx4j.tools.remote.http.HTTPConnectorServer
+public static final java.lang.StringEMBEDDED_WEB_CONTAINER_CLASS"jmx.remote.x.http.embedded.web.container.class"
+public static final java.lang.StringUSE_EXTERNAL_WEB_CONTAINER"jmx.remote.x.http.use.external.web.container"
+public static final java.lang.StringWEB_CONTAINER_CONFIGURATION"jmx.remote.x.http.server.configuration"
+ +

+ +

+ + + + + + + + + + + + +
mx4j.tools.remote.http.HTTPResolver
+protected static final java.lang.StringDEFAULT_WEB_CONTAINER_CLASS"mx4j.tools.remote.http.jetty.JettyWebContainer"
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
mx4j.tools.remote.soap.axis.ser.AxisSerializer
+protected static final java.lang.StringSCHEMA_ALL"all"
+protected static final java.lang.StringSCHEMA_COMPLEX_TYPE"complexType"
+protected static final java.lang.StringSCHEMA_ELEMENT"element"
+protected static final java.lang.StringSCHEMA_SEQUENCE"sequence"
+ +

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/deprecated-list.html b/mx4j-3.0.2/docs/api/deprecated-list.html new file mode 100644 index 0000000..8a3eba8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/deprecated-list.html @@ -0,0 +1,169 @@ + + + + + + +Deprecated List (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Deprecated API

+
+ + + + + + + + +
+Deprecated Fields
mx4j.remote.MX4JRemoteConstants.HTTP_SERVER_CONFIGURATION +
+          Use HTTPConnectorServer.WEB_CONTAINER_CONFIGURATION instead 
+  +

+ + + + + + + + + + + +
+Deprecated Methods
mx4j.AbstractDynamicMBean.invoke(String, Class[], Object[]) +
+          Replaced by AbstractDynamicMBean.invoke(Object,String,Class[],Object[]).
+ The resource passed is the resource as set by AbstractDynamicMBean.setResource(java.lang.Object) or - if it is null - 'this' instance.
+ This method is deprecated because it is not thread safe.
 
mx4j.tools.adaptor.http.HttpAdaptor.restart() +
+          as of RC 1 
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/help-doc.html b/mx4j-3.0.2/docs/api/help-doc.html new file mode 100644 index 0000000..954b1aa --- /dev/null +++ b/mx4j-3.0.2/docs/api/help-doc.html @@ -0,0 +1,193 @@ + + + + + + +API Help (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+How This API Document Is Organized

+
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

+Overview

+
+ +

+The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+

+Package

+
+ +

+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

    +
  • Interfaces (italic)
  • Classes
  • Exceptions
  • Errors
+
+

+Class/Interface

+
+ +

+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    +
  • Class inheritance diagram
  • Direct Subclasses
  • All Known Subinterfaces
  • All Known Implementing Classes
  • Class/interface declaration
  • Class/interface description +

    +

  • Nested Class Summary
  • Field Summary
  • Constructor Summary
  • Method Summary +

    +

  • Field Detail
  • Constructor Detail
  • Method Detail
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+

+Use

+
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+

+Tree (Class Hierarchy)

+
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
    +
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+

+Deprecated API

+
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+

+Index

+
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+

+Prev/Next

+These links take you to the next or previous class, interface, package, or related page.

+Frames/No Frames

+These links show and hide the HTML frames. All pages are available with or without frames. +

+

+Serialized Form

+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. +

+ + +This help file applies to API documentation generated using the standard doclet. + +
+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/index-all.html b/mx4j-3.0.2/docs/api/index-all.html new file mode 100644 index 0000000..255e195 --- /dev/null +++ b/mx4j-3.0.2/docs/api/index-all.html @@ -0,0 +1,7004 @@ + + + + + + +Index (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A B C D E F G H I J L M N O P Q R S T U V W X
+

+A

+
+
ARCHIVE_ATTR - +Static variable in class mx4j.loading.MLetParser +
  +
ARG_TAG - +Static variable in class mx4j.loading.MLetParser +
  +
AbstractConnection - class mx4j.tools.remote.AbstractConnection.
Implementation of the Connection interface, to be used on the server-side end of the connection.
AbstractConnection(String, ConnectionManager) - +Constructor for class mx4j.tools.remote.AbstractConnection +
  +
AbstractConnectionManager - class mx4j.tools.remote.AbstractConnectionManager.
Implementation of the ConnectionManager interface that implements emission of connection notifications, + authentication, and proper closing of connections.
AbstractConnectionManager(AbstractJMXConnectorServer, Map) - +Constructor for class mx4j.tools.remote.AbstractConnectionManager +
Called by subclasses. +
AbstractDynamicMBean - class mx4j.AbstractDynamicMBean.
Utility class that allow the user to easily write DynamicMBeans.
AbstractDynamicMBean() - +Constructor for class mx4j.AbstractDynamicMBean +
Only subclasses can create a new instance of an AbstractDynamicMBean. +
AbstractHeartBeat - class mx4j.remote.AbstractHeartBeat.
Base implementation for the HeartBeat interface.
AbstractHeartBeat(ConnectionNotificationEmitter, Map) - +Constructor for class mx4j.remote.AbstractHeartBeat +
Creates a new HeartBeat. +
AbstractJMXConnector - class mx4j.tools.remote.AbstractJMXConnector.
Abstract implementation of the JMXConnector interface.
AbstractJMXConnector(JMXServiceURL) - +Constructor for class mx4j.tools.remote.AbstractJMXConnector +
Creates a new JMXConnector that will connect to the given JMXServiceURL +
AbstractJMXConnectorServer - class mx4j.tools.remote.AbstractJMXConnectorServer.
Extends the implementation of JMXConnectorServer by implementing most + JMXConnectorServer methods following the JSR 160 specification and delegating + implementation specific operations using the template method pattern.
AbstractJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Constructor for class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
AbstractRemoteNotificationClientHandler - class mx4j.remote.AbstractRemoteNotificationClientHandler.
Base implementation of the RemoteNotificationClientHandler interface.
AbstractRemoteNotificationClientHandler(ConnectionNotificationEmitter, HeartBeat, Map) - +Constructor for class mx4j.remote.AbstractRemoteNotificationClientHandler +
Creates a new remote notification client-side handler. +
AbstractServerInvoker - class mx4j.tools.remote.AbstractServerInvoker.
This class implements partially the JMXConnection interface to forward the calls + to an MBeanServerConnection object (hence the name 'invoker').
AbstractServerInvoker(MBeanServerConnection) - +Constructor for class mx4j.tools.remote.AbstractServerInvoker +
  +
AbstractStatisticsRecorder - class mx4j.tools.stats.AbstractStatisticsRecorder.
Class AbstractStatisticsRecorder.
AbstractStatisticsRecorder() - +Constructor for class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
AdaptorServerSocketFactory - interface mx4j.tools.adaptor.AdaptorServerSocketFactory.
The ServerSocket factory interface.
AttributeDeser - class mx4j.tools.remote.soap.axis.ser.AttributeDeser.
 
AttributeDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.AttributeDeser +
  +
AttributeDeserFactory - class mx4j.tools.remote.soap.axis.ser.AttributeDeserFactory.
 
AttributeDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.AttributeDeserFactory +
  +
AttributeListDeser - class mx4j.tools.remote.soap.axis.ser.AttributeListDeser.
 
AttributeListDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.AttributeListDeser +
  +
AttributeListDeserFactory - class mx4j.tools.remote.soap.axis.ser.AttributeListDeserFactory.
 
AttributeListDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.AttributeListDeserFactory +
  +
AttributeListSer - class mx4j.tools.remote.soap.axis.ser.AttributeListSer.
 
AttributeListSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.AttributeListSer +
  +
AttributeListSerFactory - class mx4j.tools.remote.soap.axis.ser.AttributeListSerFactory.
 
AttributeListSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.AttributeListSerFactory +
  +
AttributeSer - class mx4j.tools.remote.soap.axis.ser.AttributeSer.
 
AttributeSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.AttributeSer +
  +
AttributeSerFactory - class mx4j.tools.remote.soap.axis.ser.AttributeSerFactory.
 
AttributeSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.AttributeSerFactory +
  +
AxisDeserializer - class mx4j.tools.remote.soap.axis.ser.AxisDeserializer.
 
AxisDeserializer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.AxisDeserializer +
  +
AxisSerializer - class mx4j.tools.remote.soap.axis.ser.AxisSerializer.
 
AxisSerializer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.AxisSerializer +
  +
addAuthorization(String, String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Adds an authorization pair as username/password +
addAuthorization(String, String) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Adds an authorization pair as username/password +
addChild(ConfigurationBuilder.Node) - +Method in interface mx4j.tools.config.ConfigurationBuilder.Node +
  +
addChild(ConfigurationBuilder.Node) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode +
  +
addClassLoader(ClassLoader) - +Method in class mx4j.server.DefaultClassLoaderRepository +
  +
addClassLoader(ClassLoader) - +Method in class mx4j.server.ModifiableClassLoaderRepository +
Adds, if does not already exist, the specified ClassLoader to this repository. +
addCommandProcessor(String, HttpCommandProcessor) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Adds a command processor object +
addCommandProcessor(String, String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Adds a command processor object by class +
addCommandProcessor(String, HttpCommandProcessor) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Adds a command processor object +
addCommandProcessor(String, String) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Adds a command processor object by class +
addConnection(Connection) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
addConnectionNotificationListener(NotificationListener, NotificationFilter, Object) - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
addEntry(Date, Number) - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
Adds an entry to the collection. +
addInterceptor(MBeanServerInterceptor) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Appends the given interceptor, provided by the client, to the existing interceptor chain. +
addInterceptor(MBeanServerInterceptor) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBean +
Appends the given interceptor, provided by the client, to the existing interceptor chain. +
addMimeType(String, String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
addMimeType(String, String) - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Maps a given extension with a specified MIME type +
addNotificationListener(NotificationListener, NotificationFilter, Object) - +Method in interface mx4j.log.LoggerBroadcasterMBean +
  +
addNotificationListener(NotificationListener, NotificationFilter, Object) - +Method in class mx4j.monitor.MX4JMonitor +
  +
addNotificationListener(Integer, NotificationTuple) - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
  +
addNotificationListener(Integer, NotificationTuple) - +Method in class mx4j.remote.DefaultRemoteNotificationServerHandler +
  +
addNotificationListener(Integer, NotificationTuple) - +Method in interface mx4j.remote.RemoteNotificationClientHandler +
Adds the given tuple with the given listener ID to this handler +
addNotificationListener(Integer, NotificationTuple) - +Method in interface mx4j.remote.RemoteNotificationServerHandler +
Adds the given tuple with the given listener ID to this handler +
addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
addNotificationListener(ObjectName, ObjectName, MarshalledObject, MarshalledObject, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.ChainedMBeanServer +
  +
addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) - +Method in class mx4j.server.ChainedMBeanServer +
  +
addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) - +Method in class mx4j.server.MX4JMBeanServer +
  +
addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.MX4JMBeanServer +
  +
addNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
addNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
addNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
addNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Adds the given notification listener to the MBean, along with the given filter and handback +
addNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +
  +
addNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
addNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
addNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
addNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
addNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
addNotificationListener(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
addNotificationListener(ObjectName, Object, Subject) - +Method in interface mx4j.tools.remote.http.HTTPConnection +
  +
addNotificationListener(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPConnectionHandler +
  +
addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.tools.remote.http.HTTPConnectionMBeanServerConnection +
  +
addNotificationListener(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPServerInvoker +
  +
addNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
addNotificationListener(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object, Subject) - +Method in interface mx4j.tools.remote.local.LocalConnection +
  +
addNotificationListener(NotificationListener, NotificationFilter, Object) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
addNotificationListener(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
addNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
addNotificationListeners(ObjectName[], MarshalledObject[], Subject[]) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
addObservedObject(ObjectName) - +Method in class mx4j.monitor.MX4JMonitor +
  +
addObservedObject(ObjectName) - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
addParameters(Element, Document, Class[]) - +Method in class mx4j.tools.adaptor.http.ConstructorsCommandProcessor +
  +
addParameters(Element, Document, MBeanParameterInfo[]) - +Method in class mx4j.tools.adaptor.http.MBeanCommandProcessor +
  +
addPostInterceptor(MBeanServerInterceptor) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Adds the given interceptor at the end of the interceptor chain, after the custom interceptors that may be added + via MBeanServerInterceptorConfigurator.addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor). +
addPreInterceptor(MBeanServerInterceptor) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Adds the given interceptor at the beginning of the interceptor chain, before the custom interceptors that may be added + via MBeanServerInterceptorConfigurator.addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor). +
addProvider(Provider) - +Static method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
addRelationTypeNames(Element, Document, List) - +Method in class mx4j.tools.adaptor.http.RelationCommandProcessor +
put everything into a map as we need to maintain the correct relationTypeName to relationId + TODO: determine how to make relationService tab useful!! +
arrayCopy(char[]) - +Static method in class mx4j.util.Utils +
  +
arrayEquals(Object[], Object[]) - +Static method in class mx4j.util.Utils +
  +
arrayEquals(byte[], byte[]) - +Static method in class mx4j.util.Utils +
  +
arrayHashCode(Object[]) - +Static method in class mx4j.util.Utils +
  +
arrayHashCode(byte[]) - +Static method in class mx4j.util.Utils +
  +
authenticate(Object) - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Authenticates a Subject with the given credentials, by looking up a JMXAuthenticator + in the environment returned by AbstractConnectionManager.getEnvironment(). +
authenticate(Object) - +Method in class mx4j.tools.remote.PasswordAuthenticator +
  +
averageValue - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
+
+

+B

+
+
BCELMBeanInvoker - class mx4j.server.BCELMBeanInvoker.
MBeanInvoker that generates on-the-fly implementations to call standard MBeans directly, instead of using reflection.
BCELMBeanInvoker() - +Constructor for class mx4j.server.BCELMBeanInvoker +
  +
Base64Codec - class mx4j.util.Base64Codec.
This class is copy/paste of Jakarta's Commons-Codec v1.1 org.apache.commons.codec.binary.Base64 + implementation.
BurlapClientInvoker - class mx4j.tools.remote.caucho.burlap.BurlapClientInvoker.
 
BurlapClientInvoker(String) - +Constructor for class mx4j.tools.remote.caucho.burlap.BurlapClientInvoker +
  +
BurlapServlet - class mx4j.tools.remote.caucho.burlap.BurlapServlet.
 
BurlapServlet() - +Constructor for class mx4j.tools.remote.caucho.burlap.BurlapServlet +
  +
bindClient(Object, Map) - +Method in class mx4j.remote.ConnectionResolver +
Connects the client returned by ConnectionResolver.lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side. +
bindClient(Object, Map) - +Method in class mx4j.remote.resolver.iiop.Resolver +
  +
bindClient(Object, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
bindClient(Object, Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
bindClient(Object, Map) - +Method in class mx4j.tools.remote.resolver.local.Resolver +
  +
bindServer(Object, JMXServiceURL, Map) - +Method in class mx4j.remote.ConnectionResolver +
Binds the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL. +
bindServer(Object, JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.iiop.Resolver +
  +
bindServer(Object, JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
bindServer(Object, JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
bindServer(Object, JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.local.Resolver +
  +
booleanVariableValue(HttpInputStream, String, boolean) - +Static method in class mx4j.tools.adaptor.http.HttpUtil +
Returns whether a boolean variable is in the variables. +
buildCommands() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Build the commands +
builder - +Variable in class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor +
  +
+
+

+C

+
+
CLIENT_PROVIDER_CLASS - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
The string 'ClientProvider' as mandated by the spec +
CLOSE_BRACKET - +Static variable in class mx4j.loading.MLetParser +
  +
CLOSE_COMMENT - +Static variable in class mx4j.loading.MLetParser +
  +
CODEBASE_ATTR - +Static variable in class mx4j.loading.MLetParser +
  +
CODE_ATTR - +Static variable in class mx4j.loading.MLetParser +
  +
CONNECTION_HEARTBEAT_PERIOD - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
MX4J's implementation uses this property to specify the period (in ms) of the heartbeat pulse for + JMXConnectors that use heartbeat to check if the + connection with JMXConnectorServers is still alive. +
CONNECTION_HEARTBEAT_RETRIES - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
MX4J's implementation uses this property to specify the number of retries of heartbeat pulses before + declaring the connection between a JMXConnector and a + JMXConnectorServer failed, at which a + notification failed is emitted. +
CachingReflectionMBeanInvoker - class mx4j.server.CachingReflectionMBeanInvoker.
Caching MBeanInvoker that uses reflection to invoke on MBean instances.
CachingReflectionMBeanInvoker() - +Constructor for class mx4j.server.CachingReflectionMBeanInvoker +
  +
CauchoClientInvoker - class mx4j.tools.remote.caucho.CauchoClientInvoker.
 
CauchoClientInvoker(String) - +Constructor for class mx4j.tools.remote.caucho.CauchoClientInvoker +
  +
CauchoInput - interface mx4j.tools.remote.caucho.CauchoInput.
 
CauchoOutput - interface mx4j.tools.remote.caucho.CauchoOutput.
 
CauchoService - class mx4j.tools.remote.caucho.CauchoService.
 
CauchoService(String) - +Constructor for class mx4j.tools.remote.caucho.CauchoService +
  +
CauchoServlet - class mx4j.tools.remote.caucho.CauchoServlet.
 
CauchoServlet() - +Constructor for class mx4j.tools.remote.caucho.CauchoServlet +
  +
ChainedMBeanServer - class mx4j.server.ChainedMBeanServer.
Base class for chained MBeanServers.
ChainedMBeanServer() - +Constructor for class mx4j.server.ChainedMBeanServer +
Creates a new ChainedMBeanServer that will delegate to an MBeanServer specified + using ChainedMBeanServer.setMBeanServer(javax.management.MBeanServer) +
ChainedMBeanServer(MBeanServer) - +Constructor for class mx4j.server.ChainedMBeanServer +
Creates a new ChainedMBeanServer that delegates to the specified MBeanServer. +
ChainedMBeanServerBuilder - class mx4j.server.ChainedMBeanServerBuilder.
Base class for chained MBeanServerBuilders.
ChainedMBeanServerBuilder(MBeanServerBuilder) - +Constructor for class mx4j.server.ChainedMBeanServerBuilder +
Creates a new chained MBeanServerBuilder +
ClassLoaderObjectInputStream - class mx4j.loading.ClassLoaderObjectInputStream.
ObjectInputStream that can read serialized java Objects using a supplied classloader + to find the object's classes.
ClassLoaderObjectInputStream(InputStream, ClassLoader) - +Constructor for class mx4j.loading.ClassLoaderObjectInputStream +
Creates a new ClassLoaderObjectInputStream +
ClientExceptionCatcher - class mx4j.remote.rmi.ClientExceptionCatcher.
 
ClientInvoker - class mx4j.remote.rmi.ClientInvoker.
An MBeanServerConnection that "converts" the MBeanServerConnection calls to RMIConnection calls, + performing wrapping of parameters and/or the needed actions.
ClientInvoker(RMIConnection, RemoteNotificationClientHandler, Subject) - +Constructor for class mx4j.remote.rmi.ClientInvoker +
  +
ClientProvider - class mx4j.remote.provider.iiop.ClientProvider.
 
ClientProvider() - +Constructor for class mx4j.remote.provider.iiop.ClientProvider +
  +
ClientProvider - class mx4j.remote.provider.rmi.ClientProvider.
 
ClientProvider() - +Constructor for class mx4j.remote.provider.rmi.ClientProvider +
  +
ClientProvider - class mx4j.tools.remote.provider.burlap.ClientProvider.
 
ClientProvider() - +Constructor for class mx4j.tools.remote.provider.burlap.ClientProvider +
  +
ClientProvider - class mx4j.tools.remote.provider.burlap.ssl.ClientProvider.
 
ClientProvider() - +Constructor for class mx4j.tools.remote.provider.burlap.ssl.ClientProvider +
  +
ClientProvider - class mx4j.tools.remote.provider.hessian.ClientProvider.
 
ClientProvider() - +Constructor for class mx4j.tools.remote.provider.hessian.ClientProvider +
  +
ClientProvider - class mx4j.tools.remote.provider.hessian.ssl.ClientProvider.
 
ClientProvider() - +Constructor for class mx4j.tools.remote.provider.hessian.ssl.ClientProvider +
  +
ClientProvider - class mx4j.tools.remote.provider.local.ClientProvider.
 
ClientProvider() - +Constructor for class mx4j.tools.remote.provider.local.ClientProvider +
  +
ClientProvider - class mx4j.tools.remote.provider.soap.ClientProvider.
SOAP Connector Client Provider
ClientProvider() - +Constructor for class mx4j.tools.remote.provider.soap.ClientProvider +
  +
ClientProvider - class mx4j.tools.remote.provider.soap.ssl.ClientProvider.
 
ClientProvider() - +Constructor for class mx4j.tools.remote.provider.soap.ssl.ClientProvider +
  +
ClientProxy - class mx4j.remote.ClientProxy.
 
ClientProxy(MBeanServerConnection) - +Constructor for class mx4j.remote.ClientProxy +
  +
ClientUnmarshaller - class mx4j.remote.rmi.ClientUnmarshaller.
An MBeanServerConnection proxy that performs the setting of the appropriate context classloader + to allow classloading of classes sent by the server but not known to the client, in methods like + MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String), MBeanServerConnection.invoke(javax.management.ObjectName, java.lang.String, java.lang.Object[], java.lang.String[]) and so on.
CommandProcessorUtil - class mx4j.tools.adaptor.http.CommandProcessorUtil.
Contains utilities common to CommandProcessor objects
CommandProcessorUtil() - +Constructor for class mx4j.tools.adaptor.http.CommandProcessorUtil +
  +
CommonsLogger - class mx4j.log.CommonsLogger.
Log that redirects log calls to Jakarta Commons Logging.
CommonsLogger() - +Constructor for class mx4j.log.CommonsLogger +
  +
ConfigurationBuilder - interface mx4j.tools.config.ConfigurationBuilder.
 
ConfigurationBuilder.Node - interface mx4j.tools.config.ConfigurationBuilder.Node.
 
ConfigurationBuilder.ObjectsHolder - interface mx4j.tools.config.ConfigurationBuilder.ObjectsHolder.
 
ConfigurationException - exception mx4j.tools.config.ConfigurationException.
 
ConfigurationException() - +Constructor for class mx4j.tools.config.ConfigurationException +
  +
ConfigurationException(String) - +Constructor for class mx4j.tools.config.ConfigurationException +
  +
ConfigurationException(Throwable) - +Constructor for class mx4j.tools.config.ConfigurationException +
  +
ConfigurationException(String, Throwable) - +Constructor for class mx4j.tools.config.ConfigurationException +
  +
ConfigurationLoader - class mx4j.tools.config.ConfigurationLoader.
 
ConfigurationLoader() - +Constructor for class mx4j.tools.config.ConfigurationLoader +
  +
ConfigurationLoader(ConfigurationBuilder) - +Constructor for class mx4j.tools.config.ConfigurationLoader +
  +
ConfigurationLoader(MBeanServer) - +Constructor for class mx4j.tools.config.ConfigurationLoader +
  +
ConfigurationLoader(MBeanServer, ConfigurationBuilder) - +Constructor for class mx4j.tools.config.ConfigurationLoader +
  +
ConfigurationLoaderMBean - interface mx4j.tools.config.ConfigurationLoaderMBean.
 
Connection - interface mx4j.tools.remote.Connection.
Represents a connection between a client and a server.
ConnectionIDRequestHandler - class mx4j.tools.remote.soap.ConnectionIDRequestHandler.
This class is used in the Axis deployment descriptor, and parses the SOAP header + (on server-side) that contains the connection ID sent by the client.
ConnectionIDRequestHandler() - +Constructor for class mx4j.tools.remote.soap.ConnectionIDRequestHandler +
  +
ConnectionManager - interface mx4j.tools.remote.ConnectionManager.
A ConnectionManager is a server-side object that acts as the factory for new connections and + manages the authentication details.
ConnectionNotificationEmitter - class mx4j.remote.ConnectionNotificationEmitter.
 
ConnectionNotificationEmitter(JMXConnector) - +Constructor for class mx4j.remote.ConnectionNotificationEmitter +
  +
ConnectionResolver - class mx4j.remote.ConnectionResolver.
ConnectionResolver handles the details of creating connections for different protocols.
ConnectionResolver() - +Constructor for class mx4j.remote.ConnectionResolver +
  +
ConstructorsCommandProcessor - class mx4j.tools.adaptor.http.ConstructorsCommandProcessor.
ConstructorsCommandProcessor, processes a request to query the available + constructors for a classname
ConstructorsCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.ConstructorsCommandProcessor +
  +
ContextClassLoaderMBeanServerInterceptor - class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.
This interceptor sets the context class loader to the proper value for incoming calls.
ContextClassLoaderMBeanServerInterceptor() - +Constructor for class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
CosNamingService - class mx4j.tools.naming.CosNamingService.
An MBean that wraps tnameserv.
CosNamingService() - +Constructor for class mx4j.tools.naming.CosNamingService +
Creates a new instance of CosNamingService with the default port (900). +
CosNamingService(int) - +Constructor for class mx4j.tools.naming.CosNamingService +
Creates a new instance of CosNamingService with the specified port. +
CosNamingServiceMBean - interface mx4j.tools.naming.CosNamingServiceMBean.
Management interface for the CosNamingService MBean.
CosNamingServiceMBeanDescription - class mx4j.tools.naming.CosNamingServiceMBeanDescription.
Management interface descriptions for the CosNamingService MBean.
CosNamingServiceMBeanDescription() - +Constructor for class mx4j.tools.naming.CosNamingServiceMBeanDescription +
  +
CreateMBeanCommandProcessor - class mx4j.tools.adaptor.http.CreateMBeanCommandProcessor.
CreateMBeanCommandProcessor, processes a request for creating and registering + an MBean
CreateMBeanCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.CreateMBeanCommandProcessor +
Constructs a new CreateMBeanCommandProcessor +
cacheMBeanInfo(MBeanInfo) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Once the MBeanInfo has been obtained discard our caches. +
canCreateParameterValue(String) - +Static method in class mx4j.tools.adaptor.http.CommandProcessorUtil +
Checks if the given type is primitive of can be initialized from String.
+ This is done by trying to load the class and checking if there is a public String + only constructor. +
canonicalizePath(String) - +Static method in class mx4j.tools.adaptor.http.HttpUtil +
Makes a path canonical +
chain(Object, Method, Object[]) - +Method in class mx4j.tools.remote.SubjectInvoker +
  +
checkRelationServiceIsRegistered() - +Method in class mx4j.tools.adaptor.http.RelationCommandProcessor +
  +
clear() - +Method in class mx4j.timer.TimeQueue +
Removes all the tasks from this TimeQueue. +
clearInterceptors() - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Removes all the interceptors added via MBeanServerInterceptorConfigurator.addInterceptor(MBeanServerInterceptor interceptor). +
clearInterceptors() - +Method in interface mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBean +
Removes all the interceptors added via MBeanServerInterceptorConfiguratorMBean.addInterceptor(MBeanServerInterceptor interceptor). +
clearNotificationStatus() - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
clearNotificationStatus() - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
clearNotificationStatus() - +Method in class mx4j.monitor.MX4JMonitor.MonitorInfo +
  +
clearNotificationStatus() - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
clearObservedObjects() - +Method in class mx4j.monitor.MX4JMonitor +
  +
clone() - +Method in interface mx4j.server.MBeanRepository +
Clones this MBean repository +
cloneClassLoaders() - +Method in class mx4j.server.DefaultClassLoaderRepository +
  +
close() - +Method in class mx4j.remote.DefaultRemoteNotificationServerHandler +
  +
close() - +Method in interface mx4j.remote.RemoteNotificationServerHandler +
Closes this handler, that will not accept anymore add or removal of listeners +
close() - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
close() - +Method in class mx4j.tools.remote.AbstractConnection +
  +
close() - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Implemented using the template method pattern +
close() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
close() - +Method in interface mx4j.tools.remote.Connection +
Closes this connection +
close() - +Method in interface mx4j.tools.remote.ConnectionManager +
Closes this ConnectionManager and all the opened connections it manages. +
close() - +Method in interface mx4j.tools.remote.JMXConnection +
  +
close() - +Method in class mx4j.tools.remote.JMXConnectionHandler +
Overridden to allow nested connections to close and release their resources and, afterwards, + to close this connection with the JSR 160 semantic provided by the superclass. +
close() - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
close() - +Method in class mx4j.tools.remote.http.HTTPServerInvoker +
  +
close() - +Method in class mx4j.tools.remote.http.HTTPService +
  +
close() - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
closeConnection(Connection) - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Implemented using the template method pattern, handles the emission of the connection notification + of type "closed". +
closeConnection(Connection) - +Method in interface mx4j.tools.remote.ConnectionManager +
Closes the given Connection. +
code - +Variable in class mx4j.tools.adaptor.http.HttpException +
Error code +
code - +Variable in class mx4j.tools.adaptor.http.HttpOutputStream +
Answer code +
compare(Number, Number) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
compare(Number, Number) - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
compare(String, String) - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
compareTo(Object) - +Method in class mx4j.timer.TimeTask +
Compares 2 TimeTasks by comparing their next execution times +
compareTo(Object) - +Method in class mx4j.tools.stats.PointTime +
  +
completeCall() - +Method in interface mx4j.tools.remote.caucho.CauchoInput +
  +
completeCall() - +Method in interface mx4j.tools.remote.caucho.CauchoOutput +
  +
completeReply() - +Method in interface mx4j.tools.remote.caucho.CauchoInput +
  +
completeReply() - +Method in interface mx4j.tools.remote.caucho.CauchoOutput +
  +
configure(MBeanServer) - +Method in interface mx4j.tools.config.ConfigurationBuilder.Node +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Arg +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Call +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Configuration +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Create +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.New +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Object +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Register +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Shutdown +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Startup +
  +
configure(MBeanServer) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Unregister +
  +
configureListener(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.jetty.JettyWebContainer +
  +
connect(Object) - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Implemented using the template method pattern, it handles authentication, creation of the connection ID, + emission of connection notification of type "opened". +
connect() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
connect(Map) - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
connect(Object) - +Method in interface mx4j.tools.remote.ConnectionManager +
Factory method that creates connections that are specific to the client that invoked this method. +
connect(Object) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
connect(Object) - +Method in interface mx4j.tools.remote.http.HTTPConnection +
This method is called when a call initiated by JMXConnector.connect() + arrives on server side. +
connect(Object) - +Method in class mx4j.tools.remote.http.HTTPConnectionHandler +
  +
connect(Object) - +Method in class mx4j.tools.remote.http.HTTPServerInvoker +
  +
connect(Object) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
connect(Object) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
connectionClosed(String, String, Object) - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
connectionFailed(String, String, Object) - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
connectionOpened(String, String, Object) - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
constructClassName(String, String, String) - +Static method in class mx4j.remote.ProviderHelper +
  +
contains(NotificationTuple) - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
  +
contains(NotificationTuple) - +Method in interface mx4j.remote.RemoteNotificationClientHandler +
Returns whether the tuple is already present in this handler +
containsKey(String) - +Method in interface mx4j.tools.config.ConfigurationBuilder.ObjectsHolder +
  +
containsKey(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Configuration +
  +
containsObservedObject(ObjectName) - +Method in class mx4j.monitor.MX4JMonitor +
  +
containsObservedObject(ObjectName) - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
convertPriority(int) - +Method in class mx4j.log.Log4JLogger +
Converts MX4J priority to Log4J priority +
count - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
create(MBeanMetaData) - +Static method in class mx4j.server.BCELMBeanInvoker +
Creates a new MBeanInvoker created on-the-fly by using BCEL. +
create() - +Static method in class mx4j.server.MBeanMetaData.Factory +
  +
createArchiveURL(URL, String) - +Method in class mx4j.loading.MLetTag +
Returns the URL for the given archive file name using the provided URL as a codebase, + or null if the URL cannot be created. +
createCauchoInput(InputStream) - +Method in class mx4j.tools.remote.caucho.CauchoClientInvoker +
  +
createCauchoInput(InputStream) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
createCauchoInput(InputStream) - +Method in class mx4j.tools.remote.caucho.burlap.BurlapClientInvoker +
  +
createCauchoInput(InputStream) - +Method in class mx4j.tools.remote.caucho.burlap.BurlapServlet +
  +
createCauchoInput(InputStream) - +Method in class mx4j.tools.remote.caucho.hessian.HessianClientInvoker +
  +
createCauchoInput(InputStream) - +Method in class mx4j.tools.remote.caucho.hessian.HessianServlet +
  +
createCauchoOutput(OutputStream) - +Method in class mx4j.tools.remote.caucho.CauchoClientInvoker +
  +
createCauchoOutput(OutputStream) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
createCauchoOutput(OutputStream) - +Method in class mx4j.tools.remote.caucho.burlap.BurlapClientInvoker +
  +
createCauchoOutput(OutputStream) - +Method in class mx4j.tools.remote.caucho.burlap.BurlapServlet +
  +
createCauchoOutput(OutputStream) - +Method in class mx4j.tools.remote.caucho.hessian.HessianClientInvoker +
  +
createCauchoOutput(OutputStream) - +Method in class mx4j.tools.remote.caucho.hessian.HessianServlet +
  +
createClassComparator() - +Static method in class mx4j.tools.adaptor.http.CommandProcessorUtil +
  +
createConfigurationNode(Element) - +Method in interface mx4j.tools.config.ConfigurationBuilder +
  +
createConfigurationNode(Element) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder +
  +
createConnectionID(String, String, int, Subject) - +Static method in class mx4j.remote.MX4JRemoteUtils +
  +
createConnectionID(Subject) - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Returns a connection ID as specified by JSR 160. +
createConnectionManager(AbstractJMXConnectorServer, JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.HTTPConnectorServer +
  +
createConnectionNotificationEmitter() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
Creates a notification emitter used to emit connection notifications. +
createConstructorComparator() - +Static method in class mx4j.tools.adaptor.http.CommandProcessorUtil +
  +
createHeartBeat(HTTPConnection, ConnectionNotificationEmitter, Map) - +Method in class mx4j.tools.remote.http.HTTPConnector +
  +
createLoggerPrototype() - +Method in class mx4j.log.LoggerBroadcaster +
  +
createMBean(String, ObjectName) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
createMBean(String, ObjectName, Object[], String[]) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
createMBean(String, ObjectName, ObjectName) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
createMBean(String, ObjectName, ObjectName, Object[], String[]) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
createMBean(String, ObjectName, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
createMBean(String, ObjectName, ObjectName, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
createMBean(String, ObjectName, MarshalledObject, String[], Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
createMBean(String, ObjectName, ObjectName, MarshalledObject, String[], Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
createMBean(String, ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
createMBean(String, ObjectName, Object[], String[]) - +Method in class mx4j.server.ChainedMBeanServer +
  +
createMBean(String, ObjectName, ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
createMBean(String, ObjectName, ObjectName, Object[], String[]) - +Method in class mx4j.server.ChainedMBeanServer +
  +
createMBean(String, ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
createMBean(String, ObjectName, Object[], String[]) - +Method in class mx4j.server.MX4JMBeanServer +
  +
createMBean(String, ObjectName, ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
createMBean(String, ObjectName, ObjectName, Object[], String[]) - +Method in class mx4j.server.MX4JMBeanServer +
  +
createMBean(String, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
createMBean(String, ObjectName, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
createMBean(String, ObjectName, Object, String[], Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
createMBean(String, ObjectName, ObjectName, Object, String[], Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
createMBean(String, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
createMBean(String, ObjectName, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
createMBean(String, ObjectName) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
createMBean(String, ObjectName, Object[], String[]) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
createMBean(String, ObjectName, ObjectName) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
createMBean(String, ObjectName, ObjectName, Object[], String[]) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
createMBean(String, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
createMBean(String, ObjectName, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
createMBean(String, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
createMBean(String, ObjectName, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
createMBean(String, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
createMBean(String, ObjectName, ObjectName, Object, String[], Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
createMBeanAttributeInfo() - +Method in class mx4j.AbstractDynamicMBean +
To be overridden to return metadata information about manageable attributes. +
createMBeanConstructorInfo() - +Method in class mx4j.AbstractDynamicMBean +
To be overridden to return metadata information about manageable constructors. +
createMBeanInfo() - +Method in class mx4j.AbstractDynamicMBean +
Creates the MBeanInfo for this instance, calling in succession factory methods that the user can override. +
createMBeanNotificationInfo() - +Method in class mx4j.AbstractDynamicMBean +
To be overridden to return metadata information about manageable notifications. +
createMBeanOperationInfo() - +Method in class mx4j.AbstractDynamicMBean +
To be overridden to return metadata information about manageable operations. +
createMonitorInfo() - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
createMonitorInfo() - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
createMonitorInfo() - +Method in class mx4j.monitor.MX4JMonitor +
  +
createMonitorInfo() - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
createMonitorNotification(String, long, String, ObjectName, String, Object, Object) - +Method in class mx4j.monitor.MX4JMonitor +
  +
createNotificationEmitter() - +Method in class mx4j.monitor.MX4JMonitor +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.AttributeDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.AttributeListDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.AxisDeserializer +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationResultDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.ObjectNameDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.PrincipalDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.RoleDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.RoleInfoDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.RoleListDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.RoleResultDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.SetDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.SubjectDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeser +
  +
createObject() - +Method in class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeser +
  +
createObjectInstanceComparator() - +Static method in class mx4j.tools.adaptor.http.CommandProcessorUtil +
  +
createObjectNameComparator() - +Static method in class mx4j.tools.adaptor.http.CommandProcessorUtil +
  +
createParameterValue(String, String) - +Static method in class mx4j.tools.adaptor.http.CommandProcessorUtil +
Creates a parameter object of the given type containing a given value. +
createRMIServer(JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.iiop.Resolver +
  +
createRMIServer(JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
createRemoteNotificationClientHandler(HTTPConnection, ConnectionNotificationEmitter, HeartBeat, Map) - +Method in class mx4j.tools.remote.http.HTTPConnector +
  +
createServer(JMXServiceURL, Map) - +Method in class mx4j.remote.ConnectionResolver +
Creates an instance of the server as specified in the given JMXServiceURL. +
createServer(JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
createServer(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
createServer(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.local.Resolver +
  +
createServerSocket(int, int, String) - +Method in interface mx4j.tools.adaptor.AdaptorServerSocketFactory +
Creates a new ServerSocket on the specified port, with the specified backlog and on the given host. +
createServerSocket(int, int, String) - +Method in class mx4j.tools.adaptor.PlainAdaptorServerSocketFactory +
  +
createServerSocket(int, int, String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
Returns a SSLServerSocket on the given port. +
createServerSocket(int) - +Method in class mx4j.tools.remote.rmi.SSLRMIServerSocketFactory +
  +
createService() - +Method in class mx4j.tools.remote.caucho.burlap.BurlapServlet +
  +
createService() - +Method in class mx4j.tools.remote.caucho.burlap.SSLBurlapServlet +
  +
createService() - +Method in class mx4j.tools.remote.caucho.hessian.HessianServlet +
  +
createService() - +Method in class mx4j.tools.remote.caucho.hessian.SSLHessianServlet +
  +
createSocket(String, int) - +Method in class mx4j.tools.remote.rmi.SSLRMIClientSocketFactory +
  +
createTransformer(String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
createWebContainer(JMXServiceURL, String, Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
+
+

+D

+
+
DEBUG - +Static variable in class mx4j.log.Logger +
  +
DEFAULT_WEB_CONTAINER_CLASS - +Static variable in class mx4j.tools.remote.http.HTTPResolver +
  +
DefaultClassLoaderRepository - class mx4j.server.DefaultClassLoaderRepository.
Default implementation of a ClassLoaderRepository
DefaultClassLoaderRepository() - +Constructor for class mx4j.server.DefaultClassLoaderRepository +
  +
DefaultConfigurationBuilder - class mx4j.tools.config.DefaultConfigurationBuilder.
 
DefaultConfigurationBuilder() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder +
  +
DefaultConfigurationBuilder.AbstractNode - class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode.
 
DefaultConfigurationBuilder.AbstractNode() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode +
  +
DefaultConfigurationBuilder.Arg - class mx4j.tools.config.DefaultConfigurationBuilder.Arg.
 
DefaultConfigurationBuilder.Arg() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.Arg +
  +
DefaultConfigurationBuilder.Call - class mx4j.tools.config.DefaultConfigurationBuilder.Call.
 
DefaultConfigurationBuilder.Call() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.Call +
  +
DefaultConfigurationBuilder.Configuration - class mx4j.tools.config.DefaultConfigurationBuilder.Configuration.
 
DefaultConfigurationBuilder.Configuration() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.Configuration +
  +
DefaultConfigurationBuilder.Create - class mx4j.tools.config.DefaultConfigurationBuilder.Create.
 
DefaultConfigurationBuilder.Create() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.Create +
  +
DefaultConfigurationBuilder.New - class mx4j.tools.config.DefaultConfigurationBuilder.New.
 
DefaultConfigurationBuilder.New() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.New +
  +
DefaultConfigurationBuilder.Object - class mx4j.tools.config.DefaultConfigurationBuilder.Object.
 
DefaultConfigurationBuilder.Object() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.Object +
  +
DefaultConfigurationBuilder.Register - class mx4j.tools.config.DefaultConfigurationBuilder.Register.
 
DefaultConfigurationBuilder.Register() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.Register +
  +
DefaultConfigurationBuilder.Shutdown - class mx4j.tools.config.DefaultConfigurationBuilder.Shutdown.
 
DefaultConfigurationBuilder.Shutdown() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.Shutdown +
  +
DefaultConfigurationBuilder.Startup - class mx4j.tools.config.DefaultConfigurationBuilder.Startup.
 
DefaultConfigurationBuilder.Startup() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.Startup +
  +
DefaultConfigurationBuilder.Unregister - class mx4j.tools.config.DefaultConfigurationBuilder.Unregister.
 
DefaultConfigurationBuilder.Unregister() - +Constructor for class mx4j.tools.config.DefaultConfigurationBuilder.Unregister +
  +
DefaultMBeanServerInterceptor - class mx4j.server.interceptor.DefaultMBeanServerInterceptor.
Base class for MBeanServer --> MBean interceptors.
DefaultMBeanServerInterceptor() - +Constructor for class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
DefaultMBeanServerInterceptorMBean - interface mx4j.server.interceptor.DefaultMBeanServerInterceptorMBean.
Management interface for the DefaultMBeanServerInterceptor MBean
DefaultMBeanServerInterceptorMBeanDescription - class mx4j.server.interceptor.DefaultMBeanServerInterceptorMBeanDescription.
Management interface description for the DefaultMBeanServerInterceptor MBean
DefaultMBeanServerInterceptorMBeanDescription() - +Constructor for class mx4j.server.interceptor.DefaultMBeanServerInterceptorMBeanDescription +
  +
DefaultProcessor - class mx4j.tools.adaptor.http.DefaultProcessor.
DefaultPostProcessor doesn't alter the result, just publising the xml file
DefaultProcessor() - +Constructor for class mx4j.tools.adaptor.http.DefaultProcessor +
  +
DefaultRemoteNotificationServerHandler - class mx4j.remote.DefaultRemoteNotificationServerHandler.
Base implementation of the RemoteNotificationServerHandler interface.
DefaultRemoteNotificationServerHandler(Map) - +Constructor for class mx4j.remote.DefaultRemoteNotificationServerHandler +
Creates a new remote notification server handler. +
DeleteMBeanCommandProcessor - class mx4j.tools.adaptor.http.DeleteMBeanCommandProcessor.
DeleteMBeanCommandProcessor, processes a request for unregistering an MBean
DeleteMBeanCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.DeleteMBeanCommandProcessor +
  +
debug(Object) - +Method in class mx4j.log.Logger +
  +
debug(Object, Throwable) - +Method in class mx4j.log.Logger +
  +
decodeBase64(byte[]) - +Static method in class mx4j.util.Base64Codec +
  +
decodeStub(JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.iiop.Resolver +
  +
decodeStub(JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
deploy(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
deploy(String, JMXServiceURL, Map) - +Method in interface mx4j.tools.remote.http.WebContainer +
Deploys the given servlet class mapping it to the URL specified by the given JMXServiceURL. +
deploy(String, JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.jetty.JettyWebContainer +
  +
deploy(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.soap.Resolver +
  +
deserialize(String, byte[]) - +Method in class mx4j.server.ChainedMBeanServer +
  +
deserialize(String, ObjectName, byte[]) - +Method in class mx4j.server.ChainedMBeanServer +
  +
deserialize(ObjectName, byte[]) - +Method in class mx4j.server.ChainedMBeanServer +
  +
deserialize(String, ObjectName, byte[]) - +Method in class mx4j.server.MX4JMBeanServer +
  +
deserialize(String, byte[]) - +Method in class mx4j.server.MX4JMBeanServer +
  +
deserialize(ObjectName, byte[]) - +Method in class mx4j.server.MX4JMBeanServer +
  +
destroy() - +Method in class mx4j.tools.remote.caucho.burlap.BurlapServlet +
  +
destroy() - +Method in class mx4j.tools.remote.caucho.hessian.HessianServlet +
  +
destroyServer(Object, JMXServiceURL, Map) - +Method in class mx4j.remote.ConnectionResolver +
Destroys the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time +
destroyServer(Object, JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.iiop.Resolver +
  +
destroyServer(Object, JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
destroyServer(Object, JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
destroyServer(Object, JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.local.Resolver +
  +
doClose() - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Closes this ConnectionManager but not the connections it manages +
doClose() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
Template method to be implemented by subclasses to close this JMXConnector +
doClose() - +Method in class mx4j.tools.remote.http.HTTPConnectionManager +
HTTPConnectionManager does not really manages connections, + so this method does nothing by default +
doClose() - +Method in class mx4j.tools.remote.http.HTTPConnector +
  +
doClose() - +Method in class mx4j.tools.remote.local.LocalConnector +
  +
doCloseConnection(Connection) - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Closes the given Connection. +
doCloseConnection(Connection) - +Method in class mx4j.tools.remote.http.HTTPConnectionManager +
HTTPConnectionManager does not really manages connections, + so this method does nothing by default +
doConnect(String, Subject) - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Template method to be implemented by subclasses; must return the server-side part of + a connection. +
doConnect(Map) - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
doConnect(String, Subject) - +Method in class mx4j.tools.remote.http.HTTPConnectionManager +
  +
doConnect(Map) - +Method in class mx4j.tools.remote.http.HTTPConnector +
  +
doConnect(Map) - +Method in class mx4j.tools.remote.local.LocalConnector +
  +
doGetMBeanServerConnection(Subject) - +Method in class mx4j.tools.remote.AbstractJMXConnector +
Template method to be implemented by subclasses to return an MBeanServerConnection + for the given delegate subject. +
doGetMBeanServerConnection(Subject) - +Method in class mx4j.tools.remote.http.HTTPConnector +
  +
doGetMBeanServerConnection(Subject) - +Method in class mx4j.tools.remote.local.LocalConnector +
  +
doGetMBeanServerConnection(Subject) - +Method in class mx4j.tools.remote.soap.SOAPConnector +
  +
doInvoke(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.ReflectionMBeanInvoker +
Centralizes exception handling necessary to convert exceptions thrown by MBean's methods to + JMX exceptions. +
doStart() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
Template method implemented by subclasses to start this JMXConnectorServer +
doStart() - +Method in class mx4j.tools.remote.http.HTTPConnectorServer +
  +
doStart() - +Method in class mx4j.tools.remote.local.LocalConnectorServer +
  +
doStart() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
Subclasses may override this to offer a custom startup procedure +
doStart() - +Method in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
doStop() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
Template method implemented by subclasses to stop this JMXConnectorServer +
doStop() - +Method in class mx4j.tools.remote.http.HTTPConnectorServer +
  +
doStop() - +Method in class mx4j.tools.remote.local.LocalConnectorServer +
  +
doStop() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
Subclasses may override this to offer a custom stop procedure +
doStop() - +Method in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
+
+

+E

+
+
EMBEDDED_WEB_CONTAINER_CLASS - +Static variable in class mx4j.tools.remote.http.HTTPConnectorServer +
  +
EMPTY_ARGS - +Static variable in class mx4j.server.ReflectionMBeanInvoker +
A zero-length Object[] that indicates a parameterless argument list of a method +
EMPTY_PARAMS - +Static variable in class mx4j.server.ReflectionMBeanInvoker +
A zero-length String[] that indicates a parameterless signature of a method. +
ERROR - +Static variable in class mx4j.log.Logger +
  +
EmptyCommandProcessor - class mx4j.tools.adaptor.http.EmptyCommandProcessor.
EmptyCommandProcessor, returns an empty xml tree
EmptyCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.EmptyCommandProcessor +
Constructs a new EmptyCommandProcessor +
encodeBase64(byte[]) - +Static method in class mx4j.util.Base64Codec +
  +
encodeStub(RMIServerImpl, Map) - +Method in class mx4j.remote.resolver.iiop.Resolver +
  +
encodeStub(RMIServerImpl, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
entries - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
equals(Object) - +Method in class mx4j.remote.NotificationTuple +
  +
equals(Object) - +Method in class mx4j.timer.TimerTask +
  +
equals(Object) - +Method in class mx4j.tools.remote.rmi.SSLRMIClientSocketFactory +
  +
equals(Object) - +Method in class mx4j.tools.stats.PointTime +
  +
error(Object) - +Method in class mx4j.log.Logger +
  +
error(Object, Throwable) - +Method in class mx4j.log.Logger +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.ConstructorsCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.CreateMBeanCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.DeleteMBeanCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.EmptyCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.GetAttributeCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in interface mx4j.tools.adaptor.http.HttpCommandProcessor +
Executes an HTTP request. +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.InvokeOperationCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.MBeanCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.RelationCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.ServerByDomainCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.ServerCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.SetAttributeCommandProcessor +
  +
executeRequest(HttpInputStream) - +Method in class mx4j.tools.adaptor.http.SetAttributesCommandProcessor +
  +
+
+

+F

+
+
FATAL - +Static variable in class mx4j.log.Logger +
  +
FETCH_NOTIFICATIONS_MAX_NUMBER - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
The reference implementation uses this property to specify the maximum number of notification to fetch. +
FETCH_NOTIFICATIONS_SLEEP - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
MX4J's implementation uses this property to specify the amount of time (in ms) the client should sleep + between notification fetches. +
FETCH_NOTIFICATIONS_TIMEOUT - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
The reference implementation uses this property to specify the notification fetch timeout (in ms). +
FileLogger - class mx4j.log.FileLogger.
This logger logs to a file.
FileLogger(String) - +Constructor for class mx4j.log.FileLogger +
  +
FilePersister - class mx4j.persist.FilePersister.
A persister object that stores to files.
FilePersister(String, String) - +Constructor for class mx4j.persist.FilePersister +
Creates a new FilePersister. +
fatal(Object) - +Method in class mx4j.log.Logger +
  +
fatal(Object, Throwable) - +Method in class mx4j.log.Logger +
  +
fetchNotifications(long, int, long) - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
Calls the server side to fetch notifications. +
fetchNotifications(long, int, long) - +Method in class mx4j.remote.DefaultRemoteNotificationServerHandler +
  +
fetchNotifications(long, int, long) - +Method in interface mx4j.remote.RemoteNotificationServerHandler +
Fetches notifications from the notification buffer in order to send them + to the client side +
fetchNotifications(long, int, long) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
fetchNotifications(long, int, long) - +Method in class mx4j.remote.rmi.RMIRemoteNotificationClientHandler +
  +
fetchNotifications(long, int, long) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
fetchNotifications(long, int, long) - +Method in interface mx4j.tools.remote.http.HTTPConnection +
  +
fetchNotifications(long, int, long) - +Method in class mx4j.tools.remote.http.HTTPConnectionHandler +
  +
fetchNotifications(long, int, long) - +Method in class mx4j.tools.remote.http.HTTPRemoteNotificationClientHandler +
  +
fetchNotifications(long, int, long) - +Method in class mx4j.tools.remote.http.HTTPServerInvoker +
  +
fetchNotifications(long, int, long) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
fetchNotifications(long, int, long) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
filterNotifications(TargetedNotification[]) - +Method in class mx4j.remote.DefaultRemoteNotificationServerHandler +
This method filters the given notification array and returns a possibly smaller array containing + only notifications that passed successfully the filtering. +
find(JMXServiceURL) - +Static method in class mx4j.tools.remote.local.LocalConnectorServer +
  +
findConnection() - +Method in class mx4j.tools.remote.http.HTTPService +
  +
findConnectionId() - +Method in class mx4j.tools.remote.caucho.CauchoService +
  +
findConnectionId() - +Method in class mx4j.tools.remote.http.HTTPService +
  +
findConnectionId() - +Method in class mx4j.tools.remote.soap.SOAPService +
  +
findJMXServiceURL() - +Method in class mx4j.tools.remote.http.HTTPService +
  +
findMethod(Class, String, Class[]) - +Method in class mx4j.AbstractDynamicMBean +
Returns the (public) method with the given name and signature on the given class. +
findMethod(String) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
findRequestURL() - +Method in class mx4j.tools.remote.caucho.CauchoService +
  +
findRequestURL() - +Method in class mx4j.tools.remote.http.HTTPService +
  +
findRequestURL() - +Method in class mx4j.tools.remote.soap.SOAPService +
  +
findSystemPackageList(String) - +Static method in class mx4j.remote.ProviderHelper +
  +
findUnknownElement(String, HttpOutputStream, HttpInputStream) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
+
+

+G

+
+
GetAttributeCommandProcessor - class mx4j.tools.adaptor.http.GetAttributeCommandProcessor.
GetAttributeCommandProcessor, processes a request for getting one attribute + of a specific MBean.
GetAttributeCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.GetAttributeCommandProcessor +
  +
generateListenerID(ObjectName, NotificationFilter) - +Method in class mx4j.remote.DefaultRemoteNotificationServerHandler +
  +
generateListenerID(ObjectName, NotificationFilter) - +Method in interface mx4j.remote.RemoteNotificationServerHandler +
Returns a unique ID for a client-side NotificationListener +
get(ObjectName) - +Method in interface mx4j.server.MBeanRepository +
Returns the metadata information associated with the given object name. +
get(String, String[]) - +Method in class mx4j.util.MethodTernaryTree +
Returns the method information given the method name and its signature. +
getAddress() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
Returns the JMXServiceURL this JMXConnector will connect to. +
getAddress() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
getArchive() - +Method in class mx4j.loading.MLetTag +
  +
getArguments() - +Method in class mx4j.loading.MLetTag +
  +
getAttribute(String) - +Method in class mx4j.AbstractDynamicMBean +
Returns the value of the manageable attribute, as specified by the DynamicMBean interface. +
getAttribute(ObjectName, String) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
getAttribute(ObjectName, String, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
getAttribute(ObjectName, String) - +Method in class mx4j.server.ChainedMBeanServer +
  +
getAttribute(MBeanMetaData, String) - +Method in interface mx4j.server.MBeanInvoker +
Returns the value of the specified attribute. +
getAttribute(ObjectName, String) - +Method in class mx4j.server.MX4JMBeanServer +
  +
getAttribute(MBeanMetaData, String) - +Method in class mx4j.server.ReflectionMBeanInvoker +
  +
getAttribute(MBeanMetaData, String) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
getAttribute(MBeanMetaData, String) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
getAttribute(MBeanMetaData, String) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
getAttribute(MBeanMetaData, String) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Gets the specified attribute value from the MBean instance. +
getAttribute(MBeanMetaData, String) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
getAttribute(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
getAttribute(ObjectName, String, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
getAttribute(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
getAttribute(ObjectName, String) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
getAttribute(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
getAttribute(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getAttribute(String) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
getAttribute(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
getAttributeDescription(String) - +Method in interface mx4j.MBeanDescription +
Should return the description for the specified attribute. +
getAttributeDescription(String) - +Method in class mx4j.MBeanDescriptionAdapter +
  +
getAttributeDescription(String) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptorMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptorMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptorMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.adaptor.http.ProcessorMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.jython.JythonRunnerMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.naming.CosNamingServiceMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.naming.NamingServiceMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.stats.ObserverStatisticsRecorderMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.stats.StatisticsRecorderMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.stats.TimedStatisticsRecorderMBeanDescription +
  +
getAttributeDescription(String) - +Method in class mx4j.tools.stats.ValueStatisticsRecorderMBeanDescription +
  +
getAttributes(String[]) - +Method in class mx4j.AbstractDynamicMBean +
Returns the manageable attributes, as specified by the DynamicMBean interface. +
getAttributes(ObjectName, String[]) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
getAttributes(ObjectName, String[], Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
getAttributes(ObjectName, String[]) - +Method in class mx4j.server.ChainedMBeanServer +
  +
getAttributes(ObjectName, String[]) - +Method in class mx4j.server.MX4JMBeanServer +
  +
getAttributes(MBeanMetaData, String[]) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
getAttributes(MBeanMetaData, String[]) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
getAttributes(MBeanMetaData, String[]) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
getAttributes(MBeanMetaData, String[]) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Gets the specified attributes values from the MBean instance. +
getAttributes(MBeanMetaData, String[]) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
getAttributes() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
getAttributes(ObjectName, String[], Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
getAttributes(ObjectName, String[], Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
getAttributes(ObjectName, String[], Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
getAttributes(ObjectName, String[]) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
getAttributes(ObjectName, String[], Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
getAttributes(ObjectName, String[], Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getAttributes(String[]) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
getAttributes(ObjectName, String[], Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
getAuthenticationMethod() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Authentication Method +
getAuthenticationMethod() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Authentication Method +
getAverage() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
getAverage() - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Returns the Average Value +
getBCC() - +Method in class mx4j.tools.mail.SMTP +
  +
getBCC() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets a comma separated list of addresses set in the BCC field +
getCC() - +Method in class mx4j.tools.mail.SMTP +
  +
getCC() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets a comma separated list of addresses set in the CC field +
getCacheScript() - +Method in class mx4j.tools.jython.JythonRunner +
Returns whether the script should be kept in the cache. +
getCacheScript() - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Returns whether the script should be kept in the cache. +
getCachedMBeanInfo() - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Initialise internal data structures. +
getCategory() - +Method in class mx4j.log.Logger +
  +
getCause() - +Method in class mx4j.tools.config.ConfigurationException +
  +
getCause() - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxyException +
  +
getChildren() - +Method in interface mx4j.tools.config.ConfigurationBuilder.Node +
  +
getChildren() - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode +
  +
getClassLoader(ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
getClassLoader() - +Method in interface mx4j.server.MBeanMetaData +
Returns the classloader for the MBean +
getClassLoader(ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
getClassLoaderFor(ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
getClassLoaderFor(ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
getClassLoaderRepository() - +Method in class mx4j.server.ChainedMBeanServer +
  +
getClassLoaderRepository() - +Method in class mx4j.server.MX4JMBeanServer +
Returns the ClassLoaderRepository for this MBeanServer. +
getClassLoaders() - +Method in class mx4j.server.DefaultClassLoaderRepository +
  +
getCode() - +Method in class mx4j.loading.MLetTag +
  +
getCode() - +Method in class mx4j.tools.adaptor.http.HttpException +
Return the exception code +
getCodeBase() - +Method in class mx4j.loading.MLetTag +
  +
getCodeMessage(int) - +Static method in class mx4j.tools.adaptor.http.HttpUtil +
Gets a message apropriate for a give HTTP code +
getConnection() - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
getConnection() - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
getConnectionId() - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
getConnectionId() - +Method in class mx4j.tools.remote.AbstractConnection +
  +
getConnectionId() - +Method in interface mx4j.tools.remote.Connection +
Returns the connection ID as specified by JSR 160 specification +
getConnectionId() - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
getConnectionId() - +Method in class mx4j.tools.remote.http.HTTPConnector +
  +
getConnectionId() - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getConnectionId() - +Method in class mx4j.tools.remote.local.LocalConnector +
  +
getConnectionId() - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
getConnectionNotificationEmitter() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
getConstructorDescription(Constructor) - +Method in interface mx4j.MBeanDescription +
Should return the description for the given constructor of the MBean. +
getConstructorDescription(Constructor) - +Method in class mx4j.MBeanDescriptionAdapter +
  +
getConstructorDescription(Constructor) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +
  +
getConstructorDescription(Constructor) - +Method in class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +
  +
getConstructorDescription(Constructor) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription +
  +
getConstructorDescription(Constructor) - +Method in class mx4j.tools.naming.CosNamingServiceMBeanDescription +
  +
getConstructorDescription(Constructor) - +Method in class mx4j.tools.naming.NamingServiceMBeanDescription +
  +
getConstructorParameterDescription(Constructor, int) - +Method in interface mx4j.MBeanDescription +
Should return the description for the constructor's parameter for the given constructor and parameter index. +
getConstructorParameterDescription(Constructor, int) - +Method in class mx4j.MBeanDescriptionAdapter +
  +
getConstructorParameterDescription(Constructor, int) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +
  +
getConstructorParameterDescription(Constructor, int) - +Method in class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +
  +
getConstructorParameterDescription(Constructor, int) - +Method in class mx4j.tools.naming.CosNamingServiceMBeanDescription +
  +
getConstructorParameterDescription(Constructor, int) - +Method in class mx4j.tools.naming.NamingServiceMBeanDescription +
  +
getConstructorParameterName(Constructor, int) - +Method in interface mx4j.MBeanDescription +
Should return the name of the constructor's parameter for the given constructor and parameter index. +
getConstructorParameterName(Constructor, int) - +Method in class mx4j.MBeanDescriptionAdapter +
  +
getConstructorParameterName(Constructor, int) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +
  +
getConstructorParameterName(Constructor, int) - +Method in class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +
  +
getConstructorParameterName(Constructor, int) - +Method in class mx4j.tools.naming.CosNamingServiceMBeanDescription +
  +
getConstructorParameterName(Constructor, int) - +Method in class mx4j.tools.naming.NamingServiceMBeanDescription +
  +
getConstructors(MBeanConstructorInfo[], Object) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
  +
getContent() - +Method in class mx4j.tools.mail.SMTP +
  +
getContent() - +Method in interface mx4j.tools.mail.SMTPMBean +
Returns the content of the mail +
getCounter() - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
getDate() - +Method in class mx4j.timer.TimerTask +
  +
getDate() - +Method in class mx4j.tools.stats.PointTime +
  +
getDefaultDeserializer(Class) - +Method in class mx4j.tools.remote.caucho.serialization.JMXSerializerFactory +
  +
getDefaultDomain() - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
getDefaultDomain(Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
getDefaultDomain() - +Method in class mx4j.server.ChainedMBeanServer +
  +
getDefaultDomain() - +Method in class mx4j.server.MX4JMBeanServer +
  +
getDefaultDomain(Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
getDefaultDomain(Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
getDefaultDomain(Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
getDefaultDomain() - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
getDefaultDomain(Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
getDefaultDomain(Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getDefaultDomain(Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
getDefaultPage() - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
getDefaultPage() - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Returns the default start page +
getDefaultPriority() - +Static method in class mx4j.log.Log +
Returns the default priority. +
getDefaultSerializer(Class) - +Method in class mx4j.tools.remote.caucho.serialization.JMXSerializerFactory +
  +
getDelegateSubject() - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
getDerivedGauge(ObjectName) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
getDerivedGauge(ObjectName) - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
getDerivedGauge(ObjectName) - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
getDerivedGauge(ObjectName) - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
getDerivedGauge() - +Method in class mx4j.monitor.MX4JMonitorNotification +
  +
getDerivedGauge(ObjectName) - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
getDerivedGauge(ObjectName) - +Method in interface mx4j.monitor.MX4JStringMonitorMBean +
  +
getDerivedGaugeTimeStamp(ObjectName) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
getDerivedGaugeTimeStamp(ObjectName) - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
getDerivedGaugeTimeStamp(ObjectName) - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
getDerivedGaugeTimeStamp(ObjectName) - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
getDerivedGaugeTimeStamp(ObjectName) - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
getDerivedGaugeTimeStamp(ObjectName) - +Method in interface mx4j.monitor.MX4JStringMonitorMBean +
  +
getDescription(MBeanInfo) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Obtain global description for MBean. +
getDescription(MBeanConstructorInfo) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Obtain the constructor description. +
getDescription(MBeanConstructorInfo, MBeanParameterInfo, int) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Obtain the constructor parameter description. +
getDescription(MBeanAttributeInfo) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Obtain the attribute description. +
getDescription(MBeanOperationInfo) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Obtain the operation description. +
getDescription(MBeanOperationInfo, MBeanParameterInfo, int) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Obtain the operation parameter description. +
getDifferenceMode() - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
getDifferenceMode() - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
getDifferenceMode() - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
getDifferenceMode() - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
getDomains() - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
getDomains(Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
getDomains() - +Method in class mx4j.server.ChainedMBeanServer +
  +
getDomains() - +Method in class mx4j.server.MX4JMBeanServer +
  +
getDomains(Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
getDomains(Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
getDomains(Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
getDomains() - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
getDomains(Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
getDomains(Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getDomains(Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
getEndpoint(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
getEndpointProtocol(Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
getEndpointProtocol(Map) - +Method in class mx4j.tools.remote.resolver.burlap.ssl.Resolver +
  +
getEndpointProtocol(Map) - +Method in class mx4j.tools.remote.resolver.hessian.ssl.Resolver +
  +
getEndpointProtocol(Map) - +Method in class mx4j.tools.remote.resolver.soap.ssl.Resolver +
  +
getEntries() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
getEntries() - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Returs a sorted map of the recorded values indexed by PointTime +
getEnvironment() - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Returns the environment passed when creating the JMXConnectorServer +
getEnvironment() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
Returns the environment Map as is, without removing non-serializable entries like AbstractJMXConnectorServer.getAttributes() does. +
getFile() - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
getFile() - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Returns the jar/zip file or the directory where XSL files are loaded +
getFileName() - +Method in class mx4j.persist.FilePersister +
Returns the path where the information is stored. +
getFixedRate() - +Method in class mx4j.timer.TimeTask +
Returns whether this task is a fixed rate or fixed delay task. +
getFixedRate() - +Method in class mx4j.timer.TimerTask +
  +
getFromAddress() - +Method in class mx4j.tools.mail.SMTP +
  +
getFromAddress() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets the from address attached to mails +
getFromName() - +Method in class mx4j.tools.mail.SMTP +
  +
getFromName() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets the from name presented on the mail +
getGauge() - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
getGauge() - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
getGauge() - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
getGranularity() - +Method in class mx4j.tools.stats.TimedStatisticsRecorder +
  +
getGranularity() - +Method in interface mx4j.tools.stats.TimedStatisticsRecorderMBean +
Returns how often the MBean will poll the variable value +
getGranularityPeriod() - +Method in class mx4j.monitor.MX4JMonitor +
  +
getGranularityPeriod() - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
getHTTPConnection() - +Method in class mx4j.tools.remote.http.HTTPConnector +
  +
getHandback() - +Method in class mx4j.remote.NotificationTuple +
  +
getHeadInterceptor() - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Returns the head interceptor of the interceptor chain. +
getHeader(String) - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Returns a given header by name, assumes lower case +
getHeaders() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Returns a given header by name, assumes lower case +
getHighThreshold() - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
getHighThreshold() - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
getHost() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Return the host name the server will be listening to. +
getHost() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Return the host name the server will be listening to. +
getImplementationName() - +Method in class mx4j.server.MX4JMBeanServerDelegate +
  +
getImplementationVendor() - +Method in class mx4j.server.MX4JMBeanServerDelegate +
  +
getImplementationVersion() - +Method in class mx4j.server.MX4JMBeanServerDelegate +
  +
getIndex() - +Method in class mx4j.tools.stats.PointTime +
  +
getInitThreshold() - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
getInitThreshold() - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
getInputStream(String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
getInvokeFilter() - +Method in class mx4j.remote.NotificationTuple +
  +
getJMXConnector() - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
getJavaType() - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Arg +
  +
getLocale() - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
getLocale() - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Returns the Locale used to internationalize the output +
getLogger(String) - +Static method in class mx4j.log.Log +
Returns a new instance of a Logger associated with the given category; + if Log.redirectTo(mx4j.log.Logger) has been called then a new instance of the prototype Logger, associated with the given + category, is returned. +
getLogger() - +Method in class mx4j.monitor.MX4JMonitor +
  +
getLogger() - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
  +
getLogger() - +Method in class mx4j.remote.DefaultRemoteNotificationServerHandler +
  +
getLogger() - +Static method in class mx4j.remote.ProviderHelper +
  +
getLogger() - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
getLogger() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
getLogger() - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getLogger() - +Method in class mx4j.tools.remote.http.jetty.JettyWebContainer +
  +
getLogger() - +Method in class mx4j.tools.remote.soap.axis.ser.AxisDeserializer +
  +
getLogger() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
getLowThreshold() - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
getLowThreshold() - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
getMBean() - +Method in interface mx4j.server.MBeanMetaData +
Returns the MBean instance +
getMBeanClassName() - +Method in class mx4j.AbstractDynamicMBean +
To be overridden to return metadata information about the class name of this MBean; + by default returns this class' name. +
getMBeanCount() - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
getMBeanCount(Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
getMBeanCount() - +Method in class mx4j.server.ChainedMBeanServer +
  +
getMBeanCount() - +Method in class mx4j.server.MX4JMBeanServer +
  +
getMBeanCount(Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
getMBeanCount(Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
getMBeanCount(Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
getMBeanCount() - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
getMBeanCount(Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
getMBeanCount(Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getMBeanCount(Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
getMBeanDescription() - +Method in class mx4j.AbstractDynamicMBean +
To be overridden to return metadata information about the description of this MBean. +
getMBeanDescription() - +Method in interface mx4j.MBeanDescription +
Should return the description of the MBean. +
getMBeanDescription() - +Method in class mx4j.MBeanDescriptionAdapter +
  +
getMBeanDescription() - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptorMBeanDescription +
  +
getMBeanDescription() - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptorMBeanDescription +
  +
getMBeanDescription() - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +
  +
getMBeanDescription() - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptorMBeanDescription +
  +
getMBeanDescription() - +Method in class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +
  +
getMBeanDescription() - +Method in class mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription +
  +
getMBeanDescription() - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription +
  +
getMBeanDescription() - +Method in class mx4j.tools.jython.JythonRunnerMBeanDescription +
  +
getMBeanDescription() - +Method in class mx4j.tools.naming.CosNamingServiceMBeanDescription +
  +
getMBeanDescription() - +Method in class mx4j.tools.naming.NamingServiceMBeanDescription +
  +
getMBeanInfo() - +Method in class mx4j.AbstractDynamicMBean +
Returns the MBeaInfo, as specified by the DynamicMBean interface; the default implementation caches the value + returned by AbstractDynamicMBean.createMBeanInfo() (that is thus called only once). +
getMBeanInfo(ObjectName) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
getMBeanInfo(ObjectName, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
getMBeanInfo(ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
getMBeanInfo() - +Method in interface mx4j.server.MBeanMetaData +
Returns the MBeanInfo of the MBean +
getMBeanInfo(ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
getMBeanInfo(MBeanMetaData) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
getMBeanInfo(MBeanMetaData) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
getMBeanInfo(MBeanMetaData) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
getMBeanInfo(MBeanMetaData) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Calls getMBeanInfo on the MBean instance (only on DynamicMBeans). +
getMBeanInfo(MBeanMetaData) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
getMBeanInfo(ObjectName, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
getMBeanInfo(ObjectName, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
getMBeanInfo(ObjectName, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
getMBeanInfo(ObjectName) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
getMBeanInfo(ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
getMBeanInfo(ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getMBeanInfo() - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
getMBeanInfo(ObjectName, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
getMBeanInterface() - +Method in interface mx4j.server.MBeanMetaData +
Returns the management interface of the standard MBean +
getMBeanInvoker() - +Method in interface mx4j.server.MBeanMetaData +
Returns the MBeanInvoker of the standard MBean +
getMBeanServer() - +Method in class mx4j.server.ChainedMBeanServer +
Returns the nested MBeanServer +
getMBeanServer() - +Method in class mx4j.tools.remote.local.LocalConnectorServer +
  +
getMBeanServerBuilder() - +Method in class mx4j.server.ChainedMBeanServerBuilder +
Returns the chained MBeanServerBuilder this object delegates to. +
getMBeanServerConnection() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
getMBeanServerConnection(Subject) - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
getMBeanServerConnection() - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
getMax() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
getMax() - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Returns the Maximum Value +
getMaxEntries() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
getMaxEntries() - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Returns how many entries may be recorded. +
getMaxRetries() - +Method in class mx4j.remote.AbstractHeartBeat +
  +
getMaxRetries() - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
Returns the maximum number of attempts that should be made before declaring a connection + failed. +
getMaxRetries() - +Method in interface mx4j.remote.HeartBeat +
Returns the maximum number of retries this heart beat attempts after + a first connection failure before declaring the connection or the server + as dead. +
getMechanismType() - +Method in class mx4j.tools.remote.soap.axis.ser.AxisSerializer +
  +
getMessage() - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationDeser +
  +
getMethod() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Returns the method of the request +
getMethodForAttribute(MBeanAttributeInfo, boolean) - +Method in class mx4j.server.CachingReflectionMBeanInvoker +
  +
getMethodForAttribute(MBeanAttributeInfo, boolean) - +Method in class mx4j.server.ReflectionMBeanInvoker +
Returns the method name for the given attribute. +
getMimeType() - +Method in class mx4j.tools.mail.SMTP +
  +
getMimeType() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets the MIME type set to the mail +
getMin() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
getMin() - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Returns the Minimum Value +
getModulus() - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
getModulus() - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
getMonitorInfo(ObjectName) - +Method in class mx4j.monitor.MX4JMonitor +
  +
getName() - +Method in class mx4j.tools.adaptor.http.DefaultProcessor +
  +
getName() - +Method in interface mx4j.tools.adaptor.http.ProcessorMBean +
  +
getName() - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
getNext() - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
getNextExecutionTime() - +Method in class mx4j.timer.TimeTask +
Returns the next time at which the task will be executed, ie the TimeTask.run() method is called. +
getNextExecutionTime() - +Method in class mx4j.timer.TimerTask +
  +
getNotification() - +Method in class mx4j.timer.TimerTask +
  +
getNotificationFilter() - +Method in class mx4j.remote.NotificationTuple +
  +
getNotificationInfo() - +Method in class mx4j.log.LoggerBroadcaster +
  +
getNotificationInfo() - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
getNotificationInfo() - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
getNotificationInfo() - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
getNotificationInfo() - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
getNotificationListener(NotificationTuple) - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
  +
getNotificationListener() - +Method in class mx4j.remote.NotificationTuple +
  +
getNotificationListener(NotificationTuple) - +Method in interface mx4j.remote.RemoteNotificationClientHandler +
Returns the ID of the listener for the given tuple +
getNotificationListenerWrapperReferenceCount(Object) - +Method in class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +
  +
getNotificationListenerWrappers() - +Method in class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +
  +
getNotificationListeners(NotificationTuple) - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
  +
getNotificationListeners(NotificationTuple) - +Method in interface mx4j.remote.RemoteNotificationClientHandler +
Returns the IDs of the listeners for the given tuple +
getNotificationName() - +Method in class mx4j.tools.mail.SMTP +
  +
getNotificationName() - +Method in interface mx4j.tools.mail.SMTPMBean +
Returns the notification which will trigger the mail sending +
getNotificationType() - +Method in class mx4j.tools.jython.JythonRunner +
Gets the specific notification type being listened +
getNotificationType() - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Gets the specific notification type being listened +
getNotificationsCount() - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
  +
getNotify() - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
getNotify() - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
getNotifyDiffer() - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
getNotifyDiffer() - +Method in interface mx4j.monitor.MX4JStringMonitorMBean +
  +
getNotifyHigh() - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
getNotifyHigh() - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
getNotifyLow() - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
getNotifyLow() - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
getNotifyMatch() - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
getNotifyMatch() - +Method in interface mx4j.monitor.MX4JStringMonitorMBean +
  +
getObject() - +Method in class mx4j.loading.MLetTag +
  +
getObject(String) - +Method in interface mx4j.tools.config.ConfigurationBuilder.ObjectsHolder +
  +
getObject(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Configuration +
  +
getObjectInstance(ObjectName) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
getObjectInstance(ObjectName, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
getObjectInstance(ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
getObjectInstance() - +Method in interface mx4j.server.MBeanMetaData +
Returns the ObjectInstance of the MBean +
getObjectInstance(ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
getObjectInstance(ObjectName, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
getObjectInstance(ObjectName, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
getObjectInstance(ObjectName, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
getObjectInstance(ObjectName) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
getObjectInstance(ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
getObjectInstance(ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getObjectInstance(ObjectName, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
getObjectName() - +Method in class mx4j.loading.MLetTag +
  +
getObjectName() - +Method in class mx4j.remote.NotificationTuple +
  +
getObjectName() - +Method in interface mx4j.server.MBeanMetaData +
Returns the ObjectName of the MBean +
getObjectNames() - +Method in class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +
  +
getObjectid() - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Object +
  +
getObservedAttribute() - +Method in class mx4j.monitor.MX4JMonitor +
  +
getObservedAttribute() - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
getObservedAttribute() - +Method in class mx4j.monitor.MX4JMonitorNotification +
  +
getObservedAttribute() - +Method in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
getObservedAttribute() - +Method in interface mx4j.tools.stats.ObserverStatisticsRecorderMBean +
Returns the observed Attribute +
getObservedObject() - +Method in class mx4j.monitor.MX4JMonitorNotification +
  +
getObservedObject() - +Method in class mx4j.tools.jython.JythonRunner +
Gets the object being observed by this MBean +
getObservedObject() - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Gets the object being observed by this MBean +
getObservedObject() - +Method in class mx4j.tools.mail.SMTP +
  +
getObservedObject() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets the MBean's objectname which is being listened +
getObservedObject() - +Method in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
getObservedObject() - +Method in interface mx4j.tools.stats.ObserverStatisticsRecorderMBean +
Returns the observed ObjectName +
getObservedObjects() - +Method in class mx4j.monitor.MX4JMonitor +
  +
getObservedObjects() - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
getOccurrences() - +Method in class mx4j.timer.TimerTask +
  +
getOffset() - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
getOffset() - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
getOperationDescription(Method) - +Method in interface mx4j.MBeanDescription +
Should return the description for the specified operation. +
getOperationDescription(Method) - +Method in class mx4j.MBeanDescriptionAdapter +
  +
getOperationDescription(Method) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +
  +
getOperationDescription(Method) - +Method in class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +
  +
getOperationDescription(Method) - +Method in class mx4j.tools.adaptor.http.ProcessorMBeanDescription +
  +
getOperationDescription(Method) - +Method in class mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription +
  +
getOperationDescription(Method) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription +
  +
getOperationDescription(Method) - +Method in class mx4j.tools.jython.JythonRunnerMBeanDescription +
  +
getOperationDescription(Method) - +Method in class mx4j.tools.naming.CosNamingServiceMBeanDescription +
  +
getOperationDescription(Method) - +Method in class mx4j.tools.naming.NamingServiceMBeanDescription +
  +
getOperationDescription(Method) - +Method in class mx4j.tools.stats.StatisticsRecorderMBeanDescription +
  +
getOperationParameterDescription(Method, int) - +Method in interface mx4j.MBeanDescription +
Should return the description for the operations's parameter for the given operation and parameter index. +
getOperationParameterDescription(Method, int) - +Method in class mx4j.MBeanDescriptionAdapter +
  +
getOperationParameterDescription(Method, int) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +
  +
getOperationParameterDescription(Method, int) - +Method in class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +
  +
getOperationParameterDescription(Method, int) - +Method in class mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription +
  +
getOperationParameterDescription(Method, int) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription +
  +
getOperationParameterName(Method, int) - +Method in interface mx4j.MBeanDescription +
Should return the name of the operation's parameter for the given operation and parameter index. +
getOperationParameterName(Method, int) - +Method in class mx4j.MBeanDescriptionAdapter +
  +
getOperationParameterName(Method, int) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +
  +
getOperationParameterName(Method, int) - +Method in class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +
  +
getOperationParameterName(Method, int) - +Method in class mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription +
  +
getOperationParameterName(Method, int) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription +
  +
getParameterName(MBeanConstructorInfo, MBeanParameterInfo, int) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Obtain constructor parameter name. +
getParameterName(MBeanOperationInfo, MBeanParameterInfo, int) - +Method in class mx4j.tools.i18n.I18NStandardMBean +
Obtain operation parameter name. +
getParent() - +Method in interface mx4j.tools.config.ConfigurationBuilder.Node +
  +
getParent() - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode +
  +
getPath() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Returns the path of the request +
getPathInJar() - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
getPathInJar() - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Returns the path of the XSL templates inside a jar file. +
getPeriod() - +Method in class mx4j.timer.TimeTask +
Returns the period of this task. +
getPeriod() - +Method in class mx4j.timer.TimerTask +
  +
getPort() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Returns the port where the server is running on. +
getPort() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Returns the port where the server is running on. +
getPort() - +Method in class mx4j.tools.naming.CosNamingService +
Returns the port on which tnameserv listens for incoming connections +
getPort() - +Method in interface mx4j.tools.naming.CosNamingServiceMBean +
Returns the port on which tnameserv listens for incoming connections +
getPort() - +Method in class mx4j.tools.naming.NamingService +
  +
getPort() - +Method in interface mx4j.tools.naming.NamingServiceMBean +
Returns the port on which rmiregistry listens for incoming connections +
getPriority() - +Method in class mx4j.log.Logger +
  +
getProcessor() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
getProcessor(String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
getProcessor() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Returns the Processor set by HttpAdaptorMBean.setProcessor(mx4j.tools.adaptor.http.ProcessorMBean) +
getProcessorName() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
getProcessorName() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Returns the ObjectName of the processor set by HttpAdaptorMBean.setProcessorName(javax.management.ObjectName) +
getProtocol() - +Method in interface mx4j.tools.remote.ConnectionManager +
Returns the protocol used by the corrispondent JMXConnectorServer. +
getProtocol() - +Method in class mx4j.tools.remote.caucho.CauchoService +
  +
getProtocol() - +Method in class mx4j.tools.remote.http.HTTPConnectionManager +
  +
getProtocol() - +Method in class mx4j.tools.remote.http.HTTPService +
  +
getProtocol() - +Method in class mx4j.tools.remote.soap.SOAPService +
  +
getProtocol() - +Method in class mx4j.tools.remote.soap.SSLSOAPService +
  +
getPulsePeriod() - +Method in class mx4j.remote.AbstractHeartBeat +
  +
getPulsePeriod() - +Method in interface mx4j.remote.HeartBeat +
Returns the period of time in milliseconds between two heart beats +
getPythonInterpreter() - +Static method in class mx4j.tools.jython.JythonRunner +
  +
getQueryString() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Returns the query string +
getRecordingStart() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
getRecordingStart() - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Returns the date when it started recording +
getRemoteNotificationClientHandler() - +Method in class mx4j.tools.remote.http.HTTPConnector +
  +
getRemoteObjectName() - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
getRequestsCount() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Requests count +
getRequestsCount() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Requests count +
getResource() - +Method in class mx4j.AbstractDynamicMBean +
Returns the resource object on which invoke attribute's getters, attribute's setters and operation's methods +
getResponseDoc() - +Method in class mx4j.tools.adaptor.http.HttpException +
  +
getRetryPeriod() - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
Returns the period between two retries if the connection with the server side fails. +
getScript() - +Method in class mx4j.tools.jython.JythonRunner +
Returns the script as text. +
getScript() - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Returns the script as text. +
getScriptURL() - +Method in class mx4j.tools.jython.JythonRunner +
Returns the URL pointing to the script source +
getScriptURL() - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Returns the URL pointing to the script source +
getSecurityContext() - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Returns a security context at the moment of creation of this ConnectionManager. +
getSequenceNumber() - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationDeser +
  +
getServer() - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
getServer() - +Method in class mx4j.tools.remote.http.jetty.JettyWebContainer +
  +
getServerHost() - +Method in class mx4j.tools.mail.SMTP +
  +
getServerHost() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets the server's host as name or IP +
getServerNotificationListener() - +Method in class mx4j.remote.DefaultRemoteNotificationServerHandler +
  +
getServerNotificationListener() - +Method in interface mx4j.remote.RemoteNotificationServerHandler +
Returns the unique server side listener that will represent client-side listeners + on MBeans. +
getServerPort() - +Method in class mx4j.tools.mail.SMTP +
  +
getServerPort() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets the server's port, by default is 25 +
getServerUsername() - +Method in class mx4j.tools.mail.SMTP +
  +
getServerUsername() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets the username to log to the server +
getService() - +Method in class mx4j.tools.remote.caucho.CauchoClientInvoker +
  +
getService() - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
getService() - +Method in class mx4j.tools.remote.caucho.burlap.BurlapServlet +
  +
getService() - +Method in class mx4j.tools.remote.caucho.hessian.HessianServlet +
  +
getService() - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
getServletClassName() - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
getServletClassName() - +Method in class mx4j.tools.remote.resolver.burlap.Resolver +
  +
getServletClassName() - +Method in class mx4j.tools.remote.resolver.burlap.ssl.Resolver +
  +
getServletClassName() - +Method in class mx4j.tools.remote.resolver.hessian.Resolver +
  +
getServletClassName() - +Method in class mx4j.tools.remote.resolver.hessian.ssl.Resolver +
  +
getServletClassName() - +Method in class mx4j.tools.remote.resolver.soap.Resolver +
  +
getSignature() - +Method in class mx4j.loading.MLetTag +
  +
getSource() - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationDeser +
  +
getStandardAttributeInfo(MBeanMetaData, String, boolean) - +Method in class mx4j.server.CachingReflectionMBeanInvoker +
  +
getStandardAttributeInfo(MBeanMetaData, String, boolean) - +Method in class mx4j.server.ReflectionMBeanInvoker +
Returns the MBeanAttributeInfo for the given attribute, or null if the attribute + is not a management attribute. +
getStandardManagementMethod(MBeanMetaData, String, String[]) - +Method in class mx4j.server.CachingReflectionMBeanInvoker +
  +
getStandardManagementMethod(MBeanMetaData, String, String[]) - +Method in class mx4j.server.ReflectionMBeanInvoker +
Returns a java.lang.reflect.Method object for the given method name and signature. +
getStandardOperationInfo(MBeanMetaData, String, String[]) - +Method in class mx4j.server.CachingReflectionMBeanInvoker +
  +
getStandardOperationInfo(MBeanMetaData, String, String[]) - +Method in class mx4j.server.ReflectionMBeanInvoker +
Returns the MBeanOperationInfo for the given operation, or null if the operation + is not a management operation. +
getStartDate() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Starting date +
getStartDate() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Starting date +
getStringToCompare() - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
getStringToCompare() - +Method in interface mx4j.monitor.MX4JStringMonitorMBean +
  +
getSubject() - +Method in class mx4j.tools.mail.SMTP +
  +
getSubject() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets the mail subject +
getText() - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode +
  +
getThreshold() - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
getThreshold(ObjectName) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
getThreshold(ObjectName) - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
getTimeStamp() - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationDeser +
  +
getTimeout() - +Method in class mx4j.tools.mail.SMTP +
  +
getTimeout() - +Method in interface mx4j.tools.mail.SMTPMBean +
Returns the timeout used when sending mails +
getTimestamp() - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
getTimestamp() - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
getTimestamp() - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
getTo() - +Method in class mx4j.tools.mail.SMTP +
  +
getTo() - +Method in interface mx4j.tools.mail.SMTPMBean +
Gets a comma separated list of addresses set in the TO field +
getTrigger() - +Method in class mx4j.monitor.MX4JMonitorNotification +
  +
getType() - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
getType() - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
Returns the type of this interceptor +
getType() - +Method in interface mx4j.server.interceptor.DefaultMBeanServerInterceptorMBean +
Returns the type of this interceptor +
getType() - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
Returns the type of this interceptor +
getType() - +Method in interface mx4j.server.interceptor.InvokerMBeanServerInterceptorMBean +
Returns the type of this interceptor +
getType() - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
A concise string that tells the type of this interceptor +
getType() - +Method in class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +
  +
getType() - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
getType() - +Method in interface mx4j.server.interceptor.SecurityMBeanServerInterceptorMBean +
Returns the type of this interceptor +
getType() - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationDeser +
  +
getUseText() - +Method in class mx4j.tools.jython.JythonRunner +
Indicates wether to use the script given in the ScripText variable or + the one given in the script File. +
getUseText() - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Indicates wether to use the script given in the ScripText variable or the one given in the script File. +
getUserData() - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationDeser +
  +
getValue() - +Method in class mx4j.tools.stats.ValueStatisticsRecorder +
  +
getValue() - +Method in interface mx4j.tools.stats.ValueStatisticsRecorderMBean +
Returns the recorded value +
getVariable(String) - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Returns one variable value. +
getVariableValues(String) - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Returns one variable values. +
getVariables() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Returns a map with the variables passed in the request. +
getVersion() - +Method in class mx4j.loading.MLetTag +
  +
getVersion() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Gets the HttpAdaptor version +
getVersion() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Gets the HttpAdaptor version +
getVersion() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Returns the version of the request +
granularity - +Variable in class mx4j.tools.stats.TimedStatisticsRecorder +
  +
+
+

+H

+
+
HTTPClientInvoker - class mx4j.tools.remote.http.HTTPClientInvoker.
 
HTTPClientInvoker() - +Constructor for class mx4j.tools.remote.http.HTTPClientInvoker +
  +
HTTPConnection - interface mx4j.tools.remote.http.HTTPConnection.
 
HTTPConnectionHandler - class mx4j.tools.remote.http.HTTPConnectionHandler.
 
HTTPConnectionHandler(JMXConnection, ConnectionManager, String) - +Constructor for class mx4j.tools.remote.http.HTTPConnectionHandler +
  +
HTTPConnectionMBeanServerConnection - class mx4j.tools.remote.http.HTTPConnectionMBeanServerConnection.
Implementation of an adapter that converts MBeanServerConnection calls + to HTTPConnection calls.
HTTPConnectionMBeanServerConnection(JMXConnection, Subject, RemoteNotificationClientHandler) - +Constructor for class mx4j.tools.remote.http.HTTPConnectionMBeanServerConnection +
  +
HTTPConnectionManager - class mx4j.tools.remote.http.HTTPConnectionManager.
 
HTTPConnectionManager(AbstractJMXConnectorServer, String, Map) - +Constructor for class mx4j.tools.remote.http.HTTPConnectionManager +
  +
HTTPConnector - class mx4j.tools.remote.http.HTTPConnector.
 
HTTPConnector(JMXServiceURL, Map) - +Constructor for class mx4j.tools.remote.http.HTTPConnector +
  +
HTTPConnectorServer - class mx4j.tools.remote.http.HTTPConnectorServer.
 
HTTPConnectorServer(JMXServiceURL, Map, MBeanServer) - +Constructor for class mx4j.tools.remote.http.HTTPConnectorServer +
  +
HTTPHeartBeat - class mx4j.tools.remote.http.HTTPHeartBeat.
 
HTTPHeartBeat(HTTPConnection, ConnectionNotificationEmitter, Map) - +Constructor for class mx4j.tools.remote.http.HTTPHeartBeat +
  +
HTTPRemoteNotificationClientHandler - class mx4j.tools.remote.http.HTTPRemoteNotificationClientHandler.
 
HTTPRemoteNotificationClientHandler(HTTPConnection, ConnectionNotificationEmitter, HeartBeat, Map) - +Constructor for class mx4j.tools.remote.http.HTTPRemoteNotificationClientHandler +
  +
HTTPResolver - class mx4j.tools.remote.http.HTTPResolver.
 
HTTPResolver() - +Constructor for class mx4j.tools.remote.http.HTTPResolver +
  +
HTTPServerInvoker - class mx4j.tools.remote.http.HTTPServerInvoker.
Implementation of the HTTPConnector interface that forwards the calls + to an MBeanServerConnection object.
HTTPServerInvoker(MBeanServerConnection, RemoteNotificationServerHandler) - +Constructor for class mx4j.tools.remote.http.HTTPServerInvoker +
  +
HTTPService - class mx4j.tools.remote.http.HTTPService.
 
HTTPService() - +Constructor for class mx4j.tools.remote.http.HTTPService +
  +
HTTPSubjectInvoker - class mx4j.tools.remote.http.HTTPSubjectInvoker.
 
HTTP_SERVER_CONFIGURATION - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
Deprecated. Use HTTPConnectorServer.WEB_CONTAINER_CONFIGURATION instead +
HTTP_VERSION - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
HTTP implemented version +
HeartBeat - interface mx4j.remote.HeartBeat.
A continuous pulse from client to server that gives the information that + the connection is alive and the server is up.
HessianClientInvoker - class mx4j.tools.remote.caucho.hessian.HessianClientInvoker.
 
HessianClientInvoker(String) - +Constructor for class mx4j.tools.remote.caucho.hessian.HessianClientInvoker +
  +
HessianServlet - class mx4j.tools.remote.caucho.hessian.HessianServlet.
 
HessianServlet() - +Constructor for class mx4j.tools.remote.caucho.hessian.HessianServlet +
  +
HttpAdaptor - class mx4j.tools.adaptor.http.HttpAdaptor.
HttpAdaptor sets the basic adaptor listening for HTTP requests
HttpAdaptor() - +Constructor for class mx4j.tools.adaptor.http.HttpAdaptor +
Default Constructor added so that we can have some additional + constructors as well. +
HttpAdaptor(int) - +Constructor for class mx4j.tools.adaptor.http.HttpAdaptor +
Overloaded constructor to allow the port to be set. +
HttpAdaptor(String) - +Constructor for class mx4j.tools.adaptor.http.HttpAdaptor +
Overloaded constructor to allow the host to be set. +
HttpAdaptor(int, String) - +Constructor for class mx4j.tools.adaptor.http.HttpAdaptor +
Overloaded constructor to allow the port to be set. +
HttpAdaptorMBean - interface mx4j.tools.adaptor.http.HttpAdaptorMBean.
Management interface for the HttpAdaptor MBean.
HttpAdaptorMBeanDescription - class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription.
Management interface descriptions for the HttpAdaptor MBean.
HttpAdaptorMBeanDescription() - +Constructor for class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +
  +
HttpCommandProcessor - interface mx4j.tools.adaptor.http.HttpCommandProcessor.
HttpCommandProcessor sets the structure of a command processor
HttpCommandProcessorAdaptor - class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor.
HttpCommandProcessor sets the structure of a command processor
HttpCommandProcessorAdaptor() - +Constructor for class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor +
  +
HttpConstants - class mx4j.tools.adaptor.http.HttpConstants.
Define constants for the HTTP request processing
HttpConstants() - +Constructor for class mx4j.tools.adaptor.http.HttpConstants +
  +
HttpException - exception mx4j.tools.adaptor.http.HttpException.
HttpException is emitted when an error parsing an HTTP request appears
HttpException(int, String) - +Constructor for class mx4j.tools.adaptor.http.HttpException +
Constructor for the HttpException object +
HttpInputStream - class mx4j.tools.adaptor.http.HttpInputStream.
HttpInputStream processes an HTTP request
HttpInputStream(InputStream) - +Constructor for class mx4j.tools.adaptor.http.HttpInputStream +
Constructs a new HttpInputStream +
HttpOutputStream - class mx4j.tools.adaptor.http.HttpOutputStream.
HttpAdaptor sets the basic adaptor listening for HTTP requests
HttpOutputStream(OutputStream, HttpInputStream) - +Constructor for class mx4j.tools.adaptor.http.HttpOutputStream +
Creates a new HttpOutputStream with a given OutputStream and an InputStream +
HttpUtil - class mx4j.tools.adaptor.http.HttpUtil.
Utility methods for the HTTP adaptor
HttpUtil() - +Constructor for class mx4j.tools.adaptor.http.HttpUtil +
  +
handleNotification(Notification, Object) - +Method in class mx4j.tools.jython.JythonRunner +
  +
handleNotification(Notification, Object) - +Method in class mx4j.tools.mail.SMTP +
  +
handleNotification(Notification, Object) - +Method in class mx4j.tools.stats.NotificationStatisticsRecorder +
  +
handleSpecialInvoke(Object, Method, Object[]) - +Method in class mx4j.tools.remote.SubjectInvoker +
  +
hashCode() - +Method in class mx4j.remote.NotificationTuple +
  +
hashCode() - +Method in class mx4j.timer.TimerTask +
  +
hashCode() - +Method in class mx4j.tools.remote.rmi.SSLRMIClientSocketFactory +
  +
headers - +Variable in class mx4j.tools.adaptor.http.HttpOutputStream +
Headers to be sent +
+
+

+I

+
+
I18NStandardMBean - class mx4j.tools.i18n.I18NStandardMBean.
An extension of StandardMBean to support internationalization.
I18NStandardMBean(Object, Class) - +Constructor for class mx4j.tools.i18n.I18NStandardMBean +
Makes an I18NStandardMBean for the default locale with a separate implementation class. +
I18NStandardMBean(Object, Class, Locale) - +Constructor for class mx4j.tools.i18n.I18NStandardMBean +
Makes an I18NStandardMBean for the given locale with a separate implementation class. +
I18NStandardMBean(Class) - +Constructor for class mx4j.tools.i18n.I18NStandardMBean +
Makes a I18NStandardMBean for the default locale implemented by a subclass. +
I18NStandardMBean(Class, Locale) - +Constructor for class mx4j.tools.i18n.I18NStandardMBean +
Makes a I18NStandardMBean for the given locale implemented by a subclass. +
INFO - +Static variable in class mx4j.log.Logger +
  +
ImplementationException - exception mx4j.ImplementationException.
Thrown when an internal error in the MX4J implementation is detected.
ImplementationException() - +Constructor for class mx4j.ImplementationException +
  +
ImplementationException(String) - +Constructor for class mx4j.ImplementationException +
  +
InvokeOperationCommandProcessor - class mx4j.tools.adaptor.http.InvokeOperationCommandProcessor.
InvokeOperationCommandProcessor, processes a request for unregistering an MBean
InvokeOperationCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.InvokeOperationCommandProcessor +
  +
InvokerMBeanServerInterceptor - class mx4j.server.interceptor.InvokerMBeanServerInterceptor.
The last MBeanServer --$gt; MBean interceptor in the chain.
InvokerMBeanServerInterceptor(MBeanServer) - +Constructor for class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
Instantiates a new interceptor instance. +
InvokerMBeanServerInterceptorMBean - interface mx4j.server.interceptor.InvokerMBeanServerInterceptorMBean.
Management interface for the InvokerMBeanServerInterceptor MBean
InvokerMBeanServerInterceptorMBeanDescription - class mx4j.server.interceptor.InvokerMBeanServerInterceptorMBeanDescription.
Management interface description for the InvokerMBeanServerInterceptor MBean.
InvokerMBeanServerInterceptorMBeanDescription() - +Constructor for class mx4j.server.interceptor.InvokerMBeanServerInterceptorMBeanDescription +
  +
indexOf(char[], int, char, int) - +Static method in class mx4j.tools.adaptor.http.HttpUtil +
  +
info(Object) - +Method in class mx4j.log.Logger +
  +
info(Object, Throwable) - +Method in class mx4j.log.Logger +
  +
init() - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
init() - +Method in class mx4j.tools.remote.caucho.burlap.BurlapServlet +
  +
init() - +Method in class mx4j.tools.remote.caucho.hessian.HessianServlet +
  +
instantiate(String) - +Method in class mx4j.server.ChainedMBeanServer +
  +
instantiate(String, Object[], String[]) - +Method in class mx4j.server.ChainedMBeanServer +
  +
instantiate(String, ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
instantiate(String, ObjectName, Object[], String[]) - +Method in class mx4j.server.ChainedMBeanServer +
  +
instantiate(String) - +Method in class mx4j.server.MX4JMBeanServer +
  +
instantiate(String, Object[], String[]) - +Method in class mx4j.server.MX4JMBeanServer +
  +
instantiate(String, ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
instantiate(String, ObjectName, Object[], String[]) - +Method in class mx4j.server.MX4JMBeanServer +
  +
instantiate(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
instantiate(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
instantiate(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
instantiate(MBeanMetaData, String, String[], Object[]) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Instantiate the given className passing the given arguments to the constructor with the given signature +
instantiate(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
introspect(MBeanMetaData) - +Method in class mx4j.server.MBeanIntrospector +
Introspect the given mbean, storing the results in the given metadata. +
invoke(String, Object[], String[]) - +Method in class mx4j.AbstractDynamicMBean +
Returns the value of the manageable operation as specified by the DynamicMBean interface +
invoke(String, Class[], Object[]) - +Method in class mx4j.AbstractDynamicMBean +
Deprecated. Replaced by AbstractDynamicMBean.invoke(Object,String,Class[],Object[]).
+ The resource passed is the resource as set by AbstractDynamicMBean.setResource(java.lang.Object) or - if it is null - 'this' instance.
+ This method is deprecated because it is not thread safe.
+
invoke(Object, String, Class[], Object[]) - +Method in class mx4j.AbstractDynamicMBean +
Looks up the method to call on given resource and invokes it. +
invoke(Object, Method, Object[]) - +Method in class mx4j.remote.ClientProxy +
  +
invoke(Object, Method, Object[]) - +Method in class mx4j.remote.rmi.ClientExceptionCatcher +
  +
invoke(ObjectName, String, Object[], String[]) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
invoke(Object, Method, Object[]) - +Method in class mx4j.remote.rmi.ClientUnmarshaller +
  +
invoke(ObjectName, String, MarshalledObject, String[], Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
invoke(Object, Method, Object[]) - +Method in class mx4j.remote.rmi.RMIConnectionProxy +
  +
invoke(Object, Method, Object[]) - +Method in class mx4j.remote.rmi.RMIConnectionSubjectInvoker +
  +
invoke(ObjectName, String, Object[], String[]) - +Method in class mx4j.server.ChainedMBeanServer +
  +
invoke(MBeanMetaData, String, String[], Object[]) - +Method in interface mx4j.server.MBeanInvoker +
Invokes the specified operation on the MBean instance +
invoke(ObjectName, String, Object[], String[]) - +Method in class mx4j.server.MX4JMBeanServer +
  +
invoke(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.ReflectionMBeanInvoker +
  +
invoke(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
invoke(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
invoke(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
invoke(MBeanMetaData, String, String[], Object[]) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Invokes the specified MBean operation on the MBean instance +
invoke(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
invoke(ObjectName, String, Object, String[], Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
invoke(ObjectName, String, Object, String[], Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
invoke(ObjectName, String, Object, String[], Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
invoke(ObjectName, String, Object[], String[]) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
invoke(Object, Method, Object[]) - +Method in class mx4j.tools.remote.SubjectInvoker +
  +
invoke(HttpServletRequest, CauchoInput, CauchoOutput) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
invoke(String, Object, Method, Map, Object[]) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
invoke(ObjectName, String, Object, String[], Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
invoke(ObjectName, String, Object, String[], Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
invoke(String, Object[], String[]) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
invoke(MessageContext) - +Method in class mx4j.tools.remote.soap.ConnectionIDRequestHandler +
  +
invoke(ObjectName, String, Object, String[], Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
invokeImpl(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.BCELMBeanInvoker +
  +
invokeImpl(MBeanMetaData, String, String[], Object[]) - +Method in class mx4j.server.ReflectionMBeanInvoker +
Performs the actual invocation of the MBean's method. +
invokeMethod(Method, Object, Object[]) - +Method in class mx4j.AbstractDynamicMBean +
Invokes the given method on the given resource object with the given arguments. +
isActive() - +Method in class mx4j.monitor.MX4JMonitor +
  +
isActive() - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
isActive() - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
Returns whether this client handler is fetching notifications or not. +
isActive() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Indicates whether the server's running +
isActive() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Indicates whether the server's running +
isActive() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
isActive - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
isActive() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
isActive() - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Indicates whether the MBean is recording values +
isArrayByteBase64(byte[]) - +Static method in class mx4j.util.Base64Codec +
  +
isAttributeGetter(Method) - +Static method in class mx4j.util.Utils +
Returns true is the given method is a JMX attribute getter method +
isAttributeSetter(Method) - +Static method in class mx4j.util.Utils +
Returns true if the method is a JMX attribute setter method +
isClosed() - +Method in class mx4j.tools.remote.AbstractConnectionManager +
Returns whether the AbstractConnectionManager.close() method has been called. +
isClosed() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
Returns whether the AbstractJMXConnector.close() method has been called. +
isClosed() - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
isConnected() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
Returns whether the AbstractJMXConnector.connect() or AbstractJMXConnector.connect(Map) method has been called on this JMXConnector. +
isDifferNotified() - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
isDouble - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
isEnabled() - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
Returns whether this interceptor is enabled +
isEnabled() - +Method in interface mx4j.server.interceptor.DefaultMBeanServerInterceptorMBean +
Returns whether this interceptor is enabled +
isEnabled() - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
This interceptor is always enabled +
isEnabled() - +Method in interface mx4j.server.interceptor.InvokerMBeanServerInterceptorMBean +
This interceptor is always enabled +
isEnabled() - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
isEnabled() - +Method in interface mx4j.server.interceptor.SecurityMBeanServerInterceptorMBean +
This interceptor is always enabled +
isEnabledFor(int) - +Method in class mx4j.log.Logger +
  +
isEncodedForm(JMXServiceURL) - +Method in class mx4j.remote.resolver.iiop.Resolver +
  +
isEncodedForm(JMXServiceURL) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
isErrorNotified() - +Method in class mx4j.monitor.MX4JMonitor.MonitorInfo +
  +
isFinished() - +Method in class mx4j.timer.TimeTask +
Returns whethere this task is finished. +
isFinished() - +Method in class mx4j.timer.TimerTask +
  +
isHighNotified() - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
isInstanceOf(ObjectName, String) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
isInstanceOf(ObjectName, String, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
isInstanceOf(ObjectName, String) - +Method in class mx4j.server.ChainedMBeanServer +
  +
isInstanceOf(ObjectName, String) - +Method in class mx4j.server.MX4JMBeanServer +
  +
isInstanceOf(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
isInstanceOf(ObjectName, String, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
isInstanceOf(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
isInstanceOf(ObjectName, String) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
isInstanceOf(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
isInstanceOf(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
isInstanceOf(ObjectName, String, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
isLoginToServer() - +Method in class mx4j.tools.mail.SMTP +
  +
isLoginToServer() - +Method in interface mx4j.tools.mail.SMTPMBean +
Indicates whether login to the SMTP server will be attpemted +
isLowNotified() - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
isMBeanCompliant(MBeanMetaData) - +Method in class mx4j.server.MBeanIntrospector +
Returns whether the given already introspected metadata is compliant. +
isMBeanDynamic() - +Method in interface mx4j.server.MBeanMetaData +
Returns whether the MBean is dynamic +
isMBeanStandard() - +Method in interface mx4j.server.MBeanMetaData +
Returns whether the MBean is standard +
isMatchNotified() - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
isPeriodic() - +Method in class mx4j.timer.TimeTask +
Returns whether this task is periodic. +
isPeriodic() - +Method in class mx4j.timer.TimerTask +
  +
isPlainInvoke(Method) - +Method in class mx4j.tools.remote.SubjectInvoker +
  +
isPlainInvoke(Method) - +Method in class mx4j.tools.remote.http.HTTPSubjectInvoker +
  +
isRegistered(ObjectName) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
isRegistered(ObjectName, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
isRegistered(ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
isRegistered(ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
isRegistered(ObjectName, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
isRegistered(ObjectName, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
isRegistered(ObjectName, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
isRegistered(ObjectName) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
isRegistered(ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
isRegistered(ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
isRegistered(ObjectName, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
isRunning() - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Returns whether this configurator is running and thus if the MBeanServer can accept incoming calls +
isRunning() - +Method in interface mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBean +
Returns whether this configurator is running and thus if the MBeanServer can accept incoming calls +
isRunning() - +Method in class mx4j.tools.naming.CosNamingService +
Returns whether this MBean has been started and not yet stopped. +
isRunning() - +Method in interface mx4j.tools.naming.CosNamingServiceMBean +
Returns whether this MBean has been started and not yet stopped. +
isRunning() - +Method in class mx4j.tools.naming.NamingService +
  +
isRunning() - +Method in interface mx4j.tools.naming.NamingServiceMBean +
Returns whether this MBean has been started and not yet stopped. +
isStopped() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
Returns whether the AbstractJMXConnectorServer.stop() method of this JMXConnectorServer has been called. +
isThresholdNotified() - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
isTrulySerializable(Object) - +Static method in class mx4j.remote.MX4JRemoteUtils +
  +
isUseCache() - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
isUseCache() - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Returns if the XSL Templates are cached +
isUseJar() - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
isUseJar() - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Returns if the XSL files are contained in a jar/zip file. +
isUsePath() - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
isUsePath() - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Returns if the XSL files are contained in a path. +
iterator() - +Method in interface mx4j.server.MBeanRepository +
Returns an iterator on the metadata stored in this repository. +
+
+

+J

+
+
JMXConnection - interface mx4j.tools.remote.JMXConnection.
 
JMXConnectionHandler - class mx4j.tools.remote.JMXConnectionHandler.
This handler manages the operations related to the connection itself, such as + JMXConnectionHandler.close(), AbstractConnection.getConnectionId().
JMXConnectionHandler(JMXConnection, ConnectionManager, String) - +Constructor for class mx4j.tools.remote.JMXConnectionHandler +
  +
JMXConnectionMBeanServerConnection - class mx4j.tools.remote.JMXConnectionMBeanServerConnection.
Abstract implementation of an adapter that converts MBeanServerConnection calls + to JMXConnection calls.
JMXConnectionMBeanServerConnection(JMXConnection, Subject) - +Constructor for class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
JMXSerializerFactory - class mx4j.tools.remote.caucho.serialization.JMXSerializerFactory.
 
JMXSerializerFactory() - +Constructor for class mx4j.tools.remote.caucho.serialization.JMXSerializerFactory +
  +
JettyWebContainer - class mx4j.tools.remote.http.jetty.JettyWebContainer.
Jetty's implementation of WebContainer interface
JettyWebContainer() - +Constructor for class mx4j.tools.remote.http.jetty.JettyWebContainer +
  +
JythonRunner - class mx4j.tools.jython.JythonRunner.
This MBean enables you to run scripts written in jython.
JythonRunner() - +Constructor for class mx4j.tools.jython.JythonRunner +
  +
JythonRunnerMBean - interface mx4j.tools.jython.JythonRunnerMBean.
Management interface for the JythonRunner MBean.
JythonRunnerMBeanDescription - class mx4j.tools.jython.JythonRunnerMBeanDescription.
Management interface descriptions for the JythonRunner MBean.
JythonRunnerMBeanDescription() - +Constructor for class mx4j.tools.jython.JythonRunnerMBeanDescription +
  +
+
+

+L

+
+
LocalConnection - interface mx4j.tools.remote.local.LocalConnection.
 
LocalConnector - class mx4j.tools.remote.local.LocalConnector.
 
LocalConnector(JMXServiceURL, Map) - +Constructor for class mx4j.tools.remote.local.LocalConnector +
  +
LocalConnectorServer - class mx4j.tools.remote.local.LocalConnectorServer.
 
LocalConnectorServer(JMXServiceURL, Map, MBeanServer) - +Constructor for class mx4j.tools.remote.local.LocalConnectorServer +
  +
Log - class mx4j.log.Log.
Main class for the log service.
Log4JLogger - class mx4j.log.Log4JLogger.
Log that redirects log calls to a Log4J Logger.
Log4JLogger() - +Constructor for class mx4j.log.Log4JLogger +
This constructor is called to create instances of this Logger, following the prototype pattern. +
Logger - class mx4j.log.Logger.
Base class for logging objects.
Logger() - +Constructor for class mx4j.log.Logger +
  +
LoggerBroadcaster - class mx4j.log.LoggerBroadcaster.
This broadcaster MBean allows to redirect MX4J internal logging to registered JMX listeners.
LoggerBroadcaster() - +Constructor for class mx4j.log.LoggerBroadcaster +
  +
LoggerBroadcaster.LoggerNotifier - class mx4j.log.LoggerBroadcaster.LoggerNotifier.
 
LoggerBroadcaster.LoggerNotifier() - +Constructor for class mx4j.log.LoggerBroadcaster.LoggerNotifier +
  +
LoggerBroadcasterMBean - interface mx4j.log.LoggerBroadcasterMBean.
Management interface for the LoggerBroadcaster MBean.
list() - +Method in class mx4j.tools.naming.NamingService +
  +
list() - +Method in interface mx4j.tools.naming.NamingServiceMBean +
Returns an array of the names bound in the rmiregistry +
load() - +Method in class mx4j.persist.FilePersister +
  +
load() - +Method in class mx4j.persist.MBeanPersister +
  +
load() - +Method in interface mx4j.persist.PersisterMBean +
Loads the information persisted on the storage media. +
loadClass(String) - +Method in class mx4j.loading.RepositoryClassLoader +
  +
loadClass(String, ClassLoader) - +Static method in class mx4j.remote.ProviderHelper +
  +
loadClass(String) - +Method in class mx4j.server.DefaultClassLoaderRepository +
  +
loadClass(ClassLoader, String) - +Static method in class mx4j.util.Utils +
This methods load a class given the classloader and the name of the class, and work for + extended names of primitive types. +
loadClassBefore(ClassLoader, String) - +Method in class mx4j.server.DefaultClassLoaderRepository +
  +
loadClassWithout(ClassLoader, String) - +Method in class mx4j.server.DefaultClassLoaderRepository +
  +
loadClasses(ClassLoader, String[]) - +Static method in class mx4j.util.Utils +
Returns the classes whose names are specified by the names argument, loaded with the + specified classloader. +
loadStream(InputStream) - +Static method in class mx4j.tools.jython.JythonRunner +
  +
log(int, Object, Throwable) - +Method in class mx4j.log.CommonsLogger +
  +
log(int, Object, Throwable) - +Method in class mx4j.log.FileLogger +
  +
log(int, Object, Throwable) - +Method in class mx4j.log.Log4JLogger +
  +
log(int, Object, Throwable) - +Method in class mx4j.log.Logger +
  +
log(int, Object, Throwable) - +Method in class mx4j.log.LoggerBroadcaster.LoggerNotifier +
  +
log(int, Object, Throwable) - +Method in class mx4j.log.MBeanLogger +
  +
lookupClient(JMXServiceURL, Map) - +Method in class mx4j.remote.ConnectionResolver +
Looks up a connection with the server side as specified in the given JMXServiceURL. +
lookupClient(JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
lookupClient(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.burlap.Resolver +
  +
lookupClient(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.hessian.Resolver +
  +
lookupClient(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.local.Resolver +
  +
lookupClient(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.soap.Resolver +
  +
lookupRMIServerStub(JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
lookupStubInJNDI(JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.iiop.Resolver +
  +
lookupStubInJNDI(JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
+
+

+M

+
+
MBeanAttributeInfoDeser - class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeser.
 
MBeanAttributeInfoDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeser +
  +
MBeanAttributeInfoDeserFactory - class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeserFactory.
 
MBeanAttributeInfoDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeserFactory +
  +
MBeanAttributeInfoSer - class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSer.
 
MBeanAttributeInfoSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSer +
  +
MBeanAttributeInfoSerFactory - class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSerFactory.
 
MBeanAttributeInfoSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSerFactory +
  +
MBeanCommandProcessor - class mx4j.tools.adaptor.http.MBeanCommandProcessor.
MBeanCommandProcessor, processes a request for getting data about a MBean
MBeanCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.MBeanCommandProcessor +
  +
MBeanConstructorInfoDeser - class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeser.
 
MBeanConstructorInfoDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeser +
  +
MBeanConstructorInfoDeserFactory - class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeserFactory.
 
MBeanConstructorInfoDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeserFactory +
  +
MBeanConstructorInfoSer - class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSer.
 
MBeanConstructorInfoSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSer +
  +
MBeanConstructorInfoSerFactory - class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSerFactory.
 
MBeanConstructorInfoSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSerFactory +
  +
MBeanDescription - interface mx4j.MBeanDescription.
Implement this inteface to give descriptions to standard MBean.
MBeanDescriptionAdapter - class mx4j.MBeanDescriptionAdapter.
Default implementation for the MBeanDescription interface.
MBeanDescriptionAdapter() - +Constructor for class mx4j.MBeanDescriptionAdapter +
  +
MBeanInfoDeser - class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeser.
 
MBeanInfoDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeser +
  +
MBeanInfoDeserFactory - class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeserFactory.
 
MBeanInfoDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeserFactory +
  +
MBeanInfoSer - class mx4j.tools.remote.soap.axis.ser.MBeanInfoSer.
 
MBeanInfoSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanInfoSer +
  +
MBeanInfoSerFactory - class mx4j.tools.remote.soap.axis.ser.MBeanInfoSerFactory.
 
MBeanInfoSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanInfoSerFactory +
  +
MBeanIntrospector - class mx4j.server.MBeanIntrospector.
Introspector for MBeans.
MBeanIntrospector() - +Constructor for class mx4j.server.MBeanIntrospector +
  +
MBeanInvoker - interface mx4j.server.MBeanInvoker.
Invokes methods on standard MBeans.
MBeanLogger - class mx4j.log.MBeanLogger.
This logger forwards log requests to an MBean, that must have an operation with signature +
MBeanLogger(MBeanServer, ObjectName) - +Constructor for class mx4j.log.MBeanLogger +
  +
MBeanMetaData - interface mx4j.server.MBeanMetaData.
Objects of this class hold metadata information about MBeans.
MBeanMetaData.Factory - class mx4j.server.MBeanMetaData.Factory.
Factory class that creates instance of the MBeanMetaData interface.
MBeanMetaData.Factory() - +Constructor for class mx4j.server.MBeanMetaData.Factory +
  +
MBeanNotificationInfoDeser - class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeser.
 
MBeanNotificationInfoDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeser +
  +
MBeanNotificationInfoDeserFactory - class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeserFactory.
 
MBeanNotificationInfoDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeserFactory +
  +
MBeanNotificationInfoSer - class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSer.
 
MBeanNotificationInfoSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSer +
  +
MBeanNotificationInfoSerFactory - class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSerFactory.
 
MBeanNotificationInfoSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSerFactory +
  +
MBeanOperationInfoDeser - class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeser.
 
MBeanOperationInfoDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeser +
  +
MBeanOperationInfoDeserFactory - class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeserFactory.
 
MBeanOperationInfoDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeserFactory +
  +
MBeanOperationInfoSer - class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSer.
 
MBeanOperationInfoSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSer +
  +
MBeanOperationInfoSerFactory - class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSerFactory.
 
MBeanOperationInfoSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSerFactory +
  +
MBeanParameterInfoDeser - class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeser.
 
MBeanParameterInfoDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeser +
  +
MBeanParameterInfoDeserFactory - class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeserFactory.
 
MBeanParameterInfoDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeserFactory +
  +
MBeanParameterInfoSer - class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSer.
 
MBeanParameterInfoSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSer +
  +
MBeanParameterInfoSerFactory - class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSerFactory.
 
MBeanParameterInfoSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSerFactory +
  +
MBeanPersister - class mx4j.persist.MBeanPersister.
A persister that delegates the persistence to a registered persister MBean.
MBeanPersister(MBeanServer, ObjectName) - +Constructor for class mx4j.persist.MBeanPersister +
Creates a new MBeanPersister that delegates persistence to a persister MBean + registered in the specified MBeanServer with the specified ObjectName. +
MBeanRepository - interface mx4j.server.MBeanRepository.
The MBeanServer implementation delegates to implementations of this interface the storage of registered MBeans.
MBeanServerInterceptor - interface mx4j.server.interceptor.MBeanServerInterceptor.
MBeanServer --> MBean interceptor.
MBeanServerInterceptorConfigurator - class mx4j.server.interceptor.MBeanServerInterceptorConfigurator.
MBean that configures the MBeanServer --> MBean interceptor chain.
MBeanServerInterceptorConfigurator(MBeanServer) - +Constructor for class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Creates an instance of this configurator, for the given MBeanServer +
MBeanServerInterceptorConfiguratorMBean - interface mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBean.
Management interface for the MBeanServerInterceptorConfigurator MBean.
MBeanServerInterceptorConfiguratorMBeanDescription - class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription.
Management interface description for the MBeanServerInterceptorConfigurator MBean.
MBeanServerInterceptorConfiguratorMBeanDescription() - +Constructor for class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +
  +
MBeanServerNotificationDeser - class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeser.
 
MBeanServerNotificationDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeser +
  +
MBeanServerNotificationDeserFactory - class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeserFactory.
 
MBeanServerNotificationDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeserFactory +
  +
MBeanServerNotificationFilterDeser - class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeser.
 
MBeanServerNotificationFilterDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeser +
  +
MBeanServerNotificationFilterDeserFactory - class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeserFactory.
 
MBeanServerNotificationFilterDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeserFactory +
  +
MBeanServerNotificationFilterSer - class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSer.
 
MBeanServerNotificationFilterSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSer +
  +
MBeanServerNotificationFilterSerFactory - class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSerFactory.
 
MBeanServerNotificationFilterSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSerFactory +
  +
MBeanServerNotificationSer - class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSer.
 
MBeanServerNotificationSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSer +
  +
MBeanServerNotificationSerFactory - class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSerFactory.
 
MBeanServerNotificationSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSerFactory +
  +
METHOD_GET - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Get method header +
METHOD_POST - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Post method header +
MLET_TAG - +Static variable in class mx4j.loading.MLetParser +
  +
MLetParseException - exception mx4j.loading.MLetParseException.
Thrown when a problem parsing MLet files is encountered
MLetParseException() - +Constructor for class mx4j.loading.MLetParseException +
  +
MLetParseException(String) - +Constructor for class mx4j.loading.MLetParseException +
  +
MLetParser - class mx4j.loading.MLetParser.
The parser for MLet files, as specified in the JMX documentation.
MLetParser() - +Constructor for class mx4j.loading.MLetParser +
Creates a new MLetParser +
MLetParser(MLet) - +Constructor for class mx4j.loading.MLetParser +
Creates a new MLetParser +
MLetTag - class mx4j.loading.MLetTag.
Represents an MLET tag, as documented in the JMX specification.
MLetTag() - +Constructor for class mx4j.loading.MLetTag +
  +
MX4JCounterMonitor - class mx4j.monitor.MX4JCounterMonitor.
 
MX4JCounterMonitor() - +Constructor for class mx4j.monitor.MX4JCounterMonitor +
  +
MX4JCounterMonitor(Class) - +Constructor for class mx4j.monitor.MX4JCounterMonitor +
  +
MX4JCounterMonitor.CounterMonitorInfo - class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo.
 
MX4JCounterMonitor.CounterMonitorInfo() - +Constructor for class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
MX4JCounterMonitorMBean - interface mx4j.monitor.MX4JCounterMonitorMBean.
 
MX4JGaugeMonitor - class mx4j.monitor.MX4JGaugeMonitor.
 
MX4JGaugeMonitor() - +Constructor for class mx4j.monitor.MX4JGaugeMonitor +
  +
MX4JGaugeMonitor(Class) - +Constructor for class mx4j.monitor.MX4JGaugeMonitor +
  +
MX4JGaugeMonitor.GaugeMonitorInfo - class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo.
 
MX4JGaugeMonitor.GaugeMonitorInfo() - +Constructor for class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
MX4JGaugeMonitorMBean - interface mx4j.monitor.MX4JGaugeMonitorMBean.
 
MX4JMBeanServer - class mx4j.server.MX4JMBeanServer.
The MX4J MBeanServer implementation.
MX4JMBeanServer(String, MBeanServer, MBeanServerDelegate) - +Constructor for class mx4j.server.MX4JMBeanServer +
Create a new MBeanServer implementation with the specified default domain. +
MX4JMBeanServerBuilder - class mx4j.server.MX4JMBeanServerBuilder.
This class is responsible for creating new instances of MBeanServerDelegate + and MBeanServer.
MX4JMBeanServerBuilder() - +Constructor for class mx4j.server.MX4JMBeanServerBuilder +
  +
MX4JMBeanServerDelegate - class mx4j.server.MX4JMBeanServerDelegate.
The MBeanServerDelegate subclass typical of the MX4J implementation.
MX4JMBeanServerDelegate() - +Constructor for class mx4j.server.MX4JMBeanServerDelegate +
  +
MX4JMonitor - class mx4j.monitor.MX4JMonitor.
The class that implements the Monitor behavior of the JMX specification.
MX4JMonitor(Class) - +Constructor for class mx4j.monitor.MX4JMonitor +
  +
MX4JMonitor.MonitorInfo - class mx4j.monitor.MX4JMonitor.MonitorInfo.
 
MX4JMonitor.MonitorInfo() - +Constructor for class mx4j.monitor.MX4JMonitor.MonitorInfo +
  +
MX4JMonitorMBean - interface mx4j.monitor.MX4JMonitorMBean.
 
MX4JMonitorNotification - class mx4j.monitor.MX4JMonitorNotification.
 
MX4JMonitorNotification(String, Object, long, long, String, ObjectName, String, Object, Object) - +Constructor for class mx4j.monitor.MX4JMonitorNotification +
  +
MX4JRemoteConstants - interface mx4j.remote.MX4JRemoteConstants.
 
MX4JRemoteUtils - class mx4j.remote.MX4JRemoteUtils.
 
MX4JRemoteUtils() - +Constructor for class mx4j.remote.MX4JRemoteUtils +
  +
MX4JStringMonitor - class mx4j.monitor.MX4JStringMonitor.
 
MX4JStringMonitor() - +Constructor for class mx4j.monitor.MX4JStringMonitor +
  +
MX4JStringMonitor(Class) - +Constructor for class mx4j.monitor.MX4JStringMonitor +
  +
MX4JStringMonitor.StringMonitorInfo - class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo.
 
MX4JStringMonitor.StringMonitorInfo() - +Constructor for class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
MX4JStringMonitorMBean - interface mx4j.monitor.MX4JStringMonitorMBean.
 
MX4JSystemKeys - class mx4j.MX4JSystemKeys.
This class holds the system property keys that the MX4J implementation uses to plugin + custom components.
MX4JSystemKeys() - +Constructor for class mx4j.MX4JSystemKeys +
  +
MX4J_LOG_PRIORITY - +Static variable in class mx4j.MX4JSystemKeys +
Specifies the level of logging performed by the MX4J JMX implementation. +
MX4J_LOG_PROTOTYPE - +Static variable in class mx4j.MX4JSystemKeys +
Specifies a full qualified class name of a class extending the Logger class, that + will be used as prototype for new loggers created. +
MX4J_MBEANSERVER_CLASSLOADER_REPOSITORY - +Static variable in class mx4j.MX4JSystemKeys +
Specifies a full qualified class name of a class extending the ModifiableClassLoaderRepository + class, that will be used by the MBeanServer to store ClassLoader MBeans that wants to be registered in + the MBeanServer's ClassLoaderRepository. +
MX4J_MBEANSERVER_REPOSITORY - +Static variable in class mx4j.MX4JSystemKeys +
Specifies a full qualified class name of a class implementing the MBeanRepository + interface, that will be used by the MBeanServer to store information about registered MBeans. +
MX4J_MBEAN_INVOKER - +Static variable in class mx4j.MX4JSystemKeys +
Specifies a full qualified class name of a class implementing the MBeanInvoker interface, + that will be used as invoker for standard MBeans. +
MX4J_MBEAN_METADATA - +Static variable in class mx4j.MX4JSystemKeys +
Specifies a full qualified name of a class implementing the MBeanMetaData interface, + that is used internally by MX4J to store information about the MBean. +
MX4J_OBJECTNAME_CACHING - +Static variable in class mx4j.MX4JSystemKeys +
Specifies if the ObjectName class should cache ObjectName instances. +
MX4J_STRICT_MBEAN_INTERFACE - +Static variable in class mx4j.MX4JSystemKeys +
When this property is set to false (as specified by Boolean.valueOf(String)), the MX4J + JMX implementation will accept as MBean interfaces of standard MBeans also interfaces defined in + different packages or as nested classes of the MBean class. +
Marshaller - class mx4j.remote.rmi.Marshaller.
IMPORTANT: see RMIMarshaller
Marshaller() - +Constructor for class mx4j.remote.rmi.Marshaller +
  +
MethodTernaryTree - class mx4j.util.MethodTernaryTree.
Specialized ternary tree for method metadata information.
MethodTernaryTree() - +Constructor for class mx4j.util.MethodTernaryTree +
  +
ModifiableClassLoaderRepository - class mx4j.server.ModifiableClassLoaderRepository.
Base class to extend to create custom ClassLoaderRepositories.
ModifiableClassLoaderRepository() - +Constructor for class mx4j.server.ModifiableClassLoaderRepository +
  +
MonitorNotificationDeser - class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeser.
 
MonitorNotificationDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeser +
  +
MonitorNotificationDeserFactory - class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeserFactory.
 
MonitorNotificationDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeserFactory +
  +
MonitorNotificationSer - class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSer.
 
MonitorNotificationSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSer +
  +
MonitorNotificationSerFactory - class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSerFactory.
 
MonitorNotificationSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSerFactory +
  +
main(String[]) - +Static method in class mx4j.tools.remote.PasswordAuthenticator +
Runs this class as main class to obfuscate passwords. +
mangleMethodName(Method) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
mapMethods(Class, Map) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
maxEntries - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
maximumValue - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
minimumValue - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
monitor(ObjectName, String, Object, MX4JMonitor.MonitorInfo) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
monitor(ObjectName, String, Object, MX4JMonitor.MonitorInfo) - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
monitor(ObjectName, String, Object, MX4JMonitor.MonitorInfo) - +Method in class mx4j.monitor.MX4JMonitor +
  +
monitor(ObjectName, String, Object, MX4JMonitor.MonitorInfo) - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
mx4j - package mx4j
 
mx4j.loading - package mx4j.loading
 
mx4j.log - package mx4j.log
 
mx4j.monitor - package mx4j.monitor
 
mx4j.persist - package mx4j.persist
 
mx4j.remote - package mx4j.remote
 
mx4j.remote.provider.iiop - package mx4j.remote.provider.iiop
 
mx4j.remote.provider.rmi - package mx4j.remote.provider.rmi
 
mx4j.remote.resolver.iiop - package mx4j.remote.resolver.iiop
 
mx4j.remote.resolver.rmi - package mx4j.remote.resolver.rmi
 
mx4j.remote.rmi - package mx4j.remote.rmi
 
mx4j.server - package mx4j.server
 
mx4j.server.interceptor - package mx4j.server.interceptor
 
mx4j.timer - package mx4j.timer
 
mx4j.tools.adaptor - package mx4j.tools.adaptor
 
mx4j.tools.adaptor.http - package mx4j.tools.adaptor.http
 
mx4j.tools.adaptor.ssl - package mx4j.tools.adaptor.ssl
 
mx4j.tools.config - package mx4j.tools.config
 
mx4j.tools.i18n - package mx4j.tools.i18n
 
mx4j.tools.jython - package mx4j.tools.jython
 
mx4j.tools.mail - package mx4j.tools.mail
 
mx4j.tools.naming - package mx4j.tools.naming
 
mx4j.tools.remote - package mx4j.tools.remote
 
mx4j.tools.remote.caucho - package mx4j.tools.remote.caucho
 
mx4j.tools.remote.caucho.burlap - package mx4j.tools.remote.caucho.burlap
 
mx4j.tools.remote.caucho.hessian - package mx4j.tools.remote.caucho.hessian
 
mx4j.tools.remote.caucho.serialization - package mx4j.tools.remote.caucho.serialization
 
mx4j.tools.remote.http - package mx4j.tools.remote.http
 
mx4j.tools.remote.http.jetty - package mx4j.tools.remote.http.jetty
 
mx4j.tools.remote.local - package mx4j.tools.remote.local
 
mx4j.tools.remote.provider.burlap - package mx4j.tools.remote.provider.burlap
 
mx4j.tools.remote.provider.burlap.ssl - package mx4j.tools.remote.provider.burlap.ssl
 
mx4j.tools.remote.provider.hessian - package mx4j.tools.remote.provider.hessian
 
mx4j.tools.remote.provider.hessian.ssl - package mx4j.tools.remote.provider.hessian.ssl
 
mx4j.tools.remote.provider.local - package mx4j.tools.remote.provider.local
 
mx4j.tools.remote.provider.soap - package mx4j.tools.remote.provider.soap
 
mx4j.tools.remote.provider.soap.ssl - package mx4j.tools.remote.provider.soap.ssl
 
mx4j.tools.remote.proxy - package mx4j.tools.remote.proxy
 
mx4j.tools.remote.resolver.burlap - package mx4j.tools.remote.resolver.burlap
 
mx4j.tools.remote.resolver.burlap.ssl - package mx4j.tools.remote.resolver.burlap.ssl
 
mx4j.tools.remote.resolver.hessian - package mx4j.tools.remote.resolver.hessian
 
mx4j.tools.remote.resolver.hessian.ssl - package mx4j.tools.remote.resolver.hessian.ssl
 
mx4j.tools.remote.resolver.local - package mx4j.tools.remote.resolver.local
 
mx4j.tools.remote.resolver.soap - package mx4j.tools.remote.resolver.soap
 
mx4j.tools.remote.resolver.soap.ssl - package mx4j.tools.remote.resolver.soap.ssl
 
mx4j.tools.remote.rmi - package mx4j.tools.remote.rmi
 
mx4j.tools.remote.soap - package mx4j.tools.remote.soap
 
mx4j.tools.remote.soap.axis.ser - package mx4j.tools.remote.soap.axis.ser
 
mx4j.tools.stats - package mx4j.tools.stats
 
mx4j.util - package mx4j.util
 
+
+

+N

+
+
NAME_ATTR - +Static variable in class mx4j.loading.MLetParser +
  +
NOTIFICATION_BUFFER_CAPACITY - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
The reference implementation uses this property to specify the notification buffer size. +
NOTIFICATION_PURGE_DISTANCE - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
MX4J's implementation uses this property to specify the distance between the lowest expected notification + sequence number (sent by the client via fetchNotifications()) and the minimum sequence number of the + notification buffer. +
NOTIFICATION_QUEUE_CAPACITY - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
MX4J's implementation uses this property to specify the maximum notification queue size + on client size. +
NamingService - class mx4j.tools.naming.NamingService.
An MBean that wraps rmiregistry.
NamingService() - +Constructor for class mx4j.tools.naming.NamingService +
Creates a new instance of NamingService with the default rmiregistry port (1099). +
NamingService(int) - +Constructor for class mx4j.tools.naming.NamingService +
Creates a new instance of NamingService with the specified port. +
NamingServiceMBean - interface mx4j.tools.naming.NamingServiceMBean.
Management interface for the NamingService MBean.
NamingServiceMBeanDescription - class mx4j.tools.naming.NamingServiceMBeanDescription.
Management interface descriptions for the NamingService MBean.
NamingServiceMBeanDescription() - +Constructor for class mx4j.tools.naming.NamingServiceMBeanDescription +
  +
NotificationDeser - class mx4j.tools.remote.soap.axis.ser.NotificationDeser.
 
NotificationDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationDeser +
  +
NotificationDeserFactory - class mx4j.tools.remote.soap.axis.ser.NotificationDeserFactory.
 
NotificationDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationDeserFactory +
  +
NotificationFilterSupportDeser - class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeser.
 
NotificationFilterSupportDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeser +
  +
NotificationFilterSupportDeserFactory - class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeserFactory.
 
NotificationFilterSupportDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeserFactory +
  +
NotificationFilterSupportSer - class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer.
 
NotificationFilterSupportSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer +
  +
NotificationFilterSupportSerFactory - class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSerFactory.
 
NotificationFilterSupportSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSerFactory +
  +
NotificationListenerMBeanServerInterceptor - class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor.
Interceptor that takes care of replacing the source of Notifications to the + ObjectName of the NotificationBroadcaster that emitted it.
NotificationListenerMBeanServerInterceptor() - +Constructor for class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +
  +
NotificationResultDeser - class mx4j.tools.remote.soap.axis.ser.NotificationResultDeser.
 
NotificationResultDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationResultDeser +
  +
NotificationResultDeserFactory - class mx4j.tools.remote.soap.axis.ser.NotificationResultDeserFactory.
 
NotificationResultDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationResultDeserFactory +
  +
NotificationResultSer - class mx4j.tools.remote.soap.axis.ser.NotificationResultSer.
 
NotificationResultSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationResultSer +
  +
NotificationResultSerFactory - class mx4j.tools.remote.soap.axis.ser.NotificationResultSerFactory.
 
NotificationResultSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationResultSerFactory +
  +
NotificationSer - class mx4j.tools.remote.soap.axis.ser.NotificationSer.
 
NotificationSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationSer +
  +
NotificationSerFactory - class mx4j.tools.remote.soap.axis.ser.NotificationSerFactory.
 
NotificationSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.NotificationSerFactory +
  +
NotificationStatisticsRecorder - class mx4j.tools.stats.NotificationStatisticsRecorder.
NotificationStatisticsRecorder records statistics of an attribute + based on notifications emitted when it changes.
NotificationStatisticsRecorder() - +Constructor for class mx4j.tools.stats.NotificationStatisticsRecorder +
  +
NotificationTuple - class mx4j.remote.NotificationTuple.
 
NotificationTuple(ObjectName, NotificationListener) - +Constructor for class mx4j.remote.NotificationTuple +
  +
NotificationTuple(ObjectName, NotificationListener, NotificationFilter, Object) - +Constructor for class mx4j.remote.NotificationTuple +
  +
narrowRMIServerStub(Object) - +Method in class mx4j.remote.resolver.iiop.Resolver +
  +
narrowRMIServerStub(Object) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
newConnectionResolver(String, Map) - +Static method in class mx4j.remote.ConnectionResolver +
Returns a subclass of ConnectionResolver for the specified protocol. +
newInstance(MBeanServerConnection) - +Static method in class mx4j.remote.rmi.ClientExceptionCatcher +
  +
newInstance(MBeanServerConnection, ClassLoader) - +Static method in class mx4j.remote.rmi.ClientUnmarshaller +
  +
newInstance(RMIConnection, Subject, AccessControlContext, Map) - +Static method in class mx4j.remote.rmi.RMIConnectionSubjectInvoker +
  +
newInstance(HTTPConnection, Subject, AccessControlContext, Map) - +Static method in class mx4j.tools.remote.http.HTTPSubjectInvoker +
  +
newJMXConnector(JMXServiceURL, Map) - +Static method in class mx4j.remote.ProviderFactory +
  +
newJMXConnector(JMXServiceURL, Map) - +Method in class mx4j.remote.provider.iiop.ClientProvider +
  +
newJMXConnector(JMXServiceURL, Map) - +Method in class mx4j.remote.provider.rmi.ClientProvider +
  +
newJMXConnector(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.provider.burlap.ClientProvider +
  +
newJMXConnector(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.provider.burlap.ssl.ClientProvider +
  +
newJMXConnector(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.provider.hessian.ClientProvider +
  +
newJMXConnector(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.provider.hessian.ssl.ClientProvider +
  +
newJMXConnector(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.provider.local.ClientProvider +
  +
newJMXConnector(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.provider.soap.ClientProvider +
  +
newJMXConnector(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.provider.soap.ssl.ClientProvider +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Static method in class mx4j.remote.ProviderFactory +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Method in class mx4j.remote.provider.iiop.ServerProvider +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Method in class mx4j.remote.provider.rmi.ServerProvider +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Method in class mx4j.tools.remote.provider.burlap.ServerProvider +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Method in class mx4j.tools.remote.provider.burlap.ssl.ServerProvider +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Method in class mx4j.tools.remote.provider.hessian.ServerProvider +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Method in class mx4j.tools.remote.provider.hessian.ssl.ServerProvider +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Method in class mx4j.tools.remote.provider.local.ServerProvider +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Method in class mx4j.tools.remote.provider.soap.ServerProvider +
  +
newJMXConnectorServer(JMXServiceURL, Map, MBeanServer) - +Method in class mx4j.tools.remote.provider.soap.ssl.ServerProvider +
  +
newMBeanServer(String, MBeanServer, MBeanServerDelegate) - +Method in class mx4j.server.ChainedMBeanServerBuilder +
Forwards the call to the chained builder. +
newMBeanServer(String, MBeanServer, MBeanServerDelegate) - +Method in class mx4j.server.MX4JMBeanServerBuilder +
Returns a new MX4JMBeanServer instance. +
newMBeanServerDelegate() - +Method in class mx4j.server.ChainedMBeanServerBuilder +
Forwards the call to the chained builder. +
newMBeanServerDelegate() - +Method in class mx4j.server.MX4JMBeanServerBuilder +
Returns a new MX4JMBeanServerDelegate instance for a new MBeanServer. +
normalize(String) - +Method in class mx4j.tools.adaptor.http.DefaultProcessor +
Normalizes the given string. +
normalizeCodeBase(URL) - +Method in class mx4j.loading.MLetTag +
Normalizes the codebase held by this MLetTag (specified in the MLet file) using the + URL of the MLet file as default. +
normalizeProtocol(String) - +Static method in class mx4j.remote.ProviderHelper +
  +
notFoundElement(String, HttpOutputStream, HttpInputStream) - +Method in class mx4j.tools.adaptor.http.DefaultProcessor +
  +
notFoundElement(String, HttpOutputStream, HttpInputStream) - +Method in interface mx4j.tools.adaptor.http.ProcessorMBean +
Let the processor load internally a not found element. +
notFoundElement(String, HttpOutputStream, HttpInputStream) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
+
+

+O

+
+
OBJECT_ATTR - +Static variable in class mx4j.loading.MLetParser +
  +
OBJECT_NAME - +Static variable in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
  +
OPEN_BRACKET - +Static variable in class mx4j.loading.MLetParser +
  +
OPEN_COMMENT - +Static variable in class mx4j.loading.MLetParser +
  +
ObjectInstanceDeser - class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeser.
 
ObjectInstanceDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeser +
  +
ObjectInstanceDeserFactory - class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeserFactory.
 
ObjectInstanceDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeserFactory +
  +
ObjectInstanceSer - class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSer.
 
ObjectInstanceSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSer +
  +
ObjectInstanceSerFactory - class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSerFactory.
 
ObjectInstanceSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSerFactory +
  +
ObjectNameDeser - class mx4j.tools.remote.soap.axis.ser.ObjectNameDeser.
 
ObjectNameDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.ObjectNameDeser +
  +
ObjectNameDeserFactory - class mx4j.tools.remote.soap.axis.ser.ObjectNameDeserFactory.
 
ObjectNameDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.ObjectNameDeserFactory +
  +
ObjectNameSer - class mx4j.tools.remote.soap.axis.ser.ObjectNameSer.
 
ObjectNameSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.ObjectNameSer +
  +
ObjectNameSerFactory - class mx4j.tools.remote.soap.axis.ser.ObjectNameSerFactory.
 
ObjectNameSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.ObjectNameSerFactory +
  +
ObserverStatisticsRecorder - class mx4j.tools.stats.ObserverStatisticsRecorder.
 
ObserverStatisticsRecorder() - +Constructor for class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
ObserverStatisticsRecorderMBean - interface mx4j.tools.stats.ObserverStatisticsRecorderMBean.
Management interface for ObserverStatisticsRecorder MBeans.
ObserverStatisticsRecorderMBeanDescription - class mx4j.tools.stats.ObserverStatisticsRecorderMBeanDescription.
Management interface descriptions for the ObserverStatisticsRecorder MBean.
ObserverStatisticsRecorderMBeanDescription() - +Constructor for class mx4j.tools.stats.ObserverStatisticsRecorderMBeanDescription +
  +
obfuscatePassword(String) - +Static method in class mx4j.tools.remote.PasswordAuthenticator +
Obfuscates the given password using MD5 as digest algorithm +
obfuscatePassword(String, String) - +Static method in class mx4j.tools.remote.PasswordAuthenticator +
Obfuscates the given password using the given digest algorithm.
+ Obfuscation consists of 2 steps: first the clear text password is digested + using the specified algorithm, then the resulting bytes are Base64-encoded.
+ For example, the obfuscated version of the password "password" is "OBF(MD5):X03MO1qnZdYdgyfeuILPmQ==" + or "OBF(SHA-1):W6ph5Mm5Pz8GgiULbPgzG37mj9g=". +
observedAttribute - +Variable in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
observedName - +Variable in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
onEndElement(String, String, DeserializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.AxisDeserializer +
  +
onSerialize(SerializationContext, NotificationFilterSupport) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSer +
  +
onSerialize(SerializationContext, Notification) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSer +
  +
onSerialize(SerializationContext, Notification) - +Method in class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSer +
  +
onSerialize(SerializationContext, NotificationFilterSupport) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer +
  +
onSerialize(SerializationContext, Notification) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationSer +
  +
onSerialize(SerializationContext, Notification) - +Method in class mx4j.tools.remote.soap.axis.ser.TimerNotificationSer +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.AttributeDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.AttributeListDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.AxisDeserializer +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationResultDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.ObjectNameDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.PrincipalDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleInfoDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleListDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleResultDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.SetDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.SubjectDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeser +
  +
onSetChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeser +
  +
onStartChild(String, String, String, Attributes, DeserializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.AxisDeserializer +
  +
onStartElement(String, String, String, Attributes, DeserializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.AxisDeserializer +
  +
+
+

+P

+
+
POST_DEREGISTER - +Static variable in interface mx4j.server.interceptor.MBeanServerInterceptor +
Constant used to specify the status of the MBean registration in MBeanServerInterceptor.registration(mx4j.server.MBeanMetaData, int) +
POST_REGISTER_FALSE - +Static variable in interface mx4j.server.interceptor.MBeanServerInterceptor +
Constant used to specify the status of the MBean registration in MBeanServerInterceptor.registration(mx4j.server.MBeanMetaData, int) +
POST_REGISTER_TRUE - +Static variable in interface mx4j.server.interceptor.MBeanServerInterceptor +
Constant used to specify the status of the MBean registration in MBeanServerInterceptor.registration(mx4j.server.MBeanMetaData, int) +
PRE_DEREGISTER - +Static variable in interface mx4j.server.interceptor.MBeanServerInterceptor +
Constant used to specify the status of the MBean registration in MBeanServerInterceptor.registration(mx4j.server.MBeanMetaData, int) +
PRE_REGISTER - +Static variable in interface mx4j.server.interceptor.MBeanServerInterceptor +
Constant used to specify the status of the MBean registration in MBeanServerInterceptor.registration(mx4j.server.MBeanMetaData, int) +
PROTOCOL_RESOLVER_PACKAGES - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
The key that specifies resolver packages, very much like + JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES +
PROVIDER_PACKAGES - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
MX4J provider packages list for JMXConnector and JMXConnectorServer factories +
PROVIDER_PACKAGES_SEPARATOR - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
A vertical bar '|' as mandated by the spec +
PasswordAuthenticator - class mx4j.tools.remote.PasswordAuthenticator.
Implementation of the JMXAuthenticator interface to be used on server side + to secure access to JMXConnectorServers.
PasswordAuthenticator(File) - +Constructor for class mx4j.tools.remote.PasswordAuthenticator +
Creates a new PasswordAuthenticator that reads user/password pairs from the specified properties file. +
PasswordAuthenticator(InputStream) - +Constructor for class mx4j.tools.remote.PasswordAuthenticator +
Creates a new PasswordAuthenticator that reads user/password pairs from the specified InputStream. +
Persister - class mx4j.persist.Persister.
This class has the only purpose of making the PersisterMBean interface a management interface.
Persister() - +Constructor for class mx4j.persist.Persister +
  +
PersisterMBean - interface mx4j.persist.PersisterMBean.
Management interface for components able to persist information to a storage media.
PlainAdaptorServerSocketFactory - class mx4j.tools.adaptor.PlainAdaptorServerSocketFactory.
Creates plain ServerSockets.
PlainAdaptorServerSocketFactory() - +Constructor for class mx4j.tools.adaptor.PlainAdaptorServerSocketFactory +
  +
PointTime - class mx4j.tools.stats.PointTime.
Class PointTime encapsulates the time and order of a value.
PointTime(Date, long) - +Constructor for class mx4j.tools.stats.PointTime +
  +
PrincipalDeser - class mx4j.tools.remote.soap.axis.ser.PrincipalDeser.
 
PrincipalDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.PrincipalDeser +
  +
PrincipalDeserFactory - class mx4j.tools.remote.soap.axis.ser.PrincipalDeserFactory.
 
PrincipalDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.PrincipalDeserFactory +
  +
PrincipalSer - class mx4j.tools.remote.soap.axis.ser.PrincipalSer.
 
PrincipalSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.PrincipalSer +
  +
PrincipalSerFactory - class mx4j.tools.remote.soap.axis.ser.PrincipalSerFactory.
 
PrincipalSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.PrincipalSerFactory +
  +
ProcessorMBean - interface mx4j.tools.adaptor.http.ProcessorMBean.
Processor ManagementBean, just defines a generic description
ProcessorMBeanDescription - class mx4j.tools.adaptor.http.ProcessorMBeanDescription.
Description of the ProcessorMBean interface
ProcessorMBeanDescription() - +Constructor for class mx4j.tools.adaptor.http.ProcessorMBeanDescription +
  +
ProviderFactory - class mx4j.remote.ProviderFactory.
 
ProviderFactory() - +Constructor for class mx4j.remote.ProviderFactory +
  +
ProviderHelper - class mx4j.remote.ProviderHelper.
 
ProviderHelper() - +Constructor for class mx4j.remote.ProviderHelper +
  +
parse(String) - +Method in class mx4j.loading.MLetParser +
Parses the given content, that must contains a valid MLet file. +
parseArchive() - +Method in class mx4j.loading.MLetTag +
Returns the jars file names specified in the ARCHIVE attribute of the MLet tag. +
parseMethod(String) - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Parses the connection method. +
parseRequest(String) - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Parses the request +
parseVariables() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Parses the request parameters +
parseVersion(String) - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Parses the request HttpConstants version +
postDeregister() - +Method in class mx4j.log.LoggerBroadcaster +
  +
postDeregister() - +Method in class mx4j.monitor.MX4JMonitor +
  +
postDeregister() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
postDeregister() - +Method in class mx4j.tools.config.ConfigurationLoader +
  +
postDeregister() - +Method in class mx4j.tools.jython.JythonRunner +
  +
postDeregister() - +Method in class mx4j.tools.mail.SMTP +
  +
postDeregister() - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
postDeregister() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
postProcess(HttpOutputStream, HttpInputStream, Document) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
postProcess(HttpOutputStream, HttpInputStream, Exception) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
postRegister(Boolean) - +Method in class mx4j.log.LoggerBroadcaster +
  +
postRegister(Boolean) - +Method in class mx4j.monitor.MX4JMonitor +
  +
postRegister(Boolean) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
postRegister(Boolean) - +Method in class mx4j.tools.config.ConfigurationLoader +
  +
postRegister(Boolean) - +Method in class mx4j.tools.jython.JythonRunner +
  +
postRegister(Boolean) - +Method in class mx4j.tools.mail.SMTP +
  +
postRegister(Boolean) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
postRegister(Boolean) - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
preDeregister() - +Method in class mx4j.log.LoggerBroadcaster +
  +
preDeregister() - +Method in class mx4j.monitor.MX4JMonitor +
  +
preDeregister() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
preDeregister() - +Method in class mx4j.tools.config.ConfigurationLoader +
  +
preDeregister() - +Method in class mx4j.tools.jython.JythonRunner +
  +
preDeregister() - +Method in class mx4j.tools.mail.SMTP +
  +
preDeregister() - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
preDeregister() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
preProcess(String) - +Method in class mx4j.tools.adaptor.http.DefaultProcessor +
  +
preProcess(String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
  +
preProcess(String) - +Method in interface mx4j.tools.adaptor.http.ProcessorMBean +
Preprocess a path and return a replacement path. +
preProcess(String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
preRegister(MBeanServer, ObjectName) - +Method in class mx4j.log.LoggerBroadcaster +
  +
preRegister(MBeanServer, ObjectName) - +Method in class mx4j.monitor.MX4JMonitor +
  +
preRegister(MBeanServer, ObjectName) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Gathers some basic data +
preRegister(MBeanServer, ObjectName) - +Method in class mx4j.tools.config.ConfigurationLoader +
  +
preRegister(MBeanServer, ObjectName) - +Method in class mx4j.tools.jython.JythonRunner +
Gathers some basic data +
preRegister(MBeanServer, ObjectName) - +Method in class mx4j.tools.mail.SMTP +
Gathers some basic data +
preRegister(MBeanServer, ObjectName) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
preRegister(MBeanServer, ObjectName) - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
print(PrintWriter, Node) - +Method in class mx4j.tools.adaptor.http.DefaultProcessor +
  +
printStackTrace() - +Method in class mx4j.tools.config.ConfigurationException +
  +
printStackTrace(PrintStream) - +Method in class mx4j.tools.config.ConfigurationException +
  +
printStackTrace(PrintWriter) - +Method in class mx4j.tools.config.ConfigurationException +
  +
processHttpException(HttpInputStream, HttpOutputStream, HttpException) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
pulse() - +Method in class mx4j.remote.AbstractHeartBeat +
Subclasses will implement this method using protocol specific connections. +
pulse() - +Method in class mx4j.remote.rmi.RMIHeartBeat +
  +
pulse() - +Method in class mx4j.tools.remote.http.HTTPHeartBeat +
  +
put(ObjectName, MBeanMetaData) - +Method in interface mx4j.server.MBeanRepository +
Inserts the given metadata associated with the given object name into this repository. +
put(String, String[], Object) - +Method in class mx4j.util.MethodTernaryTree +
Inserts in this TernaryTree the given method information, using as key the method name and its signature +
putMonitorInfo(ObjectName, MX4JMonitor.MonitorInfo) - +Method in class mx4j.monitor.MX4JMonitor +
  +
putObject(String, Object) - +Method in interface mx4j.tools.config.ConfigurationBuilder.ObjectsHolder +
  +
putObject(String, Object) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Configuration +
  +
+
+

+Q

+
+
queryMBeans(ObjectName, QueryExp) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
queryMBeans(ObjectName, MarshalledObject, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
queryMBeans(ObjectName, QueryExp) - +Method in class mx4j.server.ChainedMBeanServer +
  +
queryMBeans(ObjectName, QueryExp) - +Method in class mx4j.server.MX4JMBeanServer +
  +
queryMBeans(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
queryMBeans(ObjectName, Object, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
queryMBeans(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
queryMBeans(ObjectName, QueryExp) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
queryMBeans(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
queryMBeans(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
queryMBeans(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
queryNames(ObjectName, QueryExp) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
queryNames(ObjectName, MarshalledObject, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
queryNames(ObjectName, QueryExp) - +Method in class mx4j.server.ChainedMBeanServer +
  +
queryNames(ObjectName, QueryExp) - +Method in class mx4j.server.MX4JMBeanServer +
  +
queryNames(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
queryNames(ObjectName, Object, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
queryNames(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
queryNames(ObjectName, QueryExp) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
queryNames(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
queryNames(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
queryNames(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
+
+

+R

+
+
RESOLVER_CLASS - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
The string 'Resolver' +
RESOLVER_PACKAGES - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
MX4J provider packages list for ConnectionResolver subclasses +
RESOLVER_PACKAGES_SEPARATOR - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
A vertical bar '|' +
RESTART_COMMAND - +Static variable in class mx4j.tools.config.DefaultConfigurationBuilder +
  +
RMIConnectionInvoker - class mx4j.remote.rmi.RMIConnectionInvoker.
An RMIConnection that "converts" remote calls to MBeanServer calls, + performing unwrapping of parameters and/or the needed actions.
RMIConnectionInvoker(MBeanServer, ClassLoader, Map) - +Constructor for class mx4j.remote.rmi.RMIConnectionInvoker +
  +
RMIConnectionProxy - class mx4j.remote.rmi.RMIConnectionProxy.
Base class for RMIConnection dynamic proxies.
RMIConnectionProxy(RMIConnection) - +Constructor for class mx4j.remote.rmi.RMIConnectionProxy +
  +
RMIConnectionSubjectInvoker - class mx4j.remote.rmi.RMIConnectionSubjectInvoker.
An RMIConnection proxy that wraps the call into a Subject.doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext) invocation, + in order to execute the code under subject-based security, and to perform subject delegation.
RMIHeartBeat - class mx4j.remote.rmi.RMIHeartBeat.
 
RMIHeartBeat(RMIConnection, ConnectionNotificationEmitter, Map) - +Constructor for class mx4j.remote.rmi.RMIHeartBeat +
  +
RMIRemoteNotificationClientHandler - class mx4j.remote.rmi.RMIRemoteNotificationClientHandler.
RMI-specific RemoteNotificationClientHandler.
RMIRemoteNotificationClientHandler(RMIConnection, ClassLoader, ConnectionNotificationEmitter, HeartBeat, Map) - +Constructor for class mx4j.remote.rmi.RMIRemoteNotificationClientHandler +
  +
ROLE_LIST_QNAME - +Static variable in class mx4j.tools.remote.soap.axis.ser.RoleResultSer +
  +
ROLE_NAME_QNAME - +Static variable in class mx4j.tools.remote.soap.axis.ser.RoleSer +
  +
ROLE_UNRESOLVED_LIST_QNAME - +Static variable in class mx4j.tools.remote.soap.axis.ser.RoleResultSer +
  +
ROLE_VALUE_QNAME - +Static variable in class mx4j.tools.remote.soap.axis.ser.RoleSer +
  +
ReflectionMBeanInvoker - class mx4j.server.ReflectionMBeanInvoker.
Stateless MBeanInvoker that uses reflection to invoke on MBean instances.
ReflectionMBeanInvoker() - +Constructor for class mx4j.server.ReflectionMBeanInvoker +
  +
RelationCommandProcessor - class mx4j.tools.adaptor.http.RelationCommandProcessor.
CreateMBeanCommandProcessor, processes a request for creating and registering + an MBean
RelationCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.RelationCommandProcessor +
  +
RelationTypeSupportDeser - class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeser.
 
RelationTypeSupportDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeser +
  +
RelationTypeSupportDeserFactory - class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeserFactory.
 
RelationTypeSupportDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeserFactory +
  +
RelationTypeSupportSer - class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSer.
 
RelationTypeSupportSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSer +
  +
RelationTypeSupportSerFactory - class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSerFactory.
 
RelationTypeSupportSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSerFactory +
  +
RemoteMBeanProxy - class mx4j.tools.remote.proxy.RemoteMBeanProxy.
 
RemoteMBeanProxy(ObjectName, JMXServiceURL, Map, Subject) - +Constructor for class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
RemoteMBeanProxy(ObjectName, JMXConnector, Map, Subject) - +Constructor for class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
RemoteMBeanProxy(ObjectName, MBeanServerConnection) - +Constructor for class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
RemoteMBeanProxyException - exception mx4j.tools.remote.proxy.RemoteMBeanProxyException.
 
RemoteMBeanProxyException() - +Constructor for class mx4j.tools.remote.proxy.RemoteMBeanProxyException +
  +
RemoteMBeanProxyException(String) - +Constructor for class mx4j.tools.remote.proxy.RemoteMBeanProxyException +
  +
RemoteMBeanProxyException(Exception) - +Constructor for class mx4j.tools.remote.proxy.RemoteMBeanProxyException +
  +
RemoteMBeanProxyException(String, Exception) - +Constructor for class mx4j.tools.remote.proxy.RemoteMBeanProxyException +
  +
RemoteNotificationClientHandler - interface mx4j.remote.RemoteNotificationClientHandler.
Handles remote notification fetching on client side.
RemoteNotificationServerHandler - interface mx4j.remote.RemoteNotificationServerHandler.
Handles remote notification sending on server side.
RepositoryClassLoader - class mx4j.loading.RepositoryClassLoader.
A classloader that delegates to the ClassLoaderRepository
RepositoryClassLoader(ClassLoaderRepository) - +Constructor for class mx4j.loading.RepositoryClassLoader +
  +
Resolver - class mx4j.remote.resolver.iiop.Resolver.
 
Resolver() - +Constructor for class mx4j.remote.resolver.iiop.Resolver +
  +
Resolver - class mx4j.remote.resolver.rmi.Resolver.
Resolver for RMI/JRMP protocol.
Resolver() - +Constructor for class mx4j.remote.resolver.rmi.Resolver +
  +
Resolver - class mx4j.tools.remote.resolver.burlap.Resolver.
 
Resolver() - +Constructor for class mx4j.tools.remote.resolver.burlap.Resolver +
  +
Resolver - class mx4j.tools.remote.resolver.burlap.ssl.Resolver.
 
Resolver() - +Constructor for class mx4j.tools.remote.resolver.burlap.ssl.Resolver +
  +
Resolver - class mx4j.tools.remote.resolver.hessian.Resolver.
 
Resolver() - +Constructor for class mx4j.tools.remote.resolver.hessian.Resolver +
  +
Resolver - class mx4j.tools.remote.resolver.hessian.ssl.Resolver.
 
Resolver() - +Constructor for class mx4j.tools.remote.resolver.hessian.ssl.Resolver +
  +
Resolver - class mx4j.tools.remote.resolver.local.Resolver.
 
Resolver() - +Constructor for class mx4j.tools.remote.resolver.local.Resolver +
  +
Resolver - class mx4j.tools.remote.resolver.soap.Resolver.
 
Resolver() - +Constructor for class mx4j.tools.remote.resolver.soap.Resolver +
  +
Resolver - class mx4j.tools.remote.resolver.soap.ssl.Resolver.
 
Resolver() - +Constructor for class mx4j.tools.remote.resolver.soap.ssl.Resolver +
  +
RoleDeser - class mx4j.tools.remote.soap.axis.ser.RoleDeser.
 
RoleDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleDeser +
  +
RoleDeserFactory - class mx4j.tools.remote.soap.axis.ser.RoleDeserFactory.
 
RoleDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleDeserFactory +
  +
RoleInfoDeser - class mx4j.tools.remote.soap.axis.ser.RoleInfoDeser.
 
RoleInfoDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleInfoDeser +
  +
RoleInfoDeserFactory - class mx4j.tools.remote.soap.axis.ser.RoleInfoDeserFactory.
 
RoleInfoDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleInfoDeserFactory +
  +
RoleInfoSer - class mx4j.tools.remote.soap.axis.ser.RoleInfoSer.
 
RoleInfoSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleInfoSer +
  +
RoleInfoSerFactory - class mx4j.tools.remote.soap.axis.ser.RoleInfoSerFactory.
 
RoleInfoSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleInfoSerFactory +
  +
RoleListDeser - class mx4j.tools.remote.soap.axis.ser.RoleListDeser.
 
RoleListDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleListDeser +
  +
RoleListDeserFactory - class mx4j.tools.remote.soap.axis.ser.RoleListDeserFactory.
 
RoleListDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleListDeserFactory +
  +
RoleListSer - class mx4j.tools.remote.soap.axis.ser.RoleListSer.
 
RoleListSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleListSer +
  +
RoleListSerFactory - class mx4j.tools.remote.soap.axis.ser.RoleListSerFactory.
 
RoleListSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleListSerFactory +
  +
RoleResultDeser - class mx4j.tools.remote.soap.axis.ser.RoleResultDeser.
 
RoleResultDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleResultDeser +
  +
RoleResultDeserFactory - class mx4j.tools.remote.soap.axis.ser.RoleResultDeserFactory.
 
RoleResultDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleResultDeserFactory +
  +
RoleResultSer - class mx4j.tools.remote.soap.axis.ser.RoleResultSer.
 
RoleResultSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleResultSer +
  +
RoleResultSerFactory - class mx4j.tools.remote.soap.axis.ser.RoleResultSerFactory.
 
RoleResultSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleResultSerFactory +
  +
RoleSer - class mx4j.tools.remote.soap.axis.ser.RoleSer.
 
RoleSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleSer +
  +
RoleSerFactory - class mx4j.tools.remote.soap.axis.ser.RoleSerFactory.
 
RoleSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleSerFactory +
  +
RoleUnresolvedDeser - class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeser.
 
RoleUnresolvedDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeser +
  +
RoleUnresolvedDeserFactory - class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeserFactory.
 
RoleUnresolvedDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeserFactory +
  +
RoleUnresolvedListDeser - class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeser.
 
RoleUnresolvedListDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeser +
  +
RoleUnresolvedListDeserFactory - class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeserFactory.
 
RoleUnresolvedListDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeserFactory +
  +
RoleUnresolvedListSer - class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSer.
 
RoleUnresolvedListSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSer +
  +
RoleUnresolvedListSerFactory - class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSerFactory.
 
RoleUnresolvedListSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSerFactory +
  +
RoleUnresolvedSer - class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSer.
 
RoleUnresolvedSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSer +
  +
RoleUnresolvedSerFactory - class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSerFactory.
 
RoleUnresolvedSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSerFactory +
  +
readArguments(CauchoInput, Method) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
readHeader() - +Method in interface mx4j.tools.remote.caucho.CauchoInput +
  +
readHeaders() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Reads the headers +
readHeaders(CauchoInput) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
readLine() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Reads an HTTP line +
readMethod() - +Method in interface mx4j.tools.remote.caucho.CauchoInput +
  +
readObject(Class) - +Method in interface mx4j.tools.remote.caucho.CauchoInput +
Reads and returns an object of the given class, + or a generic object if the class is null. +
readRequest() - +Method in class mx4j.tools.adaptor.http.HttpInputStream +
Reads the request parsing the headers +
recordingStart - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
redirectTo(Logger) - +Static method in class mx4j.log.Log +
Tells to the log service to use the given delegate Logger to perform logging. +
redirectTo(Logger, String) - +Static method in class mx4j.log.Log +
Tells to the log service to use the given delegate Logger to perform logging for the given + category (that cannot be null). +
registerInterceptor(MBeanServerInterceptor, ObjectName) - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Appends the given interceptor, provided by the client, to the existing interceptor chain and registers it as MBean. +
registerInterceptor(MBeanServerInterceptor, ObjectName) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBean +
Appends the given interceptor, provided by the client, to the existing interceptor chain and registers it as MBean. +
registerListener() - +Method in class mx4j.tools.jython.JythonRunner +
  +
registerListener() - +Method in class mx4j.tools.mail.SMTP +
  +
registerMBean(Object, ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
registerMBean(Object, ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
registered - +Variable in class mx4j.tools.stats.NotificationStatisticsRecorder +
  +
registered - +Variable in class mx4j.tools.stats.TimedStatisticsRecorder +
  +
registration(MBeanMetaData, int) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
registration(MBeanMetaData, int) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
registration(MBeanMetaData, int) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
registration(MBeanMetaData, int) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Calls the specified MBeanRegistration method on the MBean instance. +
registration(MBeanMetaData, int) - +Method in class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +
  +
registration(MBeanMetaData, int) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
remove(ObjectName) - +Method in interface mx4j.server.MBeanRepository +
Removes the metadata associated with the given object name from this repository. +
removeClassLoader(ClassLoader) - +Method in class mx4j.server.DefaultClassLoaderRepository +
  +
removeClassLoader(ClassLoader) - +Method in class mx4j.server.ModifiableClassLoaderRepository +
Removes, if exists, the specified ClassLoader from this repository. +
removeCommandProcessor(String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Removes a command processor object by class +
removeCommandProcessor(String) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Removes a command processor object by class +
removeConnection(Connection) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
removeConnectionNotificationListener(NotificationListener) - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
removeConnectionNotificationListener(NotificationListener, NotificationFilter, Object) - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
removeMonitorInfo(ObjectName) - +Method in class mx4j.monitor.MX4JMonitor +
  +
removeNonSerializableEntries(Map) - +Static method in class mx4j.remote.MX4JRemoteUtils +
Returns a copy of the given Map that does not contain non-serializable entries +
removeNotificationListener(NotificationListener, NotificationFilter, Object) - +Method in class mx4j.log.LoggerBroadcaster +
  +
removeNotificationListener(NotificationListener, NotificationFilter, Object) - +Method in interface mx4j.log.LoggerBroadcasterMBean +
  +
removeNotificationListener(NotificationListener) - +Method in class mx4j.monitor.MX4JMonitor +
  +
removeNotificationListener(NotificationListener, NotificationFilter, Object) - +Method in class mx4j.monitor.MX4JMonitor +
  +
removeNotificationListener(Integer) - +Method in class mx4j.remote.DefaultRemoteNotificationServerHandler +
  +
removeNotificationListener(Integer) - +Method in interface mx4j.remote.RemoteNotificationServerHandler +
Removes the listener with the given ID from this handler +
removeNotificationListener(ObjectName, NotificationListener) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
removeNotificationListener(ObjectName, ObjectName) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
removeNotificationListener(ObjectName, ObjectName, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
removeNotificationListener(ObjectName, ObjectName, MarshalledObject, MarshalledObject, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
removeNotificationListener(ObjectName, NotificationListener) - +Method in class mx4j.server.ChainedMBeanServer +
  +
removeNotificationListener(ObjectName, ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) - +Method in class mx4j.server.ChainedMBeanServer +
  +
removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.ChainedMBeanServer +
  +
removeNotificationListener(ObjectName, ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
removeNotificationListener(ObjectName, NotificationListener) - +Method in class mx4j.server.MX4JMBeanServer +
  +
removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) - +Method in class mx4j.server.MX4JMBeanServer +
  +
removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.MX4JMBeanServer +
  +
removeNotificationListener(MBeanMetaData, NotificationListener) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
removeNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
removeNotificationListener(MBeanMetaData, NotificationListener) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
removeNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
removeNotificationListener(MBeanMetaData, NotificationListener) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
removeNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
removeNotificationListener(MBeanMetaData, NotificationListener) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Removes the given notification listener from the MBean. +
removeNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Removes the given notification listener from the MBean, specified by the given filter and handback. +
removeNotificationListener(MBeanMetaData, NotificationListener) - +Method in class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +
  +
removeNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +
  +
removeNotificationListener(MBeanMetaData, NotificationListener) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
removeNotificationListener(MBeanMetaData, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
removeNotificationListener(ObjectName, ObjectName, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
removeNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
removeNotificationListener(ObjectName, ObjectName, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
removeNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
removeNotificationListener(ObjectName, ObjectName, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
removeNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
removeNotificationListener(ObjectName, ObjectName) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
removeNotificationListener(ObjectName, ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
removeNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
removeNotificationListener(ObjectName, NotificationListener) - +Method in class mx4j.tools.remote.http.HTTPConnectionMBeanServerConnection +
  +
removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) - +Method in class mx4j.tools.remote.http.HTTPConnectionMBeanServerConnection +
  +
removeNotificationListener(ObjectName, ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
removeNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
removeNotificationListener(ObjectName, NotificationListener, Subject) - +Method in interface mx4j.tools.remote.local.LocalConnection +
  +
removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object, Subject) - +Method in interface mx4j.tools.remote.local.LocalConnection +
  +
removeNotificationListener(NotificationListener) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
removeNotificationListener(NotificationListener, NotificationFilter, Object) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
removeNotificationListener(ObjectName, ObjectName, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
removeNotificationListener(ObjectName, ObjectName, Object, Object, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
removeNotificationListeners(Integer[]) - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
  +
removeNotificationListeners(Integer[]) - +Method in interface mx4j.remote.RemoteNotificationClientHandler +
Removes the listeners with the given IDs from this handler +
removeNotificationListeners(ObjectName, Integer[], Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
removeNotificationListeners(ObjectName, Integer[], Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
removeNotificationListeners(ObjectName, Integer[], Subject) - +Method in interface mx4j.tools.remote.http.HTTPConnection +
  +
removeNotificationListeners(ObjectName, Integer[], Subject) - +Method in class mx4j.tools.remote.http.HTTPConnectionHandler +
  +
removeNotificationListeners(ObjectName, Integer[], Subject) - +Method in class mx4j.tools.remote.http.HTTPServerInvoker +
  +
removeNotificationListeners(ObjectName, Integer[], Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
removeNotificationListeners(ObjectName, Integer[], Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
removeObservedObject(ObjectName) - +Method in class mx4j.monitor.MX4JMonitor +
  +
removeObservedObject(ObjectName) - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
resolve(String, String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
resolveClass(ObjectStreamClass) - +Method in class mx4j.loading.ClassLoaderObjectInputStream +
  +
resolveProxyClass(String[]) - +Method in class mx4j.loading.ClassLoaderObjectInputStream +
  +
restart() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Deprecated. as of RC 1 +
run() - +Method in class mx4j.remote.AbstractHeartBeat +
  +
run() - +Method in class mx4j.timer.TimeTask +
The method to implement to have this TimeTask to do something. +
run() - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Configuration +
  +
runScript() - +Method in class mx4j.tools.jython.JythonRunner +
Executes a given script. +
runScript() - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Executes a given script. +
+
+

+S

+
+
SCHEMA_ALL - +Static variable in class mx4j.tools.remote.soap.axis.ser.AxisSerializer +
  +
SCHEMA_COMPLEX_TYPE - +Static variable in class mx4j.tools.remote.soap.axis.ser.AxisSerializer +
  +
SCHEMA_ELEMENT - +Static variable in class mx4j.tools.remote.soap.axis.ser.AxisSerializer +
  +
SCHEMA_SEQUENCE - +Static variable in class mx4j.tools.remote.soap.axis.ser.AxisSerializer +
  +
SERVER_INFO - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Server info header +
SERVER_PROVIDER_CLASS - +Static variable in interface mx4j.remote.MX4JRemoteConstants +
The string 'ServerProvider' as mandated by the spec +
SHUTDOWN_COMMAND - +Static variable in class mx4j.tools.config.DefaultConfigurationBuilder +
  +
SMTP - class mx4j.tools.mail.SMTP.
This MBean is meant to send a mail given certain situation.
SMTP() - +Constructor for class mx4j.tools.mail.SMTP +
  +
SMTPMBean - interface mx4j.tools.mail.SMTPMBean.
Management Interface of a SMTP MBean.
SOAPClientInvoker - class mx4j.tools.remote.soap.SOAPClientInvoker.
 
SOAPClientInvoker(String, Service) - +Constructor for class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
SOAPConnector - class mx4j.tools.remote.soap.SOAPConnector.
 
SOAPConnector(JMXServiceURL, Map) - +Constructor for class mx4j.tools.remote.soap.SOAPConnector +
  +
SOAPService - class mx4j.tools.remote.soap.SOAPService.
The server-side service (the WebService actually) where remote calls end up + after being parsed by Axis.
SOAPService() - +Constructor for class mx4j.tools.remote.soap.SOAPService +
  +
SSLAdaptorServerSocketFactory - class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory.
TODO: Fix this class to avoid hardcoding Sun's provider, since it will not work with IBM's JDK.
SSLAdaptorServerSocketFactory() - +Constructor for class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
SSLAdaptorServerSocketFactoryMBean - interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean.
Management interface for the SSL ServerSocket factory
SSLAdaptorServerSocketFactoryMBeanDescription - class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription.
 
SSLAdaptorServerSocketFactoryMBeanDescription() - +Constructor for class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription +
  +
SSLBurlapServlet - class mx4j.tools.remote.caucho.burlap.SSLBurlapServlet.
 
SSLBurlapServlet() - +Constructor for class mx4j.tools.remote.caucho.burlap.SSLBurlapServlet +
  +
SSLHessianServlet - class mx4j.tools.remote.caucho.hessian.SSLHessianServlet.
 
SSLHessianServlet() - +Constructor for class mx4j.tools.remote.caucho.hessian.SSLHessianServlet +
  +
SSLRMIClientSocketFactory - class mx4j.tools.remote.rmi.SSLRMIClientSocketFactory.
 
SSLRMIClientSocketFactory() - +Constructor for class mx4j.tools.remote.rmi.SSLRMIClientSocketFactory +
  +
SSLRMIServerSocketFactory - class mx4j.tools.remote.rmi.SSLRMIServerSocketFactory.
 
SSLRMIServerSocketFactory(SSLContext) - +Constructor for class mx4j.tools.remote.rmi.SSLRMIServerSocketFactory +
  +
SSLRMIServerSocketFactory(SSLContext, int) - +Constructor for class mx4j.tools.remote.rmi.SSLRMIServerSocketFactory +
  +
SSLSOAPService - class mx4j.tools.remote.soap.SSLSOAPService.
This 'pivot' is the one to be used when the invocation is uses the + https protocol
SSLSOAPService() - +Constructor for class mx4j.tools.remote.soap.SSLSOAPService +
  +
STATUS_AUTHENTICATE - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code AUTHENTICATE +
STATUS_BAD_REQUEST - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code BAD REQUEST +
STATUS_FORBIDDEN - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code FORBIDDEN +
STATUS_INTERNAL_ERROR - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code INTERNAL ERROR +
STATUS_MOVED_PERMANENTLY - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code MOVED PERMANENTLY +
STATUS_MOVED_TEMPORARILY - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code MOVED TEMPORARILY +
STATUS_NOT_ALLOWED - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code NOT ALLOWED +
STATUS_NOT_FOUND - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code NOT FOUND +
STATUS_NOT_IMPLEMENTED - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code NOT IMPLEMENTED +
STATUS_NO_CONTENT - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code NO CONTENT +
STATUS_OKAY - +Static variable in class mx4j.tools.adaptor.http.HttpConstants +
Status code OK +
SecurityMBeanServerInterceptor - class mx4j.server.interceptor.SecurityMBeanServerInterceptor.
Interceptor that takes care of performing security checks (in case the SecurityManager is installed) for + MBeanServer to MBean calls.
SecurityMBeanServerInterceptor() - +Constructor for class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
SecurityMBeanServerInterceptorMBean - interface mx4j.server.interceptor.SecurityMBeanServerInterceptorMBean.
Management interface for the SecurityMBeanServerInterceptor MBean
SecurityMBeanServerInterceptorMBeanDescription - class mx4j.server.interceptor.SecurityMBeanServerInterceptorMBeanDescription.
Management interface description for the SecurityMBeanServerInterceptor MBean.
SecurityMBeanServerInterceptorMBeanDescription() - +Constructor for class mx4j.server.interceptor.SecurityMBeanServerInterceptorMBeanDescription +
  +
ServerByDomainCommandProcessor - class mx4j.tools.adaptor.http.ServerByDomainCommandProcessor.
ServerByDomainCommandProcessor, processes a request for getting all the + MBeans of the current server grouped by domains
ServerByDomainCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.ServerByDomainCommandProcessor +
  +
ServerCommandProcessor - class mx4j.tools.adaptor.http.ServerCommandProcessor.
ServerCommandProcessor, processes a request for getting all the + MBeans of the current server
ServerCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.ServerCommandProcessor +
  +
ServerProvider - class mx4j.remote.provider.iiop.ServerProvider.
 
ServerProvider() - +Constructor for class mx4j.remote.provider.iiop.ServerProvider +
  +
ServerProvider - class mx4j.remote.provider.rmi.ServerProvider.
 
ServerProvider() - +Constructor for class mx4j.remote.provider.rmi.ServerProvider +
  +
ServerProvider - class mx4j.tools.remote.provider.burlap.ServerProvider.
 
ServerProvider() - +Constructor for class mx4j.tools.remote.provider.burlap.ServerProvider +
  +
ServerProvider - class mx4j.tools.remote.provider.burlap.ssl.ServerProvider.
 
ServerProvider() - +Constructor for class mx4j.tools.remote.provider.burlap.ssl.ServerProvider +
  +
ServerProvider - class mx4j.tools.remote.provider.hessian.ServerProvider.
 
ServerProvider() - +Constructor for class mx4j.tools.remote.provider.hessian.ServerProvider +
  +
ServerProvider - class mx4j.tools.remote.provider.hessian.ssl.ServerProvider.
 
ServerProvider() - +Constructor for class mx4j.tools.remote.provider.hessian.ssl.ServerProvider +
  +
ServerProvider - class mx4j.tools.remote.provider.local.ServerProvider.
 
ServerProvider() - +Constructor for class mx4j.tools.remote.provider.local.ServerProvider +
  +
ServerProvider - class mx4j.tools.remote.provider.soap.ServerProvider.
SOAP Connector Server Provider
ServerProvider() - +Constructor for class mx4j.tools.remote.provider.soap.ServerProvider +
  +
ServerProvider - class mx4j.tools.remote.provider.soap.ssl.ServerProvider.
 
ServerProvider() - +Constructor for class mx4j.tools.remote.provider.soap.ssl.ServerProvider +
  +
SetAttributeCommandProcessor - class mx4j.tools.adaptor.http.SetAttributeCommandProcessor.
SetAttributeCommandProcessor, processes a request for setting one attribute + in one MBean
SetAttributeCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.SetAttributeCommandProcessor +
  +
SetAttributesCommandProcessor - class mx4j.tools.adaptor.http.SetAttributesCommandProcessor.
SetAttributesCommandProcessor, processes a request for setting one or more attributes + in one MBean.
SetAttributesCommandProcessor() - +Constructor for class mx4j.tools.adaptor.http.SetAttributesCommandProcessor +
  +
SetDeser - class mx4j.tools.remote.soap.axis.ser.SetDeser.
 
SetDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.SetDeser +
  +
SetDeserFactory - class mx4j.tools.remote.soap.axis.ser.SetDeserFactory.
 
SetDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.SetDeserFactory +
  +
SetSer - class mx4j.tools.remote.soap.axis.ser.SetSer.
 
SetSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.SetSer +
  +
SetSerFactory - class mx4j.tools.remote.soap.axis.ser.SetSerFactory.
 
SetSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.SetSerFactory +
  +
StatisticsRecorderMBean - interface mx4j.tools.stats.StatisticsRecorderMBean.
Management interface to be implemented by recorder MBeans.
StatisticsRecorderMBeanDescription - class mx4j.tools.stats.StatisticsRecorderMBeanDescription.
Descriptions of the StatisticsRecorderMBean interface
StatisticsRecorderMBeanDescription() - +Constructor for class mx4j.tools.stats.StatisticsRecorderMBeanDescription +
  +
SubjectDeser - class mx4j.tools.remote.soap.axis.ser.SubjectDeser.
 
SubjectDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.SubjectDeser +
  +
SubjectDeserFactory - class mx4j.tools.remote.soap.axis.ser.SubjectDeserFactory.
 
SubjectDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.SubjectDeserFactory +
  +
SubjectInvoker - class mx4j.tools.remote.SubjectInvoker.
 
SubjectInvoker(Object, Subject, AccessControlContext, Map) - +Constructor for class mx4j.tools.remote.SubjectInvoker +
  +
SubjectSer - class mx4j.tools.remote.soap.axis.ser.SubjectSer.
 
SubjectSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.SubjectSer +
  +
SubjectSerFactory - class mx4j.tools.remote.soap.axis.ser.SubjectSerFactory.
 
SubjectSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.SubjectSerFactory +
  +
schedule(TimeTask) - +Method in class mx4j.timer.TimeQueue +
Schedules the given task for execution. +
sendConnectionNotificationClosed() - +Method in class mx4j.remote.ConnectionNotificationEmitter +
  +
sendConnectionNotificationClosed() - +Method in class mx4j.tools.remote.AbstractJMXConnector +
  +
sendConnectionNotificationFailed() - +Method in class mx4j.remote.AbstractHeartBeat +
Sends the connection failed notification using the emitter specified in + AbstractHeartBeat.AbstractHeartBeat(mx4j.remote.ConnectionNotificationEmitter, java.util.Map) +
sendConnectionNotificationFailed() - +Method in class mx4j.remote.ConnectionNotificationEmitter +
  +
sendConnectionNotificationLost(long) - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
Sends the JMXConnectionNotification.NOTIFS_LOST notification + using the emitter passed to AbstractRemoteNotificationClientHandler +
sendConnectionNotificationLost(long) - +Method in class mx4j.remote.ConnectionNotificationEmitter +
  +
sendConnectionNotificationOpened() - +Method in class mx4j.remote.ConnectionNotificationEmitter +
  +
sendErrorNotification(MX4JMonitor.MonitorInfo, String, String, ObjectName, String) - +Method in class mx4j.monitor.MX4JMonitor +
  +
sendHeaders - +Variable in class mx4j.tools.adaptor.http.HttpOutputStream +
whether to send the headers +
sendHeaders() - +Method in class mx4j.tools.adaptor.http.HttpOutputStream +
Sends the headers +
sendMail() - +Method in class mx4j.tools.mail.SMTP +
  +
sendMail() - +Method in interface mx4j.tools.mail.SMTPMBean +
This will directly execute the send mail. +
sendNotification(Notification) - +Method in class mx4j.log.LoggerBroadcaster +
  +
sendNotification(Notification) - +Method in class mx4j.monitor.MX4JMonitor +
  +
sendNotification(String, String, ObjectName, String, Object, Object) - +Method in class mx4j.monitor.MX4JMonitor +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.AttributeListSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.AttributeSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanInfoSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationResultSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.ObjectNameSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.PrincipalSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleInfoSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleListSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleResultSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.SetSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.SubjectSer +
  +
serialize(QName, Attributes, Object, SerializationContext) - +Method in class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSer +
  +
server - +Variable in class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor +
  +
server - +Variable in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
service(HttpServletRequest, HttpServletResponse) - +Method in class mx4j.tools.remote.caucho.CauchoServlet +
  +
setAddress(JMXServiceURL) - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
Sets the JMXServiceURL that represent the address of this JMXConnectorServer +
setAttribute(Attribute) - +Method in class mx4j.AbstractDynamicMBean +
Sets the value of the manageable attribute, as specified by the DynamicMBean interface. +
setAttribute(ObjectName, Attribute) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
setAttribute(ObjectName, MarshalledObject, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
setAttribute(ObjectName, Attribute) - +Method in class mx4j.server.ChainedMBeanServer +
  +
setAttribute(MBeanMetaData, Attribute) - +Method in interface mx4j.server.MBeanInvoker +
Sets the value of the specified attribute. +
setAttribute(ObjectName, Attribute) - +Method in class mx4j.server.MX4JMBeanServer +
  +
setAttribute(MBeanMetaData, Attribute) - +Method in class mx4j.server.ReflectionMBeanInvoker +
  +
setAttribute(MBeanMetaData, Attribute) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
setAttribute(MBeanMetaData, Attribute) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
setAttribute(MBeanMetaData, Attribute) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
setAttribute(MBeanMetaData, Attribute) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Sets the specified attribute value on the MBean instance. +
setAttribute(MBeanMetaData, Attribute) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
setAttribute(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Call +
  +
setAttribute(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
setAttribute(ObjectName, Object, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
setAttribute(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
setAttribute(ObjectName, Attribute) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
setAttribute(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
setAttribute(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
setAttribute(Attribute) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
setAttribute(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
setAttributes(AttributeList) - +Method in class mx4j.AbstractDynamicMBean +
Sets the manageable attributes, as specified by the DynamicMBean interface. +
setAttributes(ObjectName, AttributeList) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
setAttributes(ObjectName, MarshalledObject, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
setAttributes(ObjectName, AttributeList) - +Method in class mx4j.server.ChainedMBeanServer +
  +
setAttributes(ObjectName, AttributeList) - +Method in class mx4j.server.MX4JMBeanServer +
  +
setAttributes(MBeanMetaData, AttributeList) - +Method in class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +
  +
setAttributes(MBeanMetaData, AttributeList) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
setAttributes(MBeanMetaData, AttributeList) - +Method in class mx4j.server.interceptor.InvokerMBeanServerInterceptor +
  +
setAttributes(MBeanMetaData, AttributeList) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Sets the specified attributes values on the MBean instance. +
setAttributes(MBeanMetaData, AttributeList) - +Method in class mx4j.server.interceptor.SecurityMBeanServerInterceptor +
  +
setAttributes(NamedNodeMap) - +Method in interface mx4j.tools.config.ConfigurationBuilder.Node +
  +
setAttributes(NamedNodeMap) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode +
  +
setAttributes(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
setAttributes(ObjectName, Object, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
setAttributes(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
setAttributes(ObjectName, AttributeList) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
setAttributes(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
setAttributes(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
setAttributes(AttributeList) - +Method in class mx4j.tools.remote.proxy.RemoteMBeanProxy +
  +
setAttributes(ObjectName, Object, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
setAuthenticationMethod(String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the Authentication Method. +
setAuthenticationMethod(String) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the Authentication Method. +
setBCC(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setBCC(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets a comma separated list of address which will go in the BCC mail field +
setCC(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setCC(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets a comma separated list of address which will go in the CC mail field +
setCacheScript(boolean) - +Method in class mx4j.tools.jython.JythonRunner +
Sets whether the script should be kept in the cache. +
setCacheScript(boolean) - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Sets whether the script should be kept in the cache. +
setCategory(String) - +Method in class mx4j.log.CommonsLogger +
  +
setCategory(String) - +Method in class mx4j.log.Log4JLogger +
  +
setCategory(String) - +Method in class mx4j.log.Logger +
  +
setChain(List) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
  +
setChain(List) - +Method in interface mx4j.server.interceptor.MBeanServerInterceptor +
Sets the chain of interceptors on this interceptor. +
setChildValue(Object, Object) - +Method in class mx4j.tools.remote.soap.axis.ser.AxisDeserializer +
  +
setClassLoader(ClassLoader) - +Method in interface mx4j.server.MBeanMetaData +
Sets the classloader for the MBean +
setClassname(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Call +
  +
setClassname(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Create +
  +
setClassname(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.New +
  +
setCode(int) - +Method in class mx4j.tools.adaptor.http.HttpOutputStream +
Sets the answer code +
setContent(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setContent(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the content of the mail +
setCounter(Number) - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
setDefaultLocale(Locale) - +Static method in class mx4j.tools.i18n.I18NStandardMBean +
Set the locale which will be used for future I18NStandardMBeans. +
setDefaultPage(String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
setDefaultPage(String) - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Sets the default start page, serverbydomain as a default +
setDefaultPriority(int) - +Static method in class mx4j.log.Log +
Sets the default priority for all loggers. +
setDifferNotified(boolean) - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
setDifferenceMode(boolean) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
setDifferenceMode(boolean) - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
setDifferenceMode(boolean) - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
setDifferenceMode(boolean) - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
setDocumentBuilder(DocumentBuilder) - +Method in interface mx4j.tools.adaptor.http.HttpCommandProcessor +
Sets the Document Builder factory +
setDocumentBuilder(DocumentBuilder) - +Method in class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor +
Sets the Document Builder factory +
setEnabled(boolean) - +Method in class mx4j.server.interceptor.DefaultMBeanServerInterceptor +
Enables or disables this interceptor +
setEnabled(boolean) - +Method in interface mx4j.server.interceptor.DefaultMBeanServerInterceptorMBean +
Enables or disables this interceptor +
setErrorNotified(boolean) - +Method in class mx4j.monitor.MX4JMonitor.MonitorInfo +
  +
setFile(String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
setFile(String) - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Sets the jar/zip file or the directory where to find the XSL files +
setFinished(boolean) - +Method in class mx4j.timer.TimeTask +
Marks this task as finished or not. +
setFinished(boolean) - +Method in class mx4j.timer.TimerTask +
  +
setFromAddress(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setFromAddress(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the form address set to mail +
setFromName(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setFromName(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the from name presented on the mail +
setGauge(Number) - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
setGauge(Number) - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
setGauge(String) - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
setGranularity(long) - +Method in class mx4j.tools.stats.TimedStatisticsRecorder +
  +
setGranularity(long) - +Method in interface mx4j.tools.stats.TimedStatisticsRecorderMBean +
Sets how often the MBean will poll the variable value +
setGranularityPeriod(long) - +Method in class mx4j.monitor.MX4JMonitor +
  +
setGranularityPeriod(long) - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
setHeader(String, String) - +Method in class mx4j.tools.adaptor.http.HttpOutputStream +
Sets a given header code +
setHighNotified(boolean) - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
setHost(String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the host name where the server will be listening +
setHost(String) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the host name where the server will be listening +
setInitThreshold(Number) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
setInitThreshold(Number) - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
setInvokeFilter(boolean) - +Method in class mx4j.remote.NotificationTuple +
  +
setJMXConnectorServer(AbstractJMXConnectorServer) - +Method in class mx4j.tools.remote.AbstractConnectionManager +
  +
setKeyManagerAlgorithm(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setKeyManagerAlgorithm(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the key manager algorithm, by default is "SunX509". +
setKeyManagerPassword(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setKeyManagerPassword(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the password to access the key present in the keystore. +
setKeyStoreName(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setKeyStoreName(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the name of the keystore; if the keystore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream. +
setKeyStorePassword(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setKeyStorePassword(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the password to access the keystore specified by SSLAdaptorServerSocketFactoryMBean.setKeyStoreName(java.lang.String). +
setKeyStoreType(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setKeyStoreType(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the type of the keystore, by default is "JKS". +
setLoadername(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Create +
  +
setLocale(Locale) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
setLocale(Locale) - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Sets the locale used to internationalize the output +
setLocaleString(String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
setLocaleString(String) - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Sets the locale used to internationalize the output, as a string +
setLoginToServer(boolean) - +Method in class mx4j.tools.mail.SMTP +
  +
setLoginToServer(boolean) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets whether to login to the SMTP server +
setLowNotified(boolean) - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
setMBean(Object) - +Method in interface mx4j.server.MBeanMetaData +
Sets the MBean instance +
setMBeanDynamic(boolean) - +Method in interface mx4j.server.MBeanMetaData +
Sets whether the MBean is dynamic +
setMBeanInfo(MBeanInfo) - +Method in class mx4j.AbstractDynamicMBean +
Sets the MBeanInfo object cached by this instance. +
setMBeanInfo(MBeanInfo) - +Method in interface mx4j.server.MBeanMetaData +
Sets the MBeanInfo of the MBean +
setMBeanInterface(Class) - +Method in interface mx4j.server.MBeanMetaData +
Sets the management interface of the standard MBean +
setMBeanInvoker(MBeanInvoker) - +Method in interface mx4j.server.MBeanMetaData +
Sets the MBeanInvoker of the standard MBean +
setMBeanServer(MBeanServer) - +Method in class mx4j.server.ChainedMBeanServer +
  +
setMBeanServer(MBeanServer) - +Method in interface mx4j.tools.adaptor.http.HttpCommandProcessor +
Sets the target MBeanServer +
setMBeanServer(MBeanServer) - +Method in class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor +
Sets the target MBeanServer +
setMBeanStandard(boolean) - +Method in interface mx4j.server.MBeanMetaData +
Sets whether the MBean is standard +
setMatchNotified(boolean) - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
setMaxEntries(int) - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
setMaxEntries(int) - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Sets the maximum entries stored in this recorder +
setMethod(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Call +
  +
setMimeType(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setMimeType(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the MIME type, by default it is text/plain +
setModulus(Number) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
setModulus(Number) - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
setNextExecutionTime(long) - +Method in class mx4j.timer.TimeTask +
Sets the next execution time. +
setNextExecutionTime(long) - +Method in class mx4j.timer.TimerTask +
  +
setNotificationName(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setNotificationName(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the notification name which will trigger the mail sending. +
setNotificationType(String) - +Method in class mx4j.tools.jython.JythonRunner +
Sets the notification being listed. +
setNotificationType(String) - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Sets the notification type being listened. +
setNotify(boolean) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
setNotify(boolean) - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
setNotifyDiffer(boolean) - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
setNotifyDiffer(boolean) - +Method in interface mx4j.monitor.MX4JStringMonitorMBean +
  +
setNotifyHigh(boolean) - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
setNotifyHigh(boolean) - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
setNotifyLow(boolean) - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
setNotifyLow(boolean) - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
setNotifyMatch(boolean) - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
setNotifyMatch(boolean) - +Method in interface mx4j.monitor.MX4JStringMonitorMBean +
  +
setObjectName(ObjectName) - +Method in interface mx4j.server.MBeanMetaData +
Sets the ObjectName of the MBean +
setObjectid(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Object +
  +
setObjectname(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Call +
  +
setObjectname(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Create +
  +
setObjectname(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Register +
  +
setObjectname(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Unregister +
  +
setObservedAttribute(String) - +Method in class mx4j.monitor.MX4JMonitor +
  +
setObservedAttribute(String) - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
setObservedAttribute(String) - +Method in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
setObservedAttribute(String) - +Method in interface mx4j.tools.stats.ObserverStatisticsRecorderMBean +
Sets the Attribute to be observed +
setObservedObject(ObjectName) - +Method in class mx4j.tools.jython.JythonRunner +
Sets the object being observed by this MBean. +
setObservedObject(ObjectName) - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Sets the object being observed by this MBean. +
setObservedObject(ObjectName) - +Method in class mx4j.tools.mail.SMTP +
  +
setObservedObject(ObjectName) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the observed object. +
setObservedObject(ObjectName) - +Method in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
setObservedObject(ObjectName) - +Method in interface mx4j.tools.stats.ObserverStatisticsRecorderMBean +
Sets the ObjectName to be observed +
setOffset(Number) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
setOffset(Number) - +Method in interface mx4j.monitor.MX4JCounterMonitorMBean +
  +
setOperation(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Call +
  +
setParent(ConfigurationBuilder.Node) - +Method in interface mx4j.tools.config.ConfigurationBuilder.Node +
  +
setParent(ConfigurationBuilder.Node) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode +
  +
setPathInJar(String) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
setPathInJar(String) - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Specifies the path of the XSL templates inside a jar file. +
setPort(int) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the value of the server's port +
setPort(int) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the value of the server's port +
setPort(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Configuration +
  +
setPort(int) - +Method in class mx4j.tools.naming.CosNamingService +
Sets the port on which tnameserv listens for incoming connections. +
setPort(int) - +Method in interface mx4j.tools.naming.CosNamingServiceMBean +
Sets the port on which tnameserv listens for incoming connections. +
setPort(int) - +Method in class mx4j.tools.naming.NamingService +
  +
setPort(int) - +Method in interface mx4j.tools.naming.NamingServiceMBean +
Sets the port on which rmiregistry listens for incoming connections. +
setPriority(int) - +Method in class mx4j.log.Logger +
  +
setProcessor(ProcessorMBean) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the object which will post process the XML results. +
setProcessor(ProcessorMBean) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the object which will post process the XML results. +
setProcessorClass(String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the classname of the object which will post process the XML results. +
setProcessorClass(String) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the classname of the object which will post process the XML results. +
setProcessorName(ObjectName) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the object name which will post process the XML result. +
setProcessorName(ObjectName) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the object name which will post process the XML result. +
setProcessorNameString(String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the object name of the PostProcessor MBean. +
setProcessorNameString(String) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the object name of the PostProcessor MBean. +
setRefobjectid(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Arg +
  +
setRefobjectid(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Call +
  +
setResource(Object) - +Method in class mx4j.AbstractDynamicMBean +
Specifies the resource object on which invoke attribute's getters, attribute's setters and operation's methods. +
setSSLProtocol(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setSSLProtocol(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the SSL protocol version, by default is "TLS". +
setScript(String) - +Method in class mx4j.tools.jython.JythonRunner +
Sets the content of the script. +
setScript(String) - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Sets the content of the script. +
setScriptURL(URL) - +Method in class mx4j.tools.jython.JythonRunner +
Sets the script source as URL. +
setScriptURL(URL) - +Method in interface mx4j.tools.jython.JythonRunnerMBean +
Sets the script source as URL. +
setServerHost(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setServerHost(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the server's host, it can be set as name or IP +
setServerPassword(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setServerPassword(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets server's passowrd, use with setLoginToServer(true) and setServerUsername +
setServerPort(int) - +Method in class mx4j.tools.mail.SMTP +
  +
setServerPort(int) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the server's port. +
setServerUsername(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setServerUsername(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets server's username, use with setLoginToServer(true) +
setSocketFactory(AdaptorServerSocketFactory) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the object which create the server sockets +
setSocketFactory(AdaptorServerSocketFactory) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the object which create the server sockets +
setSocketFactoryName(ObjectName) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the factory's object name which will create the server sockets +
setSocketFactoryName(ObjectName) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the factory's object name which will create the server sockets +
setSocketFactoryNameString(String) - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Sets the factory's object name which will create the server sockets +
setSocketFactoryNameString(String) - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Sets the factory's object name which will create the server sockets +
setStringToCompare(String) - +Method in class mx4j.monitor.MX4JStringMonitor +
  +
setStringToCompare(String) - +Method in interface mx4j.monitor.MX4JStringMonitorMBean +
  +
setSubject(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setSubject(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the mail's subject, by default is Empty subject. +
setText(String) - +Method in interface mx4j.tools.config.ConfigurationBuilder.Node +
  +
setText(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode +
  +
setThreshold(Number) - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
setThresholdNotified(boolean) - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
setThresholds(Number, Number) - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
setThresholds(Number, Number) - +Method in interface mx4j.monitor.MX4JGaugeMonitorMBean +
  +
setTimeout(int) - +Method in class mx4j.tools.mail.SMTP +
  +
setTimeout(int) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets the send timeout, by default it is 10 secs +
setTimestamp(long) - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
setTimestamp(long) - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
setTimestamp(long) - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
setTo(String) - +Method in class mx4j.tools.mail.SMTP +
  +
setTo(String) - +Method in interface mx4j.tools.mail.SMTPMBean +
Sets a comma separated list of address which will go in the TO mail field +
setTrustManagerAlgorithm(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setTrustManagerAlgorithm(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the trust manager algorithm, by default is "SunX509". +
setTrustStoreName(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setTrustStoreName(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the name of the truststore; if the truststore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream. +
setTrustStorePassword(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setTrustStorePassword(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the password to access the truststore specified by SSLAdaptorServerSocketFactoryMBean.setTrustStoreName(java.lang.String). +
setTrustStoreType(String) - +Method in class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +
  +
setTrustStoreType(String) - +Method in interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean +
Sets the type of the truststore, by default is "JKS". +
setType(String) - +Method in class mx4j.tools.config.DefaultConfigurationBuilder.Arg +
  +
setUseCache(boolean) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
setUseCache(boolean) - +Method in interface mx4j.tools.adaptor.http.XSLTProcessorMBean +
Sets the caching of the XSL Templates. +
setValue(Number) - +Method in class mx4j.tools.stats.ValueStatisticsRecorder +
  +
setValue(Number) - +Method in interface mx4j.tools.stats.ValueStatisticsRecorderMBean +
Sets the value to be recorded +
shutdown() - +Method in class mx4j.tools.config.ConfigurationLoader +
  +
shutdown() - +Method in interface mx4j.tools.config.ConfigurationLoaderMBean +
  +
size() - +Method in interface mx4j.server.MBeanRepository +
Returns the size of this repository. +
size() - +Method in class mx4j.timer.TimeQueue +
Returns the number of tasks present in this TimeQueue +
sortAttributes(NamedNodeMap) - +Method in class mx4j.tools.adaptor.http.DefaultProcessor +
Returns a sorted list of attributes. +
splitFunction(Object) - +Method in class mx4j.util.MethodTernaryTree +
  +
start() - +Method in class mx4j.log.LoggerBroadcaster +
  +
start(String) - +Method in class mx4j.log.LoggerBroadcaster +
  +
start() - +Method in interface mx4j.log.LoggerBroadcasterMBean +
  +
start(String) - +Method in interface mx4j.log.LoggerBroadcasterMBean +
  +
start() - +Method in class mx4j.monitor.MX4JMonitor +
  +
start() - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
start() - +Method in class mx4j.remote.AbstractHeartBeat +
  +
start() - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
  +
start() - +Method in interface mx4j.remote.HeartBeat +
Starts the heart beat +
start() - +Method in interface mx4j.remote.RemoteNotificationClientHandler +
Starts notification fetching +
start() - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Starts this configurator, so that the MBeanServer is now able to accept incoming calls. +
start() - +Method in interface mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBean +
Starts this configurator, so that the MBeanServer is now able to accept incoming calls. +
start() - +Method in class mx4j.timer.TimeQueue +
Starts this TimeQueue. +
start() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Starts the server +
start() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Starts the server +
start() - +Method in class mx4j.tools.naming.CosNamingService +
Starts this MBean: tnameserv can now accept incoming calls +
start() - +Method in interface mx4j.tools.naming.CosNamingServiceMBean +
Starts this MBean: tnameserv can now accept incoming calls +
start() - +Method in class mx4j.tools.naming.NamingService +
  +
start() - +Method in interface mx4j.tools.naming.NamingServiceMBean +
Starts this MBean: rmiregistry can now accept incoming calls +
start() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
start(JMXServiceURL, Map) - +Method in interface mx4j.tools.remote.http.WebContainer +
Starts the web container +
start(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.jetty.JettyWebContainer +
  +
start() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
start() - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Starts recording a variable +
startCall() - +Method in interface mx4j.tools.remote.caucho.CauchoInput +
  +
startCall() - +Method in interface mx4j.tools.remote.caucho.CauchoOutput +
  +
startMonitor() - +Method in class mx4j.monitor.MX4JMonitor +
  +
startObserving() - +Method in class mx4j.tools.stats.NotificationStatisticsRecorder +
  +
startObserving() - +Method in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
startObserving() - +Method in class mx4j.tools.stats.TimedStatisticsRecorder +
  +
startReply() - +Method in interface mx4j.tools.remote.caucho.CauchoInput +
Starts reading a reply of a previous call; if the call threw an exception, + the exception is read and re-thrown, otherwise the result of the call + can be read using CauchoInput.readObject(java.lang.Class). +
startReply() - +Method in interface mx4j.tools.remote.caucho.CauchoOutput +
  +
startup(Reader) - +Method in class mx4j.tools.config.ConfigurationLoader +
  +
startup(Reader) - +Method in interface mx4j.tools.config.ConfigurationLoaderMBean +
  +
stop() - +Method in class mx4j.log.LoggerBroadcaster +
  +
stop(String) - +Method in class mx4j.log.LoggerBroadcaster +
  +
stop() - +Method in interface mx4j.log.LoggerBroadcasterMBean +
  +
stop(String) - +Method in interface mx4j.log.LoggerBroadcasterMBean +
  +
stop() - +Method in class mx4j.monitor.MX4JMonitor +
  +
stop() - +Method in interface mx4j.monitor.MX4JMonitorMBean +
  +
stop() - +Method in class mx4j.remote.AbstractHeartBeat +
  +
stop() - +Method in class mx4j.remote.AbstractRemoteNotificationClientHandler +
  +
stop() - +Method in interface mx4j.remote.HeartBeat +
Stops the heart beat +
stop() - +Method in interface mx4j.remote.RemoteNotificationClientHandler +
Stops notification fetching +
stop() - +Method in class mx4j.server.interceptor.MBeanServerInterceptorConfigurator +
Stops this configurator, so that the MBeanServer is not able to accept incoming calls. +
stop() - +Method in interface mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBean +
Stops this configurator, so that the MBeanServer is not able to accept incoming calls. +
stop() - +Method in class mx4j.timer.TimeQueue +
Stops this TimeQueue. +
stop() - +Method in class mx4j.tools.adaptor.http.HttpAdaptor +
Stops the HTTP daemon +
stop() - +Method in interface mx4j.tools.adaptor.http.HttpAdaptorMBean +
Stops the HTTP daemon +
stop() - +Method in class mx4j.tools.naming.CosNamingService +
Stops this MBean: tnameserv cannot accept anymore incoming calls +
stop() - +Method in interface mx4j.tools.naming.CosNamingServiceMBean +
Stops this MBean: tnameserv cannot accept anymore incoming calls +
stop() - +Method in class mx4j.tools.naming.NamingService +
  +
stop() - +Method in interface mx4j.tools.naming.NamingServiceMBean +
Stops this MBean: rmiregistry cannot accept anymore incoming calls +
stop() - +Method in class mx4j.tools.remote.AbstractJMXConnectorServer +
  +
stop() - +Method in interface mx4j.tools.remote.http.WebContainer +
Stops the web container +
stop() - +Method in class mx4j.tools.remote.http.jetty.JettyWebContainer +
  +
stop() - +Method in class mx4j.tools.stats.AbstractStatisticsRecorder +
  +
stop() - +Method in interface mx4j.tools.stats.StatisticsRecorderMBean +
Stops recording a variable +
stopMonitor() - +Method in class mx4j.monitor.MX4JMonitor +
  +
stopObserving() - +Method in class mx4j.tools.stats.NotificationStatisticsRecorder +
  +
stopObserving() - +Method in class mx4j.tools.stats.ObserverStatisticsRecorder +
  +
stopObserving() - +Method in class mx4j.tools.stats.TimedStatisticsRecorder +
  +
store(Object) - +Method in class mx4j.persist.FilePersister +
  +
store(Object) - +Method in class mx4j.persist.MBeanPersister +
  +
store(Object) - +Method in interface mx4j.persist.PersisterMBean +
Store the given information to the storage media. +
sub(Number, Number) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
sub(Number, Number) - +Method in class mx4j.monitor.MX4JGaugeMonitor +
  +
subjectInvoke(Subject, Subject, AccessControlContext, Map, PrivilegedExceptionAction) - +Static method in class mx4j.remote.MX4JRemoteUtils +
  +
subjectInvoke(Object, Method, Object[], Subject) - +Method in class mx4j.tools.remote.SubjectInvoker +
  +
sum(Number, Number) - +Method in class mx4j.monitor.MX4JCounterMonitor +
  +
+
+

+T

+
+
TRACE - +Static variable in class mx4j.log.Logger +
  +
TYPE_ATTR - +Static variable in class mx4j.loading.MLetParser +
  +
TargetedNotificationDeser - class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeser.
 
TargetedNotificationDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeser +
  +
TargetedNotificationDeserFactory - class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeserFactory.
 
TargetedNotificationDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeserFactory +
  +
TargetedNotificationSer - class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSer.
 
TargetedNotificationSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSer +
  +
TargetedNotificationSerFactory - class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSerFactory.
 
TargetedNotificationSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSerFactory +
  +
TimeQueue - class mx4j.timer.TimeQueue.
A queue that executes TimeTasks when it is started.
TimeQueue() - +Constructor for class mx4j.timer.TimeQueue +
Creates a new TimeQueue +
TimeQueue(boolean) - +Constructor for class mx4j.timer.TimeQueue +
Creates a new TimeQueue that will set the thread daemon or not depending on the given argument +
TimeTask - class mx4j.timer.TimeTask.
A task that is executed at a specified time.
TimeTask() - +Constructor for class mx4j.timer.TimeTask +
Constructor for subclasses +
TimedStatisticsRecorder - class mx4j.tools.stats.TimedStatisticsRecorder.
TimedStatisticsRecorder records statistics of an attribute + with a timer polling the value every certain interval
TimedStatisticsRecorder() - +Constructor for class mx4j.tools.stats.TimedStatisticsRecorder +
  +
TimedStatisticsRecorderMBean - interface mx4j.tools.stats.TimedStatisticsRecorderMBean.
Management interface for TimedStatisticsRecorder MBeans.
TimedStatisticsRecorderMBeanDescription - class mx4j.tools.stats.TimedStatisticsRecorderMBeanDescription.
Management interface description for TimedStatisticsRecorder MBeans.
TimedStatisticsRecorderMBeanDescription() - +Constructor for class mx4j.tools.stats.TimedStatisticsRecorderMBeanDescription +
  +
TimerNotificationDeser - class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeser.
 
TimerNotificationDeser() - +Constructor for class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeser +
  +
TimerNotificationDeserFactory - class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeserFactory.
 
TimerNotificationDeserFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeserFactory +
  +
TimerNotificationSer - class mx4j.tools.remote.soap.axis.ser.TimerNotificationSer.
 
TimerNotificationSer() - +Constructor for class mx4j.tools.remote.soap.axis.ser.TimerNotificationSer +
  +
TimerNotificationSerFactory - class mx4j.tools.remote.soap.axis.ser.TimerNotificationSerFactory.
 
TimerNotificationSerFactory(Class, QName) - +Constructor for class mx4j.tools.remote.soap.axis.ser.TimerNotificationSerFactory +
  +
TimerTask - class mx4j.timer.TimerTask.
A subclass of TimeTask for the JMX Timer service.
TimerTask(TimerNotification, Date, long, long, boolean) - +Constructor for class mx4j.timer.TimerTask +
  +
task - +Variable in class mx4j.tools.stats.TimedStatisticsRecorder +
  +
timer - +Static variable in class mx4j.tools.stats.TimedStatisticsRecorder +
  +
toString() - +Method in class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +
  +
toString() - +Method in class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +
  +
toString() - +Method in class mx4j.monitor.MX4JMonitor.MonitorInfo +
  +
toString() - +Method in class mx4j.monitor.MX4JMonitorNotification +
  +
toString() - +Method in class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +
  +
toString() - +Method in class mx4j.remote.NotificationTuple +
  +
toString() - +Method in class mx4j.tools.stats.NotificationStatisticsRecorder +
  +
toString() - +Method in class mx4j.tools.stats.TimedStatisticsRecorder +
  +
toString() - +Method in class mx4j.tools.stats.ValueStatisticsRecorder +
  +
trace(Object) - +Method in class mx4j.log.Logger +
  +
trace(Object, Throwable) - +Method in class mx4j.log.Logger +
  +
+
+

+U

+
+
USE_EXTERNAL_WEB_CONTAINER - +Static variable in class mx4j.tools.remote.http.HTTPConnectorServer +
  +
Utils - class mx4j.util.Utils.
Several utility functions for the JMX implementation
Utils() - +Constructor for class mx4j.util.Utils +
  +
unbind(String) - +Method in class mx4j.tools.naming.NamingService +
  +
unbind(String) - +Method in interface mx4j.tools.naming.NamingServiceMBean +
Removes the binding for the specified name in the rmiregistry +
unbindServer(Object, JMXServiceURL, Map) - +Method in class mx4j.remote.ConnectionResolver +
Unbinds the server bound by ConnectionResolver.bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map) from the place specified by the JMXServiceURL. +
unbindServer(Object, JMXServiceURL, Map) - +Method in class mx4j.remote.resolver.rmi.Resolver +
  +
unbindServer(Object, JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
unbindServer(Object, JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.local.Resolver +
  +
undeploy(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.HTTPResolver +
  +
undeploy(String, JMXServiceURL, Map) - +Method in interface mx4j.tools.remote.http.WebContainer +
Undeploys the servlet mapped to the URL specified by the given JMXServiceURL. +
undeploy(String, JMXServiceURL, Map) - +Method in class mx4j.tools.remote.http.jetty.JettyWebContainer +
  +
undeploy(JMXServiceURL, Map) - +Method in class mx4j.tools.remote.resolver.soap.Resolver +
  +
unmarshal(MarshalledObject) - +Static method in class mx4j.remote.rmi.Marshaller +
  +
unregisterListener() - +Method in class mx4j.tools.jython.JythonRunner +
  +
unregisterListener() - +Method in class mx4j.tools.mail.SMTP +
  +
unregisterMBean(ObjectName) - +Method in class mx4j.remote.rmi.ClientInvoker +
  +
unregisterMBean(ObjectName, Subject) - +Method in class mx4j.remote.rmi.RMIConnectionInvoker +
  +
unregisterMBean(ObjectName) - +Method in class mx4j.server.ChainedMBeanServer +
  +
unregisterMBean(ObjectName) - +Method in class mx4j.server.MX4JMBeanServer +
  +
unregisterMBean(ObjectName, Subject) - +Method in class mx4j.tools.remote.AbstractServerInvoker +
  +
unregisterMBean(ObjectName, Subject) - +Method in interface mx4j.tools.remote.JMXConnection +
  +
unregisterMBean(ObjectName, Subject) - +Method in class mx4j.tools.remote.JMXConnectionHandler +
  +
unregisterMBean(ObjectName) - +Method in class mx4j.tools.remote.JMXConnectionMBeanServerConnection +
  +
unregisterMBean(ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPClientInvoker +
  +
unregisterMBean(ObjectName, Subject) - +Method in class mx4j.tools.remote.http.HTTPService +
  +
unregisterMBean(ObjectName, Subject) - +Method in class mx4j.tools.remote.soap.SOAPClientInvoker +
  +
unschedule(TimeTask) - +Method in class mx4j.timer.TimeQueue +
Removes the given task from this TimeQueue +
+
+

+V

+
+
VALUE_ATTR - +Static variable in class mx4j.loading.MLetParser +
  +
VERSION_ATTR - +Static variable in class mx4j.loading.MLetParser +
  +
ValueStatisticsRecorder - class mx4j.tools.stats.ValueStatisticsRecorder.
ValueStatisticsRecorder records statistics of an attribute + based on changes on the variable value.
ValueStatisticsRecorder() - +Constructor for class mx4j.tools.stats.ValueStatisticsRecorder +
  +
ValueStatisticsRecorderMBean - interface mx4j.tools.stats.ValueStatisticsRecorderMBean.
Management interface for the ValueStatisticsRecorder MBean.
ValueStatisticsRecorderMBeanDescription - class mx4j.tools.stats.ValueStatisticsRecorderMBeanDescription.
MBean description.
ValueStatisticsRecorderMBeanDescription() - +Constructor for class mx4j.tools.stats.ValueStatisticsRecorderMBeanDescription +
  +
value - +Variable in class mx4j.tools.stats.ValueStatisticsRecorder +
  +
+
+

+W

+
+
WARN - +Static variable in class mx4j.log.Logger +
  +
WEB_CONTAINER_CONFIGURATION - +Static variable in class mx4j.tools.remote.http.HTTPConnectorServer +
MX4J's implementation uses this property to specify a String that points to the configuration + resource used to configure the HTTP server for JSR 160 connectors that use HTTP as transport. +
WebContainer - interface mx4j.tools.remote.http.WebContainer.
An Interface for the Web Container so that we can plug in any web container.
waitForNotifications(Object, long) - +Method in class mx4j.remote.DefaultRemoteNotificationServerHandler +
Called when there are no notifications to send to the client. +
warn(Object) - +Method in class mx4j.log.Logger +
  +
warn(Object, Throwable) - +Method in class mx4j.log.Logger +
  +
wildcardMatch(String, String) - +Static method in class mx4j.util.Utils +
  +
write(String) - +Method in class mx4j.tools.adaptor.http.HttpOutputStream +
Writes a given message line +
write(InputStream) - +Method in class mx4j.tools.adaptor.http.HttpOutputStream +
Writes the content of the input stream to the output stream +
writeError(HttpOutputStream, HttpInputStream, Exception) - +Method in class mx4j.tools.adaptor.http.DefaultProcessor +
  +
writeError(HttpOutputStream, HttpInputStream, Exception) - +Method in interface mx4j.tools.adaptor.http.ProcessorMBean +
The method will process the result exception and produce output. +
writeError(HttpOutputStream, HttpInputStream, Exception) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
writeFault(Throwable) - +Method in interface mx4j.tools.remote.caucho.CauchoOutput +
  +
writeHeader(String) - +Method in interface mx4j.tools.remote.caucho.CauchoOutput +
  +
writeMethod(String) - +Method in interface mx4j.tools.remote.caucho.CauchoOutput +
  +
writeObject(Object) - +Method in interface mx4j.tools.remote.caucho.CauchoOutput +
  +
writeResponse(HttpOutputStream, HttpInputStream, Document) - +Method in class mx4j.tools.adaptor.http.DefaultProcessor +
  +
writeResponse(HttpOutputStream, HttpInputStream, Document) - +Method in interface mx4j.tools.adaptor.http.ProcessorMBean +
The method will process the result string and produce an output. +
writeResponse(HttpOutputStream, HttpInputStream, Document) - +Method in class mx4j.tools.adaptor.http.XSLTProcessor +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.AttributeListSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.AttributeSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.AxisSerializer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanInfoSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationResultSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.NotificationSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.ObjectNameSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.PrincipalSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleInfoSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleListSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleResultSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.SetSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.SubjectSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSer +
  +
writeSchema(Class, Types) - +Method in class mx4j.tools.remote.soap.axis.ser.TimerNotificationSer +
  +
+
+

+X

+
+
XSLTProcessor - class mx4j.tools.adaptor.http.XSLTProcessor.
XSLTPostProcessor pass the document through an XSLT transformation
XSLTProcessor() - +Constructor for class mx4j.tools.adaptor.http.XSLTProcessor +
  +
XSLTProcessorMBean - interface mx4j.tools.adaptor.http.XSLTProcessorMBean.
Management interface for the XSLTProcessor MBean.
XSLTProcessorMBeanDescription - class mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription.
Management interface descriptions for the XSLTProcessor MBean.
XSLTProcessorMBeanDescription() - +Constructor for class mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription +
  +
+
+A B C D E F G H I J L M N O P Q R S T U V W X + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/index.html b/mx4j-3.0.2/docs/api/index.html new file mode 100644 index 0000000..ceef9a3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/index.html @@ -0,0 +1,26 @@ + + + + + + +MX4J API + + + + + + + + + +<H2> +Frame Alert</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to<A HREF="overview-summary.html">Non-frame version.</A> + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/AbstractDynamicMBean.html b/mx4j-3.0.2/docs/api/mx4j/AbstractDynamicMBean.html new file mode 100644 index 0000000..7583a40 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/AbstractDynamicMBean.html @@ -0,0 +1,860 @@ + + + + + + +AbstractDynamicMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j +
+Class AbstractDynamicMBean

+
+java.lang.Object
+  extended bymx4j.AbstractDynamicMBean
+
+
+
All Implemented Interfaces:
javax.management.DynamicMBean
+
+
+
+
public abstract class AbstractDynamicMBean
extends java.lang.Object
implements javax.management.DynamicMBean
+ +

+Utility class that allow the user to easily write DynamicMBeans.
+ By extending this class, the developer does not have to implement the methods of the DynamicMBean interface, but + has instead to provide only the metadata (by overriding few methods) and the implementation (by implementing + the methods) of the MBean itself.
+ The methods to override that provides metadata information are usually the following: +

    +
  • createMBeanAttributeInfo, if the MBeans has manageable attributes
  • +
  • createMBeanOperationInfo, if the MBeans has manageable operations
  • +
  • createMBeanNotificationInfo, if the MBeans has manageable notifications
  • +
  • createMBeanConstructorInfo, if the MBeans has manageable constructors
  • +
  • getMBeanDescription
  • +
+ For example, the following MBean only has one manageable attribute: +
+ public class SimpleDynamic extends AbstractDynamicMBean
+ {
+    protected MBeanAttributeInfo[] createMBeanAttributeInfo()
+    {
+       return new MBeanAttributeInfo[]
+       {
+          new MBeanAttributeInfo("Name", String.class.getName(), "The name", true, true, false)
+       };
+    }
+ 

+ protected String getMBeanDescription() + { + return "A simple DynamicMBean"; + } +

+ public String getName() { ... } +

+ public void setName(String name) { ... } + } +

+ It is responsibility of the developer to specify the metadata and implement the methods specified by the + metadata, that will be invoked via reflection by the AbstractDynamicMBean class. For this reason, the methods + belonging to the MBean implementation (in the case above getName() and setName(...)) + must be public. +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected AbstractDynamicMBean() + +
+          Only subclasses can create a new instance of an AbstractDynamicMBean.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  javax.management.MBeanAttributeInfo[]createMBeanAttributeInfo() + +
+          To be overridden to return metadata information about manageable attributes.
+protected  javax.management.MBeanConstructorInfo[]createMBeanConstructorInfo() + +
+          To be overridden to return metadata information about manageable constructors.
+protected  javax.management.MBeanInfocreateMBeanInfo() + +
+          Creates the MBeanInfo for this instance, calling in succession factory methods that the user can override.
+protected  javax.management.MBeanNotificationInfo[]createMBeanNotificationInfo() + +
+          To be overridden to return metadata information about manageable notifications.
+protected  javax.management.MBeanOperationInfo[]createMBeanOperationInfo() + +
+          To be overridden to return metadata information about manageable operations.
+protected  java.lang.reflect.MethodfindMethod(java.lang.Class cls, + java.lang.String name, + java.lang.Class[] params) + +
+          Returns the (public) method with the given name and signature on the given class.
+ java.lang.ObjectgetAttribute(java.lang.String attribute) + +
+          Returns the value of the manageable attribute, as specified by the DynamicMBean interface.
+ javax.management.AttributeListgetAttributes(java.lang.String[] attributes) + +
+          Returns the manageable attributes, as specified by the DynamicMBean interface.
+protected  java.lang.StringgetMBeanClassName() + +
+          To be overridden to return metadata information about the class name of this MBean; + by default returns this class' name.
+protected  java.lang.StringgetMBeanDescription() + +
+          To be overridden to return metadata information about the description of this MBean.
+ javax.management.MBeanInfogetMBeanInfo() + +
+          Returns the MBeaInfo, as specified by the DynamicMBean interface; the default implementation caches the value + returned by createMBeanInfo() (that is thus called only once).
+protected  java.lang.ObjectgetResource() + +
+          Returns the resource object on which invoke attribute's getters, attribute's setters and operation's methods
+protected  java.lang.Objectinvoke(java.lang.Object resource, + java.lang.String name, + java.lang.Class[] params, + java.lang.Object[] args) + +
+          Looks up the method to call on given resource and invokes it.
+protected  java.lang.Objectinvoke(java.lang.String name, + java.lang.Class[] params, + java.lang.Object[] args) + +
+          Deprecated. Replaced by invoke(Object,String,Class[],Object[]).
+ The resource passed is the resource as set by setResource(java.lang.Object) or - if it is null - 'this' instance.
+ This method is deprecated because it is not thread safe.
+ java.lang.Objectinvoke(java.lang.String method, + java.lang.Object[] arguments, + java.lang.String[] params) + +
+          Returns the value of the manageable operation as specified by the DynamicMBean interface
+protected  java.lang.ObjectinvokeMethod(java.lang.reflect.Method method, + java.lang.Object resource, + java.lang.Object[] args) + +
+          Invokes the given method on the given resource object with the given arguments.
+ voidsetAttribute(javax.management.Attribute attribute) + +
+          Sets the value of the manageable attribute, as specified by the DynamicMBean interface.
+ javax.management.AttributeListsetAttributes(javax.management.AttributeList attributes) + +
+          Sets the manageable attributes, as specified by the DynamicMBean interface.
+protected  voidsetMBeanInfo(javax.management.MBeanInfo info) + +
+          Sets the MBeanInfo object cached by this instance.
+ voidsetResource(java.lang.Object resource) + +
+          Specifies the resource object on which invoke attribute's getters, attribute's setters and operation's methods.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AbstractDynamicMBean

+
+protected AbstractDynamicMBean()
+
+
Only subclasses can create a new instance of an AbstractDynamicMBean. +

+

See Also:
createMBeanConstructorInfo()
+ + + + + + + + +
+Method Detail
+ +

+getAttribute

+
+public java.lang.Object getAttribute(java.lang.String attribute)
+                              throws javax.management.AttributeNotFoundException,
+                                     javax.management.MBeanException,
+                                     javax.management.ReflectionException
+
+
Returns the value of the manageable attribute, as specified by the DynamicMBean interface. +

+

+
Specified by:
getAttribute in interface javax.management.DynamicMBean
+
+
+ +
Throws: +
javax.management.AttributeNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException
See Also:
createMBeanAttributeInfo()
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(java.lang.String[] attributes)
+
+
Returns the manageable attributes, as specified by the DynamicMBean interface. +

+

+
Specified by:
getAttributes in interface javax.management.DynamicMBean
+
+
+
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo()
+
+
Returns the MBeaInfo, as specified by the DynamicMBean interface; the default implementation caches the value + returned by createMBeanInfo() (that is thus called only once). +

+

+
Specified by:
getMBeanInfo in interface javax.management.DynamicMBean
+
+
+
See Also:
createMBeanInfo(), +setMBeanInfo(javax.management.MBeanInfo)
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(java.lang.String method,
+                               java.lang.Object[] arguments,
+                               java.lang.String[] params)
+                        throws javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
Returns the value of the manageable operation as specified by the DynamicMBean interface +

+

+
Specified by:
invoke in interface javax.management.DynamicMBean
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.ReflectionException
See Also:
createMBeanOperationInfo()
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.Attribute attribute)
+                  throws javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException
+
+
Sets the value of the manageable attribute, as specified by the DynamicMBean interface. +

+

+
Specified by:
setAttribute in interface javax.management.DynamicMBean
+
+
+ +
Throws: +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException
See Also:
createMBeanAttributeInfo()
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
+
+
Sets the manageable attributes, as specified by the DynamicMBean interface. +

+

+
Specified by:
setAttributes in interface javax.management.DynamicMBean
+
+
+
+
+
+
+ +

+invoke

+
+protected java.lang.Object invoke(java.lang.String name,
+                                  java.lang.Class[] params,
+                                  java.lang.Object[] args)
+                           throws javax.management.InvalidAttributeValueException,
+                                  javax.management.MBeanException,
+                                  javax.management.ReflectionException
+
+
Deprecated. Replaced by invoke(Object,String,Class[],Object[]).
+ The resource passed is the resource as set by setResource(java.lang.Object) or - if it is null - 'this' instance.
+ This method is deprecated because it is not thread safe.
+

+

+
+
+
+ +
Throws: +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+invoke

+
+protected java.lang.Object invoke(java.lang.Object resource,
+                                  java.lang.String name,
+                                  java.lang.Class[] params,
+                                  java.lang.Object[] args)
+                           throws javax.management.InvalidAttributeValueException,
+                                  javax.management.MBeanException,
+                                  javax.management.ReflectionException
+
+
Looks up the method to call on given resource and invokes it. + The default implementation requires that the methods that implement attribute and operation behavior + on the resource object are public, but it is possible to override this behavior, and call + also private methods. +

+

+
+
+
+ +
Throws: +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException
See Also:
findMethod(java.lang.Class, java.lang.String, java.lang.Class[]), +invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])
+
+
+
+ +

+findMethod

+
+protected java.lang.reflect.Method findMethod(java.lang.Class cls,
+                                              java.lang.String name,
+                                              java.lang.Class[] params)
+                                       throws java.lang.NoSuchMethodException
+
+
Returns the (public) method with the given name and signature on the given class.
+ Override to return non-public methods, or to map methods to other classes, or to map methods with + different signatures +

+

+
+
+
+ +
Throws: +
java.lang.NoSuchMethodException
See Also:
invoke(String, Class[], Object[]), +invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])
+
+
+
+ +

+invokeMethod

+
+protected java.lang.Object invokeMethod(java.lang.reflect.Method method,
+                                        java.lang.Object resource,
+                                        java.lang.Object[] args)
+                                 throws java.lang.IllegalAccessException,
+                                        java.lang.IllegalArgumentException,
+                                        java.lang.reflect.InvocationTargetException
+
+
Invokes the given method on the given resource object with the given arguments.
+ Override to map methods to other objects, or to map methods with different arguments +

+

+
+
+
+ +
Throws: +
java.lang.IllegalAccessException +
java.lang.IllegalArgumentException +
java.lang.reflect.InvocationTargetException
See Also:
invoke(String, Class[], Object[]), +findMethod(java.lang.Class, java.lang.String, java.lang.Class[])
+
+
+
+ +

+getResource

+
+protected java.lang.Object getResource()
+
+
Returns the resource object on which invoke attribute's getters, attribute's setters and operation's methods +

+

+
+
+
+
See Also:
setResource(java.lang.Object)
+
+
+
+ +

+setResource

+
+public void setResource(java.lang.Object resource)
+
+
Specifies the resource object on which invoke attribute's getters, attribute's setters and operation's methods. +

+

+
+
+
+
See Also:
getResource()
+
+
+
+ +

+setMBeanInfo

+
+protected void setMBeanInfo(javax.management.MBeanInfo info)
+
+
Sets the MBeanInfo object cached by this instance.
+ The given MBeanInfo is not cloned. +

+

+
+
+
+
See Also:
getMBeanInfo()
+
+
+
+ +

+createMBeanInfo

+
+protected javax.management.MBeanInfo createMBeanInfo()
+
+
Creates the MBeanInfo for this instance, calling in succession factory methods that the user can override. + Information to create MBeanInfo are taken calling the following methods: + +

+

+
+
+
+
+
+
+
+ +

+createMBeanAttributeInfo

+
+protected javax.management.MBeanAttributeInfo[] createMBeanAttributeInfo()
+
+
To be overridden to return metadata information about manageable attributes. +

+

+
+
+
+
+
+
+
+ +

+createMBeanConstructorInfo

+
+protected javax.management.MBeanConstructorInfo[] createMBeanConstructorInfo()
+
+
To be overridden to return metadata information about manageable constructors. +

+

+
+
+
+
+
+
+
+ +

+createMBeanOperationInfo

+
+protected javax.management.MBeanOperationInfo[] createMBeanOperationInfo()
+
+
To be overridden to return metadata information about manageable operations. +

+

+
+
+
+
+
+
+
+ +

+createMBeanNotificationInfo

+
+protected javax.management.MBeanNotificationInfo[] createMBeanNotificationInfo()
+
+
To be overridden to return metadata information about manageable notifications. +

+

+
+
+
+
+
+
+
+ +

+getMBeanClassName

+
+protected java.lang.String getMBeanClassName()
+
+
To be overridden to return metadata information about the class name of this MBean; + by default returns this class' name. +

+

+
+
+
+
+
+
+
+ +

+getMBeanDescription

+
+protected java.lang.String getMBeanDescription()
+
+
To be overridden to return metadata information about the description of this MBean. +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/ImplementationException.html b/mx4j-3.0.2/docs/api/mx4j/ImplementationException.html new file mode 100644 index 0000000..1e53a21 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/ImplementationException.html @@ -0,0 +1,258 @@ + + + + + + +ImplementationException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j +
+Class ImplementationException

+
+java.lang.Object
+  extended byjava.lang.Throwable
+      extended byjava.lang.Exception
+          extended byjava.lang.RuntimeException
+              extended bymx4j.ImplementationException
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class ImplementationException
extends java.lang.RuntimeException
+ +

+Thrown when an internal error in the MX4J implementation is detected. + Contact the MX4J mailing list for support when this exception is thrown in your programs. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Constructor Summary
ImplementationException() + +
+           
ImplementationException(java.lang.String message) + +
+           
+  + + + + + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ImplementationException

+
+public ImplementationException()
+
+
+
+ +

+ImplementationException

+
+public ImplementationException(java.lang.String message)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/MBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/MBeanDescription.html new file mode 100644 index 0000000..a41c802 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/MBeanDescription.html @@ -0,0 +1,395 @@ + + + + + + +MBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j +
+Interface MBeanDescription

+
+
All Known Implementing Classes:
MBeanDescriptionAdapter
+
+
+
+
public interface MBeanDescription
+ +

+Implement this inteface to give descriptions to standard MBean.

+ The MX4J implementation will look, for every standard MBean, for a class with name composed by + the fully qualified MBean class name + "MBeanDescription". + If such a class is found, the MX4J implementation will call its methods to retrieve description + information about the MBean itself. + MBean descriptions are built-in in DynamicMBean, but not in standard MBeans. + The XDoclet tool is used to automate the process of + generating the MBeanDescription classes for a given MBean, along with the MBean interface. +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetConstructorDescription(java.lang.reflect.Constructor ctor) + +
+          Should return the description for the given constructor of the MBean.
+ java.lang.StringgetConstructorParameterDescription(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the description for the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetConstructorParameterName(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the name of the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ java.lang.StringgetOperationParameterDescription(java.lang.reflect.Method method, + int index) + +
+          Should return the description for the operations's parameter for the given operation and parameter index.
+ java.lang.StringgetOperationParameterName(java.lang.reflect.Method method, + int index) + +
+          Should return the name of the operation's parameter for the given operation and parameter index.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
+
+
+
+ +

+getConstructorDescription

+
+public java.lang.String getConstructorDescription(java.lang.reflect.Constructor ctor)
+
+
Should return the description for the given constructor of the MBean. + For example: "Creates an rmiregistry instance on the specified port" +

+

+
+
+
+
+ +

+getConstructorParameterName

+
+public java.lang.String getConstructorParameterName(java.lang.reflect.Constructor ctor,
+                                                    int index)
+
+
Should return the name of the constructor's parameter for the given constructor and parameter index. + For example: "port" +

+

+
+
+
+
+ +

+getConstructorParameterDescription

+
+public java.lang.String getConstructorParameterDescription(java.lang.reflect.Constructor ctor,
+                                                           int index)
+
+
Should return the description for the constructor's parameter for the given constructor and parameter index. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
+
+
+
+ +

+getOperationParameterName

+
+public java.lang.String getOperationParameterName(java.lang.reflect.Method method,
+                                                  int index)
+
+
Should return the name of the operation's parameter for the given operation and parameter index. + For example: "bindName" +

+

+
+
+
+
+ +

+getOperationParameterDescription

+
+public java.lang.String getOperationParameterDescription(java.lang.reflect.Method method,
+                                                         int index)
+
+
Should return the description for the operations's parameter for the given operation and parameter index. + For example: "The name to which the object will be bound to" +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/MBeanDescriptionAdapter.html b/mx4j-3.0.2/docs/api/mx4j/MBeanDescriptionAdapter.html new file mode 100644 index 0000000..bdeb516 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/MBeanDescriptionAdapter.html @@ -0,0 +1,463 @@ + + + + + + +MBeanDescriptionAdapter (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j +
+Class MBeanDescriptionAdapter

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
Direct Known Subclasses:
CosNamingServiceMBeanDescription, DefaultMBeanServerInterceptorMBeanDescription, HttpAdaptorMBeanDescription, InvokerMBeanServerInterceptorMBeanDescription, JythonRunnerMBeanDescription, MBeanServerInterceptorConfiguratorMBeanDescription, NamingServiceMBeanDescription, ProcessorMBeanDescription, SecurityMBeanServerInterceptorMBeanDescription, SSLAdaptorServerSocketFactoryMBeanDescription, StatisticsRecorderMBeanDescription
+
+
+
+
public class MBeanDescriptionAdapter
extends java.lang.Object
implements MBeanDescription
+ +

+Default implementation for the MBeanDescription interface. +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MBeanDescriptionAdapter() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetConstructorDescription(java.lang.reflect.Constructor ctor) + +
+          Should return the description for the given constructor of the MBean.
+ java.lang.StringgetConstructorParameterDescription(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the description for the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetConstructorParameterName(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the name of the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ java.lang.StringgetOperationParameterDescription(java.lang.reflect.Method method, + int index) + +
+          Should return the description for the operations's parameter for the given operation and parameter index.
+ java.lang.StringgetOperationParameterName(java.lang.reflect.Method method, + int index) + +
+          Should return the name of the operation's parameter for the given operation and parameter index.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanDescriptionAdapter

+
+public MBeanDescriptionAdapter()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
+
+
+
+
+
+
+ +

+getConstructorDescription

+
+public java.lang.String getConstructorDescription(java.lang.reflect.Constructor ctor)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the given constructor of the MBean. + For example: "Creates an rmiregistry instance on the specified port" +

+

+
Specified by:
getConstructorDescription in interface MBeanDescription
+
+
+
+
+
+
+ +

+getConstructorParameterName

+
+public java.lang.String getConstructorParameterName(java.lang.reflect.Constructor ctor,
+                                                    int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the constructor's parameter for the given constructor and parameter index. + For example: "port" +

+

+
Specified by:
getConstructorParameterName in interface MBeanDescription
+
+
+
+
+
+
+ +

+getConstructorParameterDescription

+
+public java.lang.String getConstructorParameterDescription(java.lang.reflect.Constructor ctor,
+                                                           int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the constructor's parameter for the given constructor and parameter index. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getConstructorParameterDescription in interface MBeanDescription
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
+
+
+
+
+
+
+ +

+getOperationParameterName

+
+public java.lang.String getOperationParameterName(java.lang.reflect.Method method,
+                                                  int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the operation's parameter for the given operation and parameter index. + For example: "bindName" +

+

+
Specified by:
getOperationParameterName in interface MBeanDescription
+
+
+
+
+
+
+ +

+getOperationParameterDescription

+
+public java.lang.String getOperationParameterDescription(java.lang.reflect.Method method,
+                                                         int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the operations's parameter for the given operation and parameter index. + For example: "The name to which the object will be bound to" +

+

+
Specified by:
getOperationParameterDescription in interface MBeanDescription
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/MX4JSystemKeys.html b/mx4j-3.0.2/docs/api/mx4j/MX4JSystemKeys.html new file mode 100644 index 0000000..5e0ec62 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/MX4JSystemKeys.html @@ -0,0 +1,444 @@ + + + + + + +MX4JSystemKeys (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j +
+Class MX4JSystemKeys

+
+java.lang.Object
+  extended bymx4j.MX4JSystemKeys
+
+
+
+
public final class MX4JSystemKeys
extends java.lang.Object
+ +

+This class holds the system property keys that the MX4J implementation uses to plugin + custom components.
+ The naming convention is that, for a defined constant, the corrispondent system property + is obtained by converting the constant name to lowercase and by replacing the underscores + with dots so that, for example, the constant MX4J_MBEANSERVER_CLASSLOADER_REPOSITORY + correspond to the system property key mx4j.mbeanserver.classloader.repository +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringMX4J_LOG_PRIORITY + +
+          Specifies the level of logging performed by the MX4J JMX implementation.
+static java.lang.StringMX4J_LOG_PROTOTYPE + +
+          Specifies a full qualified class name of a class extending the Logger class, that + will be used as prototype for new loggers created.
+static java.lang.StringMX4J_MBEAN_INVOKER + +
+          Specifies a full qualified class name of a class implementing the MBeanInvoker interface, + that will be used as invoker for standard MBeans.
+static java.lang.StringMX4J_MBEAN_METADATA + +
+          Specifies a full qualified name of a class implementing the MBeanMetaData interface, + that is used internally by MX4J to store information about the MBean.
+static java.lang.StringMX4J_MBEANSERVER_CLASSLOADER_REPOSITORY + +
+          Specifies a full qualified class name of a class extending the ModifiableClassLoaderRepository + class, that will be used by the MBeanServer to store ClassLoader MBeans that wants to be registered in + the MBeanServer's ClassLoaderRepository.
+static java.lang.StringMX4J_MBEANSERVER_REPOSITORY + +
+          Specifies a full qualified class name of a class implementing the MBeanRepository + interface, that will be used by the MBeanServer to store information about registered MBeans.
+static java.lang.StringMX4J_OBJECTNAME_CACHING + +
+          Specifies if the ObjectName class should cache ObjectName instances.
+static java.lang.StringMX4J_STRICT_MBEAN_INTERFACE + +
+          When this property is set to false (as specified by Boolean.valueOf(String)), the MX4J + JMX implementation will accept as MBean interfaces of standard MBeans also interfaces defined in + different packages or as nested classes of the MBean class.
+  + + + + + + + + + + +
+Constructor Summary
MX4JSystemKeys() + +
+           
+  + + + + + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+MX4J_MBEANSERVER_REPOSITORY

+
+public static final java.lang.String MX4J_MBEANSERVER_REPOSITORY
+
+
Specifies a full qualified class name of a class implementing the MBeanRepository + interface, that will be used by the MBeanServer to store information about registered MBeans. +

+

+
See Also:
Constant Field Values
+
+
+ +

+MX4J_MBEANSERVER_CLASSLOADER_REPOSITORY

+
+public static final java.lang.String MX4J_MBEANSERVER_CLASSLOADER_REPOSITORY
+
+
Specifies a full qualified class name of a class extending the ModifiableClassLoaderRepository + class, that will be used by the MBeanServer to store ClassLoader MBeans that wants to be registered in + the MBeanServer's ClassLoaderRepository. +

+

+
See Also:
Constant Field Values
+
+
+ +

+MX4J_LOG_PRIORITY

+
+public static final java.lang.String MX4J_LOG_PRIORITY
+
+
Specifies the level of logging performed by the MX4J JMX implementation. + Possible value are (case insensitive), from most verbose to least verbose: +
    +
  • trace
  • +
  • debug
  • +
  • info
  • +
  • warn
  • +
  • error
  • +
  • fatal
  • +
+

+

+
See Also:
Constant Field Values
+
+
+ +

+MX4J_LOG_PROTOTYPE

+
+public static final java.lang.String MX4J_LOG_PROTOTYPE
+
+
Specifies a full qualified class name of a class extending the Logger class, that + will be used as prototype for new loggers created. +

+

+
See Also:
Constant Field Values
+
+
+ +

+MX4J_STRICT_MBEAN_INTERFACE

+
+public static final java.lang.String MX4J_STRICT_MBEAN_INTERFACE
+
+
When this property is set to false (as specified by Boolean.valueOf(String)), the MX4J + JMX implementation will accept as MBean interfaces of standard MBeans also interfaces defined in + different packages or as nested classes of the MBean class. + So for example, will be possible for a com.foo.Service to have a management interface called + com.bar.ServiceMBean. + If not defined, or if set to true, only MBean interfaces of the same package of the MBean class + are considered valid management interfaces. +

+

+
See Also:
Constant Field Values
+
+
+ +

+MX4J_MBEAN_INVOKER

+
+public static final java.lang.String MX4J_MBEAN_INVOKER
+
+
Specifies a full qualified class name of a class implementing the MBeanInvoker interface, + that will be used as invoker for standard MBeans. + Two classes are provided by the MX4J JMX implementation: BCELMBeanInvoker and + CachingReflectionMBeanInvoker. + The first one will use BCEL classes (if present) to speed up invocations on standard MBeans, while the second + uses reflection. + If, for any reason, the BCEL invocation fails, then the reflected invoker is used. +

+

+
See Also:
Constant Field Values
+
+
+ +

+MX4J_OBJECTNAME_CACHING

+
+public static final java.lang.String MX4J_OBJECTNAME_CACHING
+
+
Specifies if the ObjectName class should cache ObjectName instances. + This property is 'true' by default. + ObjectName caching can be disabled by setting this property to 'false', to reduce memory footprint + in case of use of large numbers of ObjectNames. +

+

+
See Also:
Constant Field Values
+
+
+ +

+MX4J_MBEAN_METADATA

+
+public static final java.lang.String MX4J_MBEAN_METADATA
+
+
Specifies a full qualified name of a class implementing the MBeanMetaData interface, + that is used internally by MX4J to store information about the MBean. +

+

+
See Also:
MBeanMetaData.Factory, +Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+MX4JSystemKeys

+
+public MX4JSystemKeys()
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/class-use/AbstractDynamicMBean.html b/mx4j-3.0.2/docs/api/mx4j/class-use/AbstractDynamicMBean.html new file mode 100644 index 0000000..9344c73 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/class-use/AbstractDynamicMBean.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.AbstractDynamicMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.AbstractDynamicMBean

+
+No usage of mx4j.AbstractDynamicMBean +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/class-use/ImplementationException.html b/mx4j-3.0.2/docs/api/mx4j/class-use/ImplementationException.html new file mode 100644 index 0000000..c10073e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/class-use/ImplementationException.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.ImplementationException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.ImplementationException

+
+No usage of mx4j.ImplementationException +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/class-use/MBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/class-use/MBeanDescription.html new file mode 100644 index 0000000..b956ca5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/class-use/MBeanDescription.html @@ -0,0 +1,418 @@ + + + + + + +Uses of Interface mx4j.MBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.MBeanDescription

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use MBeanDescription
mx4j  
mx4j.server.interceptor  
mx4j.tools.adaptor.http  
mx4j.tools.adaptor.ssl  
mx4j.tools.jython  
mx4j.tools.naming  
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of MBeanDescription in mx4j
+  +

+ + + + + + + + + +
Classes in mx4j that implement MBeanDescription
+ classMBeanDescriptionAdapter + +
+          Default implementation for the MBeanDescription interface.
+  +

+ + + + + +
+Uses of MBeanDescription in mx4j.server.interceptor
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.server.interceptor that implement MBeanDescription
+ classDefaultMBeanServerInterceptorMBeanDescription + +
+          Management interface description for the DefaultMBeanServerInterceptor MBean
+ classInvokerMBeanServerInterceptorMBeanDescription + +
+          Management interface description for the InvokerMBeanServerInterceptor MBean.
+ classMBeanServerInterceptorConfiguratorMBeanDescription + +
+          Management interface description for the MBeanServerInterceptorConfigurator MBean.
+ classSecurityMBeanServerInterceptorMBeanDescription + +
+          Management interface description for the SecurityMBeanServerInterceptor MBean.
+  +

+ + + + + +
+Uses of MBeanDescription in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.adaptor.http that implement MBeanDescription
+ classHttpAdaptorMBeanDescription + +
+          Management interface descriptions for the HttpAdaptor MBean.
+ classProcessorMBeanDescription + +
+          Description of the ProcessorMBean interface
+ classXSLTProcessorMBeanDescription + +
+          Management interface descriptions for the XSLTProcessor MBean.
+  +

+ + + + + +
+Uses of MBeanDescription in mx4j.tools.adaptor.ssl
+  +

+ + + + + + + + + +
Classes in mx4j.tools.adaptor.ssl that implement MBeanDescription
+ classSSLAdaptorServerSocketFactoryMBeanDescription + +
+           
+  +

+ + + + + +
+Uses of MBeanDescription in mx4j.tools.jython
+  +

+ + + + + + + + + +
Classes in mx4j.tools.jython that implement MBeanDescription
+ classJythonRunnerMBeanDescription + +
+          Management interface descriptions for the JythonRunner MBean.
+  +

+ + + + + +
+Uses of MBeanDescription in mx4j.tools.naming
+  +

+ + + + + + + + + + + + + +
Classes in mx4j.tools.naming that implement MBeanDescription
+ classCosNamingServiceMBeanDescription + +
+          Management interface descriptions for the CosNamingService MBean.
+ classNamingServiceMBeanDescription + +
+          Management interface descriptions for the NamingService MBean.
+  +

+ + + + + +
+Uses of MBeanDescription in mx4j.tools.stats
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.stats that implement MBeanDescription
+ classObserverStatisticsRecorderMBeanDescription + +
+          Management interface descriptions for the ObserverStatisticsRecorder MBean.
+ classStatisticsRecorderMBeanDescription + +
+          Descriptions of the StatisticsRecorderMBean interface
+ classTimedStatisticsRecorderMBeanDescription + +
+          Management interface description for TimedStatisticsRecorder MBeans.
+ classValueStatisticsRecorderMBeanDescription + +
+          MBean description.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/class-use/MBeanDescriptionAdapter.html b/mx4j-3.0.2/docs/api/mx4j/class-use/MBeanDescriptionAdapter.html new file mode 100644 index 0000000..68bef9c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/class-use/MBeanDescriptionAdapter.html @@ -0,0 +1,389 @@ + + + + + + +Uses of Class mx4j.MBeanDescriptionAdapter (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.MBeanDescriptionAdapter

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use MBeanDescriptionAdapter
mx4j.server.interceptor  
mx4j.tools.adaptor.http  
mx4j.tools.adaptor.ssl  
mx4j.tools.jython  
mx4j.tools.naming  
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of MBeanDescriptionAdapter in mx4j.server.interceptor
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Subclasses of MBeanDescriptionAdapter in mx4j.server.interceptor
+ classDefaultMBeanServerInterceptorMBeanDescription + +
+          Management interface description for the DefaultMBeanServerInterceptor MBean
+ classInvokerMBeanServerInterceptorMBeanDescription + +
+          Management interface description for the InvokerMBeanServerInterceptor MBean.
+ classMBeanServerInterceptorConfiguratorMBeanDescription + +
+          Management interface description for the MBeanServerInterceptorConfigurator MBean.
+ classSecurityMBeanServerInterceptorMBeanDescription + +
+          Management interface description for the SecurityMBeanServerInterceptor MBean.
+  +

+ + + + + +
+Uses of MBeanDescriptionAdapter in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + + + + + + + + + +
Subclasses of MBeanDescriptionAdapter in mx4j.tools.adaptor.http
+ classHttpAdaptorMBeanDescription + +
+          Management interface descriptions for the HttpAdaptor MBean.
+ classProcessorMBeanDescription + +
+          Description of the ProcessorMBean interface
+ classXSLTProcessorMBeanDescription + +
+          Management interface descriptions for the XSLTProcessor MBean.
+  +

+ + + + + +
+Uses of MBeanDescriptionAdapter in mx4j.tools.adaptor.ssl
+  +

+ + + + + + + + + +
Subclasses of MBeanDescriptionAdapter in mx4j.tools.adaptor.ssl
+ classSSLAdaptorServerSocketFactoryMBeanDescription + +
+           
+  +

+ + + + + +
+Uses of MBeanDescriptionAdapter in mx4j.tools.jython
+  +

+ + + + + + + + + +
Subclasses of MBeanDescriptionAdapter in mx4j.tools.jython
+ classJythonRunnerMBeanDescription + +
+          Management interface descriptions for the JythonRunner MBean.
+  +

+ + + + + +
+Uses of MBeanDescriptionAdapter in mx4j.tools.naming
+  +

+ + + + + + + + + + + + + +
Subclasses of MBeanDescriptionAdapter in mx4j.tools.naming
+ classCosNamingServiceMBeanDescription + +
+          Management interface descriptions for the CosNamingService MBean.
+ classNamingServiceMBeanDescription + +
+          Management interface descriptions for the NamingService MBean.
+  +

+ + + + + +
+Uses of MBeanDescriptionAdapter in mx4j.tools.stats
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Subclasses of MBeanDescriptionAdapter in mx4j.tools.stats
+ classObserverStatisticsRecorderMBeanDescription + +
+          Management interface descriptions for the ObserverStatisticsRecorder MBean.
+ classStatisticsRecorderMBeanDescription + +
+          Descriptions of the StatisticsRecorderMBean interface
+ classTimedStatisticsRecorderMBeanDescription + +
+          Management interface description for TimedStatisticsRecorder MBeans.
+ classValueStatisticsRecorderMBeanDescription + +
+          MBean description.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/class-use/MX4JSystemKeys.html b/mx4j-3.0.2/docs/api/mx4j/class-use/MX4JSystemKeys.html new file mode 100644 index 0000000..ee2eaff --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/class-use/MX4JSystemKeys.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.MX4JSystemKeys (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.MX4JSystemKeys

+
+No usage of mx4j.MX4JSystemKeys +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/ClassLoaderObjectInputStream.html b/mx4j-3.0.2/docs/api/mx4j/loading/ClassLoaderObjectInputStream.html new file mode 100644 index 0000000..df8e12d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/ClassLoaderObjectInputStream.html @@ -0,0 +1,360 @@ + + + + + + +ClassLoaderObjectInputStream (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.loading +
+Class ClassLoaderObjectInputStream

+
+java.lang.Object
+  extended byjava.io.InputStream
+      extended byjava.io.ObjectInputStream
+          extended bymx4j.loading.ClassLoaderObjectInputStream
+
+
+
All Implemented Interfaces:
java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants
+
+
+
+
public class ClassLoaderObjectInputStream
extends java.io.ObjectInputStream
+ +

+ObjectInputStream that can read serialized java Objects using a supplied classloader + to find the object's classes. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + +
+Nested Class Summary
+ + + + + + + +
Nested classes inherited from class java.io.ObjectInputStream
java.io.ObjectInputStream.GetField
+  + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
+  + + + + + + + + + + +
+Constructor Summary
ClassLoaderObjectInputStream(java.io.InputStream stream, + java.lang.ClassLoader classLoader) + +
+          Creates a new ClassLoaderObjectInputStream
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ClassresolveClass(java.io.ObjectStreamClass osc) + +
+           
+protected  java.lang.ClassresolveProxyClass(java.lang.String[] interfaces) + +
+           
+ + + + + + + +
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, skipBytes
+ + + + + + + +
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset, skip
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface java.io.ObjectInput
read, skip
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClassLoaderObjectInputStream

+
+public ClassLoaderObjectInputStream(java.io.InputStream stream,
+                                    java.lang.ClassLoader classLoader)
+                             throws java.io.IOException,
+                                    java.io.StreamCorruptedException
+
+
Creates a new ClassLoaderObjectInputStream +

+

Parameters:
stream - The decorated stream
classLoader - The ClassLoader used to load classes
+ + + + + + + + +
+Method Detail
+ +

+resolveClass

+
+protected java.lang.Class resolveClass(java.io.ObjectStreamClass osc)
+                                throws java.io.IOException,
+                                       java.lang.ClassNotFoundException
+
+
+ +
Throws: +
java.io.IOException +
java.lang.ClassNotFoundException
+
+
+
+ +

+resolveProxyClass

+
+protected java.lang.Class resolveProxyClass(java.lang.String[] interfaces)
+                                     throws java.io.IOException,
+                                            java.lang.ClassNotFoundException
+
+
+ +
Throws: +
java.io.IOException +
java.lang.ClassNotFoundException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/MLetParseException.html b/mx4j-3.0.2/docs/api/mx4j/loading/MLetParseException.html new file mode 100644 index 0000000..158eefc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/MLetParseException.html @@ -0,0 +1,256 @@ + + + + + + +MLetParseException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.loading +
+Class MLetParseException

+
+java.lang.Object
+  extended byjava.lang.Throwable
+      extended byjava.lang.Exception
+          extended bymx4j.loading.MLetParseException
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class MLetParseException
extends java.lang.Exception
+ +

+Thrown when a problem parsing MLet files is encountered +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Constructor Summary
MLetParseException() + +
+           
MLetParseException(java.lang.String message) + +
+           
+  + + + + + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MLetParseException

+
+public MLetParseException()
+
+
+
+ +

+MLetParseException

+
+public MLetParseException(java.lang.String message)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/MLetParser.html b/mx4j-3.0.2/docs/api/mx4j/loading/MLetParser.html new file mode 100644 index 0000000..4d0caad --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/MLetParser.html @@ -0,0 +1,551 @@ + + + + + + +MLetParser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.loading +
+Class MLetParser

+
+java.lang.Object
+  extended bymx4j.loading.MLetParser
+
+
+
+
public class MLetParser
extends java.lang.Object
+ +

+The parser for MLet files, as specified in the JMX documentation. + This parser is case insensitive regards to the MLet tags: MLET is equal to mlet and to MLet. + This parser also supports XML-style comments in the file. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringARCHIVE_ATTR + +
+           
+static java.lang.StringARG_TAG + +
+           
+static java.lang.StringCLOSE_BRACKET + +
+           
+static java.lang.StringCLOSE_COMMENT + +
+           
+static java.lang.StringCODE_ATTR + +
+           
+static java.lang.StringCODEBASE_ATTR + +
+           
+static java.lang.StringMLET_TAG + +
+           
+static java.lang.StringNAME_ATTR + +
+           
+static java.lang.StringOBJECT_ATTR + +
+           
+static java.lang.StringOPEN_BRACKET + +
+           
+static java.lang.StringOPEN_COMMENT + +
+           
+static java.lang.StringTYPE_ATTR + +
+           
+static java.lang.StringVALUE_ATTR + +
+           
+static java.lang.StringVERSION_ATTR + +
+           
+  + + + + + + + + + + + + + +
+Constructor Summary
MLetParser() + +
+          Creates a new MLetParser
MLetParser(javax.management.loading.MLet mlet) + +
+          Creates a new MLetParser
+  + + + + + + + + + + + +
+Method Summary
+ java.util.Listparse(java.lang.String content) + +
+          Parses the given content, that must contains a valid MLet file.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+OPEN_COMMENT

+
+public static final java.lang.String OPEN_COMMENT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+CLOSE_COMMENT

+
+public static final java.lang.String CLOSE_COMMENT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OPEN_BRACKET

+
+public static final java.lang.String OPEN_BRACKET
+
+
+
See Also:
Constant Field Values
+
+
+ +

+CLOSE_BRACKET

+
+public static final java.lang.String CLOSE_BRACKET
+
+
+
See Also:
Constant Field Values
+
+
+ +

+MLET_TAG

+
+public static final java.lang.String MLET_TAG
+
+
+
See Also:
Constant Field Values
+
+
+ +

+CODE_ATTR

+
+public static final java.lang.String CODE_ATTR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+OBJECT_ATTR

+
+public static final java.lang.String OBJECT_ATTR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+ARCHIVE_ATTR

+
+public static final java.lang.String ARCHIVE_ATTR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+CODEBASE_ATTR

+
+public static final java.lang.String CODEBASE_ATTR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+NAME_ATTR

+
+public static final java.lang.String NAME_ATTR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+VERSION_ATTR

+
+public static final java.lang.String VERSION_ATTR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+ARG_TAG

+
+public static final java.lang.String ARG_TAG
+
+
+
See Also:
Constant Field Values
+
+
+ +

+TYPE_ATTR

+
+public static final java.lang.String TYPE_ATTR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+VALUE_ATTR

+
+public static final java.lang.String VALUE_ATTR
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+MLetParser

+
+public MLetParser()
+
+
Creates a new MLetParser +

+

+
+ +

+MLetParser

+
+public MLetParser(javax.management.loading.MLet mlet)
+
+
Creates a new MLetParser +

+

Parameters:
mlet - The MLet used to resolve classes specified in the ARG tags.
+ + + + + + + + +
+Method Detail
+ +

+parse

+
+public java.util.List parse(java.lang.String content)
+                     throws MLetParseException
+
+
Parses the given content, that must contains a valid MLet file. +

+

+
Parameters:
content - The content to parse +
Returns:
A list of MLetTags +
Throws: +
MLetParseException - If the content is not a valid MLet file
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/MLetTag.html b/mx4j-3.0.2/docs/api/mx4j/loading/MLetTag.html new file mode 100644 index 0000000..7f88ffc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/MLetTag.html @@ -0,0 +1,467 @@ + + + + + + +MLetTag (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.loading +
+Class MLetTag

+
+java.lang.Object
+  extended bymx4j.loading.MLetTag
+
+
+
+
public class MLetTag
extends java.lang.Object
+ +

+Represents an MLET tag, as documented in the JMX specification. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MLetTag() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.net.URLcreateArchiveURL(java.net.URL codebase, + java.lang.String archive) + +
+          Returns the URL for the given archive file name using the provided URL as a codebase, + or null if the URL cannot be created.
+ java.lang.StringgetArchive() + +
+           
+ java.lang.Object[]getArguments() + +
+           
+ java.lang.StringgetCode() + +
+           
+ java.lang.StringgetCodeBase() + +
+           
+ java.lang.StringgetObject() + +
+           
+ javax.management.ObjectNamegetObjectName() + +
+           
+ java.lang.String[]getSignature() + +
+           
+ java.lang.StringgetVersion() + +
+           
+ java.net.URLnormalizeCodeBase(java.net.URL mletFileURL) + +
+          Normalizes the codebase held by this MLetTag (specified in the MLet file) using the + URL of the MLet file as default.
+ java.lang.String[]parseArchive() + +
+          Returns the jars file names specified in the ARCHIVE attribute of the MLet tag.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MLetTag

+
+public MLetTag()
+
+
+ + + + + + + + +
+Method Detail
+ +

+normalizeCodeBase

+
+public java.net.URL normalizeCodeBase(java.net.URL mletFileURL)
+
+
Normalizes the codebase held by this MLetTag (specified in the MLet file) using the + URL of the MLet file as default. + This means that if the codebase in the MLet file is not provided or it is relative, then + the URL of the MLet file will be taken as base for computing the normalized codebase; + otherwise, if a full URL has been specified as codebase in the MLet file, that URL is taken + and the URL of the MLet file is discarded. +

+

+
Parameters:
mletFileURL - The URL of the MLet file +
Returns:
The normalized codebase
+
+
+
+ +

+parseArchive

+
+public java.lang.String[] parseArchive()
+
+
Returns the jars file names specified in the ARCHIVE attribute of the MLet tag. +

+

+
+
+
+
+ +

+createArchiveURL

+
+public java.net.URL createArchiveURL(java.net.URL codebase,
+                                     java.lang.String archive)
+
+
Returns the URL for the given archive file name using the provided URL as a codebase, + or null if the URL cannot be created. +

+

+
+
+
+
+ +

+getVersion

+
+public java.lang.String getVersion()
+
+
+
+
+
+
+ +

+getCodeBase

+
+public java.lang.String getCodeBase()
+
+
+
+
+
+
+ +

+getArchive

+
+public java.lang.String getArchive()
+
+
+
+
+
+
+ +

+getCode

+
+public java.lang.String getCode()
+
+
+
+
+
+
+ +

+getObjectName

+
+public javax.management.ObjectName getObjectName()
+
+
+
+
+
+
+ +

+getObject

+
+public java.lang.String getObject()
+
+
+
+
+
+
+ +

+getSignature

+
+public java.lang.String[] getSignature()
+
+
+
+
+
+
+ +

+getArguments

+
+public java.lang.Object[] getArguments()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/RepositoryClassLoader.html b/mx4j-3.0.2/docs/api/mx4j/loading/RepositoryClassLoader.html new file mode 100644 index 0000000..9221f55 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/RepositoryClassLoader.html @@ -0,0 +1,283 @@ + + + + + + +RepositoryClassLoader (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.loading +
+Class RepositoryClassLoader

+
+java.lang.Object
+  extended byjava.lang.ClassLoader
+      extended byjava.security.SecureClassLoader
+          extended bymx4j.loading.RepositoryClassLoader
+
+
+
+
public class RepositoryClassLoader
extends java.security.SecureClassLoader
+ +

+A classloader that delegates to the ClassLoaderRepository +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
RepositoryClassLoader(javax.management.loading.ClassLoaderRepository repository) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.ClassloadClass(java.lang.String name) + +
+           
+ + + + + + + +
Methods inherited from class java.security.SecureClassLoader
defineClass, getPermissions
+ + + + + + + +
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RepositoryClassLoader

+
+public RepositoryClassLoader(javax.management.loading.ClassLoaderRepository repository)
+
+
+ + + + + + + + +
+Method Detail
+ +

+loadClass

+
+public java.lang.Class loadClass(java.lang.String name)
+                          throws java.lang.ClassNotFoundException
+
+
+ +
Throws: +
java.lang.ClassNotFoundException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/class-use/ClassLoaderObjectInputStream.html b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/ClassLoaderObjectInputStream.html new file mode 100644 index 0000000..11f6e26 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/ClassLoaderObjectInputStream.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.loading.ClassLoaderObjectInputStream (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.loading.ClassLoaderObjectInputStream

+
+No usage of mx4j.loading.ClassLoaderObjectInputStream +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetParseException.html b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetParseException.html new file mode 100644 index 0000000..e3d3350 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetParseException.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.loading.MLetParseException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.loading.MLetParseException

+
+ + + + + + + + + +
+Packages that use MLetParseException
mx4j.loading  
+  +

+ + + + + +
+Uses of MLetParseException in mx4j.loading
+  +

+ + + + + + + + + +
Methods in mx4j.loading that throw MLetParseException
+ java.util.ListMLetParser.parse(java.lang.String content) + +
+          Parses the given content, that must contains a valid MLet file.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetParser.html b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetParser.html new file mode 100644 index 0000000..16916bc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetParser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.loading.MLetParser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.loading.MLetParser

+
+No usage of mx4j.loading.MLetParser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetTag.html b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetTag.html new file mode 100644 index 0000000..f640ef1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/MLetTag.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.loading.MLetTag (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.loading.MLetTag

+
+No usage of mx4j.loading.MLetTag +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/class-use/RepositoryClassLoader.html b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/RepositoryClassLoader.html new file mode 100644 index 0000000..7d83706 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/class-use/RepositoryClassLoader.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.loading.RepositoryClassLoader (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.loading.RepositoryClassLoader

+
+No usage of mx4j.loading.RepositoryClassLoader +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/loading/package-frame.html new file mode 100644 index 0000000..9802270 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/package-frame.html @@ -0,0 +1,49 @@ + + + + + + +mx4j.loading (MX4J API) + + + + + + + + + + + +mx4j.loading + + + + +
+Classes  + +
+ClassLoaderObjectInputStream +
+MLetParser +
+MLetTag +
+RepositoryClassLoader
+ + + + + + +
+Exceptions  + +
+MLetParseException
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/loading/package-summary.html new file mode 100644 index 0000000..1a1cb5f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/package-summary.html @@ -0,0 +1,175 @@ + + + + + + +mx4j.loading (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.loading +

+ + + + + + + + + + + + + + + + + + + + + +
+Class Summary
ClassLoaderObjectInputStreamObjectInputStream that can read serialized java Objects using a supplied classloader + to find the object's classes.
MLetParserThe parser for MLet files, as specified in the JMX documentation.
MLetTagRepresents an MLET tag, as documented in the JMX specification.
RepositoryClassLoaderA classloader that delegates to the ClassLoaderRepository
+  + +

+ + + + + + + + + +
+Exception Summary
MLetParseExceptionThrown when a problem parsing MLet files is encountered
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/loading/package-tree.html new file mode 100644 index 0000000..8f9a419 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/package-tree.html @@ -0,0 +1,159 @@ + + + + + + +mx4j.loading Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.loading +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class java.lang.ClassLoader +
    • class java.io.InputStream
        +
      • class java.io.ObjectInputStream (implements java.io.ObjectInput, java.io.ObjectStreamConstants) + +
      +
    • class mx4j.loading.MLetParser
    • class mx4j.loading.MLetTag
    • class java.lang.Throwable (implements java.io.Serializable) + +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/loading/package-use.html b/mx4j-3.0.2/docs/api/mx4j/loading/package-use.html new file mode 100644 index 0000000..c28f974 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/loading/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.loading (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.loading

+
+ + + + + + + + + +
+Packages that use mx4j.loading
mx4j.loading  
+  +

+ + + + + + + + +
+Classes in mx4j.loading used by mx4j.loading
MLetParseException + +
+          Thrown when a problem parsing MLet files is encountered
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/CommonsLogger.html b/mx4j-3.0.2/docs/api/mx4j/log/CommonsLogger.html new file mode 100644 index 0000000..65ea1a6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/CommonsLogger.html @@ -0,0 +1,315 @@ + + + + + + +CommonsLogger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.log +
+Class CommonsLogger

+
+java.lang.Object
+  extended bymx4j.log.Logger
+      extended bymx4j.log.CommonsLogger
+
+
+
+
public class CommonsLogger
extends Logger
+ +

+Log that redirects log calls to Jakarta Commons Logging.

+

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.log.Logger
DEBUG, ERROR, FATAL, INFO, TRACE, WARN
+  + + + + + + + + + + +
+Constructor Summary
CommonsLogger() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidlog(int priority, + java.lang.Object message, + java.lang.Throwable t) + +
+           
+protected  voidsetCategory(java.lang.String category) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.log.Logger
debug, debug, error, error, fatal, fatal, getCategory, getPriority, info, info, isEnabledFor, setPriority, trace, trace, warn, warn
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CommonsLogger

+
+public CommonsLogger()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setCategory

+
+protected void setCategory(java.lang.String category)
+
+
+
Overrides:
setCategory in class Logger
+
+
+
+
+
+
+ +

+log

+
+protected void log(int priority,
+                   java.lang.Object message,
+                   java.lang.Throwable t)
+
+
+
Overrides:
log in class Logger
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/FileLogger.html b/mx4j-3.0.2/docs/api/mx4j/log/FileLogger.html new file mode 100644 index 0000000..ff93ac2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/FileLogger.html @@ -0,0 +1,295 @@ + + + + + + +FileLogger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.log +
+Class FileLogger

+
+java.lang.Object
+  extended bymx4j.log.Logger
+      extended bymx4j.log.FileLogger
+
+
+
+
public class FileLogger
extends Logger
+ +

+This logger logs to a file.

+ It's used by the ModelMBean implementation.
+ Since the constructor takes a parameter, cannot be used as prototype for logging redirection. +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.log.Logger
DEBUG, ERROR, FATAL, INFO, TRACE, WARN
+  + + + + + + + + + + +
+Constructor Summary
FileLogger(java.lang.String location) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  voidlog(int priority, + java.lang.Object message, + java.lang.Throwable t) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.log.Logger
debug, debug, error, error, fatal, fatal, getCategory, getPriority, info, info, isEnabledFor, setCategory, setPriority, trace, trace, warn, warn
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+FileLogger

+
+public FileLogger(java.lang.String location)
+
+
+ + + + + + + + +
+Method Detail
+ +

+log

+
+protected void log(int priority,
+                   java.lang.Object message,
+                   java.lang.Throwable t)
+
+
+
Overrides:
log in class Logger
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/Log.html b/mx4j-3.0.2/docs/api/mx4j/log/Log.html new file mode 100644 index 0000000..e75fe62 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/Log.html @@ -0,0 +1,342 @@ + + + + + + +Log (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.log +
+Class Log

+
+java.lang.Object
+  extended bymx4j.log.Log
+
+
+
+
public class Log
extends java.lang.Object
+ +

+Main class for the log service.

+ The system property 'mx4j.log.priority' controls the priority of the standard logging, and defaults to 'warn'. + Possible values are, from least to greatest priority, the following (case insensitive): +

    +
  • trace +
  • debug +
  • info +
  • warn +
  • error +
  • fatal +
+

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static intgetDefaultPriority() + +
+          Returns the default priority.
+static LoggergetLogger(java.lang.String category) + +
+          Returns a new instance of a Logger associated with the given category; + if redirectTo(mx4j.log.Logger) has been called then a new instance of the prototype Logger, associated with the given + category, is returned.
+static voidredirectTo(Logger prototype) + +
+          Tells to the log service to use the given delegate Logger to perform logging.
+static voidredirectTo(Logger prototype, + java.lang.String category) + +
+          Tells to the log service to use the given delegate Logger to perform logging for the given + category (that cannot be null).
+static voidsetDefaultPriority(int priority) + +
+          Sets the default priority for all loggers.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setDefaultPriority

+
+public static void setDefaultPriority(int priority)
+
+
Sets the default priority for all loggers. +

+

+
See Also:
setDefaultPriority(int)
+
+
+
+ +

+getDefaultPriority

+
+public static int getDefaultPriority()
+
+
Returns the default priority. +

+

+
See Also:
setDefaultPriority(int)
+
+
+
+ +

+getLogger

+
+public static Logger getLogger(java.lang.String category)
+
+
Returns a new instance of a Logger associated with the given category; + if redirectTo(mx4j.log.Logger) has been called then a new instance of the prototype Logger, associated with the given + category, is returned. This requires the prototype Logger class to have a public parameterless + constructor. +

+

+
+
+
+
+ +

+redirectTo

+
+public static void redirectTo(Logger prototype)
+
+
Tells to the log service to use the given delegate Logger to perform logging.
+ Use a null delegate to remove redirection. +

+

+
See Also:
getLogger(java.lang.String)
+
+
+
+ +

+redirectTo

+
+public static void redirectTo(Logger prototype,
+                              java.lang.String category)
+
+
Tells to the log service to use the given delegate Logger to perform logging for the given + category (that cannot be null).
+ Settings made using this method overrides the ones made with redirectTo, meaning + that it is possible to redirect all the log to a certain delegate but certain categories. + Use a null delegate to remove redirection for the specified category. +

+

+
See Also:
getLogger(java.lang.String)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/Log4JLogger.html b/mx4j-3.0.2/docs/api/mx4j/log/Log4JLogger.html new file mode 100644 index 0000000..1de1833 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/Log4JLogger.html @@ -0,0 +1,338 @@ + + + + + + +Log4JLogger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.log +
+Class Log4JLogger

+
+java.lang.Object
+  extended bymx4j.log.Logger
+      extended bymx4j.log.Log4JLogger
+
+
+
+
public class Log4JLogger
extends Logger
+ +

+Log that redirects log calls to a Log4J Logger.

+

+ +

+

+
Version:
+
$Revision: 1.7 $
+
See Also:
at Apache's Log4J
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.log.Logger
DEBUG, ERROR, FATAL, INFO, TRACE, WARN
+  + + + + + + + + + + +
+Constructor Summary
Log4JLogger() + +
+          This constructor is called to create instances of this Logger, following the prototype pattern.
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  org.apache.log4j.LevelconvertPriority(int mx4jPriority) + +
+          Converts MX4J priority to Log4J priority
+protected  voidlog(int priority, + java.lang.Object message, + java.lang.Throwable t) + +
+           
+protected  voidsetCategory(java.lang.String category) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.log.Logger
debug, debug, error, error, fatal, fatal, getCategory, getPriority, info, info, isEnabledFor, setPriority, trace, trace, warn, warn
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Log4JLogger

+
+public Log4JLogger()
+
+
This constructor is called to create instances of this Logger, following the prototype pattern. +

+

+ + + + + + + + +
+Method Detail
+ +

+setCategory

+
+protected void setCategory(java.lang.String category)
+
+
+
Overrides:
setCategory in class Logger
+
+
+
+
+
+
+ +

+log

+
+protected void log(int priority,
+                   java.lang.Object message,
+                   java.lang.Throwable t)
+
+
+
Overrides:
log in class Logger
+
+
+
+
+
+
+ +

+convertPriority

+
+protected org.apache.log4j.Level convertPriority(int mx4jPriority)
+
+
Converts MX4J priority to Log4J priority +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/Logger.html b/mx4j-3.0.2/docs/api/mx4j/log/Logger.html new file mode 100644 index 0000000..6d49d9d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/Logger.html @@ -0,0 +1,725 @@ + + + + + + +Logger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.log +
+Class Logger

+
+java.lang.Object
+  extended bymx4j.log.Logger
+
+
+
Direct Known Subclasses:
CommonsLogger, FileLogger, Log4JLogger, LoggerBroadcaster.LoggerNotifier, MBeanLogger
+
+
+
+
public class Logger
extends java.lang.Object
+ +

+Base class for logging objects. +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static intDEBUG + +
+           
+static intERROR + +
+           
+static intFATAL + +
+           
+static intINFO + +
+           
+static intTRACE + +
+           
+static intWARN + +
+           
+  + + + + + + + + + + + +
+Constructor Summary
+protected Logger() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voiddebug(java.lang.Object message) + +
+           
+ voiddebug(java.lang.Object message, + java.lang.Throwable t) + +
+           
+ voiderror(java.lang.Object message) + +
+           
+ voiderror(java.lang.Object message, + java.lang.Throwable t) + +
+           
+ voidfatal(java.lang.Object message) + +
+           
+ voidfatal(java.lang.Object message, + java.lang.Throwable t) + +
+           
+ java.lang.StringgetCategory() + +
+           
+ intgetPriority() + +
+           
+ voidinfo(java.lang.Object message) + +
+           
+ voidinfo(java.lang.Object message, + java.lang.Throwable t) + +
+           
+ booleanisEnabledFor(int priority) + +
+           
+protected  voidlog(int priority, + java.lang.Object message, + java.lang.Throwable t) + +
+           
+protected  voidsetCategory(java.lang.String category) + +
+           
+ voidsetPriority(int priority) + +
+           
+ voidtrace(java.lang.Object message) + +
+           
+ voidtrace(java.lang.Object message, + java.lang.Throwable t) + +
+           
+ voidwarn(java.lang.Object message) + +
+           
+ voidwarn(java.lang.Object message, + java.lang.Throwable t) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+TRACE

+
+public static final int TRACE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+DEBUG

+
+public static final int DEBUG
+
+
+
See Also:
Constant Field Values
+
+
+ +

+INFO

+
+public static final int INFO
+
+
+
See Also:
Constant Field Values
+
+
+ +

+WARN

+
+public static final int WARN
+
+
+
See Also:
Constant Field Values
+
+
+ +

+ERROR

+
+public static final int ERROR
+
+
+
See Also:
Constant Field Values
+
+
+ +

+FATAL

+
+public static final int FATAL
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+Logger

+
+protected Logger()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setPriority

+
+public void setPriority(int priority)
+
+
+
+
+
+
+ +

+getPriority

+
+public int getPriority()
+
+
+
+
+
+
+ +

+getCategory

+
+public java.lang.String getCategory()
+
+
+
+
+
+
+ +

+setCategory

+
+protected void setCategory(java.lang.String category)
+
+
+
+
+
+
+ +

+isEnabledFor

+
+public final boolean isEnabledFor(int priority)
+
+
+
+
+
+
+ +

+fatal

+
+public final void fatal(java.lang.Object message)
+
+
+
+
+
+
+ +

+fatal

+
+public final void fatal(java.lang.Object message,
+                        java.lang.Throwable t)
+
+
+
+
+
+
+ +

+error

+
+public final void error(java.lang.Object message)
+
+
+
+
+
+
+ +

+error

+
+public final void error(java.lang.Object message,
+                        java.lang.Throwable t)
+
+
+
+
+
+
+ +

+warn

+
+public final void warn(java.lang.Object message)
+
+
+
+
+
+
+ +

+warn

+
+public final void warn(java.lang.Object message,
+                       java.lang.Throwable t)
+
+
+
+
+
+
+ +

+info

+
+public final void info(java.lang.Object message)
+
+
+
+
+
+
+ +

+info

+
+public final void info(java.lang.Object message,
+                       java.lang.Throwable t)
+
+
+
+
+
+
+ +

+debug

+
+public final void debug(java.lang.Object message)
+
+
+
+
+
+
+ +

+debug

+
+public final void debug(java.lang.Object message,
+                        java.lang.Throwable t)
+
+
+
+
+
+
+ +

+trace

+
+public final void trace(java.lang.Object message)
+
+
+
+
+
+
+ +

+trace

+
+public final void trace(java.lang.Object message,
+                        java.lang.Throwable t)
+
+
+
+
+
+
+ +

+log

+
+protected void log(int priority,
+                   java.lang.Object message,
+                   java.lang.Throwable t)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcaster.LoggerNotifier.html b/mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcaster.LoggerNotifier.html new file mode 100644 index 0000000..48a5dee --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcaster.LoggerNotifier.html @@ -0,0 +1,288 @@ + + + + + + +LoggerBroadcaster.LoggerNotifier (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.log +
+Class LoggerBroadcaster.LoggerNotifier

+
+java.lang.Object
+  extended bymx4j.log.Logger
+      extended bymx4j.log.LoggerBroadcaster.LoggerNotifier
+
+
+
Enclosing class:
LoggerBroadcaster
+
+
+
+
public static class LoggerBroadcaster.LoggerNotifier
extends Logger
+ +

+


+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.log.Logger
DEBUG, ERROR, FATAL, INFO, TRACE, WARN
+  + + + + + + + + + + +
+Constructor Summary
LoggerBroadcaster.LoggerNotifier() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  voidlog(int priority, + java.lang.Object message, + java.lang.Throwable t) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.log.Logger
debug, debug, error, error, fatal, fatal, getCategory, getPriority, info, info, isEnabledFor, setCategory, setPriority, trace, trace, warn, warn
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+LoggerBroadcaster.LoggerNotifier

+
+public LoggerBroadcaster.LoggerNotifier()
+
+
+ + + + + + + + +
+Method Detail
+ +

+log

+
+protected void log(int priority,
+                   java.lang.Object message,
+                   java.lang.Throwable t)
+
+
+
Overrides:
log in class Logger
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcaster.html b/mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcaster.html new file mode 100644 index 0000000..5bd29b7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcaster.html @@ -0,0 +1,561 @@ + + + + + + +LoggerBroadcaster (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.log +
+Class LoggerBroadcaster

+
+java.lang.Object
+  extended byjavax.management.NotificationBroadcasterSupport
+      extended bymx4j.log.LoggerBroadcaster
+
+
+
All Implemented Interfaces:
LoggerBroadcasterMBean, javax.management.MBeanRegistration, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
+
public class LoggerBroadcaster
extends javax.management.NotificationBroadcasterSupport
implements javax.management.MBeanRegistration, LoggerBroadcasterMBean
+ +

+This broadcaster MBean allows to redirect MX4J internal logging to registered JMX listeners.

+ Simply register this MBean in the MBeanServer, register one or more listener (eventually with filters + on the notification type), then call (directly or through MBeanServer) one of the start + operations. From this moment, MX4J internal logging is redirected to this MBean, and from here to all registered + listeners, basing on their filters. +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + + +
+Nested Class Summary
+static classLoggerBroadcaster.LoggerNotifier + +
+           
+  + + + + + + + + + + + + + +
+Constructor Summary
LoggerBroadcaster() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  LoggercreateLoggerPrototype() + +
+           
+ javax.management.MBeanNotificationInfo[]getNotificationInfo() + +
+           
+ voidpostDeregister() + +
+           
+ voidpostRegister(java.lang.Boolean registrationDone) + +
+           
+ voidpreDeregister() + +
+           
+ javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, + javax.management.ObjectName name) + +
+           
+ voidremoveNotificationListener(javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidsendNotification(javax.management.Notification n) + +
+           
+ voidstart() + +
+           
+ voidstart(java.lang.String category) + +
+           
+ voidstop() + +
+           
+ voidstop(java.lang.String category) + +
+           
+ + + + + + + +
Methods inherited from class javax.management.NotificationBroadcasterSupport
addNotificationListener, handleNotification, removeNotificationListener
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.log.LoggerBroadcasterMBean
addNotificationListener
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+LoggerBroadcaster

+
+public LoggerBroadcaster()
+
+
+ + + + + + + + +
+Method Detail
+ +

+preRegister

+
+public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
+                                               javax.management.ObjectName name)
+                                        throws java.lang.Exception
+
+
+
Specified by:
preRegister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postRegister

+
+public void postRegister(java.lang.Boolean registrationDone)
+
+
+
Specified by:
postRegister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+preDeregister

+
+public void preDeregister()
+                   throws java.lang.Exception
+
+
+
Specified by:
preDeregister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postDeregister

+
+public void postDeregister()
+
+
+
Specified by:
postDeregister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface LoggerBroadcasterMBean
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+sendNotification

+
+public void sendNotification(javax.management.Notification n)
+
+
+
+
+
+
+
+
+
+ +

+start

+
+public void start()
+
+
+
Specified by:
start in interface LoggerBroadcasterMBean
+
+
+
+
+
+
+ +

+start

+
+public void start(java.lang.String category)
+
+
+
Specified by:
start in interface LoggerBroadcasterMBean
+
+
+
+
+
+
+ +

+stop

+
+public void stop()
+
+
+
Specified by:
stop in interface LoggerBroadcasterMBean
+
+
+
+
+
+
+ +

+stop

+
+public void stop(java.lang.String category)
+
+
+
Specified by:
stop in interface LoggerBroadcasterMBean
+
+
+
+
+
+
+ +

+getNotificationInfo

+
+public javax.management.MBeanNotificationInfo[] getNotificationInfo()
+
+
+
Specified by:
getNotificationInfo in interface javax.management.NotificationBroadcaster
+
+
+
+
+
+
+ +

+createLoggerPrototype

+
+protected Logger createLoggerPrototype()
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcasterMBean.html b/mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcasterMBean.html new file mode 100644 index 0000000..7815c85 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/LoggerBroadcasterMBean.html @@ -0,0 +1,329 @@ + + + + + + +LoggerBroadcasterMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.log +
+Interface LoggerBroadcasterMBean

+
+
All Known Implementing Classes:
LoggerBroadcaster
+
+
+
+
public interface LoggerBroadcasterMBean
+ +

+Management interface for the LoggerBroadcaster MBean. +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
LoggerBroadcaster
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidremoveNotificationListener(javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidstart() + +
+           
+ voidstart(java.lang.String category) + +
+           
+ voidstop() + +
+           
+ voidstop(java.lang.String category) + +
+           
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+
+
+
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+start

+
+public void start()
+
+
+
+
+
+
+ +

+start

+
+public void start(java.lang.String category)
+
+
+
+
+
+
+ +

+stop

+
+public void stop()
+
+
+
+
+
+
+ +

+stop

+
+public void stop(java.lang.String category)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/MBeanLogger.html b/mx4j-3.0.2/docs/api/mx4j/log/MBeanLogger.html new file mode 100644 index 0000000..274870a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/MBeanLogger.html @@ -0,0 +1,301 @@ + + + + + + +MBeanLogger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.log +
+Class MBeanLogger

+
+java.lang.Object
+  extended bymx4j.log.Logger
+      extended bymx4j.log.MBeanLogger
+
+
+
+
public class MBeanLogger
extends Logger
+ +

+This logger forwards log requests to an MBean, that must have an operation with signature +

+ public void log(int priority, Object message, Throwable exception);
+ 
+ It's used by the ModelMBean implementation.
+ Since the constructor takes parameters, cannot be used as prototype for logging redirection. +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.log.Logger
DEBUG, ERROR, FATAL, INFO, TRACE, WARN
+  + + + + + + + + + + +
+Constructor Summary
MBeanLogger(javax.management.MBeanServer server, + javax.management.ObjectName objectName) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  voidlog(int priority, + java.lang.Object message, + java.lang.Throwable t) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.log.Logger
debug, debug, error, error, fatal, fatal, getCategory, getPriority, info, info, isEnabledFor, setCategory, setPriority, trace, trace, warn, warn
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanLogger

+
+public MBeanLogger(javax.management.MBeanServer server,
+                   javax.management.ObjectName objectName)
+            throws javax.management.MBeanException
+
+
+ + + + + + + + +
+Method Detail
+ +

+log

+
+protected void log(int priority,
+                   java.lang.Object message,
+                   java.lang.Throwable t)
+
+
+
Overrides:
log in class Logger
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/class-use/CommonsLogger.html b/mx4j-3.0.2/docs/api/mx4j/log/class-use/CommonsLogger.html new file mode 100644 index 0000000..c3bba04 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/class-use/CommonsLogger.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.log.CommonsLogger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.log.CommonsLogger

+
+No usage of mx4j.log.CommonsLogger +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/class-use/FileLogger.html b/mx4j-3.0.2/docs/api/mx4j/log/class-use/FileLogger.html new file mode 100644 index 0000000..a6ebd47 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/class-use/FileLogger.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.log.FileLogger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.log.FileLogger

+
+No usage of mx4j.log.FileLogger +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/class-use/Log.html b/mx4j-3.0.2/docs/api/mx4j/log/class-use/Log.html new file mode 100644 index 0000000..e6b450e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/class-use/Log.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.log.Log (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.log.Log

+
+No usage of mx4j.log.Log +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/class-use/Log4JLogger.html b/mx4j-3.0.2/docs/api/mx4j/log/class-use/Log4JLogger.html new file mode 100644 index 0000000..2be554a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/class-use/Log4JLogger.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.log.Log4JLogger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.log.Log4JLogger

+
+No usage of mx4j.log.Log4JLogger +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/class-use/Logger.html b/mx4j-3.0.2/docs/api/mx4j/log/class-use/Logger.html new file mode 100644 index 0000000..60204e0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/class-use/Logger.html @@ -0,0 +1,505 @@ + + + + + + +Uses of Class mx4j.log.Logger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.log.Logger

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use Logger
mx4j.log  
mx4j.monitor  
mx4j.remote  
mx4j.server.interceptor  
mx4j.tools.remote  
mx4j.tools.remote.http  
mx4j.tools.remote.http.jetty  
mx4j.tools.remote.soap.axis.ser  
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of Logger in mx4j.log
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of Logger in mx4j.log
+ classCommonsLogger + +
+          Log that redirects log calls to Jakarta Commons Logging.
+ classFileLogger + +
+          This logger logs to a file.
+ classLog4JLogger + +
+          Log that redirects log calls to a Log4J Logger.
+static classLoggerBroadcaster.LoggerNotifier + +
+           
+ classMBeanLogger + +
+          This logger forwards log requests to an MBean, that must have an operation with signature +
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.log that return Logger
+protected  LoggerLoggerBroadcaster.createLoggerPrototype() + +
+           
+static LoggerLog.getLogger(java.lang.String category) + +
+          Returns a new instance of a Logger associated with the given category; + if Log.redirectTo(mx4j.log.Logger) has been called then a new instance of the prototype Logger, associated with the given + category, is returned.
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.log with parameters of type Logger
+static voidLog.redirectTo(Logger prototype) + +
+          Tells to the log service to use the given delegate Logger to perform logging.
+static voidLog.redirectTo(Logger prototype, + java.lang.String category) + +
+          Tells to the log service to use the given delegate Logger to perform logging for the given + category (that cannot be null).
+  +

+ + + + + +
+Uses of Logger in mx4j.monitor
+  +

+ + + + + + + + + +
Methods in mx4j.monitor that return Logger
+protected  LoggerMX4JMonitor.getLogger() + +
+           
+  +

+ + + + + +
+Uses of Logger in mx4j.remote
+  +

+ + + + + + + + + + + + + + + + + +
Methods in mx4j.remote that return Logger
+protected static LoggerProviderHelper.getLogger() + +
+           
+protected  LoggerDefaultRemoteNotificationServerHandler.getLogger() + +
+           
+protected  LoggerAbstractRemoteNotificationClientHandler.getLogger() + +
+           
+  +

+ + + + + +
+Uses of Logger in mx4j.server.interceptor
+  +

+ + + + + + + + + +
Methods in mx4j.server.interceptor that return Logger
+protected  LoggerDefaultMBeanServerInterceptor.getLogger() + +
+           
+  +

+ + + + + +
+Uses of Logger in mx4j.tools.remote
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote that return Logger
+protected  LoggerAbstractJMXConnectorServer.getLogger() + +
+           
+  +

+ + + + + +
+Uses of Logger in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.http that return Logger
+protected  LoggerHTTPService.getLogger() + +
+           
+  +

+ + + + + +
+Uses of Logger in mx4j.tools.remote.http.jetty
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.http.jetty that return Logger
+protected  LoggerJettyWebContainer.getLogger() + +
+           
+  +

+ + + + + +
+Uses of Logger in mx4j.tools.remote.soap.axis.ser
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.soap.axis.ser that return Logger
+protected  LoggerAxisDeserializer.getLogger() + +
+           
+  +

+ + + + + +
+Uses of Logger in mx4j.tools.stats
+  +

+ + + + + + + + + +
Methods in mx4j.tools.stats that return Logger
+protected  LoggerAbstractStatisticsRecorder.getLogger() + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcaster.LoggerNotifier.html b/mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcaster.LoggerNotifier.html new file mode 100644 index 0000000..67042e5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcaster.LoggerNotifier.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.log.LoggerBroadcaster.LoggerNotifier (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.log.LoggerBroadcaster.LoggerNotifier

+
+No usage of mx4j.log.LoggerBroadcaster.LoggerNotifier +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcaster.html b/mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcaster.html new file mode 100644 index 0000000..4b81d98 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcaster.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.log.LoggerBroadcaster (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.log.LoggerBroadcaster

+
+No usage of mx4j.log.LoggerBroadcaster +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcasterMBean.html b/mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcasterMBean.html new file mode 100644 index 0000000..c3f459c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/class-use/LoggerBroadcasterMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.log.LoggerBroadcasterMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.log.LoggerBroadcasterMBean

+
+ + + + + + + + + +
+Packages that use LoggerBroadcasterMBean
mx4j.log  
+  +

+ + + + + +
+Uses of LoggerBroadcasterMBean in mx4j.log
+  +

+ + + + + + + + + +
Classes in mx4j.log that implement LoggerBroadcasterMBean
+ classLoggerBroadcaster + +
+          This broadcaster MBean allows to redirect MX4J internal logging to registered JMX listeners.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/class-use/MBeanLogger.html b/mx4j-3.0.2/docs/api/mx4j/log/class-use/MBeanLogger.html new file mode 100644 index 0000000..e8ef071 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/class-use/MBeanLogger.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.log.MBeanLogger (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.log.MBeanLogger

+
+No usage of mx4j.log.MBeanLogger +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/log/package-frame.html new file mode 100644 index 0000000..1b6f9f1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/package-frame.html @@ -0,0 +1,57 @@ + + + + + + +mx4j.log (MX4J API) + + + + + + + + + + + +mx4j.log + + + + +
+Interfaces  + +
+LoggerBroadcasterMBean
+ + + + + + +
+Classes  + +
+CommonsLogger +
+FileLogger +
+Log +
+Log4JLogger +
+Logger +
+LoggerBroadcaster +
+LoggerBroadcaster.LoggerNotifier +
+MBeanLogger
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/log/package-summary.html new file mode 100644 index 0000000..6eeb6c6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/package-summary.html @@ -0,0 +1,191 @@ + + + + + + +mx4j.log (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.log +

+ + + + + + + + + +
+Interface Summary
LoggerBroadcasterMBeanManagement interface for the LoggerBroadcaster MBean.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
CommonsLoggerLog that redirects log calls to Jakarta Commons Logging.
FileLoggerThis logger logs to a file.
LogMain class for the log service.
Log4JLoggerLog that redirects log calls to a Log4J Logger.
LoggerBase class for logging objects.
LoggerBroadcasterThis broadcaster MBean allows to redirect MX4J internal logging to registered JMX listeners.
LoggerBroadcaster.LoggerNotifier 
MBeanLoggerThis logger forwards log requests to an MBean, that must have an operation with signature +
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/log/package-tree.html new file mode 100644 index 0000000..993132a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/package-tree.html @@ -0,0 +1,156 @@ + + + + + + +mx4j.log Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.log +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/log/package-use.html b/mx4j-3.0.2/docs/api/mx4j/log/package-use.html new file mode 100644 index 0000000..7b9da4c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/log/package-use.html @@ -0,0 +1,320 @@ + + + + + + +Uses of Package mx4j.log (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.log

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use mx4j.log
mx4j.log  
mx4j.monitor  
mx4j.remote  
mx4j.server.interceptor  
mx4j.tools.remote  
mx4j.tools.remote.http  
mx4j.tools.remote.http.jetty  
mx4j.tools.remote.soap.axis.ser  
mx4j.tools.stats  
+  +

+ + + + + + + + + + + +
+Classes in mx4j.log used by mx4j.log
Logger + +
+          Base class for logging objects.
LoggerBroadcasterMBean + +
+          Management interface for the LoggerBroadcaster MBean.
+  +

+ + + + + + + + +
+Classes in mx4j.log used by mx4j.monitor
Logger + +
+          Base class for logging objects.
+  +

+ + + + + + + + +
+Classes in mx4j.log used by mx4j.remote
Logger + +
+          Base class for logging objects.
+  +

+ + + + + + + + +
+Classes in mx4j.log used by mx4j.server.interceptor
Logger + +
+          Base class for logging objects.
+  +

+ + + + + + + + +
+Classes in mx4j.log used by mx4j.tools.remote
Logger + +
+          Base class for logging objects.
+  +

+ + + + + + + + +
+Classes in mx4j.log used by mx4j.tools.remote.http
Logger + +
+          Base class for logging objects.
+  +

+ + + + + + + + +
+Classes in mx4j.log used by mx4j.tools.remote.http.jetty
Logger + +
+          Base class for logging objects.
+  +

+ + + + + + + + +
+Classes in mx4j.log used by mx4j.tools.remote.soap.axis.ser
Logger + +
+          Base class for logging objects.
+  +

+ + + + + + + + +
+Classes in mx4j.log used by mx4j.tools.stats
Logger + +
+          Base class for logging objects.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitor.CounterMonitorInfo.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitor.CounterMonitorInfo.html new file mode 100644 index 0000000..5fe7bfa --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitor.CounterMonitorInfo.html @@ -0,0 +1,482 @@ + + + + + + +MX4JCounterMonitor.CounterMonitorInfo (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Class MX4JCounterMonitor.CounterMonitorInfo

+
+java.lang.Object
+  extended bymx4j.monitor.MX4JMonitor.MonitorInfo
+      extended bymx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo
+
+
+
Enclosing class:
MX4JCounterMonitor
+
+
+
+
protected class MX4JCounterMonitor.CounterMonitorInfo
extends MX4JMonitor.MonitorInfo
+ +

+


+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected MX4JCounterMonitor.CounterMonitorInfo() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidclearNotificationStatus() + +
+           
+ java.lang.NumbergetCounter() + +
+           
+ java.lang.NumbergetGauge() + +
+           
+ java.lang.NumbergetThreshold() + +
+           
+ longgetTimestamp() + +
+           
+ booleanisThresholdNotified() + +
+           
+ voidsetCounter(java.lang.Number counter) + +
+           
+ voidsetGauge(java.lang.Number gauge) + +
+           
+ voidsetThreshold(java.lang.Number threshold) + +
+           
+ voidsetThresholdNotified(boolean thresholdNotified) + +
+           
+ voidsetTimestamp(long timestamp) + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.monitor.MX4JMonitor.MonitorInfo
isErrorNotified, setErrorNotified
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JCounterMonitor.CounterMonitorInfo

+
+protected MX4JCounterMonitor.CounterMonitorInfo()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setThreshold

+
+public void setThreshold(java.lang.Number threshold)
+
+
+
+
+
+
+ +

+getThreshold

+
+public java.lang.Number getThreshold()
+
+
+
+
+
+
+ +

+setThresholdNotified

+
+public void setThresholdNotified(boolean thresholdNotified)
+
+
+
+
+
+
+ +

+isThresholdNotified

+
+public boolean isThresholdNotified()
+
+
+
+
+
+
+ +

+setCounter

+
+public void setCounter(java.lang.Number counter)
+
+
+
+
+
+
+ +

+getCounter

+
+public java.lang.Number getCounter()
+
+
+
+
+
+
+ +

+setGauge

+
+public void setGauge(java.lang.Number gauge)
+
+
+
+
+
+
+ +

+getGauge

+
+public java.lang.Number getGauge()
+
+
+
+
+
+
+ +

+setTimestamp

+
+public void setTimestamp(long timestamp)
+
+
+
+
+
+
+ +

+getTimestamp

+
+public long getTimestamp()
+
+
+
+
+
+
+ +

+clearNotificationStatus

+
+public void clearNotificationStatus()
+
+
+
Overrides:
clearNotificationStatus in class MX4JMonitor.MonitorInfo
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class MX4JMonitor.MonitorInfo
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitor.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitor.html new file mode 100644 index 0000000..acb8e18 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitor.html @@ -0,0 +1,752 @@ + + + + + + +MX4JCounterMonitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Class MX4JCounterMonitor

+
+java.lang.Object
+  extended byjavax.management.StandardMBean
+      extended bymx4j.monitor.MX4JMonitor
+          extended bymx4j.monitor.MX4JCounterMonitor
+
+
+
All Implemented Interfaces:
javax.management.DynamicMBean, javax.management.MBeanRegistration, MX4JCounterMonitorMBean, MX4JMonitorMBean, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
+
public class MX4JCounterMonitor
extends MX4JMonitor
implements MX4JCounterMonitorMBean
+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + +
+Nested Class Summary
+protected  classMX4JCounterMonitor.CounterMonitorInfo + +
+           
+ + + + + + + +
Nested classes inherited from class mx4j.monitor.MX4JMonitor
MX4JMonitor.MonitorInfo
+  + + + + + + + + + + + + + + + + + + +
+Constructor Summary
+ MX4JCounterMonitor() + +
+           
+protected MX4JCounterMonitor(java.lang.Class management) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  intcompare(java.lang.Number left, + java.lang.Number right) + +
+           
+protected  MX4JMonitor.MonitorInfocreateMonitorInfo() + +
+           
+ java.lang.NumbergetDerivedGauge(javax.management.ObjectName name) + +
+           
+ longgetDerivedGaugeTimeStamp(javax.management.ObjectName name) + +
+           
+ booleangetDifferenceMode() + +
+           
+ java.lang.NumbergetInitThreshold() + +
+           
+ java.lang.NumbergetModulus() + +
+           
+ javax.management.MBeanNotificationInfo[]getNotificationInfo() + +
+           
+ booleangetNotify() + +
+           
+ java.lang.NumbergetOffset() + +
+           
+ java.lang.NumbergetThreshold(javax.management.ObjectName name) + +
+           
+protected  voidmonitor(javax.management.ObjectName name, + java.lang.String attribute, + java.lang.Object value, + MX4JMonitor.MonitorInfo monitorInfo) + +
+           
+ voidsetDifferenceMode(boolean mode) + +
+           
+ voidsetInitThreshold(java.lang.Number threshold) + +
+           
+ voidsetModulus(java.lang.Number modulus) + +
+           
+ voidsetNotify(boolean notify) + +
+           
+ voidsetOffset(java.lang.Number offset) + +
+           
+protected  java.lang.Numbersub(java.lang.Number left, + java.lang.Number right) + +
+           
+protected  java.lang.Numbersum(java.lang.Number left, + java.lang.Number right) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.monitor.MX4JMonitor
addNotificationListener, addObservedObject, clearObservedObjects, containsObservedObject, createMonitorNotification, createNotificationEmitter, getGranularityPeriod, getLogger, getMonitorInfo, getObservedAttribute, getObservedObjects, isActive, postDeregister, postRegister, preDeregister, preRegister, putMonitorInfo, removeMonitorInfo, removeNotificationListener, removeNotificationListener, removeObservedObject, sendErrorNotification, sendNotification, sendNotification, setGranularityPeriod, setObservedAttribute, start, startMonitor, stop, stopMonitor
+ + + + + + + +
Methods inherited from class javax.management.StandardMBean
cacheMBeanInfo, getAttribute, getAttributes, getCachedMBeanInfo, getClassName, getConstructors, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, getParameterName, getParameterName, invoke, setAttribute, setAttributes, setImplementation
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.monitor.MX4JMonitorMBean
addObservedObject, containsObservedObject, getGranularityPeriod, getObservedAttribute, getObservedObjects, isActive, removeObservedObject, setGranularityPeriod, setObservedAttribute, start, stop
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JCounterMonitor

+
+public MX4JCounterMonitor()
+                   throws javax.management.NotCompliantMBeanException
+
+
+
+ +

+MX4JCounterMonitor

+
+protected MX4JCounterMonitor(java.lang.Class management)
+                      throws javax.management.NotCompliantMBeanException
+
+
+ + + + + + + + +
+Method Detail
+ +

+getNotificationInfo

+
+public javax.management.MBeanNotificationInfo[] getNotificationInfo()
+
+
+
Specified by:
getNotificationInfo in interface javax.management.NotificationBroadcaster
+
+
+
+
+
+
+ +

+getInitThreshold

+
+public java.lang.Number getInitThreshold()
+
+
+
Specified by:
getInitThreshold in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+setInitThreshold

+
+public void setInitThreshold(java.lang.Number threshold)
+                      throws java.lang.IllegalArgumentException
+
+
+
Specified by:
setInitThreshold in interface MX4JCounterMonitorMBean
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getOffset

+
+public java.lang.Number getOffset()
+
+
+
Specified by:
getOffset in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+setOffset

+
+public void setOffset(java.lang.Number offset)
+               throws java.lang.IllegalArgumentException
+
+
+
Specified by:
setOffset in interface MX4JCounterMonitorMBean
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getModulus

+
+public java.lang.Number getModulus()
+
+
+
Specified by:
getModulus in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+setModulus

+
+public void setModulus(java.lang.Number modulus)
+                throws java.lang.IllegalArgumentException
+
+
+
Specified by:
setModulus in interface MX4JCounterMonitorMBean
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getNotify

+
+public boolean getNotify()
+
+
+
Specified by:
getNotify in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+setNotify

+
+public void setNotify(boolean notify)
+
+
+
Specified by:
setNotify in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+getDifferenceMode

+
+public boolean getDifferenceMode()
+
+
+
Specified by:
getDifferenceMode in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+setDifferenceMode

+
+public void setDifferenceMode(boolean mode)
+
+
+
Specified by:
setDifferenceMode in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+getDerivedGauge

+
+public java.lang.Number getDerivedGauge(javax.management.ObjectName name)
+
+
+
Specified by:
getDerivedGauge in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+getDerivedGaugeTimeStamp

+
+public long getDerivedGaugeTimeStamp(javax.management.ObjectName name)
+
+
+
Specified by:
getDerivedGaugeTimeStamp in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+getThreshold

+
+public java.lang.Number getThreshold(javax.management.ObjectName name)
+
+
+
Specified by:
getThreshold in interface MX4JCounterMonitorMBean
+
+
+
+
+
+
+ +

+compare

+
+protected int compare(java.lang.Number left,
+                      java.lang.Number right)
+
+
+
+
+
+
+
+
+
+ +

+sum

+
+protected java.lang.Number sum(java.lang.Number left,
+                               java.lang.Number right)
+
+
+
+
+
+
+
+
+
+ +

+sub

+
+protected java.lang.Number sub(java.lang.Number left,
+                               java.lang.Number right)
+
+
+
+
+
+
+
+
+
+ +

+monitor

+
+protected void monitor(javax.management.ObjectName name,
+                       java.lang.String attribute,
+                       java.lang.Object value,
+                       MX4JMonitor.MonitorInfo monitorInfo)
+
+
+
Specified by:
monitor in class MX4JMonitor
+
+
+
+
+
+
+ +

+createMonitorInfo

+
+protected MX4JMonitor.MonitorInfo createMonitorInfo()
+
+
+
Specified by:
createMonitorInfo in class MX4JMonitor
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitorMBean.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitorMBean.html new file mode 100644 index 0000000..cbd854d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JCounterMonitorMBean.html @@ -0,0 +1,507 @@ + + + + + + +MX4JCounterMonitorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Interface MX4JCounterMonitorMBean

+
+
All Superinterfaces:
MX4JMonitorMBean
+
+
+
All Known Implementing Classes:
MX4JCounterMonitor
+
+
+
+
public interface MX4JCounterMonitorMBean
extends MX4JMonitorMBean
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.NumbergetDerivedGauge(javax.management.ObjectName objectName) + +
+           
+ longgetDerivedGaugeTimeStamp(javax.management.ObjectName objectName) + +
+           
+ booleangetDifferenceMode() + +
+           
+ java.lang.NumbergetInitThreshold() + +
+           
+ java.lang.NumbergetModulus() + +
+           
+ booleangetNotify() + +
+           
+ java.lang.NumbergetOffset() + +
+           
+ java.lang.NumbergetThreshold(javax.management.ObjectName objectName) + +
+           
+ voidsetDifferenceMode(boolean value) + +
+           
+ voidsetInitThreshold(java.lang.Number value) + +
+           
+ voidsetModulus(java.lang.Number value) + +
+           
+ voidsetNotify(boolean value) + +
+           
+ voidsetOffset(java.lang.Number value) + +
+           
+ + + + + + + +
Methods inherited from interface mx4j.monitor.MX4JMonitorMBean
addObservedObject, containsObservedObject, getGranularityPeriod, getObservedAttribute, getObservedObjects, isActive, removeObservedObject, setGranularityPeriod, setObservedAttribute, start, stop
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getDerivedGauge

+
+public java.lang.Number getDerivedGauge(javax.management.ObjectName objectName)
+
+
+
+
+
+
+
+
+
+ +

+getDerivedGaugeTimeStamp

+
+public long getDerivedGaugeTimeStamp(javax.management.ObjectName objectName)
+
+
+
+
+
+
+
+
+
+ +

+getThreshold

+
+public java.lang.Number getThreshold(javax.management.ObjectName objectName)
+
+
+
+
+
+
+
+
+
+ +

+getInitThreshold

+
+public java.lang.Number getInitThreshold()
+
+
+
+
+
+
+
+
+
+ +

+setInitThreshold

+
+public void setInitThreshold(java.lang.Number value)
+                      throws java.lang.IllegalArgumentException
+
+
+
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getOffset

+
+public java.lang.Number getOffset()
+
+
+
+
+
+
+
+
+
+ +

+setOffset

+
+public void setOffset(java.lang.Number value)
+               throws java.lang.IllegalArgumentException
+
+
+
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getModulus

+
+public java.lang.Number getModulus()
+
+
+
+
+
+
+
+
+
+ +

+setModulus

+
+public void setModulus(java.lang.Number value)
+                throws java.lang.IllegalArgumentException
+
+
+
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getNotify

+
+public boolean getNotify()
+
+
+
+
+
+
+
+
+
+ +

+setNotify

+
+public void setNotify(boolean value)
+
+
+
+
+
+
+
+
+
+ +

+getDifferenceMode

+
+public boolean getDifferenceMode()
+
+
+
+
+
+
+
+
+
+ +

+setDifferenceMode

+
+public void setDifferenceMode(boolean value)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitor.GaugeMonitorInfo.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitor.GaugeMonitorInfo.html new file mode 100644 index 0000000..33c937e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitor.GaugeMonitorInfo.html @@ -0,0 +1,444 @@ + + + + + + +MX4JGaugeMonitor.GaugeMonitorInfo (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Class MX4JGaugeMonitor.GaugeMonitorInfo

+
+java.lang.Object
+  extended bymx4j.monitor.MX4JMonitor.MonitorInfo
+      extended bymx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo
+
+
+
Enclosing class:
MX4JGaugeMonitor
+
+
+
+
protected class MX4JGaugeMonitor.GaugeMonitorInfo
extends MX4JMonitor.MonitorInfo
+ +

+


+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected MX4JGaugeMonitor.GaugeMonitorInfo() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidclearNotificationStatus() + +
+           
+ java.lang.NumbergetGauge() + +
+           
+ longgetTimestamp() + +
+           
+ booleanisHighNotified() + +
+           
+ booleanisLowNotified() + +
+           
+ voidsetGauge(java.lang.Number gauge) + +
+           
+ voidsetHighNotified(boolean highNotified) + +
+           
+ voidsetLowNotified(boolean lowNotified) + +
+           
+ voidsetTimestamp(long timestamp) + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.monitor.MX4JMonitor.MonitorInfo
isErrorNotified, setErrorNotified
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JGaugeMonitor.GaugeMonitorInfo

+
+protected MX4JGaugeMonitor.GaugeMonitorInfo()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getGauge

+
+public java.lang.Number getGauge()
+
+
+
+
+
+
+ +

+setGauge

+
+public void setGauge(java.lang.Number gauge)
+
+
+
+
+
+
+ +

+getTimestamp

+
+public long getTimestamp()
+
+
+
+
+
+
+ +

+setTimestamp

+
+public void setTimestamp(long timestamp)
+
+
+
+
+
+
+ +

+isHighNotified

+
+public boolean isHighNotified()
+
+
+
+
+
+
+ +

+setHighNotified

+
+public void setHighNotified(boolean highNotified)
+
+
+
+
+
+
+ +

+isLowNotified

+
+public boolean isLowNotified()
+
+
+
+
+
+
+ +

+setLowNotified

+
+public void setLowNotified(boolean lowNotified)
+
+
+
+
+
+
+ +

+clearNotificationStatus

+
+public void clearNotificationStatus()
+
+
+
Overrides:
clearNotificationStatus in class MX4JMonitor.MonitorInfo
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class MX4JMonitor.MonitorInfo
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitor.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitor.html new file mode 100644 index 0000000..9e9dfb4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitor.html @@ -0,0 +1,680 @@ + + + + + + +MX4JGaugeMonitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Class MX4JGaugeMonitor

+
+java.lang.Object
+  extended byjavax.management.StandardMBean
+      extended bymx4j.monitor.MX4JMonitor
+          extended bymx4j.monitor.MX4JGaugeMonitor
+
+
+
All Implemented Interfaces:
javax.management.DynamicMBean, javax.management.MBeanRegistration, MX4JGaugeMonitorMBean, MX4JMonitorMBean, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
+
public class MX4JGaugeMonitor
extends MX4JMonitor
implements MX4JGaugeMonitorMBean
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + +
+Nested Class Summary
+protected  classMX4JGaugeMonitor.GaugeMonitorInfo + +
+           
+ + + + + + + +
Nested classes inherited from class mx4j.monitor.MX4JMonitor
MX4JMonitor.MonitorInfo
+  + + + + + + + + + + + + + + + + + + +
+Constructor Summary
+ MX4JGaugeMonitor() + +
+           
+protected MX4JGaugeMonitor(java.lang.Class management) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  intcompare(java.lang.Number left, + java.lang.Number right) + +
+           
+protected  MX4JMonitor.MonitorInfocreateMonitorInfo() + +
+           
+ java.lang.NumbergetDerivedGauge(javax.management.ObjectName objectName) + +
+           
+ longgetDerivedGaugeTimeStamp(javax.management.ObjectName objectName) + +
+           
+ booleangetDifferenceMode() + +
+           
+ java.lang.NumbergetHighThreshold() + +
+           
+ java.lang.NumbergetLowThreshold() + +
+           
+ javax.management.MBeanNotificationInfo[]getNotificationInfo() + +
+           
+ booleangetNotifyHigh() + +
+           
+ booleangetNotifyLow() + +
+           
+protected  voidmonitor(javax.management.ObjectName name, + java.lang.String attribute, + java.lang.Object value, + MX4JMonitor.MonitorInfo monitorInfo) + +
+           
+ voidsetDifferenceMode(boolean differenceMode) + +
+           
+ voidsetNotifyHigh(boolean notifyHigh) + +
+           
+ voidsetNotifyLow(boolean notifyLow) + +
+           
+ voidsetThresholds(java.lang.Number highValue, + java.lang.Number lowValue) + +
+           
+protected  java.lang.Numbersub(java.lang.Number left, + java.lang.Number right) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.monitor.MX4JMonitor
addNotificationListener, addObservedObject, clearObservedObjects, containsObservedObject, createMonitorNotification, createNotificationEmitter, getGranularityPeriod, getLogger, getMonitorInfo, getObservedAttribute, getObservedObjects, isActive, postDeregister, postRegister, preDeregister, preRegister, putMonitorInfo, removeMonitorInfo, removeNotificationListener, removeNotificationListener, removeObservedObject, sendErrorNotification, sendNotification, sendNotification, setGranularityPeriod, setObservedAttribute, start, startMonitor, stop, stopMonitor
+ + + + + + + +
Methods inherited from class javax.management.StandardMBean
cacheMBeanInfo, getAttribute, getAttributes, getCachedMBeanInfo, getClassName, getConstructors, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, getParameterName, getParameterName, invoke, setAttribute, setAttributes, setImplementation
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.monitor.MX4JMonitorMBean
addObservedObject, containsObservedObject, getGranularityPeriod, getObservedAttribute, getObservedObjects, isActive, removeObservedObject, setGranularityPeriod, setObservedAttribute, start, stop
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JGaugeMonitor

+
+public MX4JGaugeMonitor()
+                 throws javax.management.NotCompliantMBeanException
+
+
+
+ +

+MX4JGaugeMonitor

+
+protected MX4JGaugeMonitor(java.lang.Class management)
+                    throws javax.management.NotCompliantMBeanException
+
+
+ + + + + + + + +
+Method Detail
+ +

+getNotificationInfo

+
+public javax.management.MBeanNotificationInfo[] getNotificationInfo()
+
+
+
Specified by:
getNotificationInfo in interface javax.management.NotificationBroadcaster
+
+
+
+
+
+
+ +

+getHighThreshold

+
+public java.lang.Number getHighThreshold()
+
+
+
Specified by:
getHighThreshold in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+getLowThreshold

+
+public java.lang.Number getLowThreshold()
+
+
+
Specified by:
getLowThreshold in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+setThresholds

+
+public void setThresholds(java.lang.Number highValue,
+                          java.lang.Number lowValue)
+                   throws java.lang.IllegalArgumentException
+
+
+
Specified by:
setThresholds in interface MX4JGaugeMonitorMBean
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getNotifyHigh

+
+public boolean getNotifyHigh()
+
+
+
Specified by:
getNotifyHigh in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+getNotifyLow

+
+public boolean getNotifyLow()
+
+
+
Specified by:
getNotifyLow in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+setNotifyHigh

+
+public void setNotifyHigh(boolean notifyHigh)
+
+
+
Specified by:
setNotifyHigh in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+setNotifyLow

+
+public void setNotifyLow(boolean notifyLow)
+
+
+
Specified by:
setNotifyLow in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+getDifferenceMode

+
+public boolean getDifferenceMode()
+
+
+
Specified by:
getDifferenceMode in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+setDifferenceMode

+
+public void setDifferenceMode(boolean differenceMode)
+
+
+
Specified by:
setDifferenceMode in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+getDerivedGauge

+
+public java.lang.Number getDerivedGauge(javax.management.ObjectName objectName)
+
+
+
Specified by:
getDerivedGauge in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+getDerivedGaugeTimeStamp

+
+public long getDerivedGaugeTimeStamp(javax.management.ObjectName objectName)
+
+
+
Specified by:
getDerivedGaugeTimeStamp in interface MX4JGaugeMonitorMBean
+
+
+
+
+
+
+ +

+createMonitorInfo

+
+protected MX4JMonitor.MonitorInfo createMonitorInfo()
+
+
+
Specified by:
createMonitorInfo in class MX4JMonitor
+
+
+
+
+
+
+ +

+compare

+
+protected int compare(java.lang.Number left,
+                      java.lang.Number right)
+
+
+
+
+
+
+
+
+
+ +

+sub

+
+protected java.lang.Number sub(java.lang.Number left,
+                               java.lang.Number right)
+
+
+
+
+
+
+
+
+
+ +

+monitor

+
+protected void monitor(javax.management.ObjectName name,
+                       java.lang.String attribute,
+                       java.lang.Object value,
+                       MX4JMonitor.MonitorInfo monitorInfo)
+
+
+
Specified by:
monitor in class MX4JMonitor
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitorMBean.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitorMBean.html new file mode 100644 index 0000000..793210a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JGaugeMonitorMBean.html @@ -0,0 +1,459 @@ + + + + + + +MX4JGaugeMonitorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Interface MX4JGaugeMonitorMBean

+
+
All Superinterfaces:
MX4JMonitorMBean
+
+
+
All Known Implementing Classes:
MX4JGaugeMonitor
+
+
+
+
public interface MX4JGaugeMonitorMBean
extends MX4JMonitorMBean
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.NumbergetDerivedGauge(javax.management.ObjectName objectName) + +
+           
+ longgetDerivedGaugeTimeStamp(javax.management.ObjectName objectName) + +
+           
+ booleangetDifferenceMode() + +
+           
+ java.lang.NumbergetHighThreshold() + +
+           
+ java.lang.NumbergetLowThreshold() + +
+           
+ booleangetNotifyHigh() + +
+           
+ booleangetNotifyLow() + +
+           
+ voidsetDifferenceMode(boolean value) + +
+           
+ voidsetNotifyHigh(boolean value) + +
+           
+ voidsetNotifyLow(boolean value) + +
+           
+ voidsetThresholds(java.lang.Number highValue, + java.lang.Number lowValue) + +
+           
+ + + + + + + +
Methods inherited from interface mx4j.monitor.MX4JMonitorMBean
addObservedObject, containsObservedObject, getGranularityPeriod, getObservedAttribute, getObservedObjects, isActive, removeObservedObject, setGranularityPeriod, setObservedAttribute, start, stop
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getDerivedGauge

+
+public java.lang.Number getDerivedGauge(javax.management.ObjectName objectName)
+
+
+
+
+
+
+
+
+
+ +

+getDerivedGaugeTimeStamp

+
+public long getDerivedGaugeTimeStamp(javax.management.ObjectName objectName)
+
+
+
+
+
+
+
+
+
+ +

+getHighThreshold

+
+public java.lang.Number getHighThreshold()
+
+
+
+
+
+
+
+
+
+ +

+getLowThreshold

+
+public java.lang.Number getLowThreshold()
+
+
+
+
+
+
+
+
+
+ +

+setThresholds

+
+public void setThresholds(java.lang.Number highValue,
+                          java.lang.Number lowValue)
+                   throws java.lang.IllegalArgumentException
+
+
+
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getNotifyHigh

+
+public boolean getNotifyHigh()
+
+
+
+
+
+
+
+
+
+ +

+setNotifyHigh

+
+public void setNotifyHigh(boolean value)
+
+
+
+
+
+
+
+
+
+ +

+getNotifyLow

+
+public boolean getNotifyLow()
+
+
+
+
+
+
+
+
+
+ +

+setNotifyLow

+
+public void setNotifyLow(boolean value)
+
+
+
+
+
+
+
+
+
+ +

+getDifferenceMode

+
+public boolean getDifferenceMode()
+
+
+
+
+
+
+
+
+
+ +

+setDifferenceMode

+
+public void setDifferenceMode(boolean value)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitor.MonitorInfo.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitor.MonitorInfo.html new file mode 100644 index 0000000..dad1913 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitor.MonitorInfo.html @@ -0,0 +1,317 @@ + + + + + + +MX4JMonitor.MonitorInfo (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Class MX4JMonitor.MonitorInfo

+
+java.lang.Object
+  extended bymx4j.monitor.MX4JMonitor.MonitorInfo
+
+
+
Direct Known Subclasses:
MX4JCounterMonitor.CounterMonitorInfo, MX4JGaugeMonitor.GaugeMonitorInfo, MX4JStringMonitor.StringMonitorInfo
+
+
+
Enclosing class:
MX4JMonitor
+
+
+
+
protected class MX4JMonitor.MonitorInfo
extends java.lang.Object
+ +

+


+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected MX4JMonitor.MonitorInfo() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidclearNotificationStatus() + +
+           
+ booleanisErrorNotified() + +
+           
+ voidsetErrorNotified(boolean errorNotified) + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JMonitor.MonitorInfo

+
+protected MX4JMonitor.MonitorInfo()
+
+
+ + + + + + + + +
+Method Detail
+ +

+isErrorNotified

+
+public boolean isErrorNotified()
+
+
+
+
+
+
+ +

+setErrorNotified

+
+public void setErrorNotified(boolean errorNotified)
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+
+ +

+clearNotificationStatus

+
+public void clearNotificationStatus()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitor.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitor.html new file mode 100644 index 0000000..1950df6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitor.html @@ -0,0 +1,1057 @@ + + + + + + +MX4JMonitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Class MX4JMonitor

+
+java.lang.Object
+  extended byjavax.management.StandardMBean
+      extended bymx4j.monitor.MX4JMonitor
+
+
+
All Implemented Interfaces:
javax.management.DynamicMBean, javax.management.MBeanRegistration, MX4JMonitorMBean, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
Direct Known Subclasses:
MX4JCounterMonitor, MX4JGaugeMonitor, MX4JStringMonitor
+
+
+
+
public abstract class MX4JMonitor
extends javax.management.StandardMBean
implements MX4JMonitorMBean, javax.management.MBeanRegistration, javax.management.NotificationEmitter
+ +

+The class that implements the Monitor behavior of the JMX specification. + IMPLEMENTATION NOTE: + There is one single thread that handles monitoring, for all monitor objects. + There is one single task per each monitor object that runs. + The queue will have possibly many tasks per each monitor type. + Each monitor handles many MBeans, but only one attribute; however, both MBeans and attribute can be changed, + though it would be a strange way to use the monitor. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + +
+Nested Class Summary
+protected  classMX4JMonitor.MonitorInfo + +
+           
+  + + + + + + + + + + + + + + +
+Constructor Summary
+protected MX4JMonitor(java.lang.Class management) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidaddObservedObject(javax.management.ObjectName name) + +
+           
+ voidclearObservedObjects() + +
+           
+ booleancontainsObservedObject(javax.management.ObjectName name) + +
+           
+protected abstract  MX4JMonitor.MonitorInfocreateMonitorInfo() + +
+           
+protected  javax.management.NotificationcreateMonitorNotification(java.lang.String type, + long sequence, + java.lang.String message, + javax.management.ObjectName observed, + java.lang.String attribute, + java.lang.Object gauge, + java.lang.Object trigger) + +
+           
+protected  javax.management.NotificationBroadcasterSupportcreateNotificationEmitter() + +
+           
+ longgetGranularityPeriod() + +
+           
+protected  LoggergetLogger() + +
+           
+protected  MX4JMonitor.MonitorInfogetMonitorInfo(javax.management.ObjectName name) + +
+           
+ java.lang.StringgetObservedAttribute() + +
+           
+ javax.management.ObjectName[]getObservedObjects() + +
+           
+ booleanisActive() + +
+           
+protected abstract  voidmonitor(javax.management.ObjectName name, + java.lang.String attribute, + java.lang.Object value, + MX4JMonitor.MonitorInfo info) + +
+           
+ voidpostDeregister() + +
+           
+ voidpostRegister(java.lang.Boolean registrationDone) + +
+           
+ voidpreDeregister() + +
+           
+ javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, + javax.management.ObjectName name) + +
+           
+protected  voidputMonitorInfo(javax.management.ObjectName name, + MX4JMonitor.MonitorInfo info) + +
+           
+protected  voidremoveMonitorInfo(javax.management.ObjectName name) + +
+           
+ voidremoveNotificationListener(javax.management.NotificationListener listener) + +
+           
+ voidremoveNotificationListener(javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidremoveObservedObject(javax.management.ObjectName name) + +
+           
+protected  voidsendErrorNotification(MX4JMonitor.MonitorInfo info, + java.lang.String type, + java.lang.String message, + javax.management.ObjectName observed, + java.lang.String attribute) + +
+           
+ voidsendNotification(javax.management.Notification notification) + +
+           
+protected  voidsendNotification(java.lang.String type, + java.lang.String message, + javax.management.ObjectName name, + java.lang.String attribute, + java.lang.Object gauge, + java.lang.Object trigger) + +
+           
+ voidsetGranularityPeriod(long granularity) + +
+           
+ voidsetObservedAttribute(java.lang.String attribute) + +
+           
+ voidstart() + +
+           
+protected  voidstartMonitor() + +
+           
+ voidstop() + +
+           
+protected  voidstopMonitor() + +
+           
+ + + + + + + +
Methods inherited from class javax.management.StandardMBean
cacheMBeanInfo, getAttribute, getAttributes, getCachedMBeanInfo, getClassName, getConstructors, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, getParameterName, getParameterName, invoke, setAttribute, setAttributes, setImplementation
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface javax.management.NotificationBroadcaster
getNotificationInfo
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JMonitor

+
+protected MX4JMonitor(java.lang.Class management)
+               throws javax.management.NotCompliantMBeanException
+
+
+ + + + + + + + +
+Method Detail
+ +

+preRegister

+
+public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
+                                               javax.management.ObjectName name)
+
+
+
Specified by:
preRegister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+postRegister

+
+public void postRegister(java.lang.Boolean registrationDone)
+
+
+
Specified by:
postRegister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+preDeregister

+
+public void preDeregister()
+
+
+
Specified by:
preDeregister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+postDeregister

+
+public void postDeregister()
+
+
+
Specified by:
postDeregister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+createNotificationEmitter

+
+protected javax.management.NotificationBroadcasterSupport createNotificationEmitter()
+
+
+
+
+
+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws java.lang.IllegalArgumentException
+
+
+
Specified by:
addNotificationListener in interface javax.management.NotificationBroadcaster
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.NotificationListener listener)
+                                throws javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.NotificationBroadcaster
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.NotificationEmitter
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+sendNotification

+
+public void sendNotification(javax.management.Notification notification)
+
+
+
+
+
+
+
+
+
+ +

+start

+
+public void start()
+
+
+
Specified by:
start in interface MX4JMonitorMBean
+
+
+
+
+
+
+ +

+stop

+
+public void stop()
+
+
+
Specified by:
stop in interface MX4JMonitorMBean
+
+
+
+
+
+
+ +

+isActive

+
+public boolean isActive()
+
+
+
Specified by:
isActive in interface MX4JMonitorMBean
+
+
+
+
+
+
+ +

+addObservedObject

+
+public void addObservedObject(javax.management.ObjectName name)
+                       throws java.lang.IllegalArgumentException
+
+
+
Specified by:
addObservedObject in interface MX4JMonitorMBean
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+removeObservedObject

+
+public void removeObservedObject(javax.management.ObjectName name)
+
+
+
Specified by:
removeObservedObject in interface MX4JMonitorMBean
+
+
+
+
+
+
+ +

+containsObservedObject

+
+public boolean containsObservedObject(javax.management.ObjectName name)
+
+
+
Specified by:
containsObservedObject in interface MX4JMonitorMBean
+
+
+
+
+
+
+ +

+getObservedObjects

+
+public javax.management.ObjectName[] getObservedObjects()
+
+
+
Specified by:
getObservedObjects in interface MX4JMonitorMBean
+
+
+
+
+
+
+ +

+clearObservedObjects

+
+public void clearObservedObjects()
+
+
+
+
+
+
+
+
+
+ +

+getObservedAttribute

+
+public java.lang.String getObservedAttribute()
+
+
+
Specified by:
getObservedAttribute in interface MX4JMonitorMBean
+
+
+
+
+
+
+ +

+setObservedAttribute

+
+public void setObservedAttribute(java.lang.String attribute)
+
+
+
Specified by:
setObservedAttribute in interface MX4JMonitorMBean
+
+
+
+
+
+
+ +

+getGranularityPeriod

+
+public long getGranularityPeriod()
+
+
+
Specified by:
getGranularityPeriod in interface MX4JMonitorMBean
+
+
+
+
+
+
+ +

+setGranularityPeriod

+
+public void setGranularityPeriod(long granularity)
+                          throws java.lang.IllegalArgumentException
+
+
+
Specified by:
setGranularityPeriod in interface MX4JMonitorMBean
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+startMonitor

+
+protected void startMonitor()
+
+
+
+
+
+
+
+
+
+ +

+stopMonitor

+
+protected void stopMonitor()
+
+
+
+
+
+
+
+
+
+ +

+getLogger

+
+protected Logger getLogger()
+
+
+
+
+
+
+
+
+
+ +

+sendNotification

+
+protected void sendNotification(java.lang.String type,
+                                java.lang.String message,
+                                javax.management.ObjectName name,
+                                java.lang.String attribute,
+                                java.lang.Object gauge,
+                                java.lang.Object trigger)
+
+
+
+
+
+
+
+
+
+ +

+createMonitorNotification

+
+protected javax.management.Notification createMonitorNotification(java.lang.String type,
+                                                                  long sequence,
+                                                                  java.lang.String message,
+                                                                  javax.management.ObjectName observed,
+                                                                  java.lang.String attribute,
+                                                                  java.lang.Object gauge,
+                                                                  java.lang.Object trigger)
+
+
+
+
+
+
+
+
+
+ +

+monitor

+
+protected abstract void monitor(javax.management.ObjectName name,
+                                java.lang.String attribute,
+                                java.lang.Object value,
+                                MX4JMonitor.MonitorInfo info)
+
+
+
+
+
+
+
+
+
+ +

+createMonitorInfo

+
+protected abstract MX4JMonitor.MonitorInfo createMonitorInfo()
+
+
+
+
+
+
+
+
+
+ +

+getMonitorInfo

+
+protected MX4JMonitor.MonitorInfo getMonitorInfo(javax.management.ObjectName name)
+
+
+
+
+
+
+
+
+
+ +

+putMonitorInfo

+
+protected void putMonitorInfo(javax.management.ObjectName name,
+                              MX4JMonitor.MonitorInfo info)
+
+
+
+
+
+
+
+
+
+ +

+removeMonitorInfo

+
+protected void removeMonitorInfo(javax.management.ObjectName name)
+
+
+
+
+
+
+
+
+
+ +

+sendErrorNotification

+
+protected void sendErrorNotification(MX4JMonitor.MonitorInfo info,
+                                     java.lang.String type,
+                                     java.lang.String message,
+                                     javax.management.ObjectName observed,
+                                     java.lang.String attribute)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitorMBean.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitorMBean.html new file mode 100644 index 0000000..35cc57f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitorMBean.html @@ -0,0 +1,418 @@ + + + + + + +MX4JMonitorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Interface MX4JMonitorMBean

+
+
All Known Subinterfaces:
MX4JCounterMonitorMBean, MX4JGaugeMonitorMBean, MX4JStringMonitorMBean
+
+
+
All Known Implementing Classes:
MX4JCounterMonitor, MX4JGaugeMonitor, MX4JMonitor, MX4JStringMonitor
+
+
+
+
public interface MX4JMonitorMBean
+ +

+

+
Version:
+
$Revision: 1.2 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddObservedObject(javax.management.ObjectName object) + +
+           
+ booleancontainsObservedObject(javax.management.ObjectName object) + +
+           
+ longgetGranularityPeriod() + +
+           
+ java.lang.StringgetObservedAttribute() + +
+           
+ javax.management.ObjectName[]getObservedObjects() + +
+           
+ booleanisActive() + +
+           
+ voidremoveObservedObject(javax.management.ObjectName object) + +
+           
+ voidsetGranularityPeriod(long period) + +
+           
+ voidsetObservedAttribute(java.lang.String attribute) + +
+           
+ voidstart() + +
+           
+ voidstop() + +
+           
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+start

+
+public void start()
+
+
+
+
+
+
+ +

+stop

+
+public void stop()
+
+
+
+
+
+
+ +

+isActive

+
+public boolean isActive()
+
+
+
+
+
+
+ +

+addObservedObject

+
+public void addObservedObject(javax.management.ObjectName object)
+                       throws java.lang.IllegalArgumentException
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+removeObservedObject

+
+public void removeObservedObject(javax.management.ObjectName object)
+
+
+
+
+
+
+ +

+containsObservedObject

+
+public boolean containsObservedObject(javax.management.ObjectName object)
+
+
+
+
+
+
+ +

+getObservedObjects

+
+public javax.management.ObjectName[] getObservedObjects()
+
+
+
+
+
+
+ +

+getObservedAttribute

+
+public java.lang.String getObservedAttribute()
+
+
+
+
+
+
+ +

+setObservedAttribute

+
+public void setObservedAttribute(java.lang.String attribute)
+
+
+
+
+
+
+ +

+getGranularityPeriod

+
+public long getGranularityPeriod()
+
+
+
+
+
+
+ +

+setGranularityPeriod

+
+public void setGranularityPeriod(long period)
+                          throws java.lang.IllegalArgumentException
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitorNotification.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitorNotification.html new file mode 100644 index 0000000..d3a12ec --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JMonitorNotification.html @@ -0,0 +1,378 @@ + + + + + + +MX4JMonitorNotification (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Class MX4JMonitorNotification

+
+java.lang.Object
+  extended byjava.util.EventObject
+      extended byjavax.management.Notification
+          extended bymx4j.monitor.MX4JMonitorNotification
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class MX4JMonitorNotification
extends javax.management.Notification
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class javax.management.Notification
source
+  + + + + + + + + + + +
+Constructor Summary
MX4JMonitorNotification(java.lang.String type, + java.lang.Object source, + long sequenceNumber, + long timeStamp, + java.lang.String message, + javax.management.ObjectName monitoredName, + java.lang.String attribute, + java.lang.Object gauge, + java.lang.Object trigger) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.ObjectgetDerivedGauge() + +
+           
+ java.lang.StringgetObservedAttribute() + +
+           
+ javax.management.ObjectNamegetObservedObject() + +
+           
+ java.lang.ObjectgetTrigger() + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class javax.management.Notification
getMessage, getSequenceNumber, getSource, getTimeStamp, getType, getUserData, setSequenceNumber, setSource, setTimeStamp, setUserData
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JMonitorNotification

+
+public MX4JMonitorNotification(java.lang.String type,
+                               java.lang.Object source,
+                               long sequenceNumber,
+                               long timeStamp,
+                               java.lang.String message,
+                               javax.management.ObjectName monitoredName,
+                               java.lang.String attribute,
+                               java.lang.Object gauge,
+                               java.lang.Object trigger)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getObservedObject

+
+public javax.management.ObjectName getObservedObject()
+
+
+
+
+
+
+ +

+getDerivedGauge

+
+public java.lang.Object getDerivedGauge()
+
+
+
+
+
+
+ +

+getObservedAttribute

+
+public java.lang.String getObservedAttribute()
+
+
+
+
+
+
+ +

+getTrigger

+
+public java.lang.Object getTrigger()
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitor.StringMonitorInfo.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitor.StringMonitorInfo.html new file mode 100644 index 0000000..aae696c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitor.StringMonitorInfo.html @@ -0,0 +1,444 @@ + + + + + + +MX4JStringMonitor.StringMonitorInfo (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Class MX4JStringMonitor.StringMonitorInfo

+
+java.lang.Object
+  extended bymx4j.monitor.MX4JMonitor.MonitorInfo
+      extended bymx4j.monitor.MX4JStringMonitor.StringMonitorInfo
+
+
+
Enclosing class:
MX4JStringMonitor
+
+
+
+
protected class MX4JStringMonitor.StringMonitorInfo
extends MX4JMonitor.MonitorInfo
+ +

+


+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected MX4JStringMonitor.StringMonitorInfo() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidclearNotificationStatus() + +
+           
+ java.lang.StringgetGauge() + +
+           
+ longgetTimestamp() + +
+           
+ booleanisDifferNotified() + +
+           
+ booleanisMatchNotified() + +
+           
+ voidsetDifferNotified(boolean differNotified) + +
+           
+ voidsetGauge(java.lang.String gauge) + +
+           
+ voidsetMatchNotified(boolean matchNotified) + +
+           
+ voidsetTimestamp(long timestamp) + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.monitor.MX4JMonitor.MonitorInfo
isErrorNotified, setErrorNotified
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JStringMonitor.StringMonitorInfo

+
+protected MX4JStringMonitor.StringMonitorInfo()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getGauge

+
+public java.lang.String getGauge()
+
+
+
+
+
+
+ +

+setGauge

+
+public void setGauge(java.lang.String gauge)
+
+
+
+
+
+
+ +

+getTimestamp

+
+public long getTimestamp()
+
+
+
+
+
+
+ +

+setTimestamp

+
+public void setTimestamp(long timestamp)
+
+
+
+
+
+
+ +

+isMatchNotified

+
+public boolean isMatchNotified()
+
+
+
+
+
+
+ +

+setMatchNotified

+
+public void setMatchNotified(boolean matchNotified)
+
+
+
+
+
+
+ +

+isDifferNotified

+
+public boolean isDifferNotified()
+
+
+
+
+
+
+ +

+setDifferNotified

+
+public void setDifferNotified(boolean differNotified)
+
+
+
+
+
+
+ +

+clearNotificationStatus

+
+public void clearNotificationStatus()
+
+
+
Overrides:
clearNotificationStatus in class MX4JMonitor.MonitorInfo
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class MX4JMonitor.MonitorInfo
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitor.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitor.html new file mode 100644 index 0000000..e4c1f91 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitor.html @@ -0,0 +1,584 @@ + + + + + + +MX4JStringMonitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Class MX4JStringMonitor

+
+java.lang.Object
+  extended byjavax.management.StandardMBean
+      extended bymx4j.monitor.MX4JMonitor
+          extended bymx4j.monitor.MX4JStringMonitor
+
+
+
All Implemented Interfaces:
javax.management.DynamicMBean, javax.management.MBeanRegistration, MX4JMonitorMBean, MX4JStringMonitorMBean, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
+
public class MX4JStringMonitor
extends MX4JMonitor
implements MX4JStringMonitorMBean
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + +
+Nested Class Summary
+protected  classMX4JStringMonitor.StringMonitorInfo + +
+           
+ + + + + + + +
Nested classes inherited from class mx4j.monitor.MX4JMonitor
MX4JMonitor.MonitorInfo
+  + + + + + + + + + + + + + + + + +
+Constructor Summary
MX4JStringMonitor() + +
+           
MX4JStringMonitor(java.lang.Class management) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  intcompare(java.lang.String left, + java.lang.String right) + +
+           
+protected  MX4JMonitor.MonitorInfocreateMonitorInfo() + +
+           
+ java.lang.StringgetDerivedGauge(javax.management.ObjectName objectName) + +
+           
+ longgetDerivedGaugeTimeStamp(javax.management.ObjectName objectName) + +
+           
+ javax.management.MBeanNotificationInfo[]getNotificationInfo() + +
+           
+ booleangetNotifyDiffer() + +
+           
+ booleangetNotifyMatch() + +
+           
+ java.lang.StringgetStringToCompare() + +
+           
+protected  voidmonitor(javax.management.ObjectName name, + java.lang.String attribute, + java.lang.Object value, + MX4JMonitor.MonitorInfo monitorInfo) + +
+           
+ voidsetNotifyDiffer(boolean notifyDiffer) + +
+           
+ voidsetNotifyMatch(boolean notifyMatch) + +
+           
+ voidsetStringToCompare(java.lang.String value) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.monitor.MX4JMonitor
addNotificationListener, addObservedObject, clearObservedObjects, containsObservedObject, createMonitorNotification, createNotificationEmitter, getGranularityPeriod, getLogger, getMonitorInfo, getObservedAttribute, getObservedObjects, isActive, postDeregister, postRegister, preDeregister, preRegister, putMonitorInfo, removeMonitorInfo, removeNotificationListener, removeNotificationListener, removeObservedObject, sendErrorNotification, sendNotification, sendNotification, setGranularityPeriod, setObservedAttribute, start, startMonitor, stop, stopMonitor
+ + + + + + + +
Methods inherited from class javax.management.StandardMBean
cacheMBeanInfo, getAttribute, getAttributes, getCachedMBeanInfo, getClassName, getConstructors, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, getParameterName, getParameterName, invoke, setAttribute, setAttributes, setImplementation
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.monitor.MX4JMonitorMBean
addObservedObject, containsObservedObject, getGranularityPeriod, getObservedAttribute, getObservedObjects, isActive, removeObservedObject, setGranularityPeriod, setObservedAttribute, start, stop
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JStringMonitor

+
+public MX4JStringMonitor()
+                  throws javax.management.NotCompliantMBeanException
+
+
+
+ +

+MX4JStringMonitor

+
+public MX4JStringMonitor(java.lang.Class management)
+                  throws javax.management.NotCompliantMBeanException
+
+
+ + + + + + + + +
+Method Detail
+ +

+getNotificationInfo

+
+public javax.management.MBeanNotificationInfo[] getNotificationInfo()
+
+
+
Specified by:
getNotificationInfo in interface javax.management.NotificationBroadcaster
+
+
+
+
+
+
+ +

+getStringToCompare

+
+public java.lang.String getStringToCompare()
+
+
+
Specified by:
getStringToCompare in interface MX4JStringMonitorMBean
+
+
+
+
+
+
+ +

+setStringToCompare

+
+public void setStringToCompare(java.lang.String value)
+                        throws java.lang.IllegalArgumentException
+
+
+
Specified by:
setStringToCompare in interface MX4JStringMonitorMBean
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getNotifyMatch

+
+public boolean getNotifyMatch()
+
+
+
Specified by:
getNotifyMatch in interface MX4JStringMonitorMBean
+
+
+
+
+
+
+ +

+setNotifyMatch

+
+public void setNotifyMatch(boolean notifyMatch)
+
+
+
Specified by:
setNotifyMatch in interface MX4JStringMonitorMBean
+
+
+
+
+
+
+ +

+getNotifyDiffer

+
+public boolean getNotifyDiffer()
+
+
+
Specified by:
getNotifyDiffer in interface MX4JStringMonitorMBean
+
+
+
+
+
+
+ +

+setNotifyDiffer

+
+public void setNotifyDiffer(boolean notifyDiffer)
+
+
+
Specified by:
setNotifyDiffer in interface MX4JStringMonitorMBean
+
+
+
+
+
+
+ +

+getDerivedGauge

+
+public java.lang.String getDerivedGauge(javax.management.ObjectName objectName)
+
+
+
Specified by:
getDerivedGauge in interface MX4JStringMonitorMBean
+
+
+
+
+
+
+ +

+getDerivedGaugeTimeStamp

+
+public long getDerivedGaugeTimeStamp(javax.management.ObjectName objectName)
+
+
+
Specified by:
getDerivedGaugeTimeStamp in interface MX4JStringMonitorMBean
+
+
+
+
+
+
+ +

+createMonitorInfo

+
+protected MX4JMonitor.MonitorInfo createMonitorInfo()
+
+
+
Specified by:
createMonitorInfo in class MX4JMonitor
+
+
+
+
+
+
+ +

+compare

+
+protected int compare(java.lang.String left,
+                      java.lang.String right)
+
+
+
+
+
+
+
+
+
+ +

+monitor

+
+protected void monitor(javax.management.ObjectName name,
+                       java.lang.String attribute,
+                       java.lang.Object value,
+                       MX4JMonitor.MonitorInfo monitorInfo)
+
+
+
Specified by:
monitor in class MX4JMonitor
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitorMBean.html b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitorMBean.html new file mode 100644 index 0000000..2197f46 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/MX4JStringMonitorMBean.html @@ -0,0 +1,391 @@ + + + + + + +MX4JStringMonitorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.monitor +
+Interface MX4JStringMonitorMBean

+
+
All Superinterfaces:
MX4JMonitorMBean
+
+
+
All Known Implementing Classes:
MX4JStringMonitor
+
+
+
+
public interface MX4JStringMonitorMBean
extends MX4JMonitorMBean
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetDerivedGauge(javax.management.ObjectName objectName) + +
+           
+ longgetDerivedGaugeTimeStamp(javax.management.ObjectName objectName) + +
+           
+ booleangetNotifyDiffer() + +
+           
+ booleangetNotifyMatch() + +
+           
+ java.lang.StringgetStringToCompare() + +
+           
+ voidsetNotifyDiffer(boolean value) + +
+           
+ voidsetNotifyMatch(boolean value) + +
+           
+ voidsetStringToCompare(java.lang.String value) + +
+           
+ + + + + + + +
Methods inherited from interface mx4j.monitor.MX4JMonitorMBean
addObservedObject, containsObservedObject, getGranularityPeriod, getObservedAttribute, getObservedObjects, isActive, removeObservedObject, setGranularityPeriod, setObservedAttribute, start, stop
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getDerivedGauge

+
+public java.lang.String getDerivedGauge(javax.management.ObjectName objectName)
+
+
+
+
+
+
+
+
+
+ +

+getDerivedGaugeTimeStamp

+
+public long getDerivedGaugeTimeStamp(javax.management.ObjectName objectName)
+
+
+
+
+
+
+
+
+
+ +

+getStringToCompare

+
+public java.lang.String getStringToCompare()
+
+
+
+
+
+
+
+
+
+ +

+setStringToCompare

+
+public void setStringToCompare(java.lang.String value)
+                        throws java.lang.IllegalArgumentException
+
+
+
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+getNotifyMatch

+
+public boolean getNotifyMatch()
+
+
+
+
+
+
+
+
+
+ +

+setNotifyMatch

+
+public void setNotifyMatch(boolean value)
+
+
+
+
+
+
+
+
+
+ +

+getNotifyDiffer

+
+public boolean getNotifyDiffer()
+
+
+
+
+
+
+
+
+
+ +

+setNotifyDiffer

+
+public void setNotifyDiffer(boolean value)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitor.CounterMonitorInfo.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitor.CounterMonitorInfo.html new file mode 100644 index 0000000..b09e9c2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitor.CounterMonitorInfo.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo

+
+No usage of mx4j.monitor.MX4JCounterMonitor.CounterMonitorInfo +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitor.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitor.html new file mode 100644 index 0000000..72a5e32 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.monitor.MX4JCounterMonitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.monitor.MX4JCounterMonitor

+
+No usage of mx4j.monitor.MX4JCounterMonitor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitorMBean.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitorMBean.html new file mode 100644 index 0000000..d6028dc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JCounterMonitorMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.monitor.MX4JCounterMonitorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.monitor.MX4JCounterMonitorMBean

+
+ + + + + + + + + +
+Packages that use MX4JCounterMonitorMBean
mx4j.monitor  
+  +

+ + + + + +
+Uses of MX4JCounterMonitorMBean in mx4j.monitor
+  +

+ + + + + + + + + +
Classes in mx4j.monitor that implement MX4JCounterMonitorMBean
+ classMX4JCounterMonitor + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitor.GaugeMonitorInfo.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitor.GaugeMonitorInfo.html new file mode 100644 index 0000000..409f22a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitor.GaugeMonitorInfo.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo

+
+No usage of mx4j.monitor.MX4JGaugeMonitor.GaugeMonitorInfo +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitor.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitor.html new file mode 100644 index 0000000..d6f6143 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.monitor.MX4JGaugeMonitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.monitor.MX4JGaugeMonitor

+
+No usage of mx4j.monitor.MX4JGaugeMonitor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitorMBean.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitorMBean.html new file mode 100644 index 0000000..c91b470 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JGaugeMonitorMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.monitor.MX4JGaugeMonitorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.monitor.MX4JGaugeMonitorMBean

+
+ + + + + + + + + +
+Packages that use MX4JGaugeMonitorMBean
mx4j.monitor  
+  +

+ + + + + +
+Uses of MX4JGaugeMonitorMBean in mx4j.monitor
+  +

+ + + + + + + + + +
Classes in mx4j.monitor that implement MX4JGaugeMonitorMBean
+ classMX4JGaugeMonitor + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitor.MonitorInfo.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitor.MonitorInfo.html new file mode 100644 index 0000000..52e8f8a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitor.MonitorInfo.html @@ -0,0 +1,309 @@ + + + + + + +Uses of Class mx4j.monitor.MX4JMonitor.MonitorInfo (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.monitor.MX4JMonitor.MonitorInfo

+
+ + + + + + + + + +
+Packages that use MX4JMonitor.MonitorInfo
mx4j.monitor  
+  +

+ + + + + +
+Uses of MX4JMonitor.MonitorInfo in mx4j.monitor
+  +

+ + + + + + + + + + + + + + + + + +
Subclasses of MX4JMonitor.MonitorInfo in mx4j.monitor
+protected  classMX4JCounterMonitor.CounterMonitorInfo + +
+           
+protected  classMX4JGaugeMonitor.GaugeMonitorInfo + +
+           
+protected  classMX4JStringMonitor.StringMonitorInfo + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.monitor that return MX4JMonitor.MonitorInfo
+protected  MX4JMonitor.MonitorInfoMX4JStringMonitor.createMonitorInfo() + +
+           
+protected abstract  MX4JMonitor.MonitorInfoMX4JMonitor.createMonitorInfo() + +
+           
+protected  MX4JMonitor.MonitorInfoMX4JMonitor.getMonitorInfo(javax.management.ObjectName name) + +
+           
+protected  MX4JMonitor.MonitorInfoMX4JGaugeMonitor.createMonitorInfo() + +
+           
+protected  MX4JMonitor.MonitorInfoMX4JCounterMonitor.createMonitorInfo() + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.monitor with parameters of type MX4JMonitor.MonitorInfo
+protected  voidMX4JStringMonitor.monitor(javax.management.ObjectName name, + java.lang.String attribute, + java.lang.Object value, + MX4JMonitor.MonitorInfo monitorInfo) + +
+           
+protected abstract  voidMX4JMonitor.monitor(javax.management.ObjectName name, + java.lang.String attribute, + java.lang.Object value, + MX4JMonitor.MonitorInfo info) + +
+           
+protected  voidMX4JMonitor.putMonitorInfo(javax.management.ObjectName name, + MX4JMonitor.MonitorInfo info) + +
+           
+protected  voidMX4JMonitor.sendErrorNotification(MX4JMonitor.MonitorInfo info, + java.lang.String type, + java.lang.String message, + javax.management.ObjectName observed, + java.lang.String attribute) + +
+           
+protected  voidMX4JGaugeMonitor.monitor(javax.management.ObjectName name, + java.lang.String attribute, + java.lang.Object value, + MX4JMonitor.MonitorInfo monitorInfo) + +
+           
+protected  voidMX4JCounterMonitor.monitor(javax.management.ObjectName name, + java.lang.String attribute, + java.lang.Object value, + MX4JMonitor.MonitorInfo monitorInfo) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitor.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitor.html new file mode 100644 index 0000000..724b8e7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitor.html @@ -0,0 +1,188 @@ + + + + + + +Uses of Class mx4j.monitor.MX4JMonitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.monitor.MX4JMonitor

+
+ + + + + + + + + +
+Packages that use MX4JMonitor
mx4j.monitor  
+  +

+ + + + + +
+Uses of MX4JMonitor in mx4j.monitor
+  +

+ + + + + + + + + + + + + + + + + +
Subclasses of MX4JMonitor in mx4j.monitor
+ classMX4JCounterMonitor + +
+           
+ classMX4JGaugeMonitor + +
+           
+ classMX4JStringMonitor + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitorMBean.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitorMBean.html new file mode 100644 index 0000000..28e7efc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitorMBean.html @@ -0,0 +1,228 @@ + + + + + + +Uses of Interface mx4j.monitor.MX4JMonitorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.monitor.MX4JMonitorMBean

+
+ + + + + + + + + +
+Packages that use MX4JMonitorMBean
mx4j.monitor  
+  +

+ + + + + +
+Uses of MX4JMonitorMBean in mx4j.monitor
+  +

+ + + + + + + + + + + + + + + + + +
Subinterfaces of MX4JMonitorMBean in mx4j.monitor
+ interfaceMX4JCounterMonitorMBean + +
+           
+ interfaceMX4JGaugeMonitorMBean + +
+           
+ interfaceMX4JStringMonitorMBean + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.monitor that implement MX4JMonitorMBean
+ classMX4JCounterMonitor + +
+           
+ classMX4JGaugeMonitor + +
+           
+ classMX4JMonitor + +
+          The class that implements the Monitor behavior of the JMX specification.
+ classMX4JStringMonitor + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitorNotification.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitorNotification.html new file mode 100644 index 0000000..745d3f0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JMonitorNotification.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.monitor.MX4JMonitorNotification (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.monitor.MX4JMonitorNotification

+
+No usage of mx4j.monitor.MX4JMonitorNotification +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitor.StringMonitorInfo.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitor.StringMonitorInfo.html new file mode 100644 index 0000000..7dad7c8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitor.StringMonitorInfo.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.monitor.MX4JStringMonitor.StringMonitorInfo (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.monitor.MX4JStringMonitor.StringMonitorInfo

+
+No usage of mx4j.monitor.MX4JStringMonitor.StringMonitorInfo +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitor.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitor.html new file mode 100644 index 0000000..a903e28 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.monitor.MX4JStringMonitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.monitor.MX4JStringMonitor

+
+No usage of mx4j.monitor.MX4JStringMonitor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitorMBean.html b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitorMBean.html new file mode 100644 index 0000000..a5c1e8b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/class-use/MX4JStringMonitorMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.monitor.MX4JStringMonitorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.monitor.MX4JStringMonitorMBean

+
+ + + + + + + + + +
+Packages that use MX4JStringMonitorMBean
mx4j.monitor  
+  +

+ + + + + +
+Uses of MX4JStringMonitorMBean in mx4j.monitor
+  +

+ + + + + + + + + +
Classes in mx4j.monitor that implement MX4JStringMonitorMBean
+ classMX4JStringMonitor + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/monitor/package-frame.html new file mode 100644 index 0000000..28ede1c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/package-frame.html @@ -0,0 +1,57 @@ + + + + + + +mx4j.monitor (MX4J API) + + + + + + + + + + + +mx4j.monitor + + + + +
+Interfaces  + +
+MX4JCounterMonitorMBean +
+MX4JGaugeMonitorMBean +
+MX4JMonitorMBean +
+MX4JStringMonitorMBean
+ + + + + + +
+Classes  + +
+MX4JCounterMonitor +
+MX4JGaugeMonitor +
+MX4JMonitor +
+MX4JMonitorNotification +
+MX4JStringMonitor
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/monitor/package-summary.html new file mode 100644 index 0000000..b1dbb75 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/package-summary.html @@ -0,0 +1,190 @@ + + + + + + +mx4j.monitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.monitor +

+ + + + + + + + + + + + + + + + + + + + + +
+Interface Summary
MX4JCounterMonitorMBean 
MX4JGaugeMonitorMBean 
MX4JMonitorMBean 
MX4JStringMonitorMBean 
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
MX4JCounterMonitor 
MX4JGaugeMonitor 
MX4JMonitorThe class that implements the Monitor behavior of the JMX specification.
MX4JMonitorNotification 
MX4JStringMonitor 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/monitor/package-tree.html new file mode 100644 index 0000000..d0ae210 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/package-tree.html @@ -0,0 +1,168 @@ + + + + + + +mx4j.monitor Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.monitor +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/monitor/package-use.html b/mx4j-3.0.2/docs/api/mx4j/monitor/package-use.html new file mode 100644 index 0000000..5b9fe8c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/monitor/package-use.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Package mx4j.monitor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.monitor

+
+ + + + + + + + + +
+Packages that use mx4j.monitor
mx4j.monitor  
+  +

+ + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.monitor used by mx4j.monitor
MX4JCounterMonitorMBean + +
+           
MX4JGaugeMonitorMBean + +
+           
MX4JMonitor + +
+          The class that implements the Monitor behavior of the JMX specification.
MX4JMonitor.MonitorInfo + +
+           
MX4JMonitorMBean + +
+           
MX4JStringMonitorMBean + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/package-frame.html new file mode 100644 index 0000000..4568bd6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/package-frame.html @@ -0,0 +1,58 @@ + + + + + + +mx4j (MX4J API) + + + + + + + + + + + +mx4j + + + + +
+Interfaces  + +
+MBeanDescription
+ + + + + + +
+Classes  + +
+AbstractDynamicMBean +
+MBeanDescriptionAdapter +
+MX4JSystemKeys
+ + + + + + +
+Exceptions  + +
+ImplementationException
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/package-summary.html new file mode 100644 index 0000000..59b6f68 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/package-summary.html @@ -0,0 +1,185 @@ + + + + + + +mx4j (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j +

+ + + + + + + + + +
+Interface Summary
MBeanDescriptionImplement this inteface to give descriptions to standard MBean.
+  + +

+ + + + + + + + + + + + + + + + + +
+Class Summary
AbstractDynamicMBeanUtility class that allow the user to easily write DynamicMBeans.
MBeanDescriptionAdapterDefault implementation for the MBeanDescription interface.
MX4JSystemKeysThis class holds the system property keys that the MX4J implementation uses to plugin + custom components.
+  + +

+ + + + + + + + + +
+Exception Summary
ImplementationExceptionThrown when an internal error in the MX4J implementation is detected.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/package-tree.html new file mode 100644 index 0000000..bbe7c65 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/package-tree.html @@ -0,0 +1,159 @@ + + + + + + +mx4j Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/package-use.html b/mx4j-3.0.2/docs/api/mx4j/package-use.html new file mode 100644 index 0000000..58e4ac5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/package-use.html @@ -0,0 +1,312 @@ + + + + + + +Uses of Package mx4j (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use mx4j
mx4j  
mx4j.server.interceptor  
mx4j.tools.adaptor.http  
mx4j.tools.adaptor.ssl  
mx4j.tools.jython  
mx4j.tools.naming  
mx4j.tools.stats  
+  +

+ + + + + + + + +
+Classes in mx4j used by mx4j
MBeanDescription + +
+          Implement this inteface to give descriptions to standard MBean.
+  +

+ + + + + + + + + + + +
+Classes in mx4j used by mx4j.server.interceptor
MBeanDescription + +
+          Implement this inteface to give descriptions to standard MBean.
MBeanDescriptionAdapter + +
+          Default implementation for the MBeanDescription interface.
+  +

+ + + + + + + + + + + +
+Classes in mx4j used by mx4j.tools.adaptor.http
MBeanDescription + +
+          Implement this inteface to give descriptions to standard MBean.
MBeanDescriptionAdapter + +
+          Default implementation for the MBeanDescription interface.
+  +

+ + + + + + + + + + + +
+Classes in mx4j used by mx4j.tools.adaptor.ssl
MBeanDescription + +
+          Implement this inteface to give descriptions to standard MBean.
MBeanDescriptionAdapter + +
+          Default implementation for the MBeanDescription interface.
+  +

+ + + + + + + + + + + +
+Classes in mx4j used by mx4j.tools.jython
MBeanDescription + +
+          Implement this inteface to give descriptions to standard MBean.
MBeanDescriptionAdapter + +
+          Default implementation for the MBeanDescription interface.
+  +

+ + + + + + + + + + + +
+Classes in mx4j used by mx4j.tools.naming
MBeanDescription + +
+          Implement this inteface to give descriptions to standard MBean.
MBeanDescriptionAdapter + +
+          Default implementation for the MBeanDescription interface.
+  +

+ + + + + + + + + + + +
+Classes in mx4j used by mx4j.tools.stats
MBeanDescription + +
+          Implement this inteface to give descriptions to standard MBean.
MBeanDescriptionAdapter + +
+          Default implementation for the MBeanDescription interface.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/FilePersister.html b/mx4j-3.0.2/docs/api/mx4j/persist/FilePersister.html new file mode 100644 index 0000000..6761f3e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/FilePersister.html @@ -0,0 +1,330 @@ + + + + + + +FilePersister (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.persist +
+Class FilePersister

+
+java.lang.Object
+  extended bymx4j.persist.Persister
+      extended bymx4j.persist.FilePersister
+
+
+
All Implemented Interfaces:
PersisterMBean
+
+
+
+
public class FilePersister
extends Persister
+ +

+A persister object that stores to files. +

+ +

+

+
Version:
+
$Revision: 1.10 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
FilePersister(java.lang.String location, + java.lang.String name) + +
+          Creates a new FilePersister.
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetFileName() + +
+          Returns the path where the information is stored.
+ java.lang.Objectload() + +
+          Loads the information persisted on the storage media.
+ voidstore(java.lang.Object data) + +
+          Store the given information to the storage media.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+FilePersister

+
+public FilePersister(java.lang.String location,
+                     java.lang.String name)
+              throws javax.management.MBeanException
+
+
Creates a new FilePersister. +

+

Parameters:
location - the directory where the file will be written (must already exist); + if null the name is used as a location
name - the file name used to store information
+ + + + + + + + +
+Method Detail
+ +

+getFileName

+
+public java.lang.String getFileName()
+
+
Returns the path where the information is stored. +

+

+
+
+
+
+ +

+load

+
+public java.lang.Object load()
+                      throws javax.management.MBeanException,
+                             javax.management.RuntimeOperationsException,
+                             javax.management.InstanceNotFoundException
+
+
Description copied from interface: PersisterMBean
+
Loads the information persisted on the storage media. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.RuntimeOperationsException +
javax.management.InstanceNotFoundException
See Also:
PersisterMBean.store(java.lang.Object)
+
+
+
+ +

+store

+
+public void store(java.lang.Object data)
+           throws javax.management.MBeanException,
+                  javax.management.RuntimeOperationsException,
+                  javax.management.InstanceNotFoundException
+
+
Description copied from interface: PersisterMBean
+
Store the given information to the storage media. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.RuntimeOperationsException +
javax.management.InstanceNotFoundException
See Also:
PersisterMBean.load()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/MBeanPersister.html b/mx4j-3.0.2/docs/api/mx4j/persist/MBeanPersister.html new file mode 100644 index 0000000..1e13807 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/MBeanPersister.html @@ -0,0 +1,309 @@ + + + + + + +MBeanPersister (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.persist +
+Class MBeanPersister

+
+java.lang.Object
+  extended bymx4j.persist.Persister
+      extended bymx4j.persist.MBeanPersister
+
+
+
All Implemented Interfaces:
PersisterMBean
+
+
+
+
public class MBeanPersister
extends Persister
+ +

+A persister that delegates the persistence to a registered persister MBean. +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MBeanPersister(javax.management.MBeanServer server, + javax.management.ObjectName name) + +
+          Creates a new MBeanPersister that delegates persistence to a persister MBean + registered in the specified MBeanServer with the specified ObjectName.
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectload() + +
+          Loads the information persisted on the storage media.
+ voidstore(java.lang.Object data) + +
+          Store the given information to the storage media.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanPersister

+
+public MBeanPersister(javax.management.MBeanServer server,
+                      javax.management.ObjectName name)
+
+
Creates a new MBeanPersister that delegates persistence to a persister MBean + registered in the specified MBeanServer with the specified ObjectName. +

+

+ + + + + + + + +
+Method Detail
+ +

+load

+
+public java.lang.Object load()
+                      throws javax.management.MBeanException,
+                             javax.management.RuntimeOperationsException,
+                             javax.management.InstanceNotFoundException
+
+
Description copied from interface: PersisterMBean
+
Loads the information persisted on the storage media. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.RuntimeOperationsException +
javax.management.InstanceNotFoundException
See Also:
PersisterMBean.store(java.lang.Object)
+
+
+
+ +

+store

+
+public void store(java.lang.Object data)
+           throws javax.management.MBeanException,
+                  javax.management.RuntimeOperationsException,
+                  javax.management.InstanceNotFoundException
+
+
Description copied from interface: PersisterMBean
+
Store the given information to the storage media. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.RuntimeOperationsException +
javax.management.InstanceNotFoundException
See Also:
PersisterMBean.load()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/Persister.html b/mx4j-3.0.2/docs/api/mx4j/persist/Persister.html new file mode 100644 index 0000000..c5ce46d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/Persister.html @@ -0,0 +1,243 @@ + + + + + + +Persister (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.persist +
+Class Persister

+
+java.lang.Object
+  extended bymx4j.persist.Persister
+
+
+
All Implemented Interfaces:
PersisterMBean
+
+
+
Direct Known Subclasses:
FilePersister, MBeanPersister
+
+
+
+
public abstract class Persister
extends java.lang.Object
implements PersisterMBean
+ +

+This class has the only purpose of making the PersisterMBean interface a management interface.

+

+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
Persister() + +
+           
+  + + + + + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.persist.PersisterMBean
load, store
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Persister

+
+public Persister()
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/PersisterMBean.html b/mx4j-3.0.2/docs/api/mx4j/persist/PersisterMBean.html new file mode 100644 index 0000000..93a9348 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/PersisterMBean.html @@ -0,0 +1,260 @@ + + + + + + +PersisterMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.persist +
+Interface PersisterMBean

+
+
All Known Implementing Classes:
Persister
+
+
+
+
public interface PersisterMBean
+ +

+Management interface for components able to persist information to a storage media. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectload() + +
+          Loads the information persisted on the storage media.
+ voidstore(java.lang.Object data) + +
+          Store the given information to the storage media.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+load

+
+public java.lang.Object load()
+                      throws javax.management.MBeanException,
+                             javax.management.RuntimeOperationsException,
+                             javax.management.InstanceNotFoundException
+
+
Loads the information persisted on the storage media. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.RuntimeOperationsException +
javax.management.InstanceNotFoundException
See Also:
store(java.lang.Object)
+
+
+
+ +

+store

+
+public void store(java.lang.Object data)
+           throws javax.management.MBeanException,
+                  javax.management.RuntimeOperationsException,
+                  javax.management.InstanceNotFoundException
+
+
Store the given information to the storage media. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.RuntimeOperationsException +
javax.management.InstanceNotFoundException
See Also:
load()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/class-use/FilePersister.html b/mx4j-3.0.2/docs/api/mx4j/persist/class-use/FilePersister.html new file mode 100644 index 0000000..fd18575 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/class-use/FilePersister.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.persist.FilePersister (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.persist.FilePersister

+
+No usage of mx4j.persist.FilePersister +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/class-use/MBeanPersister.html b/mx4j-3.0.2/docs/api/mx4j/persist/class-use/MBeanPersister.html new file mode 100644 index 0000000..8795e60 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/class-use/MBeanPersister.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.persist.MBeanPersister (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.persist.MBeanPersister

+
+No usage of mx4j.persist.MBeanPersister +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/class-use/Persister.html b/mx4j-3.0.2/docs/api/mx4j/persist/class-use/Persister.html new file mode 100644 index 0000000..b2b4752 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/class-use/Persister.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class mx4j.persist.Persister (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.persist.Persister

+
+ + + + + + + + + +
+Packages that use Persister
mx4j.persist  
+  +

+ + + + + +
+Uses of Persister in mx4j.persist
+  +

+ + + + + + + + + + + + + +
Subclasses of Persister in mx4j.persist
+ classFilePersister + +
+          A persister object that stores to files.
+ classMBeanPersister + +
+          A persister that delegates the persistence to a registered persister MBean.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/class-use/PersisterMBean.html b/mx4j-3.0.2/docs/api/mx4j/persist/class-use/PersisterMBean.html new file mode 100644 index 0000000..49c4b13 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/class-use/PersisterMBean.html @@ -0,0 +1,188 @@ + + + + + + +Uses of Interface mx4j.persist.PersisterMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.persist.PersisterMBean

+
+ + + + + + + + + +
+Packages that use PersisterMBean
mx4j.persist  
+  +

+ + + + + +
+Uses of PersisterMBean in mx4j.persist
+  +

+ + + + + + + + + + + + + + + + + +
Classes in mx4j.persist that implement PersisterMBean
+ classFilePersister + +
+          A persister object that stores to files.
+ classMBeanPersister + +
+          A persister that delegates the persistence to a registered persister MBean.
+ classPersister + +
+          This class has the only purpose of making the PersisterMBean interface a management interface.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/persist/package-frame.html new file mode 100644 index 0000000..b14778a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/package-frame.html @@ -0,0 +1,47 @@ + + + + + + +mx4j.persist (MX4J API) + + + + + + + + + + + +mx4j.persist + + + + +
+Interfaces  + +
+PersisterMBean
+ + + + + + +
+Classes  + +
+FilePersister +
+MBeanPersister +
+Persister
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/persist/package-summary.html new file mode 100644 index 0000000..3771a98 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/package-summary.html @@ -0,0 +1,170 @@ + + + + + + +mx4j.persist (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.persist +

+ + + + + + + + + +
+Interface Summary
PersisterMBeanManagement interface for components able to persist information to a storage media.
+  + +

+ + + + + + + + + + + + + + + + + +
+Class Summary
FilePersisterA persister object that stores to files.
MBeanPersisterA persister that delegates the persistence to a registered persister MBean.
PersisterThis class has the only purpose of making the PersisterMBean interface a management interface.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/persist/package-tree.html new file mode 100644 index 0000000..4afa2cb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/package-tree.html @@ -0,0 +1,153 @@ + + + + + + +mx4j.persist Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.persist +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/persist/package-use.html b/mx4j-3.0.2/docs/api/mx4j/persist/package-use.html new file mode 100644 index 0000000..a542435 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/persist/package-use.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Package mx4j.persist (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.persist

+
+ + + + + + + + + +
+Packages that use mx4j.persist
mx4j.persist  
+  +

+ + + + + + + + + + + +
+Classes in mx4j.persist used by mx4j.persist
Persister + +
+          This class has the only purpose of making the PersisterMBean interface a management interface.
PersisterMBean + +
+          Management interface for components able to persist information to a storage media.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/AbstractHeartBeat.html b/mx4j-3.0.2/docs/api/mx4j/remote/AbstractHeartBeat.html new file mode 100644 index 0000000..848de98 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/AbstractHeartBeat.html @@ -0,0 +1,444 @@ + + + + + + +AbstractHeartBeat (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class AbstractHeartBeat

+
+java.lang.Object
+  extended bymx4j.remote.AbstractHeartBeat
+
+
+
All Implemented Interfaces:
HeartBeat, java.lang.Runnable
+
+
+
Direct Known Subclasses:
HTTPHeartBeat, RMIHeartBeat
+
+
+
+
public abstract class AbstractHeartBeat
extends java.lang.Object
implements HeartBeat, java.lang.Runnable
+ +

+Base implementation for the HeartBeat interface. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected AbstractHeartBeat(ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+          Creates a new HeartBeat.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intgetMaxRetries() + +
+          Returns the maximum number of retries this heart beat attempts after + a first connection failure before declaring the connection or the server + as dead.
+ longgetPulsePeriod() + +
+          Returns the period of time in milliseconds between two heart beats
+protected abstract  voidpulse() + +
+          Subclasses will implement this method using protocol specific connections.
+ voidrun() + +
+           
+protected  voidsendConnectionNotificationFailed() + +
+          Sends the connection failed notification using the emitter specified in + AbstractHeartBeat(mx4j.remote.ConnectionNotificationEmitter, java.util.Map)
+ voidstart() + +
+          Starts the heart beat
+ voidstop() + +
+          Stops the heart beat
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AbstractHeartBeat

+
+protected AbstractHeartBeat(ConnectionNotificationEmitter emitter,
+                            java.util.Map environment)
+
+
Creates a new HeartBeat. +

+

Parameters:
emitter - The NotificationEmitter that sends connection failures notifications.
environment - The environment that may contain properties that specify heart beat's behavior
See Also:
sendConnectionNotificationFailed(), +MX4JRemoteConstants.CONNECTION_HEARTBEAT_PERIOD, +MX4JRemoteConstants.CONNECTION_HEARTBEAT_RETRIES
+ + + + + + + + +
+Method Detail
+ +

+getPulsePeriod

+
+public long getPulsePeriod()
+
+
Description copied from interface: HeartBeat
+
Returns the period of time in milliseconds between two heart beats +

+

+
Specified by:
getPulsePeriod in interface HeartBeat
+
+
+
See Also:
MX4JRemoteConstants.CONNECTION_HEARTBEAT_PERIOD, +HeartBeat.getMaxRetries()
+
+
+
+ +

+getMaxRetries

+
+public int getMaxRetries()
+
+
Description copied from interface: HeartBeat
+
Returns the maximum number of retries this heart beat attempts after + a first connection failure before declaring the connection or the server + as dead. +

+

+
Specified by:
getMaxRetries in interface HeartBeat
+
+
+
See Also:
MX4JRemoteConstants.CONNECTION_HEARTBEAT_RETRIES, +HeartBeat.getPulsePeriod()
+
+
+
+ +

+pulse

+
+protected abstract void pulse()
+                       throws java.io.IOException
+
+
Subclasses will implement this method using protocol specific connections. + Normally the method MBeanServerConnection.getDefaultDomain() is used + to "ping" the server side. +

+

+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+start

+
+public void start()
+           throws java.io.IOException
+
+
Description copied from interface: HeartBeat
+
Starts the heart beat +

+

+
Specified by:
start in interface HeartBeat
+
+
+ +
Throws: +
java.io.IOException - If there are problems contacting the server
See Also:
HeartBeat.stop()
+
+
+
+ +

+stop

+
+public void stop()
+          throws java.io.IOException
+
+
Description copied from interface: HeartBeat
+
Stops the heart beat +

+

+
Specified by:
stop in interface HeartBeat
+
+
+ +
Throws: +
java.io.IOException - If there are problems contacting the server
See Also:
HeartBeat.start()
+
+
+
+ +

+run

+
+public void run()
+
+
+
Specified by:
run in interface java.lang.Runnable
+
+
+
+
+
+
+ +

+sendConnectionNotificationFailed

+
+protected void sendConnectionNotificationFailed()
+
+
Sends the connection failed notification using the emitter specified in + AbstractHeartBeat(mx4j.remote.ConnectionNotificationEmitter, java.util.Map) +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/AbstractRemoteNotificationClientHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/AbstractRemoteNotificationClientHandler.html new file mode 100644 index 0000000..0d3eedf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/AbstractRemoteNotificationClientHandler.html @@ -0,0 +1,622 @@ + + + + + + +AbstractRemoteNotificationClientHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class AbstractRemoteNotificationClientHandler

+
+java.lang.Object
+  extended bymx4j.remote.AbstractRemoteNotificationClientHandler
+
+
+
All Implemented Interfaces:
RemoteNotificationClientHandler
+
+
+
Direct Known Subclasses:
HTTPRemoteNotificationClientHandler, RMIRemoteNotificationClientHandler
+
+
+
+
public abstract class AbstractRemoteNotificationClientHandler
extends java.lang.Object
implements RemoteNotificationClientHandler
+ +

+Base implementation of the RemoteNotificationClientHandler interface. +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected AbstractRemoteNotificationClientHandler(ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+          Creates a new remote notification client-side handler.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(java.lang.Integer id, + NotificationTuple tuple) + +
+          Adds the given tuple with the given listener ID to this handler
+ booleancontains(NotificationTuple tuple) + +
+          Returns whether the tuple is already present in this handler
+protected abstract  javax.management.remote.NotificationResultfetchNotifications(long sequence, + int maxNumber, + long timeout) + +
+          Calls the server side to fetch notifications.
+protected  LoggergetLogger() + +
+           
+protected  intgetMaxRetries() + +
+          Returns the maximum number of attempts that should be made before declaring a connection + failed.
+ java.lang.IntegergetNotificationListener(NotificationTuple tuple) + +
+          Returns the ID of the listener for the given tuple
+ java.lang.Integer[]getNotificationListeners(NotificationTuple tuple) + +
+          Returns the IDs of the listeners for the given tuple
+protected  intgetNotificationsCount() + +
+           
+protected  longgetRetryPeriod() + +
+          Returns the period between two retries if the connection with the server side fails.
+ booleanisActive() + +
+          Returns whether this client handler is fetching notifications or not.
+ voidremoveNotificationListeners(java.lang.Integer[] ids) + +
+          Removes the listeners with the given IDs from this handler
+protected  voidsendConnectionNotificationLost(long number) + +
+          Sends the JMXConnectionNotification.NOTIFS_LOST notification + using the emitter passed to AbstractRemoteNotificationClientHandler
+ voidstart() + +
+          Starts notification fetching
+ voidstop() + +
+          Stops notification fetching
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AbstractRemoteNotificationClientHandler

+
+protected AbstractRemoteNotificationClientHandler(ConnectionNotificationEmitter emitter,
+                                                  HeartBeat heartbeat,
+                                                  java.util.Map environment)
+
+
Creates a new remote notification client-side handler. + It uses an emitter, an heartbeat and an environment to perform the job. + All 3 can be null, but the corrispondent methods must be overridden +

+

Parameters:
emitter - The NotificationEmitter that emits connection failures notifications
heartbeat - The heart beat is used to get the retry parameters in case of connection failure
environment - Contains environment variables used to configure this handler
See Also:
MX4JRemoteConstants.FETCH_NOTIFICATIONS_MAX_NUMBER, +MX4JRemoteConstants.FETCH_NOTIFICATIONS_SLEEP, +MX4JRemoteConstants.FETCH_NOTIFICATIONS_TIMEOUT, +sendConnectionNotificationLost(long), +getMaxRetries(), +getRetryPeriod()
+ + + + + + + + +
+Method Detail
+ +

+isActive

+
+public boolean isActive()
+
+
Returns whether this client handler is fetching notifications or not. +

+

+
+
+
+
See Also:
start(), +stop()
+
+
+
+ +

+start

+
+public void start()
+
+
Description copied from interface: RemoteNotificationClientHandler
+
Starts notification fetching +

+

+
Specified by:
start in interface RemoteNotificationClientHandler
+
+
+
See Also:
RemoteNotificationClientHandler.stop()
+
+
+
+ +

+stop

+
+public void stop()
+
+
Description copied from interface: RemoteNotificationClientHandler
+
Stops notification fetching +

+

+
Specified by:
stop in interface RemoteNotificationClientHandler
+
+
+
See Also:
RemoteNotificationClientHandler.start()
+
+
+
+ +

+contains

+
+public boolean contains(NotificationTuple tuple)
+
+
Description copied from interface: RemoteNotificationClientHandler
+
Returns whether the tuple is already present in this handler +

+

+
Specified by:
contains in interface RemoteNotificationClientHandler
+
+
+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(java.lang.Integer id,
+                                    NotificationTuple tuple)
+
+
Description copied from interface: RemoteNotificationClientHandler
+
Adds the given tuple with the given listener ID to this handler +

+

+
Specified by:
addNotificationListener in interface RemoteNotificationClientHandler
+
+
+
See Also:
MBeanServerConnection.addNotificationListener(javax.management.ObjectName, javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), +RemoteNotificationClientHandler.removeNotificationListeners(java.lang.Integer[])
+
+
+
+ +

+getNotificationListeners

+
+public java.lang.Integer[] getNotificationListeners(NotificationTuple tuple)
+
+
Description copied from interface: RemoteNotificationClientHandler
+
Returns the IDs of the listeners for the given tuple +

+

+
Specified by:
getNotificationListeners in interface RemoteNotificationClientHandler
+
+
+
See Also:
MBeanServerConnection.removeNotificationListener(javax.management.ObjectName, javax.management.NotificationListener), +RemoteNotificationClientHandler.getNotificationListener(mx4j.remote.NotificationTuple)
+
+
+
+ +

+getNotificationListener

+
+public java.lang.Integer getNotificationListener(NotificationTuple tuple)
+
+
Description copied from interface: RemoteNotificationClientHandler
+
Returns the ID of the listener for the given tuple +

+

+
Specified by:
getNotificationListener in interface RemoteNotificationClientHandler
+
+
+
See Also:
MBeanServerConnection.removeNotificationListener(javax.management.ObjectName, javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), +RemoteNotificationClientHandler.getNotificationListeners(mx4j.remote.NotificationTuple)
+
+
+
+ +

+removeNotificationListeners

+
+public void removeNotificationListeners(java.lang.Integer[] ids)
+
+
Description copied from interface: RemoteNotificationClientHandler
+
Removes the listeners with the given IDs from this handler +

+

+
Specified by:
removeNotificationListeners in interface RemoteNotificationClientHandler
+
+
+
See Also:
RemoteNotificationClientHandler.addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)
+
+
+
+ +

+fetchNotifications

+
+protected abstract javax.management.remote.NotificationResult fetchNotifications(long sequence,
+                                                                                 int maxNumber,
+                                                                                 long timeout)
+                                                                          throws java.io.IOException
+
+
Calls the server side to fetch notifications. +

+

+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getRetryPeriod

+
+protected long getRetryPeriod()
+
+
Returns the period between two retries if the connection with the server side fails. + This implementation returns the heartbeat pulse period, but can be overridden. +

+

+
+
+
+
See Also:
getMaxRetries(), +AbstractRemoteNotificationClientHandler(mx4j.remote.ConnectionNotificationEmitter, mx4j.remote.HeartBeat, java.util.Map)
+
+
+
+ +

+getMaxRetries

+
+protected int getMaxRetries()
+
+
Returns the maximum number of attempts that should be made before declaring a connection + failed. + This implementation returns the heartbeat max retries, but can be overridden. +

+

+
+
+
+
See Also:
getRetryPeriod(), +AbstractRemoteNotificationClientHandler(mx4j.remote.ConnectionNotificationEmitter, mx4j.remote.HeartBeat, java.util.Map)
+
+
+
+ +

+sendConnectionNotificationLost

+
+protected void sendConnectionNotificationLost(long number)
+
+
Sends the JMXConnectionNotification.NOTIFS_LOST notification + using the emitter passed to AbstractRemoteNotificationClientHandler +

+

+
+
+
+
+
+
+
+ +

+getNotificationsCount

+
+protected int getNotificationsCount()
+
+
+
+
+
+
+
+
+
+ +

+getLogger

+
+protected Logger getLogger()
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/ClientProxy.html b/mx4j-3.0.2/docs/api/mx4j/remote/ClientProxy.html new file mode 100644 index 0000000..4f306c9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/ClientProxy.html @@ -0,0 +1,274 @@ + + + + + + +ClientProxy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class ClientProxy

+
+java.lang.Object
+  extended bymx4j.remote.ClientProxy
+
+
+
All Implemented Interfaces:
java.lang.reflect.InvocationHandler
+
+
+
Direct Known Subclasses:
ClientExceptionCatcher, ClientUnmarshaller
+
+
+
+
public class ClientProxy
extends java.lang.Object
implements java.lang.reflect.InvocationHandler
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected ClientProxy(javax.management.MBeanServerConnection target) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectinvoke(java.lang.Object proxy, + java.lang.reflect.Method method, + java.lang.Object[] args) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProxy

+
+protected ClientProxy(javax.management.MBeanServerConnection target)
+
+
+ + + + + + + + +
+Method Detail
+ +

+invoke

+
+public java.lang.Object invoke(java.lang.Object proxy,
+                               java.lang.reflect.Method method,
+                               java.lang.Object[] args)
+                        throws java.lang.Throwable
+
+
+
Specified by:
invoke in interface java.lang.reflect.InvocationHandler
+
+
+ +
Throws: +
java.lang.Throwable
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/ConnectionNotificationEmitter.html b/mx4j-3.0.2/docs/api/mx4j/remote/ConnectionNotificationEmitter.html new file mode 100644 index 0000000..2161397 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/ConnectionNotificationEmitter.html @@ -0,0 +1,326 @@ + + + + + + +ConnectionNotificationEmitter (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class ConnectionNotificationEmitter

+
+java.lang.Object
+  extended byjavax.management.NotificationBroadcasterSupport
+      extended bymx4j.remote.ConnectionNotificationEmitter
+
+
+
All Implemented Interfaces:
javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
+
public class ConnectionNotificationEmitter
extends javax.management.NotificationBroadcasterSupport
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ConnectionNotificationEmitter(javax.management.remote.JMXConnector connector) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidsendConnectionNotificationClosed() + +
+           
+ voidsendConnectionNotificationFailed() + +
+           
+ voidsendConnectionNotificationLost(long howMany) + +
+           
+ voidsendConnectionNotificationOpened() + +
+           
+ + + + + + + +
Methods inherited from class javax.management.NotificationBroadcasterSupport
addNotificationListener, getNotificationInfo, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ConnectionNotificationEmitter

+
+public ConnectionNotificationEmitter(javax.management.remote.JMXConnector connector)
+
+
+ + + + + + + + +
+Method Detail
+ +

+sendConnectionNotificationOpened

+
+public void sendConnectionNotificationOpened()
+
+
+
+
+
+
+ +

+sendConnectionNotificationClosed

+
+public void sendConnectionNotificationClosed()
+
+
+
+
+
+
+ +

+sendConnectionNotificationFailed

+
+public void sendConnectionNotificationFailed()
+
+
+
+
+
+
+ +

+sendConnectionNotificationLost

+
+public void sendConnectionNotificationLost(long howMany)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/ConnectionResolver.html b/mx4j-3.0.2/docs/api/mx4j/remote/ConnectionResolver.html new file mode 100644 index 0000000..7fc647f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/ConnectionResolver.html @@ -0,0 +1,458 @@ + + + + + + +ConnectionResolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class ConnectionResolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+
+
+
Direct Known Subclasses:
HTTPResolver, Resolver, Resolver
+
+
+
+
public abstract class ConnectionResolver
extends ProviderHelper
+ +

+ConnectionResolver handles the details of creating connections for different protocols. + Subclasses for the specific protocol are instantiated using a mechanism very similar to the + one specified by JMXConnectorFactory. Here a subclass + has a fully qualified name specified like this: + .resolver..Resolver, for example + Resolver + This class is used from both the client and the server. + The former uses it to lookup stubs or connections to the server side; the latter uses it + to create server instances and make them availale to clients, for example via JNDI. + The client and server methods have not been splitted into 2 different interfaces because + most of the times they share common code, although it may have been a better design. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ConnectionResolver() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+abstract  java.lang.ObjectbindClient(java.lang.Object client, + java.util.Map environment) + +
+          Connects the client returned by lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side.
+abstract  javax.management.remote.JMXServiceURLbindServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Binds the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL.
+abstract  java.lang.ObjectcreateServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Creates an instance of the server as specified in the given JMXServiceURL.
+abstract  voiddestroyServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Destroys the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time
+abstract  java.lang.ObjectlookupClient(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Looks up a connection with the server side as specified in the given JMXServiceURL.
+static ConnectionResolvernewConnectionResolver(java.lang.String proto, + java.util.Map environment) + +
+          Returns a subclass of ConnectionResolver for the specified protocol.
+abstract  voidunbindServer(java.lang.Object server, + javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+          Unbinds the server bound by bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map) from the place specified by the JMXServiceURL.
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ConnectionResolver

+
+public ConnectionResolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newConnectionResolver

+
+public static ConnectionResolver newConnectionResolver(java.lang.String proto,
+                                                       java.util.Map environment)
+
+
Returns a subclass of ConnectionResolver for the specified protocol. +

+

+
+
+
+
+ +

+lookupClient

+
+public abstract java.lang.Object lookupClient(javax.management.remote.JMXServiceURL url,
+                                              java.util.Map environment)
+                                       throws java.io.IOException
+
+
Looks up a connection with the server side as specified in the given JMXServiceURL. + This method is used in implementations of JMXConnector.connect(). +

+

+ +
Throws: +
java.io.IOException
See Also:
bindClient(java.lang.Object, java.util.Map)
+
+
+
+ +

+bindClient

+
+public abstract java.lang.Object bindClient(java.lang.Object client,
+                                            java.util.Map environment)
+                                     throws java.io.IOException
+
+
Connects the client returned by lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side. +

+

+ +
Returns:
An object of the same type as the client passed in; normally the client object itself +
Throws: +
java.io.IOException
+
+
+
+ +

+createServer

+
+public abstract java.lang.Object createServer(javax.management.remote.JMXServiceURL url,
+                                              java.util.Map environment)
+                                       throws java.io.IOException
+
+
Creates an instance of the server as specified in the given JMXServiceURL. + It is only a factory method, it should just return a fresh instance of the server; + other methods are responsible to make it available to clients (for example exporting it). + This method is used in implementations of JMXConnectorServerMBean.start(). +

+

+ +
Throws: +
java.io.IOException
See Also:
bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map), +destroyServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+bindServer

+
+public abstract javax.management.remote.JMXServiceURL bindServer(java.lang.Object server,
+                                                                 javax.management.remote.JMXServiceURL url,
+                                                                 java.util.Map environment)
+                                                          throws java.io.IOException
+
+
Binds the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL. +

+

+ +
Returns:
a new JMXServiceURL that specifies where the server has been bound to. +
Throws: +
java.io.IOException
See Also:
unbindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+unbindServer

+
+public abstract void unbindServer(java.lang.Object server,
+                                  javax.management.remote.JMXServiceURL address,
+                                  java.util.Map environment)
+                           throws java.io.IOException
+
+
Unbinds the server bound by bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map) from the place specified by the JMXServiceURL. +

+

+ +
Throws: +
java.io.IOException
See Also:
destroyServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+destroyServer

+
+public abstract void destroyServer(java.lang.Object server,
+                                   javax.management.remote.JMXServiceURL url,
+                                   java.util.Map environment)
+                            throws java.io.IOException
+
+
Destroys the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time +

+

+ +
Throws: +
java.io.IOException
See Also:
createServer(javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/DefaultRemoteNotificationServerHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/DefaultRemoteNotificationServerHandler.html new file mode 100644 index 0000000..be231f4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/DefaultRemoteNotificationServerHandler.html @@ -0,0 +1,495 @@ + + + + + + +DefaultRemoteNotificationServerHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class DefaultRemoteNotificationServerHandler

+
+java.lang.Object
+  extended bymx4j.remote.DefaultRemoteNotificationServerHandler
+
+
+
All Implemented Interfaces:
RemoteNotificationServerHandler
+
+
+
+
public class DefaultRemoteNotificationServerHandler
extends java.lang.Object
implements RemoteNotificationServerHandler
+ +

+Base implementation of the RemoteNotificationServerHandler interface. +

+ +

+

+
Version:
+
$Revision: 1.12 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultRemoteNotificationServerHandler(java.util.Map environment) + +
+          Creates a new remote notification server handler.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(java.lang.Integer id, + NotificationTuple tuple) + +
+          Adds the given tuple with the given listener ID to this handler
+ NotificationTuple[]close() + +
+          Closes this handler, that will not accept anymore add or removal of listeners
+ javax.management.remote.NotificationResultfetchNotifications(long sequenceNumber, + int maxNotifications, + long timeout) + +
+          Fetches notifications from the notification buffer in order to send them + to the client side
+protected  javax.management.remote.TargetedNotification[]filterNotifications(javax.management.remote.TargetedNotification[] notifications) + +
+          This method filters the given notification array and returns a possibly smaller array containing + only notifications that passed successfully the filtering.
+ java.lang.IntegergenerateListenerID(javax.management.ObjectName name, + javax.management.NotificationFilter filter) + +
+          Returns a unique ID for a client-side NotificationListener
+protected  LoggergetLogger() + +
+           
+ javax.management.NotificationListenergetServerNotificationListener() + +
+          Returns the unique server side listener that will represent client-side listeners + on MBeans.
+ NotificationTupleremoveNotificationListener(java.lang.Integer id) + +
+          Removes the listener with the given ID from this handler
+protected  booleanwaitForNotifications(java.lang.Object lock, + long timeout) + +
+          Called when there are no notifications to send to the client.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultRemoteNotificationServerHandler

+
+public DefaultRemoteNotificationServerHandler(java.util.Map environment)
+
+
Creates a new remote notification server handler. +

+

Parameters:
environment - Contains environment variables used to configure this handler
See Also:
MX4JRemoteConstants.NOTIFICATION_BUFFER_CAPACITY, +MX4JRemoteConstants.NOTIFICATION_PURGE_DISTANCE
+ + + + + + + + +
+Method Detail
+ +

+generateListenerID

+
+public java.lang.Integer generateListenerID(javax.management.ObjectName name,
+                                            javax.management.NotificationFilter filter)
+
+
Description copied from interface: RemoteNotificationServerHandler
+
Returns a unique ID for a client-side NotificationListener +

+

+
Specified by:
generateListenerID in interface RemoteNotificationServerHandler
+
+
+
See Also:
RemoteNotificationServerHandler.addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)
+
+
+
+ +

+getServerNotificationListener

+
+public javax.management.NotificationListener getServerNotificationListener()
+
+
Description copied from interface: RemoteNotificationServerHandler
+
Returns the unique server side listener that will represent client-side listeners + on MBeans. +

+

+
Specified by:
getServerNotificationListener in interface RemoteNotificationServerHandler
+
+
+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(java.lang.Integer id,
+                                    NotificationTuple tuple)
+
+
Description copied from interface: RemoteNotificationServerHandler
+
Adds the given tuple with the given listener ID to this handler +

+

+
Specified by:
addNotificationListener in interface RemoteNotificationServerHandler
+
+
+
See Also:
RemoteNotificationServerHandler.removeNotificationListener(java.lang.Integer)
+
+
+
+ +

+removeNotificationListener

+
+public NotificationTuple removeNotificationListener(java.lang.Integer id)
+
+
Description copied from interface: RemoteNotificationServerHandler
+
Removes the listener with the given ID from this handler +

+

+
Specified by:
removeNotificationListener in interface RemoteNotificationServerHandler
+
+
+
See Also:
RemoteNotificationServerHandler.addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)
+
+
+
+ +

+fetchNotifications

+
+public javax.management.remote.NotificationResult fetchNotifications(long sequenceNumber,
+                                                                     int maxNotifications,
+                                                                     long timeout)
+                                                              throws java.io.IOException
+
+
Description copied from interface: RemoteNotificationServerHandler
+
Fetches notifications from the notification buffer in order to send them + to the client side +

+

+
Specified by:
fetchNotifications in interface RemoteNotificationServerHandler
+
+
+ +
Throws: +
java.io.IOException - If this handler has already been closed
+
+
+
+ +

+close

+
+public NotificationTuple[] close()
+
+
Description copied from interface: RemoteNotificationServerHandler
+
Closes this handler, that will not accept anymore add or removal of listeners +

+

+
Specified by:
close in interface RemoteNotificationServerHandler
+
+
+ +
Returns:
The NotificationTuples currently held
See Also:
RemoteNotificationServerHandler.fetchNotifications(long, int, long)
+
+
+
+ +

+waitForNotifications

+
+protected boolean waitForNotifications(java.lang.Object lock,
+                                       long timeout)
+
+
Called when there are no notifications to send to the client. + It is guaranteed that no notification can be added before this method waits on the given lock. + It should wait on the given lock for the specified timeout, and return true + to send notifications (if no notifications arrived, an empty notification array + will be returned to the client), or false if no notifications should be sent to + the client. +

+

+
+
+
+
Parameters:
lock - The object on which Object.wait() should be called
timeout - The amount of time to wait (guaranteed to be strictly greater than 0)
+
+
+
+ +

+filterNotifications

+
+protected javax.management.remote.TargetedNotification[] filterNotifications(javax.management.remote.TargetedNotification[] notifications)
+
+
This method filters the given notification array and returns a possibly smaller array containing + only notifications that passed successfully the filtering. + Default behavior is no filtering, but subclasses may choose to change this bahavior. + For example, for RMI, one can assure that all notifications are truly serializable, and log those + that are not. +

+

+
+
+
+
+
+
+
+ +

+getLogger

+
+protected Logger getLogger()
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/HeartBeat.html b/mx4j-3.0.2/docs/api/mx4j/remote/HeartBeat.html new file mode 100644 index 0000000..c3cc4e4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/HeartBeat.html @@ -0,0 +1,301 @@ + + + + + + +HeartBeat (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Interface HeartBeat

+
+
All Known Implementing Classes:
AbstractHeartBeat
+
+
+
+
public interface HeartBeat
+ +

+A continuous pulse from client to server that gives the information that + the connection is alive and the server is up. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intgetMaxRetries() + +
+          Returns the maximum number of retries this heart beat attempts after + a first connection failure before declaring the connection or the server + as dead.
+ longgetPulsePeriod() + +
+          Returns the period of time in milliseconds between two heart beats
+ voidstart() + +
+          Starts the heart beat
+ voidstop() + +
+          Stops the heart beat
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+start

+
+public void start()
+           throws java.io.IOException
+
+
Starts the heart beat +

+

+ +
Throws: +
java.io.IOException - If there are problems contacting the server
See Also:
stop()
+
+
+
+ +

+stop

+
+public void stop()
+          throws java.io.IOException
+
+
Stops the heart beat +

+

+ +
Throws: +
java.io.IOException - If there are problems contacting the server
See Also:
start()
+
+
+
+ +

+getPulsePeriod

+
+public long getPulsePeriod()
+
+
Returns the period of time in milliseconds between two heart beats +

+

+
See Also:
MX4JRemoteConstants.CONNECTION_HEARTBEAT_PERIOD, +getMaxRetries()
+
+
+
+ +

+getMaxRetries

+
+public int getMaxRetries()
+
+
Returns the maximum number of retries this heart beat attempts after + a first connection failure before declaring the connection or the server + as dead. +

+

+
See Also:
MX4JRemoteConstants.CONNECTION_HEARTBEAT_RETRIES, +getPulsePeriod()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/MX4JRemoteConstants.html b/mx4j-3.0.2/docs/api/mx4j/remote/MX4JRemoteConstants.html new file mode 100644 index 0000000..8964715 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/MX4JRemoteConstants.html @@ -0,0 +1,568 @@ + + + + + + +MX4JRemoteConstants (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Interface MX4JRemoteConstants

+
+
+
public interface MX4JRemoteConstants
+ +

+

+
Version:
+
$Revision: 1.15 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringCLIENT_PROVIDER_CLASS + +
+          The string 'ClientProvider' as mandated by the spec
+static java.lang.StringCONNECTION_HEARTBEAT_PERIOD + +
+          MX4J's implementation uses this property to specify the period (in ms) of the heartbeat pulse for + JMXConnectors that use heartbeat to check if the + connection with JMXConnectorServers is still alive.
+static java.lang.StringCONNECTION_HEARTBEAT_RETRIES + +
+          MX4J's implementation uses this property to specify the number of retries of heartbeat pulses before + declaring the connection between a JMXConnector and a + JMXConnectorServer failed, at which a + notification failed is emitted.
+static java.lang.StringFETCH_NOTIFICATIONS_MAX_NUMBER + +
+          The reference implementation uses this property to specify the maximum number of notification to fetch.
+static java.lang.StringFETCH_NOTIFICATIONS_SLEEP + +
+          MX4J's implementation uses this property to specify the amount of time (in ms) the client should sleep + between notification fetches.
+static java.lang.StringFETCH_NOTIFICATIONS_TIMEOUT + +
+          The reference implementation uses this property to specify the notification fetch timeout (in ms).
+static java.lang.StringHTTP_SERVER_CONFIGURATION + +
+          Deprecated. Use HTTPConnectorServer.WEB_CONTAINER_CONFIGURATION instead
+static java.lang.StringNOTIFICATION_BUFFER_CAPACITY + +
+          The reference implementation uses this property to specify the notification buffer size.
+static java.lang.StringNOTIFICATION_PURGE_DISTANCE + +
+          MX4J's implementation uses this property to specify the distance between the lowest expected notification + sequence number (sent by the client via fetchNotifications()) and the minimum sequence number of the + notification buffer.
+static java.lang.StringNOTIFICATION_QUEUE_CAPACITY + +
+          MX4J's implementation uses this property to specify the maximum notification queue size + on client size.
+static java.lang.StringPROTOCOL_RESOLVER_PACKAGES + +
+          The key that specifies resolver packages, very much like + JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES
+static java.lang.StringPROVIDER_PACKAGES + +
+          MX4J provider packages list for JMXConnector and JMXConnectorServer factories
+static java.lang.StringPROVIDER_PACKAGES_SEPARATOR + +
+          A vertical bar '|' as mandated by the spec
+static java.lang.StringRESOLVER_CLASS + +
+          The string 'Resolver'
+static java.lang.StringRESOLVER_PACKAGES + +
+          MX4J provider packages list for ConnectionResolver subclasses
+static java.lang.StringRESOLVER_PACKAGES_SEPARATOR + +
+          A vertical bar '|'
+static java.lang.StringSERVER_PROVIDER_CLASS + +
+          The string 'ServerProvider' as mandated by the spec
+  + + + + + + +

+ + + + + + + + +
+Field Detail
+ +

+PROVIDER_PACKAGES_SEPARATOR

+
+public static final java.lang.String PROVIDER_PACKAGES_SEPARATOR
+
+
A vertical bar '|' as mandated by the spec +

+

+
See Also:
Constant Field Values
+
+
+ +

+PROVIDER_PACKAGES

+
+public static final java.lang.String PROVIDER_PACKAGES
+
+
MX4J provider packages list for JMXConnector and JMXConnectorServer factories +

+

+
See Also:
Constant Field Values
+
+
+ +

+CLIENT_PROVIDER_CLASS

+
+public static final java.lang.String CLIENT_PROVIDER_CLASS
+
+
The string 'ClientProvider' as mandated by the spec +

+

+
See Also:
Constant Field Values
+
+
+ +

+SERVER_PROVIDER_CLASS

+
+public static final java.lang.String SERVER_PROVIDER_CLASS
+
+
The string 'ServerProvider' as mandated by the spec +

+

+
See Also:
Constant Field Values
+
+
+ +

+PROTOCOL_RESOLVER_PACKAGES

+
+public static final java.lang.String PROTOCOL_RESOLVER_PACKAGES
+
+
The key that specifies resolver packages, very much like + JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES +

+

+
See Also:
Constant Field Values
+
+
+ +

+RESOLVER_PACKAGES_SEPARATOR

+
+public static final java.lang.String RESOLVER_PACKAGES_SEPARATOR
+
+
A vertical bar '|' +

+

+
See Also:
Constant Field Values
+
+
+ +

+RESOLVER_PACKAGES

+
+public static final java.lang.String RESOLVER_PACKAGES
+
+
MX4J provider packages list for ConnectionResolver subclasses +

+

+
See Also:
Constant Field Values
+
+
+ +

+RESOLVER_CLASS

+
+public static final java.lang.String RESOLVER_CLASS
+
+
The string 'Resolver' +

+

+
See Also:
Constant Field Values
+
+
+ +

+FETCH_NOTIFICATIONS_TIMEOUT

+
+public static final java.lang.String FETCH_NOTIFICATIONS_TIMEOUT
+
+
The reference implementation uses this property to specify the notification fetch timeout (in ms). + MX4J will use the same for compatibility. DO NOT CHANGE IT unless the reference implementation changes it. +

+

+
See Also:
Constant Field Values
+
+
+ +

+FETCH_NOTIFICATIONS_MAX_NUMBER

+
+public static final java.lang.String FETCH_NOTIFICATIONS_MAX_NUMBER
+
+
The reference implementation uses this property to specify the maximum number of notification to fetch. + MX4J will use the same for compatibility. DO NOT CHANGE IT unless the reference implementation changes it. +

+

+
See Also:
Constant Field Values
+
+
+ +

+NOTIFICATION_BUFFER_CAPACITY

+
+public static final java.lang.String NOTIFICATION_BUFFER_CAPACITY
+
+
The reference implementation uses this property to specify the notification buffer size. + MX4J will use the same for compatibility. DO NOT CHANGE IT unless the reference implementation changes it. +

+

+
See Also:
Constant Field Values
+
+
+ +

+NOTIFICATION_PURGE_DISTANCE

+
+public static final java.lang.String NOTIFICATION_PURGE_DISTANCE
+
+
MX4J's implementation uses this property to specify the distance between the lowest expected notification + sequence number (sent by the client via fetchNotifications()) and the minimum sequence number of the + notification buffer. When this difference is greater than the value of this property, old notifications + are eliminated from the notification buffer +

+

+
See Also:
Constant Field Values
+
+
+ +

+FETCH_NOTIFICATIONS_SLEEP

+
+public static final java.lang.String FETCH_NOTIFICATIONS_SLEEP
+
+
MX4J's implementation uses this property to specify the amount of time (in ms) the client should sleep + between notification fetches. A value of 0 means there will be no sleep (fetches will be done one + after the other). +

+

+
See Also:
Constant Field Values
+
+
+ +

+CONNECTION_HEARTBEAT_PERIOD

+
+public static final java.lang.String CONNECTION_HEARTBEAT_PERIOD
+
+
MX4J's implementation uses this property to specify the period (in ms) of the heartbeat pulse for + JMXConnectors that use heartbeat to check if the + connection with JMXConnectorServers is still alive. +

+

+
See Also:
CONNECTION_HEARTBEAT_RETRIES, +Constant Field Values
+
+
+ +

+CONNECTION_HEARTBEAT_RETRIES

+
+public static final java.lang.String CONNECTION_HEARTBEAT_RETRIES
+
+
MX4J's implementation uses this property to specify the number of retries of heartbeat pulses before + declaring the connection between a JMXConnector and a + JMXConnectorServer failed, at which a + notification failed is emitted. +

+

+
See Also:
CONNECTION_HEARTBEAT_PERIOD, +Constant Field Values
+
+
+ +

+NOTIFICATION_QUEUE_CAPACITY

+
+public static final java.lang.String NOTIFICATION_QUEUE_CAPACITY
+
+
MX4J's implementation uses this property to specify the maximum notification queue size + on client size. If set to 0, or not present, the queue will have no limit. + Specify this property when the server side is generating notifications at a fast rate, + but clients can process them only at a slower rate. In this case notifications will queue + up on client side, and if no limit is given to the queue, there is a potential risk of + an OutOfMemoryError. +

+

+
See Also:
Constant Field Values
+
+
+ +

+HTTP_SERVER_CONFIGURATION

+
+public static final java.lang.String HTTP_SERVER_CONFIGURATION
+
+
Deprecated. Use HTTPConnectorServer.WEB_CONTAINER_CONFIGURATION instead +

+

+
See Also:
Constant Field Values
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/MX4JRemoteUtils.html b/mx4j-3.0.2/docs/api/mx4j/remote/MX4JRemoteUtils.html new file mode 100644 index 0000000..e661857 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/MX4JRemoteUtils.html @@ -0,0 +1,332 @@ + + + + + + +MX4JRemoteUtils (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class MX4JRemoteUtils

+
+java.lang.Object
+  extended bymx4j.remote.MX4JRemoteUtils
+
+
+
+
public class MX4JRemoteUtils
extends java.lang.Object
+ +

+

+
Version:
+
$Revision: 1.19 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MX4JRemoteUtils() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static java.lang.StringcreateConnectionID(java.lang.String protocol, + java.lang.String callerAddress, + int callerPort, + javax.security.auth.Subject subject) + +
+           
+static booleanisTrulySerializable(java.lang.Object object) + +
+           
+static java.util.MapremoveNonSerializableEntries(java.util.Map map) + +
+          Returns a copy of the given Map that does not contain non-serializable entries
+static java.lang.ObjectsubjectInvoke(javax.security.auth.Subject subject, + javax.security.auth.Subject delegate, + java.security.AccessControlContext context, + java.util.Map environment, + java.security.PrivilegedExceptionAction action) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JRemoteUtils

+
+public MX4JRemoteUtils()
+
+
+ + + + + + + + +
+Method Detail
+ +

+removeNonSerializableEntries

+
+public static java.util.Map removeNonSerializableEntries(java.util.Map map)
+
+
Returns a copy of the given Map that does not contain non-serializable entries +

+

+
+
+
+
+ +

+isTrulySerializable

+
+public static boolean isTrulySerializable(java.lang.Object object)
+
+
+
+
+
+
+ +

+createConnectionID

+
+public static java.lang.String createConnectionID(java.lang.String protocol,
+                                                  java.lang.String callerAddress,
+                                                  int callerPort,
+                                                  javax.security.auth.Subject subject)
+
+
+
+
+
+
+ +

+subjectInvoke

+
+public static java.lang.Object subjectInvoke(javax.security.auth.Subject subject,
+                                             javax.security.auth.Subject delegate,
+                                             java.security.AccessControlContext context,
+                                             java.util.Map environment,
+                                             java.security.PrivilegedExceptionAction action)
+                                      throws java.lang.Exception
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/NotificationTuple.html b/mx4j-3.0.2/docs/api/mx4j/remote/NotificationTuple.html new file mode 100644 index 0000000..53f866e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/NotificationTuple.html @@ -0,0 +1,430 @@ + + + + + + +NotificationTuple (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class NotificationTuple

+
+java.lang.Object
+  extended bymx4j.remote.NotificationTuple
+
+
+
+
public class NotificationTuple
extends java.lang.Object
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Constructor Summary
NotificationTuple(javax.management.ObjectName observed, + javax.management.NotificationListener listener) + +
+           
NotificationTuple(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleanequals(java.lang.Object obj) + +
+           
+ java.lang.ObjectgetHandback() + +
+           
+ booleangetInvokeFilter() + +
+           
+ javax.management.NotificationFiltergetNotificationFilter() + +
+           
+ javax.management.NotificationListenergetNotificationListener() + +
+           
+ javax.management.ObjectNamegetObjectName() + +
+           
+ inthashCode() + +
+           
+ voidsetInvokeFilter(boolean invoke) + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationTuple

+
+public NotificationTuple(javax.management.ObjectName observed,
+                         javax.management.NotificationListener listener)
+
+
+
+ +

+NotificationTuple

+
+public NotificationTuple(javax.management.ObjectName observed,
+                         javax.management.NotificationListener listener,
+                         javax.management.NotificationFilter filter,
+                         java.lang.Object handback)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getObjectName

+
+public javax.management.ObjectName getObjectName()
+
+
+
+
+
+
+ +

+getNotificationListener

+
+public javax.management.NotificationListener getNotificationListener()
+
+
+
+
+
+
+ +

+getHandback

+
+public java.lang.Object getHandback()
+
+
+
+
+
+
+ +

+getNotificationFilter

+
+public javax.management.NotificationFilter getNotificationFilter()
+
+
+
+
+
+
+ +

+setInvokeFilter

+
+public void setInvokeFilter(boolean invoke)
+
+
+
+
+
+
+ +

+getInvokeFilter

+
+public boolean getInvokeFilter()
+
+
+
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object obj)
+
+
+
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/ProviderFactory.html b/mx4j-3.0.2/docs/api/mx4j/remote/ProviderFactory.html new file mode 100644 index 0000000..18c2362 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/ProviderFactory.html @@ -0,0 +1,297 @@ + + + + + + +ProviderFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class ProviderFactory

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ProviderFactory
+
+
+
+
public class ProviderFactory
extends ProviderHelper
+ +

+

+
Version:
+
$Revision: 1.8 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ProviderFactory() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map env) + +
+           
+static javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map env, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ProviderFactory

+
+public ProviderFactory()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public static javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                                   java.util.Map env)
+                                                            throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+newJMXConnectorServer

+
+public static javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                               java.util.Map env,
+                                                                               javax.management.MBeanServer server)
+                                                                        throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/ProviderHelper.html b/mx4j-3.0.2/docs/api/mx4j/remote/ProviderHelper.html new file mode 100644 index 0000000..41e62ec --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/ProviderHelper.html @@ -0,0 +1,344 @@ + + + + + + +ProviderHelper (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Class ProviderHelper

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+
+
+
Direct Known Subclasses:
ConnectionResolver, ProviderFactory
+
+
+
+
public abstract class ProviderHelper
extends java.lang.Object
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ProviderHelper() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected static java.lang.StringconstructClassName(java.lang.String packageName, + java.lang.String protocol, + java.lang.String className) + +
+           
+protected static java.lang.StringfindSystemPackageList(java.lang.String key) + +
+           
+protected static LoggergetLogger() + +
+           
+protected static java.lang.ClassloadClass(java.lang.String className, + java.lang.ClassLoader loader) + +
+           
+protected static java.lang.StringnormalizeProtocol(java.lang.String protocol) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ProviderHelper

+
+public ProviderHelper()
+
+
+ + + + + + + + +
+Method Detail
+ +

+normalizeProtocol

+
+protected static java.lang.String normalizeProtocol(java.lang.String protocol)
+
+
+
+
+
+
+ +

+findSystemPackageList

+
+protected static java.lang.String findSystemPackageList(java.lang.String key)
+
+
+
+
+
+
+ +

+loadClass

+
+protected static java.lang.Class loadClass(java.lang.String className,
+                                           java.lang.ClassLoader loader)
+                                    throws java.lang.ClassNotFoundException
+
+
+ +
Throws: +
java.lang.ClassNotFoundException
+
+
+
+ +

+constructClassName

+
+protected static java.lang.String constructClassName(java.lang.String packageName,
+                                                     java.lang.String protocol,
+                                                     java.lang.String className)
+
+
+
+
+
+
+ +

+getLogger

+
+protected static Logger getLogger()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/RemoteNotificationClientHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/RemoteNotificationClientHandler.html new file mode 100644 index 0000000..d970dd6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/RemoteNotificationClientHandler.html @@ -0,0 +1,358 @@ + + + + + + +RemoteNotificationClientHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Interface RemoteNotificationClientHandler

+
+
All Known Implementing Classes:
AbstractRemoteNotificationClientHandler
+
+
+
+
public interface RemoteNotificationClientHandler
+ +

+Handles remote notification fetching on client side. + It takes care of calling the server side with the correct protocol and to dispatch + notifications to client-side listeners. +

+ +

+

+
Version:
+
$Revision: 1.10 $
+
See Also:
RemoteNotificationServerHandler
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(java.lang.Integer id, + NotificationTuple tuple) + +
+          Adds the given tuple with the given listener ID to this handler
+ booleancontains(NotificationTuple tuple) + +
+          Returns whether the tuple is already present in this handler
+ java.lang.IntegergetNotificationListener(NotificationTuple tuple) + +
+          Returns the ID of the listener for the given tuple
+ java.lang.Integer[]getNotificationListeners(NotificationTuple tuple) + +
+          Returns the IDs of the listeners for the given tuple
+ voidremoveNotificationListeners(java.lang.Integer[] ids) + +
+          Removes the listeners with the given IDs from this handler
+ voidstart() + +
+          Starts notification fetching
+ voidstop() + +
+          Stops notification fetching
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+start

+
+public void start()
+
+
Starts notification fetching +

+

+
See Also:
stop()
+
+
+
+ +

+stop

+
+public void stop()
+
+
Stops notification fetching +

+

+
See Also:
start()
+
+
+
+ +

+contains

+
+public boolean contains(NotificationTuple tuple)
+
+
Returns whether the tuple is already present in this handler +

+

+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(java.lang.Integer id,
+                                    NotificationTuple tuple)
+
+
Adds the given tuple with the given listener ID to this handler +

+

+
See Also:
MBeanServerConnection.addNotificationListener(javax.management.ObjectName, javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), +removeNotificationListeners(java.lang.Integer[])
+
+
+
+ +

+getNotificationListeners

+
+public java.lang.Integer[] getNotificationListeners(NotificationTuple tuple)
+
+
Returns the IDs of the listeners for the given tuple +

+

+
See Also:
MBeanServerConnection.removeNotificationListener(javax.management.ObjectName, javax.management.NotificationListener), +getNotificationListener(mx4j.remote.NotificationTuple)
+
+
+
+ +

+getNotificationListener

+
+public java.lang.Integer getNotificationListener(NotificationTuple tuple)
+
+
Returns the ID of the listener for the given tuple +

+

+
See Also:
MBeanServerConnection.removeNotificationListener(javax.management.ObjectName, javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), +getNotificationListeners(mx4j.remote.NotificationTuple)
+
+
+
+ +

+removeNotificationListeners

+
+public void removeNotificationListeners(java.lang.Integer[] ids)
+
+
Removes the listeners with the given IDs from this handler +

+

+
See Also:
addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/RemoteNotificationServerHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/RemoteNotificationServerHandler.html new file mode 100644 index 0000000..a9291ef --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/RemoteNotificationServerHandler.html @@ -0,0 +1,348 @@ + + + + + + +RemoteNotificationServerHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote +
+Interface RemoteNotificationServerHandler

+
+
All Known Implementing Classes:
DefaultRemoteNotificationServerHandler
+
+
+
+
public interface RemoteNotificationServerHandler
+ +

+Handles remote notification sending on server side. + It takes care of collecting requests for listener addition and removal, and to send + notifications back to the client side. +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
See Also:
RemoteNotificationClientHandler
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(java.lang.Integer id, + NotificationTuple tuple) + +
+          Adds the given tuple with the given listener ID to this handler
+ NotificationTuple[]close() + +
+          Closes this handler, that will not accept anymore add or removal of listeners
+ javax.management.remote.NotificationResultfetchNotifications(long sequenceNumber, + int maxNotifications, + long timeout) + +
+          Fetches notifications from the notification buffer in order to send them + to the client side
+ java.lang.IntegergenerateListenerID(javax.management.ObjectName name, + javax.management.NotificationFilter filter) + +
+          Returns a unique ID for a client-side NotificationListener
+ javax.management.NotificationListenergetServerNotificationListener() + +
+          Returns the unique server side listener that will represent client-side listeners + on MBeans.
+ NotificationTupleremoveNotificationListener(java.lang.Integer id) + +
+          Removes the listener with the given ID from this handler
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+generateListenerID

+
+public java.lang.Integer generateListenerID(javax.management.ObjectName name,
+                                            javax.management.NotificationFilter filter)
+
+
Returns a unique ID for a client-side NotificationListener +

+

+
See Also:
addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)
+
+
+
+ +

+getServerNotificationListener

+
+public javax.management.NotificationListener getServerNotificationListener()
+
+
Returns the unique server side listener that will represent client-side listeners + on MBeans. +

+

+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(java.lang.Integer id,
+                                    NotificationTuple tuple)
+
+
Adds the given tuple with the given listener ID to this handler +

+

+
See Also:
removeNotificationListener(java.lang.Integer)
+
+
+
+ +

+removeNotificationListener

+
+public NotificationTuple removeNotificationListener(java.lang.Integer id)
+
+
Removes the listener with the given ID from this handler +

+

+
See Also:
addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)
+
+
+
+ +

+fetchNotifications

+
+public javax.management.remote.NotificationResult fetchNotifications(long sequenceNumber,
+                                                                     int maxNotifications,
+                                                                     long timeout)
+                                                              throws java.io.IOException
+
+
Fetches notifications from the notification buffer in order to send them + to the client side +

+

+ +
Throws: +
java.io.IOException - If this handler has already been closed
+
+
+
+ +

+close

+
+public NotificationTuple[] close()
+
+
Closes this handler, that will not accept anymore add or removal of listeners +

+

+ +
Returns:
The NotificationTuples currently held
See Also:
fetchNotifications(long, int, long)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/AbstractHeartBeat.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/AbstractHeartBeat.html new file mode 100644 index 0000000..5cb8bd0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/AbstractHeartBeat.html @@ -0,0 +1,201 @@ + + + + + + +Uses of Class mx4j.remote.AbstractHeartBeat (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.AbstractHeartBeat

+
+ + + + + + + + + + + + + +
+Packages that use AbstractHeartBeat
mx4j.remote.rmi  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of AbstractHeartBeat in mx4j.remote.rmi
+  +

+ + + + + + + + + +
Subclasses of AbstractHeartBeat in mx4j.remote.rmi
+ classRMIHeartBeat + +
+           
+  +

+ + + + + +
+Uses of AbstractHeartBeat in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of AbstractHeartBeat in mx4j.tools.remote.http
+ classHTTPHeartBeat + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/AbstractRemoteNotificationClientHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/AbstractRemoteNotificationClientHandler.html new file mode 100644 index 0000000..60d2f09 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/AbstractRemoteNotificationClientHandler.html @@ -0,0 +1,201 @@ + + + + + + +Uses of Class mx4j.remote.AbstractRemoteNotificationClientHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.AbstractRemoteNotificationClientHandler

+
+ + + + + + + + + + + + + +
+Packages that use AbstractRemoteNotificationClientHandler
mx4j.remote.rmi  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of AbstractRemoteNotificationClientHandler in mx4j.remote.rmi
+  +

+ + + + + + + + + +
Subclasses of AbstractRemoteNotificationClientHandler in mx4j.remote.rmi
+ classRMIRemoteNotificationClientHandler + +
+          RMI-specific RemoteNotificationClientHandler.
+  +

+ + + + + +
+Uses of AbstractRemoteNotificationClientHandler in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of AbstractRemoteNotificationClientHandler in mx4j.tools.remote.http
+ classHTTPRemoteNotificationClientHandler + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ClientProxy.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ClientProxy.html new file mode 100644 index 0000000..be45f50 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ClientProxy.html @@ -0,0 +1,182 @@ + + + + + + +Uses of Class mx4j.remote.ClientProxy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.ClientProxy

+
+ + + + + + + + + +
+Packages that use ClientProxy
mx4j.remote.rmi  
+  +

+ + + + + +
+Uses of ClientProxy in mx4j.remote.rmi
+  +

+ + + + + + + + + + + + + +
Subclasses of ClientProxy in mx4j.remote.rmi
+ classClientExceptionCatcher + +
+           
+ classClientUnmarshaller + +
+          An MBeanServerConnection proxy that performs the setting of the appropriate context classloader + to allow classloading of classes sent by the server but not known to the client, in methods like + MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String), MBeanServerConnection.invoke(javax.management.ObjectName, java.lang.String, java.lang.Object[], java.lang.String[]) and so on.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ConnectionNotificationEmitter.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ConnectionNotificationEmitter.html new file mode 100644 index 0000000..3f20db7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ConnectionNotificationEmitter.html @@ -0,0 +1,322 @@ + + + + + + +Uses of Class mx4j.remote.ConnectionNotificationEmitter (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.ConnectionNotificationEmitter

+
+ + + + + + + + + + + + + + + + + + + + + +
+Packages that use ConnectionNotificationEmitter
mx4j.remote  
mx4j.remote.rmi  
mx4j.tools.remote  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of ConnectionNotificationEmitter in mx4j.remote
+  +

+ + + + + + + + + + + +
Constructors in mx4j.remote with parameters of type ConnectionNotificationEmitter
AbstractRemoteNotificationClientHandler(ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+          Creates a new remote notification client-side handler.
AbstractHeartBeat(ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+          Creates a new HeartBeat.
+  +

+ + + + + +
+Uses of ConnectionNotificationEmitter in mx4j.remote.rmi
+  +

+ + + + + + + + + + + +
Constructors in mx4j.remote.rmi with parameters of type ConnectionNotificationEmitter
RMIRemoteNotificationClientHandler(javax.management.remote.rmi.RMIConnection connection, + java.lang.ClassLoader defaultLoader, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
RMIHeartBeat(javax.management.remote.rmi.RMIConnection connection, + ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+           
+  +

+ + + + + +
+Uses of ConnectionNotificationEmitter in mx4j.tools.remote
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote that return ConnectionNotificationEmitter
+protected  ConnectionNotificationEmitterAbstractJMXConnector.createConnectionNotificationEmitter() + +
+          Creates a notification emitter used to emit connection notifications.
+protected  ConnectionNotificationEmitterAbstractJMXConnector.getConnectionNotificationEmitter() + +
+           
+  +

+ + + + + +
+Uses of ConnectionNotificationEmitter in mx4j.tools.remote.http
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.http with parameters of type ConnectionNotificationEmitter
+protected  HeartBeatHTTPConnector.createHeartBeat(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+           
+protected  RemoteNotificationClientHandlerHTTPConnector.createRemoteNotificationClientHandler(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
+  +

+ + + + + + + + + + + +
Constructors in mx4j.tools.remote.http with parameters of type ConnectionNotificationEmitter
HTTPRemoteNotificationClientHandler(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
HTTPHeartBeat(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ConnectionResolver.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ConnectionResolver.html new file mode 100644 index 0000000..7d37636 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ConnectionResolver.html @@ -0,0 +1,231 @@ + + + + + + +Uses of Class mx4j.remote.ConnectionResolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.ConnectionResolver

+
+ + + + + + + + + + + + + + + + + +
+Packages that use ConnectionResolver
mx4j.remote  
mx4j.remote.resolver.rmi  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of ConnectionResolver in mx4j.remote
+  +

+ + + + + + + + + +
Methods in mx4j.remote that return ConnectionResolver
+static ConnectionResolverConnectionResolver.newConnectionResolver(java.lang.String proto, + java.util.Map environment) + +
+          Returns a subclass of ConnectionResolver for the specified protocol.
+  +

+ + + + + +
+Uses of ConnectionResolver in mx4j.remote.resolver.rmi
+  +

+ + + + + + + + + +
Subclasses of ConnectionResolver in mx4j.remote.resolver.rmi
+ classResolver + +
+          Resolver for RMI/JRMP protocol.
+  +

+ + + + + +
+Uses of ConnectionResolver in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of ConnectionResolver in mx4j.tools.remote.http
+ classHTTPResolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/DefaultRemoteNotificationServerHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/DefaultRemoteNotificationServerHandler.html new file mode 100644 index 0000000..26ebb03 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/DefaultRemoteNotificationServerHandler.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.DefaultRemoteNotificationServerHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.DefaultRemoteNotificationServerHandler

+
+No usage of mx4j.remote.DefaultRemoteNotificationServerHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/HeartBeat.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/HeartBeat.html new file mode 100644 index 0000000..f7c3979 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/HeartBeat.html @@ -0,0 +1,318 @@ + + + + + + +Uses of Interface mx4j.remote.HeartBeat (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.remote.HeartBeat

+
+ + + + + + + + + + + + + + + + + +
+Packages that use HeartBeat
mx4j.remote  
mx4j.remote.rmi  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of HeartBeat in mx4j.remote
+  +

+ + + + + + + + + +
Classes in mx4j.remote that implement HeartBeat
+ classAbstractHeartBeat + +
+          Base implementation for the HeartBeat interface.
+  +

+ + + + + + + + +
Constructors in mx4j.remote with parameters of type HeartBeat
AbstractRemoteNotificationClientHandler(ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+          Creates a new remote notification client-side handler.
+  +

+ + + + + +
+Uses of HeartBeat in mx4j.remote.rmi
+  +

+ + + + + + + + + +
Classes in mx4j.remote.rmi that implement HeartBeat
+ classRMIHeartBeat + +
+           
+  +

+ + + + + + + + +
Constructors in mx4j.remote.rmi with parameters of type HeartBeat
RMIRemoteNotificationClientHandler(javax.management.remote.rmi.RMIConnection connection, + java.lang.ClassLoader defaultLoader, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
+  +

+ + + + + +
+Uses of HeartBeat in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote.http that implement HeartBeat
+ classHTTPHeartBeat + +
+           
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.http that return HeartBeat
+protected  HeartBeatHTTPConnector.createHeartBeat(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+           
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.http with parameters of type HeartBeat
+protected  RemoteNotificationClientHandlerHTTPConnector.createRemoteNotificationClientHandler(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
+  +

+ + + + + + + + +
Constructors in mx4j.tools.remote.http with parameters of type HeartBeat
HTTPRemoteNotificationClientHandler(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/MX4JRemoteConstants.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/MX4JRemoteConstants.html new file mode 100644 index 0000000..b186aee --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/MX4JRemoteConstants.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Interface mx4j.remote.MX4JRemoteConstants (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.remote.MX4JRemoteConstants

+
+No usage of mx4j.remote.MX4JRemoteConstants +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/MX4JRemoteUtils.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/MX4JRemoteUtils.html new file mode 100644 index 0000000..e39d9bb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/MX4JRemoteUtils.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.MX4JRemoteUtils (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.MX4JRemoteUtils

+
+No usage of mx4j.remote.MX4JRemoteUtils +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/NotificationTuple.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/NotificationTuple.html new file mode 100644 index 0000000..fb2c120 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/NotificationTuple.html @@ -0,0 +1,288 @@ + + + + + + +Uses of Class mx4j.remote.NotificationTuple (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.NotificationTuple

+
+ + + + + + + + + +
+Packages that use NotificationTuple
mx4j.remote  
+  +

+ + + + + +
+Uses of NotificationTuple in mx4j.remote
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.remote that return NotificationTuple
+ NotificationTupleRemoteNotificationServerHandler.removeNotificationListener(java.lang.Integer id) + +
+          Removes the listener with the given ID from this handler
+ NotificationTuple[]RemoteNotificationServerHandler.close() + +
+          Closes this handler, that will not accept anymore add or removal of listeners
+ NotificationTupleDefaultRemoteNotificationServerHandler.removeNotificationListener(java.lang.Integer id) + +
+           
+ NotificationTuple[]DefaultRemoteNotificationServerHandler.close() + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.remote with parameters of type NotificationTuple
+ voidRemoteNotificationServerHandler.addNotificationListener(java.lang.Integer id, + NotificationTuple tuple) + +
+          Adds the given tuple with the given listener ID to this handler
+ booleanRemoteNotificationClientHandler.contains(NotificationTuple tuple) + +
+          Returns whether the tuple is already present in this handler
+ voidRemoteNotificationClientHandler.addNotificationListener(java.lang.Integer id, + NotificationTuple tuple) + +
+          Adds the given tuple with the given listener ID to this handler
+ java.lang.Integer[]RemoteNotificationClientHandler.getNotificationListeners(NotificationTuple tuple) + +
+          Returns the IDs of the listeners for the given tuple
+ java.lang.IntegerRemoteNotificationClientHandler.getNotificationListener(NotificationTuple tuple) + +
+          Returns the ID of the listener for the given tuple
+ voidDefaultRemoteNotificationServerHandler.addNotificationListener(java.lang.Integer id, + NotificationTuple tuple) + +
+           
+ booleanAbstractRemoteNotificationClientHandler.contains(NotificationTuple tuple) + +
+           
+ voidAbstractRemoteNotificationClientHandler.addNotificationListener(java.lang.Integer id, + NotificationTuple tuple) + +
+           
+ java.lang.Integer[]AbstractRemoteNotificationClientHandler.getNotificationListeners(NotificationTuple tuple) + +
+           
+ java.lang.IntegerAbstractRemoteNotificationClientHandler.getNotificationListener(NotificationTuple tuple) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ProviderFactory.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ProviderFactory.html new file mode 100644 index 0000000..076653f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ProviderFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.ProviderFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.ProviderFactory

+
+No usage of mx4j.remote.ProviderFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ProviderHelper.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ProviderHelper.html new file mode 100644 index 0000000..4773892 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/ProviderHelper.html @@ -0,0 +1,238 @@ + + + + + + +Uses of Class mx4j.remote.ProviderHelper (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.ProviderHelper

+
+ + + + + + + + + + + + + + + + + +
+Packages that use ProviderHelper
mx4j.remote  
mx4j.remote.resolver.rmi  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of ProviderHelper in mx4j.remote
+  +

+ + + + + + + + + + + + + +
Subclasses of ProviderHelper in mx4j.remote
+ classConnectionResolver + +
+          ConnectionResolver handles the details of creating connections for different protocols.
+ classProviderFactory + +
+           
+  +

+ + + + + +
+Uses of ProviderHelper in mx4j.remote.resolver.rmi
+  +

+ + + + + + + + + +
Subclasses of ProviderHelper in mx4j.remote.resolver.rmi
+ classResolver + +
+          Resolver for RMI/JRMP protocol.
+  +

+ + + + + +
+Uses of ProviderHelper in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of ProviderHelper in mx4j.tools.remote.http
+ classHTTPResolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/RemoteNotificationClientHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/RemoteNotificationClientHandler.html new file mode 100644 index 0000000..68a0cc6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/RemoteNotificationClientHandler.html @@ -0,0 +1,289 @@ + + + + + + +Uses of Interface mx4j.remote.RemoteNotificationClientHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.remote.RemoteNotificationClientHandler

+
+ + + + + + + + + + + + + + + + + +
+Packages that use RemoteNotificationClientHandler
mx4j.remote  
mx4j.remote.rmi  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of RemoteNotificationClientHandler in mx4j.remote
+  +

+ + + + + + + + + +
Classes in mx4j.remote that implement RemoteNotificationClientHandler
+ classAbstractRemoteNotificationClientHandler + +
+          Base implementation of the RemoteNotificationClientHandler interface.
+  +

+ + + + + +
+Uses of RemoteNotificationClientHandler in mx4j.remote.rmi
+  +

+ + + + + + + + + +
Classes in mx4j.remote.rmi that implement RemoteNotificationClientHandler
+ classRMIRemoteNotificationClientHandler + +
+          RMI-specific RemoteNotificationClientHandler.
+  +

+ + + + + + + + +
Constructors in mx4j.remote.rmi with parameters of type RemoteNotificationClientHandler
ClientInvoker(javax.management.remote.rmi.RMIConnection rmiConnection, + RemoteNotificationClientHandler notificationHandler, + javax.security.auth.Subject delegate) + +
+           
+  +

+ + + + + +
+Uses of RemoteNotificationClientHandler in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote.http that implement RemoteNotificationClientHandler
+ classHTTPRemoteNotificationClientHandler + +
+           
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.http that return RemoteNotificationClientHandler
+protected  RemoteNotificationClientHandlerHTTPConnector.createRemoteNotificationClientHandler(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
+protected  RemoteNotificationClientHandlerHTTPConnector.getRemoteNotificationClientHandler() + +
+           
+  +

+ + + + + + + + +
Constructors in mx4j.tools.remote.http with parameters of type RemoteNotificationClientHandler
HTTPConnectionMBeanServerConnection(JMXConnection connection, + javax.security.auth.Subject delegate, + RemoteNotificationClientHandler notificationHandler) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/class-use/RemoteNotificationServerHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/RemoteNotificationServerHandler.html new file mode 100644 index 0000000..619a315 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/class-use/RemoteNotificationServerHandler.html @@ -0,0 +1,200 @@ + + + + + + +Uses of Interface mx4j.remote.RemoteNotificationServerHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.remote.RemoteNotificationServerHandler

+
+ + + + + + + + + + + + + +
+Packages that use RemoteNotificationServerHandler
mx4j.remote  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of RemoteNotificationServerHandler in mx4j.remote
+  +

+ + + + + + + + + +
Classes in mx4j.remote that implement RemoteNotificationServerHandler
+ classDefaultRemoteNotificationServerHandler + +
+          Base implementation of the RemoteNotificationServerHandler interface.
+  +

+ + + + + +
+Uses of RemoteNotificationServerHandler in mx4j.tools.remote.http
+  +

+ + + + + + + + +
Constructors in mx4j.tools.remote.http with parameters of type RemoteNotificationServerHandler
HTTPServerInvoker(javax.management.MBeanServerConnection server, + RemoteNotificationServerHandler handler) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/remote/package-frame.html new file mode 100644 index 0000000..87d1f6b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/package-frame.html @@ -0,0 +1,67 @@ + + + + + + +mx4j.remote (MX4J API) + + + + + + + + + + + +mx4j.remote + + + + +
+Interfaces  + +
+HeartBeat +
+MX4JRemoteConstants +
+RemoteNotificationClientHandler +
+RemoteNotificationServerHandler
+ + + + + + +
+Classes  + +
+AbstractHeartBeat +
+AbstractRemoteNotificationClientHandler +
+ClientProxy +
+ConnectionNotificationEmitter +
+ConnectionResolver +
+DefaultRemoteNotificationServerHandler +
+MX4JRemoteUtils +
+NotificationTuple +
+ProviderFactory +
+ProviderHelper
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/remote/package-summary.html new file mode 100644 index 0000000..baeab68 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/package-summary.html @@ -0,0 +1,211 @@ + + + + + + +mx4j.remote (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.remote +

+ + + + + + + + + + + + + + + + + + + + + +
+Interface Summary
HeartBeatA continuous pulse from client to server that gives the information that + the connection is alive and the server is up.
MX4JRemoteConstants 
RemoteNotificationClientHandlerHandles remote notification fetching on client side.
RemoteNotificationServerHandlerHandles remote notification sending on server side.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
AbstractHeartBeatBase implementation for the HeartBeat interface.
AbstractRemoteNotificationClientHandlerBase implementation of the RemoteNotificationClientHandler interface.
ClientProxy 
ConnectionNotificationEmitter 
ConnectionResolverConnectionResolver handles the details of creating connections for different protocols.
DefaultRemoteNotificationServerHandlerBase implementation of the RemoteNotificationServerHandler interface.
MX4JRemoteUtils 
NotificationTuple 
ProviderFactory 
ProviderHelper 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/remote/package-tree.html new file mode 100644 index 0000000..94dc818 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/package-tree.html @@ -0,0 +1,159 @@ + + + + + + +mx4j.remote Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.remote +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/package-use.html b/mx4j-3.0.2/docs/api/mx4j/remote/package-use.html new file mode 100644 index 0000000..5a35863 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/package-use.html @@ -0,0 +1,355 @@ + + + + + + +Uses of Package mx4j.remote (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.remote

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use mx4j.remote
mx4j.remote  
mx4j.remote.resolver.rmi  
mx4j.remote.rmi  
mx4j.tools.remote  
mx4j.tools.remote.http  
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.remote used by mx4j.remote
ConnectionNotificationEmitter + +
+           
ConnectionResolver + +
+          ConnectionResolver handles the details of creating connections for different protocols.
HeartBeat + +
+          A continuous pulse from client to server that gives the information that + the connection is alive and the server is up.
NotificationTuple + +
+           
ProviderHelper + +
+           
RemoteNotificationClientHandler + +
+          Handles remote notification fetching on client side.
RemoteNotificationServerHandler + +
+          Handles remote notification sending on server side.
+  +

+ + + + + + + + + + + +
+Classes in mx4j.remote used by mx4j.remote.resolver.rmi
ConnectionResolver + +
+          ConnectionResolver handles the details of creating connections for different protocols.
ProviderHelper + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.remote used by mx4j.remote.rmi
AbstractHeartBeat + +
+          Base implementation for the HeartBeat interface.
AbstractRemoteNotificationClientHandler + +
+          Base implementation of the RemoteNotificationClientHandler interface.
ClientProxy + +
+           
ConnectionNotificationEmitter + +
+           
HeartBeat + +
+          A continuous pulse from client to server that gives the information that + the connection is alive and the server is up.
RemoteNotificationClientHandler + +
+          Handles remote notification fetching on client side.
+  +

+ + + + + + + + +
+Classes in mx4j.remote used by mx4j.tools.remote
ConnectionNotificationEmitter + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.remote used by mx4j.tools.remote.http
AbstractHeartBeat + +
+          Base implementation for the HeartBeat interface.
AbstractRemoteNotificationClientHandler + +
+          Base implementation of the RemoteNotificationClientHandler interface.
ConnectionNotificationEmitter + +
+           
ConnectionResolver + +
+          ConnectionResolver handles the details of creating connections for different protocols.
HeartBeat + +
+          A continuous pulse from client to server that gives the information that + the connection is alive and the server is up.
ProviderHelper + +
+           
RemoteNotificationClientHandler + +
+          Handles remote notification fetching on client side.
RemoteNotificationServerHandler + +
+          Handles remote notification sending on server side.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/ClientProvider.html new file mode 100644 index 0000000..6857d66 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/ClientProvider.html @@ -0,0 +1,267 @@ + + + + + + +ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.provider.iiop +
+Class ClientProvider

+
+java.lang.Object
+  extended bymx4j.remote.provider.iiop.ClientProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorProvider
+
+
+
+
public class ClientProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorProvider
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProvider

+
+public ClientProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                            java.util.Map environment)
+                                                     throws java.io.IOException
+
+
+
Specified by:
newJMXConnector in interface javax.management.remote.JMXConnectorProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/ServerProvider.html new file mode 100644 index 0000000..9be9b77 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/ServerProvider.html @@ -0,0 +1,269 @@ + + + + + + +ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.provider.iiop +
+Class ServerProvider

+
+java.lang.Object
+  extended bymx4j.remote.provider.iiop.ServerProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerProvider
+
+
+
+
public class ServerProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorServerProvider
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ServerProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerProvider

+
+public ServerProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnectorServer

+
+public javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                        java.util.Map environment,
+                                                                        javax.management.MBeanServer server)
+                                                                 throws java.io.IOException
+
+
+
Specified by:
newJMXConnectorServer in interface javax.management.remote.JMXConnectorServerProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/class-use/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/class-use/ClientProvider.html new file mode 100644 index 0000000..9e8642b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/class-use/ClientProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.provider.iiop.ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.provider.iiop.ClientProvider

+
+No usage of mx4j.remote.provider.iiop.ClientProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/class-use/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/class-use/ServerProvider.html new file mode 100644 index 0000000..45975e0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/class-use/ServerProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.provider.iiop.ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.provider.iiop.ServerProvider

+
+No usage of mx4j.remote.provider.iiop.ServerProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-frame.html new file mode 100644 index 0000000..a832384 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.remote.provider.iiop (MX4J API) + + + + + + + + + + + +mx4j.remote.provider.iiop + + + + +
+Classes  + +
+ClientProvider +
+ServerProvider
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-summary.html new file mode 100644 index 0000000..869f05c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.remote.provider.iiop (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.remote.provider.iiop +

+ + + + + + + + + + + + + +
+Class Summary
ClientProvider 
ServerProvider 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-tree.html new file mode 100644 index 0000000..e71d84e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.remote.provider.iiop Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.remote.provider.iiop +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.remote.provider.iiop.ClientProvider (implements javax.management.remote.JMXConnectorProvider) +
    • class mx4j.remote.provider.iiop.ServerProvider (implements javax.management.remote.JMXConnectorServerProvider) +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-use.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-use.html new file mode 100644 index 0000000..2495d2e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/iiop/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.remote.provider.iiop (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.remote.provider.iiop

+
+No usage of mx4j.remote.provider.iiop +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/ClientProvider.html new file mode 100644 index 0000000..c707be5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/ClientProvider.html @@ -0,0 +1,267 @@ + + + + + + +ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.provider.rmi +
+Class ClientProvider

+
+java.lang.Object
+  extended bymx4j.remote.provider.rmi.ClientProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorProvider
+
+
+
+
public class ClientProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorProvider
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProvider

+
+public ClientProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                            java.util.Map environment)
+                                                     throws java.io.IOException
+
+
+
Specified by:
newJMXConnector in interface javax.management.remote.JMXConnectorProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/ServerProvider.html new file mode 100644 index 0000000..dd5cf83 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/ServerProvider.html @@ -0,0 +1,269 @@ + + + + + + +ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.provider.rmi +
+Class ServerProvider

+
+java.lang.Object
+  extended bymx4j.remote.provider.rmi.ServerProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerProvider
+
+
+
+
public class ServerProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorServerProvider
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ServerProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerProvider

+
+public ServerProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnectorServer

+
+public javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                        java.util.Map environment,
+                                                                        javax.management.MBeanServer server)
+                                                                 throws java.io.IOException
+
+
+
Specified by:
newJMXConnectorServer in interface javax.management.remote.JMXConnectorServerProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/class-use/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/class-use/ClientProvider.html new file mode 100644 index 0000000..6a4965a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/class-use/ClientProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.provider.rmi.ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.provider.rmi.ClientProvider

+
+No usage of mx4j.remote.provider.rmi.ClientProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/class-use/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/class-use/ServerProvider.html new file mode 100644 index 0000000..df5fd0a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/class-use/ServerProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.provider.rmi.ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.provider.rmi.ServerProvider

+
+No usage of mx4j.remote.provider.rmi.ServerProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-frame.html new file mode 100644 index 0000000..29803d3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.remote.provider.rmi (MX4J API) + + + + + + + + + + + +mx4j.remote.provider.rmi + + + + +
+Classes  + +
+ClientProvider +
+ServerProvider
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-summary.html new file mode 100644 index 0000000..aa06fcb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.remote.provider.rmi (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.remote.provider.rmi +

+ + + + + + + + + + + + + +
+Class Summary
ClientProvider 
ServerProvider 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-tree.html new file mode 100644 index 0000000..e1f7034 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.remote.provider.rmi Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.remote.provider.rmi +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.remote.provider.rmi.ClientProvider (implements javax.management.remote.JMXConnectorProvider) +
    • class mx4j.remote.provider.rmi.ServerProvider (implements javax.management.remote.JMXConnectorServerProvider) +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-use.html b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-use.html new file mode 100644 index 0000000..db0741e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/provider/rmi/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.remote.provider.rmi (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.remote.provider.rmi

+
+No usage of mx4j.remote.provider.rmi +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/Resolver.html new file mode 100644 index 0000000..b7a4a58 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/Resolver.html @@ -0,0 +1,515 @@ + + + + + + +Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.resolver.iiop +
+Class Resolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.remote.resolver.rmi.Resolver
+              extended bymx4j.remote.resolver.iiop.Resolver
+
+
+
+
public class Resolver
extends Resolver
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
Resolver() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.ObjectbindClient(java.lang.Object client, + java.util.Map environment) + +
+          Connects the client returned by Resolver.lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side.
+ javax.management.remote.JMXServiceURLbindServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Binds the server created by Resolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL.
+protected  javax.management.remote.rmi.RMIServerImplcreateRMIServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+protected  javax.management.remote.rmi.RMIServerdecodeStub(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ voiddestroyServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Destroys the server created by Resolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time
+protected  java.lang.StringencodeStub(javax.management.remote.rmi.RMIServerImpl rmiServer, + java.util.Map environment) + +
+           
+protected  booleanisEncodedForm(javax.management.remote.JMXServiceURL url) + +
+           
+protected  javax.management.remote.rmi.RMIServerlookupStubInJNDI(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+protected  javax.management.remote.rmi.RMIServernarrowRMIServerStub(java.lang.Object stub) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.remote.resolver.rmi.Resolver
createServer, lookupClient, lookupRMIServerStub, unbindServer
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Resolver

+
+public Resolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+lookupStubInJNDI

+
+protected javax.management.remote.rmi.RMIServer lookupStubInJNDI(javax.management.remote.JMXServiceURL url,
+                                                                 java.util.Map environment)
+                                                          throws java.io.IOException
+
+
+
Overrides:
lookupStubInJNDI in class Resolver
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+decodeStub

+
+protected javax.management.remote.rmi.RMIServer decodeStub(javax.management.remote.JMXServiceURL url,
+                                                           java.util.Map environment)
+                                                    throws java.io.IOException
+
+
+
Overrides:
decodeStub in class Resolver
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+narrowRMIServerStub

+
+protected javax.management.remote.rmi.RMIServer narrowRMIServerStub(java.lang.Object stub)
+
+
+
Overrides:
narrowRMIServerStub in class Resolver
+
+
+
+
+
+
+ +

+bindClient

+
+public java.lang.Object bindClient(java.lang.Object client,
+                                   java.util.Map environment)
+                            throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Connects the client returned by ConnectionResolver.lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side. +

+

+
Overrides:
bindClient in class Resolver
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+createRMIServer

+
+protected javax.management.remote.rmi.RMIServerImpl createRMIServer(javax.management.remote.JMXServiceURL url,
+                                                                    java.util.Map environment)
+                                                             throws java.io.IOException
+
+
+
Overrides:
createRMIServer in class Resolver
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+bindServer

+
+public javax.management.remote.JMXServiceURL bindServer(java.lang.Object server,
+                                                        javax.management.remote.JMXServiceURL url,
+                                                        java.util.Map environment)
+                                                 throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Binds the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL. +

+

+
Overrides:
bindServer in class Resolver
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+encodeStub

+
+protected java.lang.String encodeStub(javax.management.remote.rmi.RMIServerImpl rmiServer,
+                                      java.util.Map environment)
+                               throws java.io.IOException
+
+
+
Overrides:
encodeStub in class Resolver
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isEncodedForm

+
+protected boolean isEncodedForm(javax.management.remote.JMXServiceURL url)
+
+
+
Overrides:
isEncodedForm in class Resolver
+
+
+
+
+
+
+ +

+destroyServer

+
+public void destroyServer(java.lang.Object server,
+                          javax.management.remote.JMXServiceURL url,
+                          java.util.Map environment)
+                   throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Destroys the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time +

+

+
Overrides:
destroyServer in class Resolver
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/class-use/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/class-use/Resolver.html new file mode 100644 index 0000000..e7b8772 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/class-use/Resolver.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.resolver.iiop.Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.resolver.iiop.Resolver

+
+No usage of mx4j.remote.resolver.iiop.Resolver +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-frame.html new file mode 100644 index 0000000..9399815 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.remote.resolver.iiop (MX4J API) + + + + + + + + + + + +mx4j.remote.resolver.iiop + + + + +
+Classes  + +
+Resolver
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-summary.html new file mode 100644 index 0000000..5aa1085 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.remote.resolver.iiop (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.remote.resolver.iiop +

+ + + + + + + + + +
+Class Summary
Resolver 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-tree.html new file mode 100644 index 0000000..7483d43 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +mx4j.remote.resolver.iiop Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.remote.resolver.iiop +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-use.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-use.html new file mode 100644 index 0000000..dd0e44f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/iiop/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.remote.resolver.iiop (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.remote.resolver.iiop

+
+No usage of mx4j.remote.resolver.iiop +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/Resolver.html new file mode 100644 index 0000000..a3f32c3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/Resolver.html @@ -0,0 +1,617 @@ + + + + + + +Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.resolver.rmi +
+Class Resolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.remote.resolver.rmi.Resolver
+
+
+
Direct Known Subclasses:
Resolver
+
+
+
+
public class Resolver
extends ConnectionResolver
+ +

+Resolver for RMI/JRMP protocol. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
Resolver() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.ObjectbindClient(java.lang.Object client, + java.util.Map environment) + +
+          Connects the client returned by lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side.
+ javax.management.remote.JMXServiceURLbindServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Binds the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL.
+protected  javax.management.remote.rmi.RMIServerImplcreateRMIServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ java.lang.ObjectcreateServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Creates an instance of the server as specified in the given JMXServiceURL.
+protected  javax.management.remote.rmi.RMIServerdecodeStub(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ voiddestroyServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Destroys the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time
+protected  java.lang.StringencodeStub(javax.management.remote.rmi.RMIServerImpl rmiServer, + java.util.Map environment) + +
+           
+protected  booleanisEncodedForm(javax.management.remote.JMXServiceURL url) + +
+           
+ java.lang.ObjectlookupClient(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Looks up a connection with the server side as specified in the given JMXServiceURL.
+protected  javax.management.remote.rmi.RMIServerlookupRMIServerStub(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+protected  javax.management.remote.rmi.RMIServerlookupStubInJNDI(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+protected  javax.management.remote.rmi.RMIServernarrowRMIServerStub(java.lang.Object stub) + +
+           
+ voidunbindServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Unbinds the server bound by bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map) from the place specified by the JMXServiceURL.
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Resolver

+
+public Resolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+lookupClient

+
+public java.lang.Object lookupClient(javax.management.remote.JMXServiceURL url,
+                                     java.util.Map environment)
+                              throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Looks up a connection with the server side as specified in the given JMXServiceURL. + This method is used in implementations of JMXConnector.connect(). +

+

+
Specified by:
lookupClient in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.bindClient(java.lang.Object, java.util.Map)
+
+
+
+ +

+bindClient

+
+public java.lang.Object bindClient(java.lang.Object client,
+                                   java.util.Map environment)
+                            throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Connects the client returned by ConnectionResolver.lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side. +

+

+
Specified by:
bindClient in class ConnectionResolver
+
+
+ +
Returns:
An object of the same type as the client passed in; normally the client object itself +
Throws: +
java.io.IOException
+
+
+
+ +

+lookupRMIServerStub

+
+protected javax.management.remote.rmi.RMIServer lookupRMIServerStub(javax.management.remote.JMXServiceURL url,
+                                                                    java.util.Map environment)
+                                                             throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+lookupStubInJNDI

+
+protected javax.management.remote.rmi.RMIServer lookupStubInJNDI(javax.management.remote.JMXServiceURL url,
+                                                                 java.util.Map environment)
+                                                          throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+narrowRMIServerStub

+
+protected javax.management.remote.rmi.RMIServer narrowRMIServerStub(java.lang.Object stub)
+
+
+
+
+
+
+ +

+decodeStub

+
+protected javax.management.remote.rmi.RMIServer decodeStub(javax.management.remote.JMXServiceURL url,
+                                                           java.util.Map environment)
+                                                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+createServer

+
+public java.lang.Object createServer(javax.management.remote.JMXServiceURL url,
+                                     java.util.Map environment)
+                              throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Creates an instance of the server as specified in the given JMXServiceURL. + It is only a factory method, it should just return a fresh instance of the server; + other methods are responsible to make it available to clients (for example exporting it). + This method is used in implementations of JMXConnectorServerMBean.start(). +

+

+
Specified by:
createServer in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map), +ConnectionResolver.destroyServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+createRMIServer

+
+protected javax.management.remote.rmi.RMIServerImpl createRMIServer(javax.management.remote.JMXServiceURL url,
+                                                                    java.util.Map environment)
+                                                             throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+bindServer

+
+public javax.management.remote.JMXServiceURL bindServer(java.lang.Object server,
+                                                        javax.management.remote.JMXServiceURL url,
+                                                        java.util.Map environment)
+                                                 throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Binds the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL. +

+

+
Specified by:
bindServer in class ConnectionResolver
+
+
+ +
Returns:
a new JMXServiceURL that specifies where the server has been bound to. +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.unbindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+encodeStub

+
+protected java.lang.String encodeStub(javax.management.remote.rmi.RMIServerImpl rmiServer,
+                                      java.util.Map environment)
+                               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isEncodedForm

+
+protected boolean isEncodedForm(javax.management.remote.JMXServiceURL url)
+
+
+
+
+
+
+ +

+unbindServer

+
+public void unbindServer(java.lang.Object server,
+                         javax.management.remote.JMXServiceURL url,
+                         java.util.Map environment)
+                  throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Unbinds the server bound by ConnectionResolver.bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map) from the place specified by the JMXServiceURL. +

+

+
Specified by:
unbindServer in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.destroyServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+destroyServer

+
+public void destroyServer(java.lang.Object server,
+                          javax.management.remote.JMXServiceURL url,
+                          java.util.Map environment)
+                   throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Destroys the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time +

+

+
Specified by:
destroyServer in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/class-use/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/class-use/Resolver.html new file mode 100644 index 0000000..6965032 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/class-use/Resolver.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.remote.resolver.rmi.Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.resolver.rmi.Resolver

+
+ + + + + + + + + +
+Packages that use Resolver
mx4j.remote.resolver.iiop  
+  +

+ + + + + +
+Uses of Resolver in mx4j.remote.resolver.iiop
+  +

+ + + + + + + + + +
Subclasses of Resolver in mx4j.remote.resolver.iiop
+ classResolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-frame.html new file mode 100644 index 0000000..16a63a6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.remote.resolver.rmi (MX4J API) + + + + + + + + + + + +mx4j.remote.resolver.rmi + + + + +
+Classes  + +
+Resolver
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-summary.html new file mode 100644 index 0000000..7e0eb8e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.remote.resolver.rmi (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.remote.resolver.rmi +

+ + + + + + + + + +
+Class Summary
ResolverResolver for RMI/JRMP protocol.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-tree.html new file mode 100644 index 0000000..2befb03 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-tree.html @@ -0,0 +1,149 @@ + + + + + + +mx4j.remote.resolver.rmi Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.remote.resolver.rmi +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-use.html b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-use.html new file mode 100644 index 0000000..82c1dc3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/resolver/rmi/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.remote.resolver.rmi (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.remote.resolver.rmi

+
+ + + + + + + + + +
+Packages that use mx4j.remote.resolver.rmi
mx4j.remote.resolver.iiop  
+  +

+ + + + + + + + +
+Classes in mx4j.remote.resolver.rmi used by mx4j.remote.resolver.iiop
Resolver + +
+          Resolver for RMI/JRMP protocol.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientExceptionCatcher.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientExceptionCatcher.html new file mode 100644 index 0000000..b3e7f81 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientExceptionCatcher.html @@ -0,0 +1,262 @@ + + + + + + +ClientExceptionCatcher (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.rmi +
+Class ClientExceptionCatcher

+
+java.lang.Object
+  extended bymx4j.remote.ClientProxy
+      extended bymx4j.remote.rmi.ClientExceptionCatcher
+
+
+
All Implemented Interfaces:
java.lang.reflect.InvocationHandler
+
+
+
+
public class ClientExceptionCatcher
extends ClientProxy
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectinvoke(java.lang.Object proxy, + java.lang.reflect.Method method, + java.lang.Object[] args) + +
+           
+static javax.management.MBeanServerConnectionnewInstance(javax.management.MBeanServerConnection target) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+newInstance

+
+public static javax.management.MBeanServerConnection newInstance(javax.management.MBeanServerConnection target)
+
+
+
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(java.lang.Object proxy,
+                               java.lang.reflect.Method method,
+                               java.lang.Object[] args)
+                        throws java.lang.Throwable
+
+
+
Specified by:
invoke in interface java.lang.reflect.InvocationHandler
Overrides:
invoke in class ClientProxy
+
+
+ +
Throws: +
java.lang.Throwable
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientInvoker.html new file mode 100644 index 0000000..b03096e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientInvoker.html @@ -0,0 +1,1052 @@ + + + + + + +ClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.rmi +
+Class ClientInvoker

+
+java.lang.Object
+  extended bymx4j.remote.rmi.ClientInvoker
+
+
+
All Implemented Interfaces:
javax.management.MBeanServerConnection
+
+
+
+
public class ClientInvoker
extends java.lang.Object
implements javax.management.MBeanServerConnection
+ +

+An MBeanServerConnection that "converts" the MBeanServerConnection calls to RMIConnection calls, + performing wrapping of parameters and/or the needed actions. +

+ +

+

+
Version:
+
$Revision: 1.10 $
+
See Also:
RMIConnectionInvoker
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientInvoker(javax.management.remote.rmi.RMIConnection rmiConnection, + RemoteNotificationClientHandler notificationHandler, + javax.security.auth.Subject delegate) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidaddNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + javax.management.ObjectName loaderName) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + javax.management.ObjectName loaderName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName objectName, + java.lang.String attribute) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName objectName, + java.lang.String[] attributes) + +
+           
+ java.lang.StringgetDefaultDomain() + +
+           
+ java.lang.String[]getDomains() + +
+           
+ java.lang.IntegergetMBeanCount() + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName objectName) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName objectName) + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName objectName, + java.lang.String methodName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName objectName, + java.lang.String className) + +
+           
+ booleanisRegistered(javax.management.ObjectName objectName) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName patternName, + javax.management.QueryExp filter) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName patternName, + javax.management.QueryExp filter) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidsetAttribute(javax.management.ObjectName objectName, + javax.management.Attribute attribute) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName objectName, + javax.management.AttributeList attributes) + +
+           
+ voidunregisterMBean(javax.management.ObjectName objectName) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientInvoker

+
+public ClientInvoker(javax.management.remote.rmi.RMIConnection rmiConnection,
+                     RemoteNotificationClientHandler notificationHandler,
+                     javax.security.auth.Subject delegate)
+
+
+ + + + + + + + +
+Method Detail
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName observed,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName observed,
+                                    javax.management.ObjectName listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.ObjectName listener)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.ObjectName listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName objectName)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException,
+                                               java.io.IOException
+
+
+
Specified by:
getMBeanInfo in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName objectName,
+                            java.lang.String className)
+                     throws javax.management.InstanceNotFoundException,
+                            java.io.IOException
+
+
+
Specified by:
isInstanceOf in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains()
+                              throws java.io.IOException
+
+
+
Specified by:
getDomains in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain()
+                                  throws java.io.IOException
+
+
+
Specified by:
getDefaultDomain in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   java.lang.Object[] args,
+                                                   java.lang.String[] parameters)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   javax.management.ObjectName loaderName)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object[] args,
+                                                   java.lang.String[] parameters)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName objectName)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException,
+                            java.io.IOException
+
+
+
Specified by:
unregisterMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException +
java.io.IOException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName objectName,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException,
+                                     java.io.IOException
+
+
+
Specified by:
getAttribute in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName objectName,
+                         javax.management.Attribute attribute)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException,
+                         java.io.IOException
+
+
+
Specified by:
setAttribute in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName objectName,
+                                                    java.lang.String[] attributes)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
getAttributes in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName objectName,
+                                                    javax.management.AttributeList attributes)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
setAttributes in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName objectName,
+                               java.lang.String methodName,
+                               java.lang.Object[] args,
+                               java.lang.String[] parameters)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException,
+                               java.io.IOException
+
+
+
Specified by:
invoke in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount()
+                                throws java.io.IOException
+
+
+
Specified by:
getMBeanCount in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName objectName)
+                     throws java.io.IOException
+
+
+
Specified by:
isRegistered in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName objectName)
+                                                  throws javax.management.InstanceNotFoundException,
+                                                         java.io.IOException
+
+
+
Specified by:
getObjectInstance in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName patternName,
+                                 javax.management.QueryExp filter)
+                          throws java.io.IOException
+
+
+
Specified by:
queryMBeans in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName patternName,
+                                javax.management.QueryExp filter)
+                         throws java.io.IOException
+
+
+
Specified by:
queryNames in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientUnmarshaller.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientUnmarshaller.html new file mode 100644 index 0000000..5ea0377 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/ClientUnmarshaller.html @@ -0,0 +1,270 @@ + + + + + + +ClientUnmarshaller (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.rmi +
+Class ClientUnmarshaller

+
+java.lang.Object
+  extended bymx4j.remote.ClientProxy
+      extended bymx4j.remote.rmi.ClientUnmarshaller
+
+
+
All Implemented Interfaces:
java.lang.reflect.InvocationHandler
+
+
+
+
public class ClientUnmarshaller
extends ClientProxy
+ +

+An MBeanServerConnection proxy that performs the setting of the appropriate context classloader + to allow classloading of classes sent by the server but not known to the client, in methods like + MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String), MBeanServerConnection.invoke(javax.management.ObjectName, java.lang.String, java.lang.Object[], java.lang.String[]) and so on. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectinvoke(java.lang.Object proxy, + java.lang.reflect.Method method, + java.lang.Object[] args) + +
+           
+static javax.management.MBeanServerConnectionnewInstance(javax.management.MBeanServerConnection target, + java.lang.ClassLoader loader) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+newInstance

+
+public static javax.management.MBeanServerConnection newInstance(javax.management.MBeanServerConnection target,
+                                                                 java.lang.ClassLoader loader)
+
+
+
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(java.lang.Object proxy,
+                               java.lang.reflect.Method method,
+                               java.lang.Object[] args)
+                        throws java.lang.Throwable
+
+
+
Specified by:
invoke in interface java.lang.reflect.InvocationHandler
Overrides:
invoke in class ClientProxy
+
+
+ +
Throws: +
java.lang.Throwable
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/Marshaller.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/Marshaller.html new file mode 100644 index 0000000..4cf1d89 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/Marshaller.html @@ -0,0 +1,265 @@ + + + + + + +Marshaller (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.rmi +
+Class Marshaller

+
+java.lang.Object
+  extended bymx4j.remote.rmi.Marshaller
+
+
+
+
public class Marshaller
extends java.lang.Object
+ +

+IMPORTANT: see RMIMarshaller +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
Marshaller() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+static java.lang.Objectunmarshal(java.rmi.MarshalledObject obj) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Marshaller

+
+public Marshaller()
+
+
+ + + + + + + + +
+Method Detail
+ +

+unmarshal

+
+public static java.lang.Object unmarshal(java.rmi.MarshalledObject obj)
+                                  throws java.io.IOException,
+                                         java.lang.ClassNotFoundException
+
+
+ +
Throws: +
java.io.IOException +
java.lang.ClassNotFoundException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionInvoker.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionInvoker.html new file mode 100644 index 0000000..1a8cba0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionInvoker.html @@ -0,0 +1,1134 @@ + + + + + + +RMIConnectionInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.rmi +
+Class RMIConnectionInvoker

+
+java.lang.Object
+  extended bymx4j.remote.rmi.RMIConnectionInvoker
+
+
+
All Implemented Interfaces:
java.rmi.Remote, javax.management.remote.rmi.RMIConnection
+
+
+
+
public class RMIConnectionInvoker
extends java.lang.Object
implements javax.management.remote.rmi.RMIConnection
+ +

+An RMIConnection that "converts" remote calls to MBeanServer calls, + performing unwrapping of parameters and/or the needed actions. +

+ +

+

+
Version:
+
$Revision: 1.12 $
+
See Also:
ClientInvoker
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
RMIConnectionInvoker(javax.management.MBeanServer server, + java.lang.ClassLoader defaultLoader, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.rmi.MarshalledObject filter, + java.rmi.MarshalledObject handback, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.Integer[]addNotificationListeners(javax.management.ObjectName[] names, + java.rmi.MarshalledObject[] filters, + javax.security.auth.Subject[] delegates) + +
+           
+ voidclose() + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + java.rmi.MarshalledObject params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + javax.management.ObjectName loaderName, + java.rmi.MarshalledObject params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + javax.management.ObjectName loaderName, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.remote.NotificationResultfetchNotifications(long clientSequenceNumber, + int maxNotifications, + long timeout) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName name, + java.lang.String attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName name, + java.lang.String[] attributes, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.StringgetConnectionId() + +
+           
+ java.lang.StringgetDefaultDomain(javax.security.auth.Subject delegate) + +
+           
+ java.lang.String[]getDomains(javax.security.auth.Subject delegate) + +
+           
+ java.lang.IntegergetMBeanCount(javax.security.auth.Subject delegate) + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName name, + java.lang.String operationName, + java.rmi.MarshalledObject params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName name, + java.lang.String className, + javax.security.auth.Subject delegate) + +
+           
+ booleanisRegistered(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName name, + java.rmi.MarshalledObject query, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName name, + java.rmi.MarshalledObject query, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.rmi.MarshalledObject filter, + java.rmi.MarshalledObject handback, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListeners(javax.management.ObjectName name, + java.lang.Integer[] listenerIDs, + javax.security.auth.Subject delegate) + +
+           
+ voidsetAttribute(javax.management.ObjectName name, + java.rmi.MarshalledObject attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName name, + java.rmi.MarshalledObject attributes, + javax.security.auth.Subject delegate) + +
+           
+ voidunregisterMBean(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RMIConnectionInvoker

+
+public RMIConnectionInvoker(javax.management.MBeanServer server,
+                            java.lang.ClassLoader defaultLoader,
+                            java.util.Map environment)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getConnectionId

+
+public java.lang.String getConnectionId()
+                                 throws java.io.IOException
+
+
+
Specified by:
getConnectionId in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   javax.management.ObjectName loaderName,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   java.rmi.MarshalledObject params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.rmi.MarshalledObject params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException,
+                            java.io.IOException
+
+
+
Specified by:
unregisterMBean in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException +
java.io.IOException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName name,
+                                                         javax.security.auth.Subject delegate)
+                                                  throws javax.management.InstanceNotFoundException,
+                                                         java.io.IOException
+
+
+
Specified by:
getObjectInstance in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName name,
+                                 java.rmi.MarshalledObject query,
+                                 javax.security.auth.Subject delegate)
+                          throws java.io.IOException
+
+
+
Specified by:
queryMBeans in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName name,
+                                java.rmi.MarshalledObject query,
+                                javax.security.auth.Subject delegate)
+                         throws java.io.IOException
+
+
+
Specified by:
queryNames in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws java.io.IOException
+
+
+
Specified by:
isRegistered in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount(javax.security.auth.Subject delegate)
+                                throws java.io.IOException
+
+
+
Specified by:
getMBeanCount in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName name,
+                                     java.lang.String attribute,
+                                     javax.security.auth.Subject delegate)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException,
+                                     java.io.IOException
+
+
+
Specified by:
getAttribute in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName name,
+                                                    java.lang.String[] attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
getAttributes in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName name,
+                         java.rmi.MarshalledObject attribute,
+                         javax.security.auth.Subject delegate)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException,
+                         java.io.IOException
+
+
+
Specified by:
setAttribute in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName name,
+                                                    java.rmi.MarshalledObject attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
setAttributes in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName name,
+                               java.lang.String operationName,
+                               java.rmi.MarshalledObject params,
+                               java.lang.String[] signature,
+                               javax.security.auth.Subject delegate)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException,
+                               java.io.IOException
+
+
+
Specified by:
invoke in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain(javax.security.auth.Subject delegate)
+                                  throws java.io.IOException
+
+
+
Specified by:
getDefaultDomain in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains(javax.security.auth.Subject delegate)
+                              throws java.io.IOException
+
+
+
Specified by:
getDomains in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName name,
+                                               javax.security.auth.Subject delegate)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException,
+                                               java.io.IOException
+
+
+
Specified by:
getMBeanInfo in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName name,
+                            java.lang.String className,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            java.io.IOException
+
+
+
Specified by:
isInstanceOf in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName name,
+                                    javax.management.ObjectName listener,
+                                    java.rmi.MarshalledObject filter,
+                                    java.rmi.MarshalledObject handback,
+                                    javax.security.auth.Subject delegate)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       java.rmi.MarshalledObject filter,
+                                       java.rmi.MarshalledObject handback,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListeners

+
+public java.lang.Integer[] addNotificationListeners(javax.management.ObjectName[] names,
+                                                    java.rmi.MarshalledObject[] filters,
+                                                    javax.security.auth.Subject[] delegates)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    java.io.IOException
+
+
+
Specified by:
addNotificationListeners in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListeners

+
+public void removeNotificationListeners(javax.management.ObjectName name,
+                                        java.lang.Integer[] listenerIDs,
+                                        javax.security.auth.Subject delegate)
+                                 throws javax.management.InstanceNotFoundException,
+                                        javax.management.ListenerNotFoundException,
+                                        java.io.IOException
+
+
+
Specified by:
removeNotificationListeners in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
+
Specified by:
close in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+fetchNotifications

+
+public javax.management.remote.NotificationResult fetchNotifications(long clientSequenceNumber,
+                                                                     int maxNotifications,
+                                                                     long timeout)
+                                                              throws java.io.IOException
+
+
+
Specified by:
fetchNotifications in interface javax.management.remote.rmi.RMIConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionProxy.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionProxy.html new file mode 100644 index 0000000..5380cf6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionProxy.html @@ -0,0 +1,278 @@ + + + + + + +RMIConnectionProxy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.rmi +
+Class RMIConnectionProxy

+
+java.lang.Object
+  extended bymx4j.remote.rmi.RMIConnectionProxy
+
+
+
All Implemented Interfaces:
java.lang.reflect.InvocationHandler
+
+
+
Direct Known Subclasses:
RMIConnectionSubjectInvoker
+
+
+
+
public class RMIConnectionProxy
extends java.lang.Object
implements java.lang.reflect.InvocationHandler
+ +

+Base class for RMIConnection dynamic proxies. +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected RMIConnectionProxy(javax.management.remote.rmi.RMIConnection nested) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectinvoke(java.lang.Object proxy, + java.lang.reflect.Method method, + java.lang.Object[] args) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RMIConnectionProxy

+
+protected RMIConnectionProxy(javax.management.remote.rmi.RMIConnection nested)
+
+
+ + + + + + + + +
+Method Detail
+ +

+invoke

+
+public java.lang.Object invoke(java.lang.Object proxy,
+                               java.lang.reflect.Method method,
+                               java.lang.Object[] args)
+                        throws java.lang.Throwable
+
+
+
Specified by:
invoke in interface java.lang.reflect.InvocationHandler
+
+
+ +
Throws: +
java.lang.Throwable
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionSubjectInvoker.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionSubjectInvoker.html new file mode 100644 index 0000000..df99009 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIConnectionSubjectInvoker.html @@ -0,0 +1,273 @@ + + + + + + +RMIConnectionSubjectInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.rmi +
+Class RMIConnectionSubjectInvoker

+
+java.lang.Object
+  extended bymx4j.remote.rmi.RMIConnectionProxy
+      extended bymx4j.remote.rmi.RMIConnectionSubjectInvoker
+
+
+
All Implemented Interfaces:
java.lang.reflect.InvocationHandler
+
+
+
+
public class RMIConnectionSubjectInvoker
extends RMIConnectionProxy
+ +

+An RMIConnection proxy that wraps the call into a Subject.doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext) invocation, + in order to execute the code under subject-based security, and to perform subject delegation. +

+ +

+

+
Version:
+
$Revision: 1.10 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectinvoke(java.lang.Object proxy, + java.lang.reflect.Method method, + java.lang.Object[] args) + +
+           
+static javax.management.remote.rmi.RMIConnectionnewInstance(javax.management.remote.rmi.RMIConnection nested, + javax.security.auth.Subject subject, + java.security.AccessControlContext context, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+newInstance

+
+public static javax.management.remote.rmi.RMIConnection newInstance(javax.management.remote.rmi.RMIConnection nested,
+                                                                    javax.security.auth.Subject subject,
+                                                                    java.security.AccessControlContext context,
+                                                                    java.util.Map environment)
+
+
+
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(java.lang.Object proxy,
+                               java.lang.reflect.Method method,
+                               java.lang.Object[] args)
+                        throws java.lang.Throwable
+
+
+
Specified by:
invoke in interface java.lang.reflect.InvocationHandler
Overrides:
invoke in class RMIConnectionProxy
+
+
+ +
Throws: +
java.lang.Throwable
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIHeartBeat.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIHeartBeat.html new file mode 100644 index 0000000..fc378e0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIHeartBeat.html @@ -0,0 +1,284 @@ + + + + + + +RMIHeartBeat (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.rmi +
+Class RMIHeartBeat

+
+java.lang.Object
+  extended bymx4j.remote.AbstractHeartBeat
+      extended bymx4j.remote.rmi.RMIHeartBeat
+
+
+
All Implemented Interfaces:
HeartBeat, java.lang.Runnable
+
+
+
+
public class RMIHeartBeat
extends AbstractHeartBeat
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
RMIHeartBeat(javax.management.remote.rmi.RMIConnection connection, + ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  voidpulse() + +
+          Subclasses will implement this method using protocol specific connections.
+ + + + + + + +
Methods inherited from class mx4j.remote.AbstractHeartBeat
getMaxRetries, getPulsePeriod, run, sendConnectionNotificationFailed, start, stop
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RMIHeartBeat

+
+public RMIHeartBeat(javax.management.remote.rmi.RMIConnection connection,
+                    ConnectionNotificationEmitter emitter,
+                    java.util.Map environment)
+
+
+ + + + + + + + +
+Method Detail
+ +

+pulse

+
+protected void pulse()
+              throws java.io.IOException
+
+
Description copied from class: AbstractHeartBeat
+
Subclasses will implement this method using protocol specific connections. + Normally the method MBeanServerConnection.getDefaultDomain() is used + to "ping" the server side. +

+

+
Specified by:
pulse in class AbstractHeartBeat
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIRemoteNotificationClientHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIRemoteNotificationClientHandler.html new file mode 100644 index 0000000..3bbbcc5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/RMIRemoteNotificationClientHandler.html @@ -0,0 +1,294 @@ + + + + + + +RMIRemoteNotificationClientHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.remote.rmi +
+Class RMIRemoteNotificationClientHandler

+
+java.lang.Object
+  extended bymx4j.remote.AbstractRemoteNotificationClientHandler
+      extended bymx4j.remote.rmi.RMIRemoteNotificationClientHandler
+
+
+
All Implemented Interfaces:
RemoteNotificationClientHandler
+
+
+
+
public class RMIRemoteNotificationClientHandler
extends AbstractRemoteNotificationClientHandler
+ +

+RMI-specific RemoteNotificationClientHandler. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
RMIRemoteNotificationClientHandler(javax.management.remote.rmi.RMIConnection connection, + java.lang.ClassLoader defaultLoader, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  javax.management.remote.NotificationResultfetchNotifications(long sequence, + int maxNumber, + long timeout) + +
+          Calls the server side to fetch notifications.
+ + + + + + + +
Methods inherited from class mx4j.remote.AbstractRemoteNotificationClientHandler
addNotificationListener, contains, getLogger, getMaxRetries, getNotificationListener, getNotificationListeners, getNotificationsCount, getRetryPeriod, isActive, removeNotificationListeners, sendConnectionNotificationLost, start, stop
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RMIRemoteNotificationClientHandler

+
+public RMIRemoteNotificationClientHandler(javax.management.remote.rmi.RMIConnection connection,
+                                          java.lang.ClassLoader defaultLoader,
+                                          ConnectionNotificationEmitter emitter,
+                                          HeartBeat heartbeat,
+                                          java.util.Map environment)
+
+
+ + + + + + + + +
+Method Detail
+ +

+fetchNotifications

+
+protected javax.management.remote.NotificationResult fetchNotifications(long sequence,
+                                                                        int maxNumber,
+                                                                        long timeout)
+                                                                 throws java.io.IOException
+
+
Description copied from class: AbstractRemoteNotificationClientHandler
+
Calls the server side to fetch notifications. +

+

+
Specified by:
fetchNotifications in class AbstractRemoteNotificationClientHandler
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientExceptionCatcher.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientExceptionCatcher.html new file mode 100644 index 0000000..6c6f69d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientExceptionCatcher.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.rmi.ClientExceptionCatcher (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.rmi.ClientExceptionCatcher

+
+No usage of mx4j.remote.rmi.ClientExceptionCatcher +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientInvoker.html new file mode 100644 index 0000000..bdc12fb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientInvoker.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.rmi.ClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.rmi.ClientInvoker

+
+No usage of mx4j.remote.rmi.ClientInvoker +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientUnmarshaller.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientUnmarshaller.html new file mode 100644 index 0000000..136da5a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/ClientUnmarshaller.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.rmi.ClientUnmarshaller (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.rmi.ClientUnmarshaller

+
+No usage of mx4j.remote.rmi.ClientUnmarshaller +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/Marshaller.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/Marshaller.html new file mode 100644 index 0000000..ad22239 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/Marshaller.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.rmi.Marshaller (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.rmi.Marshaller

+
+No usage of mx4j.remote.rmi.Marshaller +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionInvoker.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionInvoker.html new file mode 100644 index 0000000..e4dedc9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionInvoker.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.rmi.RMIConnectionInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.rmi.RMIConnectionInvoker

+
+No usage of mx4j.remote.rmi.RMIConnectionInvoker +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionProxy.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionProxy.html new file mode 100644 index 0000000..9f736e2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionProxy.html @@ -0,0 +1,173 @@ + + + + + + +Uses of Class mx4j.remote.rmi.RMIConnectionProxy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.rmi.RMIConnectionProxy

+
+ + + + + + + + + +
+Packages that use RMIConnectionProxy
mx4j.remote.rmi  
+  +

+ + + + + +
+Uses of RMIConnectionProxy in mx4j.remote.rmi
+  +

+ + + + + + + + + +
Subclasses of RMIConnectionProxy in mx4j.remote.rmi
+ classRMIConnectionSubjectInvoker + +
+          An RMIConnection proxy that wraps the call into a Subject.doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext) invocation, + in order to execute the code under subject-based security, and to perform subject delegation.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionSubjectInvoker.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionSubjectInvoker.html new file mode 100644 index 0000000..dcac272 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIConnectionSubjectInvoker.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.rmi.RMIConnectionSubjectInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.rmi.RMIConnectionSubjectInvoker

+
+No usage of mx4j.remote.rmi.RMIConnectionSubjectInvoker +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIHeartBeat.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIHeartBeat.html new file mode 100644 index 0000000..705233b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIHeartBeat.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.rmi.RMIHeartBeat (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.rmi.RMIHeartBeat

+
+No usage of mx4j.remote.rmi.RMIHeartBeat +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIRemoteNotificationClientHandler.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIRemoteNotificationClientHandler.html new file mode 100644 index 0000000..61d80fe --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/class-use/RMIRemoteNotificationClientHandler.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.remote.rmi.RMIRemoteNotificationClientHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.remote.rmi.RMIRemoteNotificationClientHandler

+
+No usage of mx4j.remote.rmi.RMIRemoteNotificationClientHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-frame.html new file mode 100644 index 0000000..3a35789 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-frame.html @@ -0,0 +1,48 @@ + + + + + + +mx4j.remote.rmi (MX4J API) + + + + + + + + + + + +mx4j.remote.rmi + + + + +
+Classes  + +
+ClientExceptionCatcher +
+ClientInvoker +
+ClientUnmarshaller +
+Marshaller +
+RMIConnectionInvoker +
+RMIConnectionProxy +
+RMIConnectionSubjectInvoker +
+RMIHeartBeat +
+RMIRemoteNotificationClientHandler
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-summary.html new file mode 100644 index 0000000..f79d4d9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-summary.html @@ -0,0 +1,185 @@ + + + + + + +mx4j.remote.rmi (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.remote.rmi +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
ClientExceptionCatcher 
ClientInvokerAn MBeanServerConnection that "converts" the MBeanServerConnection calls to RMIConnection calls, + performing wrapping of parameters and/or the needed actions.
ClientUnmarshallerAn MBeanServerConnection proxy that performs the setting of the appropriate context classloader + to allow classloading of classes sent by the server but not known to the client, in methods like + MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String), MBeanServerConnection.invoke(javax.management.ObjectName, java.lang.String, java.lang.Object[], java.lang.String[]) and so on.
MarshallerIMPORTANT: see RMIMarshaller
RMIConnectionInvokerAn RMIConnection that "converts" remote calls to MBeanServer calls, + performing unwrapping of parameters and/or the needed actions.
RMIConnectionProxyBase class for RMIConnection dynamic proxies.
RMIConnectionSubjectInvokerAn RMIConnection proxy that wraps the call into a Subject.doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext) invocation, + in order to execute the code under subject-based security, and to perform subject delegation.
RMIHeartBeat 
RMIRemoteNotificationClientHandlerRMI-specific RemoteNotificationClientHandler.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-tree.html new file mode 100644 index 0000000..9b2305e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-tree.html @@ -0,0 +1,159 @@ + + + + + + +mx4j.remote.rmi Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.remote.rmi +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-use.html b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-use.html new file mode 100644 index 0000000..23d092b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/remote/rmi/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.remote.rmi (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.remote.rmi

+
+ + + + + + + + + +
+Packages that use mx4j.remote.rmi
mx4j.remote.rmi  
+  +

+ + + + + + + + +
+Classes in mx4j.remote.rmi used by mx4j.remote.rmi
RMIConnectionProxy + +
+          Base class for RMIConnection dynamic proxies.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/BCELMBeanInvoker.html b/mx4j-3.0.2/docs/api/mx4j/server/BCELMBeanInvoker.html new file mode 100644 index 0000000..4e51bf1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/BCELMBeanInvoker.html @@ -0,0 +1,383 @@ + + + + + + +BCELMBeanInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class BCELMBeanInvoker

+
+java.lang.Object
+  extended bymx4j.server.ReflectionMBeanInvoker
+      extended bymx4j.server.CachingReflectionMBeanInvoker
+          extended bymx4j.server.BCELMBeanInvoker
+
+
+
All Implemented Interfaces:
MBeanInvoker
+
+
+
+
public class BCELMBeanInvoker
extends CachingReflectionMBeanInvoker
+ +

+MBeanInvoker that generates on-the-fly implementations to call standard MBeans directly, instead of using reflection. +
+ It uses the BCEL to generate the required bytecode on-the-fly. + The generated class is named "mx4j.server.BCELMBeanInvokerGenerated", and it's loaded into the JVM by a different + classloader for each MBean. This classloader has the MBean classloader as parent.
+ Below is an example of the generated code; beware that the management interface and all parameter's classes must be + public, otherwise an IllegalAccessError is thrown and the invocation falls back to use reflection (but with a significant + overhead - throwing an exception is expensive). +

+ public interface ServiceMBean
+ {
+    public void start();
+    public Collection getServices(ServiceSelector selector);
+ }
+ 

+ public class BCELMBeanInvokerGenerated extends BCELMBeanInvoker + { + protected Object invokeImpl(MBeanMetaData metadata, String method, String[] signature, Object[] args) + throws Throwable + { + if (method.equals("start") && args.length == 0) + { + try + { + ((ServiceMBean)metadata.mbean).start(); + return null; + } + catch (ClassCastException x) {} + catch (IllegalAccessError x) {} + } + else if (method.equals("getServices") && args.length == 1) + { + try + { + return ((ServiceMBean)metadata.mbean).getServices((ServiceSelector)args[0]); + } + catch (ClassCastException x) {} + catch (IllegalAccessError x) {} + } + return super.invokeImpl(metadata, method, signature, args); + } + } +

+

+ +

+

+
Version:
+
$Revision: 1.14 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.server.ReflectionMBeanInvoker
EMPTY_ARGS, EMPTY_PARAMS
+  + + + + + + + + + + + +
+Constructor Summary
+protected BCELMBeanInvoker() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static MBeanInvokercreate(MBeanMetaData metadata) + +
+          Creates a new MBeanInvoker created on-the-fly by using BCEL.
+protected  java.lang.ObjectinvokeImpl(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature, + java.lang.Object[] args) + +
+          Performs the actual invocation of the MBean's method.
+ + + + + + + +
Methods inherited from class mx4j.server.CachingReflectionMBeanInvoker
getMethodForAttribute, getStandardAttributeInfo, getStandardManagementMethod, getStandardOperationInfo
+ + + + + + + +
Methods inherited from class mx4j.server.ReflectionMBeanInvoker
doInvoke, getAttribute, invoke, setAttribute
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+BCELMBeanInvoker

+
+protected BCELMBeanInvoker()
+
+
+ + + + + + + + +
+Method Detail
+ +

+create

+
+public static MBeanInvoker create(MBeanMetaData metadata)
+
+
Creates a new MBeanInvoker created on-the-fly by using BCEL. + It must be synchronized since BCEL is not thread safe, and uses static variables + (refer to org.apache.bcel.generic.Type.getArgumentTypes(...) for further details) +

+

+
+
+
+
+ +

+invokeImpl

+
+protected java.lang.Object invokeImpl(MBeanMetaData metadata,
+                                      java.lang.String method,
+                                      java.lang.String[] signature,
+                                      java.lang.Object[] args)
+                               throws java.lang.Throwable
+
+
Description copied from class: ReflectionMBeanInvoker
+
Performs the actual invocation of the MBean's method. + Exceptions thrown by the MBean's methods should not be catched, since ReflectionMBeanInvoker.doInvoke(mx4j.server.MBeanMetaData, java.lang.String, java.lang.String[], java.lang.Object[]) + takes care of converting them to JMX exceptions. +

+

+
Overrides:
invokeImpl in class ReflectionMBeanInvoker
+
+
+ +
Throws: +
java.lang.Throwable
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/CachingReflectionMBeanInvoker.html b/mx4j-3.0.2/docs/api/mx4j/server/CachingReflectionMBeanInvoker.html new file mode 100644 index 0000000..c96192e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/CachingReflectionMBeanInvoker.html @@ -0,0 +1,395 @@ + + + + + + +CachingReflectionMBeanInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class CachingReflectionMBeanInvoker

+
+java.lang.Object
+  extended bymx4j.server.ReflectionMBeanInvoker
+      extended bymx4j.server.CachingReflectionMBeanInvoker
+
+
+
All Implemented Interfaces:
MBeanInvoker
+
+
+
Direct Known Subclasses:
BCELMBeanInvoker
+
+
+
+
public class CachingReflectionMBeanInvoker
extends ReflectionMBeanInvoker
+ +

+Caching MBeanInvoker that uses reflection to invoke on MBean instances. + Attributes and operations lookup is cached to speedup invocations. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.server.ReflectionMBeanInvoker
EMPTY_ARGS, EMPTY_PARAMS
+  + + + + + + + + + + +
+Constructor Summary
CachingReflectionMBeanInvoker() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.StringgetMethodForAttribute(javax.management.MBeanAttributeInfo attribute, + boolean getter) + +
+          Returns the method name for the given attribute.
+protected  javax.management.MBeanAttributeInfogetStandardAttributeInfo(MBeanMetaData metadata, + java.lang.String attribute, + boolean forWrite) + +
+          Returns the MBeanAttributeInfo for the given attribute, or null if the attribute + is not a management attribute.
+protected  java.lang.reflect.MethodgetStandardManagementMethod(MBeanMetaData metadata, + java.lang.String name, + java.lang.String[] signature) + +
+          Returns a java.lang.reflect.Method object for the given method name and signature.
+protected  javax.management.MBeanOperationInfogetStandardOperationInfo(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature) + +
+          Returns the MBeanOperationInfo for the given operation, or null if the operation + is not a management operation.
+ + + + + + + +
Methods inherited from class mx4j.server.ReflectionMBeanInvoker
doInvoke, getAttribute, invoke, invokeImpl, setAttribute
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CachingReflectionMBeanInvoker

+
+public CachingReflectionMBeanInvoker()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getStandardOperationInfo

+
+protected javax.management.MBeanOperationInfo getStandardOperationInfo(MBeanMetaData metadata,
+                                                                       java.lang.String method,
+                                                                       java.lang.String[] signature)
+
+
Description copied from class: ReflectionMBeanInvoker
+
Returns the MBeanOperationInfo for the given operation, or null if the operation + is not a management operation. +

+

+
Overrides:
getStandardOperationInfo in class ReflectionMBeanInvoker
+
+
+
+
+
+
+ +

+getStandardAttributeInfo

+
+protected javax.management.MBeanAttributeInfo getStandardAttributeInfo(MBeanMetaData metadata,
+                                                                       java.lang.String attribute,
+                                                                       boolean forWrite)
+
+
Description copied from class: ReflectionMBeanInvoker
+
Returns the MBeanAttributeInfo for the given attribute, or null if the attribute + is not a management attribute. +

+

+
Overrides:
getStandardAttributeInfo in class ReflectionMBeanInvoker
+
+
+
+
+
+
+ +

+getMethodForAttribute

+
+protected java.lang.String getMethodForAttribute(javax.management.MBeanAttributeInfo attribute,
+                                                 boolean getter)
+
+
Description copied from class: ReflectionMBeanInvoker
+
Returns the method name for the given attribute. +

+

+
Overrides:
getMethodForAttribute in class ReflectionMBeanInvoker
+
+
+
+
+
+
+ +

+getStandardManagementMethod

+
+protected java.lang.reflect.Method getStandardManagementMethod(MBeanMetaData metadata,
+                                                               java.lang.String name,
+                                                               java.lang.String[] signature)
+                                                        throws javax.management.ReflectionException
+
+
Description copied from class: ReflectionMBeanInvoker
+
Returns a java.lang.reflect.Method object for the given method name and signature. +

+

+
Overrides:
getStandardManagementMethod in class ReflectionMBeanInvoker
+
+
+ +
Throws: +
javax.management.ReflectionException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/ChainedMBeanServer.html b/mx4j-3.0.2/docs/api/mx4j/server/ChainedMBeanServer.html new file mode 100644 index 0000000..caf5a69 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/ChainedMBeanServer.html @@ -0,0 +1,1377 @@ + + + + + + +ChainedMBeanServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class ChainedMBeanServer

+
+java.lang.Object
+  extended bymx4j.server.ChainedMBeanServer
+
+
+
All Implemented Interfaces:
javax.management.MBeanServer, javax.management.MBeanServerConnection
+
+
+
+
public class ChainedMBeanServer
extends java.lang.Object
implements javax.management.MBeanServer
+ +

+Base class for chained MBeanServers. + By default this class delegates all method calls to the nested MBeanServer. + Subclass it to add behavior to one or more (or all) methods. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Constructor Summary
ChainedMBeanServer() + +
+          Creates a new ChainedMBeanServer that will delegate to an MBeanServer specified + using setMBeanServer(javax.management.MBeanServer)
ChainedMBeanServer(javax.management.MBeanServer server) + +
+          Creates a new ChainedMBeanServer that delegates to the specified MBeanServer.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidaddNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + javax.management.ObjectName loaderName) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + javax.management.ObjectName loaderName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ java.io.ObjectInputStreamdeserialize(javax.management.ObjectName objectName, + byte[] bytes) + +
+           
+ java.io.ObjectInputStreamdeserialize(java.lang.String className, + byte[] bytes) + +
+           
+ java.io.ObjectInputStreamdeserialize(java.lang.String className, + javax.management.ObjectName loaderName, + byte[] bytes) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName objectName, + java.lang.String attribute) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName objectName, + java.lang.String[] attributes) + +
+           
+ java.lang.ClassLoadergetClassLoader(javax.management.ObjectName loaderName) + +
+           
+ java.lang.ClassLoadergetClassLoaderFor(javax.management.ObjectName mbeanName) + +
+           
+ javax.management.loading.ClassLoaderRepositorygetClassLoaderRepository() + +
+           
+ java.lang.StringgetDefaultDomain() + +
+           
+ java.lang.String[]getDomains() + +
+           
+ java.lang.IntegergetMBeanCount() + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName objectName) + +
+           
+protected  javax.management.MBeanServergetMBeanServer() + +
+          Returns the nested MBeanServer
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName objectName) + +
+           
+ java.lang.Objectinstantiate(java.lang.String className) + +
+           
+ java.lang.Objectinstantiate(java.lang.String className, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ java.lang.Objectinstantiate(java.lang.String className, + javax.management.ObjectName loaderName) + +
+           
+ java.lang.Objectinstantiate(java.lang.String className, + javax.management.ObjectName loaderName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName objectName, + java.lang.String methodName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName objectName, + java.lang.String className) + +
+           
+ booleanisRegistered(javax.management.ObjectName objectname) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName patternName, + javax.management.QueryExp filter) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName patternName, + javax.management.QueryExp filter) + +
+           
+ javax.management.ObjectInstanceregisterMBean(java.lang.Object mbean, + javax.management.ObjectName objectName) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidsetAttribute(javax.management.ObjectName objectName, + javax.management.Attribute attribute) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName objectName, + javax.management.AttributeList attributes) + +
+           
+protected  voidsetMBeanServer(javax.management.MBeanServer server) + +
+           
+ voidunregisterMBean(javax.management.ObjectName objectName) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ChainedMBeanServer

+
+public ChainedMBeanServer()
+
+
Creates a new ChainedMBeanServer that will delegate to an MBeanServer specified + using setMBeanServer(javax.management.MBeanServer) +

+

+
+ +

+ChainedMBeanServer

+
+public ChainedMBeanServer(javax.management.MBeanServer server)
+
+
Creates a new ChainedMBeanServer that delegates to the specified MBeanServer. +

+

+ + + + + + + + +
+Method Detail
+ +

+getMBeanServer

+
+protected javax.management.MBeanServer getMBeanServer()
+
+
Returns the nested MBeanServer +

+

+
+
+
+
+
+
+
+ +

+setMBeanServer

+
+protected void setMBeanServer(javax.management.MBeanServer server)
+
+
+
+
+
+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName observed,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
addNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName observed,
+                                    javax.management.ObjectName listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
addNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   java.lang.Object[] args,
+                                                   java.lang.String[] parameters)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   javax.management.ObjectName loaderName)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object[] args,
+                                                   java.lang.String[] parameters)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException
+
+
+
+ +

+deserialize

+
+public java.io.ObjectInputStream deserialize(java.lang.String className,
+                                             byte[] bytes)
+                                      throws javax.management.OperationsException,
+                                             javax.management.ReflectionException
+
+
+
Specified by:
deserialize in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.OperationsException +
javax.management.ReflectionException
+
+
+
+ +

+deserialize

+
+public java.io.ObjectInputStream deserialize(java.lang.String className,
+                                             javax.management.ObjectName loaderName,
+                                             byte[] bytes)
+                                      throws javax.management.InstanceNotFoundException,
+                                             javax.management.OperationsException,
+                                             javax.management.ReflectionException
+
+
+
Specified by:
deserialize in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.OperationsException +
javax.management.ReflectionException
+
+
+
+ +

+deserialize

+
+public java.io.ObjectInputStream deserialize(javax.management.ObjectName objectName,
+                                             byte[] bytes)
+                                      throws javax.management.InstanceNotFoundException,
+                                             javax.management.OperationsException
+
+
+
Specified by:
deserialize in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.OperationsException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName objectName,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException
+
+
+
Specified by:
getAttribute in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName objectName,
+                                                    java.lang.String[] attributes)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException
+
+
+
Specified by:
getAttributes in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain()
+
+
+
Specified by:
getDefaultDomain in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains()
+
+
+
Specified by:
getDomains in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount()
+
+
+
Specified by:
getMBeanCount in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName objectName)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException
+
+
+
Specified by:
getMBeanInfo in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName objectName)
+                                                  throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
getObjectInstance in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+instantiate

+
+public java.lang.Object instantiate(java.lang.String className)
+                             throws javax.management.ReflectionException,
+                                    javax.management.MBeanException
+
+
+
Specified by:
instantiate in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException
+
+
+
+ +

+instantiate

+
+public java.lang.Object instantiate(java.lang.String className,
+                                    java.lang.Object[] args,
+                                    java.lang.String[] parameters)
+                             throws javax.management.ReflectionException,
+                                    javax.management.MBeanException
+
+
+
Specified by:
instantiate in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException
+
+
+
+ +

+instantiate

+
+public java.lang.Object instantiate(java.lang.String className,
+                                    javax.management.ObjectName loaderName)
+                             throws javax.management.ReflectionException,
+                                    javax.management.MBeanException,
+                                    javax.management.InstanceNotFoundException
+
+
+
Specified by:
instantiate in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException +
javax.management.InstanceNotFoundException
+
+
+
+ +

+instantiate

+
+public java.lang.Object instantiate(java.lang.String className,
+                                    javax.management.ObjectName loaderName,
+                                    java.lang.Object[] args,
+                                    java.lang.String[] parameters)
+                             throws javax.management.ReflectionException,
+                                    javax.management.MBeanException,
+                                    javax.management.InstanceNotFoundException
+
+
+
Specified by:
instantiate in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException +
javax.management.InstanceNotFoundException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName objectName,
+                               java.lang.String methodName,
+                               java.lang.Object[] args,
+                               java.lang.String[] parameters)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
+
Specified by:
invoke in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName objectName,
+                            java.lang.String className)
+                     throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
isInstanceOf in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName objectname)
+
+
+
Specified by:
isRegistered in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName patternName,
+                                 javax.management.QueryExp filter)
+
+
+
Specified by:
queryMBeans in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName patternName,
+                                javax.management.QueryExp filter)
+
+
+
Specified by:
queryNames in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+registerMBean

+
+public javax.management.ObjectInstance registerMBean(java.lang.Object mbean,
+                                                     javax.management.ObjectName objectName)
+                                              throws javax.management.InstanceAlreadyExistsException,
+                                                     javax.management.MBeanRegistrationException,
+                                                     javax.management.NotCompliantMBeanException
+
+
+
Specified by:
registerMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.NotCompliantMBeanException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.ObjectName listener)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.ObjectName listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName objectName,
+                         javax.management.Attribute attribute)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException
+
+
+
Specified by:
setAttribute in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName objectName,
+                                                    javax.management.AttributeList attributes)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException
+
+
+
Specified by:
setAttributes in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName objectName)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException
+
+
+
Specified by:
unregisterMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException
+
+
+
+ +

+getClassLoaderFor

+
+public java.lang.ClassLoader getClassLoaderFor(javax.management.ObjectName mbeanName)
+                                        throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
getClassLoaderFor in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+getClassLoader

+
+public java.lang.ClassLoader getClassLoader(javax.management.ObjectName loaderName)
+                                     throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
getClassLoader in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+getClassLoaderRepository

+
+public javax.management.loading.ClassLoaderRepository getClassLoaderRepository()
+
+
+
Specified by:
getClassLoaderRepository in interface javax.management.MBeanServer
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/ChainedMBeanServerBuilder.html b/mx4j-3.0.2/docs/api/mx4j/server/ChainedMBeanServerBuilder.html new file mode 100644 index 0000000..f81e828 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/ChainedMBeanServerBuilder.html @@ -0,0 +1,350 @@ + + + + + + +ChainedMBeanServerBuilder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class ChainedMBeanServerBuilder

+
+java.lang.Object
+  extended byjavax.management.MBeanServerBuilder
+      extended bymx4j.server.ChainedMBeanServerBuilder
+
+
+
+
public class ChainedMBeanServerBuilder
extends javax.management.MBeanServerBuilder
+ +

+Base class for chained MBeanServerBuilders.
+ By default this class delegates all method calls to the nested MBeanServerBuilder.
+ See the MX4J documentation on how to use correctly this class.
+
+ Example implementation: +

+ public class LoggingBuilder extends ChainedMBeanServerBuilder
+ {
+    public LoggingBuilder()
+    {
+       super(new MX4JMBeanServerBuilder());
+    }
+ 

+ public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate) + { + LoggingMBeanServer external = new LoggingMBeanServer(); + MBeanServer nested = getBuilder().newMBeanServer(defaultDomain, outer == null ? external : outer, delegate); + external.setMBeanServer(nested); + return external; + } + } +

+ public class LoggingMBeanServer extends ChainedMBeanServer + { + protected void setMBeanServer(MBeanServer server) + { + super.setMBeanServer(server); + } +

+ public Object getAttribute(ObjectName objectName, String attribute) + throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException + { + Object value = super.getAttribute(objectName, attribute); + System.out.println("Value is: " + value); + return value; + } +

+ ... + } +

+

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ChainedMBeanServerBuilder(javax.management.MBeanServerBuilder builder) + +
+          Creates a new chained MBeanServerBuilder
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  javax.management.MBeanServerBuildergetMBeanServerBuilder() + +
+          Returns the chained MBeanServerBuilder this object delegates to.
+ javax.management.MBeanServernewMBeanServer(java.lang.String defaultDomain, + javax.management.MBeanServer outer, + javax.management.MBeanServerDelegate delegate) + +
+          Forwards the call to the chained builder.
+ javax.management.MBeanServerDelegatenewMBeanServerDelegate() + +
+          Forwards the call to the chained builder.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ChainedMBeanServerBuilder

+
+public ChainedMBeanServerBuilder(javax.management.MBeanServerBuilder builder)
+
+
Creates a new chained MBeanServerBuilder +

+

Parameters:
builder - The MBeanServerBuilder this object delegates to.
+ + + + + + + + +
+Method Detail
+ +

+newMBeanServerDelegate

+
+public javax.management.MBeanServerDelegate newMBeanServerDelegate()
+
+
Forwards the call to the chained builder. +

+

+
See Also:
MBeanServerBuilder.newMBeanServerDelegate()
+
+
+
+ +

+newMBeanServer

+
+public javax.management.MBeanServer newMBeanServer(java.lang.String defaultDomain,
+                                                   javax.management.MBeanServer outer,
+                                                   javax.management.MBeanServerDelegate delegate)
+
+
Forwards the call to the chained builder. +

+

+
See Also:
MBeanServerBuilder.newMBeanServer(java.lang.String, javax.management.MBeanServer, javax.management.MBeanServerDelegate)
+
+
+
+ +

+getMBeanServerBuilder

+
+protected javax.management.MBeanServerBuilder getMBeanServerBuilder()
+
+
Returns the chained MBeanServerBuilder this object delegates to. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/DefaultClassLoaderRepository.html b/mx4j-3.0.2/docs/api/mx4j/server/DefaultClassLoaderRepository.html new file mode 100644 index 0000000..125850a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/DefaultClassLoaderRepository.html @@ -0,0 +1,403 @@ + + + + + + +DefaultClassLoaderRepository (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class DefaultClassLoaderRepository

+
+java.lang.Object
+  extended bymx4j.server.ModifiableClassLoaderRepository
+      extended bymx4j.server.DefaultClassLoaderRepository
+
+
+
All Implemented Interfaces:
javax.management.loading.ClassLoaderRepository
+
+
+
+
public class DefaultClassLoaderRepository
extends ModifiableClassLoaderRepository
+ +

+Default implementation of a ClassLoaderRepository +

+ +

+

+
Version:
+
$Revision: 1.8 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultClassLoaderRepository() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidaddClassLoader(java.lang.ClassLoader cl) + +
+          Adds, if does not already exist, the specified ClassLoader to this repository.
+protected  java.util.ArrayListcloneClassLoaders() + +
+           
+protected  java.util.ArrayListgetClassLoaders() + +
+           
+ java.lang.ClassloadClass(java.lang.String className) + +
+           
+ java.lang.ClassloadClassBefore(java.lang.ClassLoader loader, + java.lang.String className) + +
+           
+ java.lang.ClassloadClassWithout(java.lang.ClassLoader loader, + java.lang.String className) + +
+           
+protected  voidremoveClassLoader(java.lang.ClassLoader cl) + +
+          Removes, if exists, the specified ClassLoader from this repository.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultClassLoaderRepository

+
+public DefaultClassLoaderRepository()
+
+
+ + + + + + + + +
+Method Detail
+ +

+loadClass

+
+public java.lang.Class loadClass(java.lang.String className)
+                          throws java.lang.ClassNotFoundException
+
+
+ +
Throws: +
java.lang.ClassNotFoundException
+
+
+
+ +

+loadClassWithout

+
+public java.lang.Class loadClassWithout(java.lang.ClassLoader loader,
+                                        java.lang.String className)
+                                 throws java.lang.ClassNotFoundException
+
+
+ +
Throws: +
java.lang.ClassNotFoundException
+
+
+
+ +

+loadClassBefore

+
+public java.lang.Class loadClassBefore(java.lang.ClassLoader loader,
+                                       java.lang.String className)
+                                throws java.lang.ClassNotFoundException
+
+
+ +
Throws: +
java.lang.ClassNotFoundException
+
+
+
+ +

+addClassLoader

+
+protected void addClassLoader(java.lang.ClassLoader cl)
+
+
Description copied from class: ModifiableClassLoaderRepository
+
Adds, if does not already exist, the specified ClassLoader to this repository. +

+

+
Specified by:
addClassLoader in class ModifiableClassLoaderRepository
+
+
+
Parameters:
cl - The classloader to add
See Also:
ModifiableClassLoaderRepository.removeClassLoader(java.lang.ClassLoader)
+
+
+
+ +

+removeClassLoader

+
+protected void removeClassLoader(java.lang.ClassLoader cl)
+
+
Description copied from class: ModifiableClassLoaderRepository
+
Removes, if exists, the specified ClassLoader from this repository. +

+

+
Specified by:
removeClassLoader in class ModifiableClassLoaderRepository
+
+
+
Parameters:
cl - The classloader to remove
See Also:
ModifiableClassLoaderRepository.addClassLoader(java.lang.ClassLoader)
+
+
+
+ +

+cloneClassLoaders

+
+protected java.util.ArrayList cloneClassLoaders()
+
+
+
+
+
+
+ +

+getClassLoaders

+
+protected java.util.ArrayList getClassLoaders()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/MBeanIntrospector.html b/mx4j-3.0.2/docs/api/mx4j/server/MBeanIntrospector.html new file mode 100644 index 0000000..ffff33e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/MBeanIntrospector.html @@ -0,0 +1,302 @@ + + + + + + +MBeanIntrospector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class MBeanIntrospector

+
+java.lang.Object
+  extended bymx4j.server.MBeanIntrospector
+
+
+
+
public class MBeanIntrospector
extends java.lang.Object
+ +

+Introspector for MBeans.

+ Main purposes of this class are: +

+

+ The following system properties are used to control this class' behavior: +

    +
  • mx4j.strict.mbean.interface, if set to 'no' then are treated as standard MBeans also classes that implement + management interfaces beloging to different packages or that are inner classes; otherwise are treated as MBeans + only classes that implement interfaces whose name if the fully qualified name of the MBean class + "MBean" +
  • mx4j.mbean.invoker, if set to the qualified name of an implementation of the MBeanInvoker interface, + then an instance of the class will be used to invoke methods on standard MBeans. By default the generated-on-the-fly + MBeanInvoker is used; to revert to the version that uses reflection, for example, + use mx4j.mbean.invoker = mx4j.server.CachingReflectionMBeanInvoker +
+

+ +

+

+
Version:
+
$Revision: 1.34 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MBeanIntrospector() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidintrospect(MBeanMetaData metadata) + +
+          Introspect the given mbean, storing the results in the given metadata.
+ booleanisMBeanCompliant(MBeanMetaData metadata) + +
+          Returns whether the given already introspected metadata is compliant.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanIntrospector

+
+public MBeanIntrospector()
+
+
+ + + + + + + + +
+Method Detail
+ +

+introspect

+
+public void introspect(MBeanMetaData metadata)
+
+
Introspect the given mbean, storing the results in the given metadata. + It expects that the mbean field and the classloader field are not null +

+

+
See Also:
isMBeanCompliant(mx4j.server.MBeanMetaData)
+
+
+
+ +

+isMBeanCompliant

+
+public boolean isMBeanCompliant(MBeanMetaData metadata)
+
+
Returns whether the given already introspected metadata is compliant. + Must be called after introspect(mx4j.server.MBeanMetaData) +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/MBeanInvoker.html b/mx4j-3.0.2/docs/api/mx4j/server/MBeanInvoker.html new file mode 100644 index 0000000..58eb524 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/MBeanInvoker.html @@ -0,0 +1,303 @@ + + + + + + +MBeanInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Interface MBeanInvoker

+
+
All Known Implementing Classes:
ReflectionMBeanInvoker
+
+
+
+
public interface MBeanInvoker
+ +

+Invokes methods on standard MBeans.
+ Actually three implementations are available: two that uses reflection and one that generates on-the-fly a customized + MBeanInvoker per each MBean and that is implemented with direct calls via bytecode generation.
+ The default is the direct call version, that uses the BCEL to generate + the required bytecode on-the-fly.
+ In the future may be the starting point for MBean interceptors. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.ObjectgetAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+          Returns the value of the specified attribute.
+ java.lang.Objectinvoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature, + java.lang.Object[] args) + +
+          Invokes the specified operation on the MBean instance
+ voidsetAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+          Sets the value of the specified attribute.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+invoke

+
+public java.lang.Object invoke(MBeanMetaData metadata,
+                               java.lang.String method,
+                               java.lang.String[] signature,
+                               java.lang.Object[] args)
+                        throws javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
Invokes the specified operation on the MBean instance +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(MBeanMetaData metadata,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.ReflectionException
+
+
Returns the value of the specified attribute. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(MBeanMetaData metadata,
+                         javax.management.Attribute attribute)
+                  throws javax.management.MBeanException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.ReflectionException
+
+
Sets the value of the specified attribute. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.ReflectionException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/MBeanMetaData.Factory.html b/mx4j-3.0.2/docs/api/mx4j/server/MBeanMetaData.Factory.html new file mode 100644 index 0000000..1eed637 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/MBeanMetaData.Factory.html @@ -0,0 +1,261 @@ + + + + + + +MBeanMetaData.Factory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class MBeanMetaData.Factory

+
+java.lang.Object
+  extended bymx4j.server.MBeanMetaData.Factory
+
+
+
Enclosing class:
MBeanMetaData
+
+
+
+
public static class MBeanMetaData.Factory
extends java.lang.Object
+ +

+Factory class that creates instance of the MBeanMetaData interface. + The default implementation is MX4JMBeanMetaData, but it can be overridden + by setting the system property defined by MX4JSystemKeys.MX4J_MBEAN_METADATA. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MBeanMetaData.Factory() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+static MBeanMetaDatacreate() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanMetaData.Factory

+
+public MBeanMetaData.Factory()
+
+
+ + + + + + + + +
+Method Detail
+ +

+create

+
+public static MBeanMetaData create()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/MBeanMetaData.html b/mx4j-3.0.2/docs/api/mx4j/server/MBeanMetaData.html new file mode 100644 index 0000000..bcbfabc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/MBeanMetaData.html @@ -0,0 +1,574 @@ + + + + + + +MBeanMetaData (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Interface MBeanMetaData

+
+
+
public interface MBeanMetaData
+ +

+Objects of this class hold metadata information about MBeans. +

+ +

+

+
Version:
+
$Revision: 1.8 $
+
See Also:
MBeanMetaData.Factory
+
+ +

+ + + + + + + + + + + +
+Nested Class Summary
+static classMBeanMetaData.Factory + +
+          Factory class that creates instance of the MBeanMetaData interface.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.ClassLoadergetClassLoader() + +
+          Returns the classloader for the MBean
+ java.lang.ObjectgetMBean() + +
+          Returns the MBean instance
+ javax.management.MBeanInfogetMBeanInfo() + +
+          Returns the MBeanInfo of the MBean
+ java.lang.ClassgetMBeanInterface() + +
+          Returns the management interface of the standard MBean
+ MBeanInvokergetMBeanInvoker() + +
+          Returns the MBeanInvoker of the standard MBean
+ javax.management.ObjectInstancegetObjectInstance() + +
+          Returns the ObjectInstance of the MBean
+ javax.management.ObjectNamegetObjectName() + +
+          Returns the ObjectName of the MBean
+ booleanisMBeanDynamic() + +
+          Returns whether the MBean is dynamic
+ booleanisMBeanStandard() + +
+          Returns whether the MBean is standard
+ voidsetClassLoader(java.lang.ClassLoader loader) + +
+          Sets the classloader for the MBean
+ voidsetMBean(java.lang.Object mbean) + +
+          Sets the MBean instance
+ voidsetMBeanDynamic(boolean value) + +
+          Sets whether the MBean is dynamic
+ voidsetMBeanInfo(javax.management.MBeanInfo info) + +
+          Sets the MBeanInfo of the MBean
+ voidsetMBeanInterface(java.lang.Class management) + +
+          Sets the management interface of the standard MBean
+ voidsetMBeanInvoker(MBeanInvoker invoker) + +
+          Sets the MBeanInvoker of the standard MBean
+ voidsetMBeanStandard(boolean value) + +
+          Sets whether the MBean is standard
+ voidsetObjectName(javax.management.ObjectName name) + +
+          Sets the ObjectName of the MBean
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setMBean

+
+public void setMBean(java.lang.Object mbean)
+
+
Sets the MBean instance +

+

+
See Also:
getMBean()
+
+
+
+ +

+getMBean

+
+public java.lang.Object getMBean()
+
+
Returns the MBean instance +

+

+
See Also:
setMBean(java.lang.Object)
+
+
+
+ +

+setClassLoader

+
+public void setClassLoader(java.lang.ClassLoader loader)
+
+
Sets the classloader for the MBean +

+

+
See Also:
getClassLoader()
+
+
+
+ +

+getClassLoader

+
+public java.lang.ClassLoader getClassLoader()
+
+
Returns the classloader for the MBean +

+

+
See Also:
setClassLoader(java.lang.ClassLoader)
+
+
+
+ +

+setObjectName

+
+public void setObjectName(javax.management.ObjectName name)
+
+
Sets the ObjectName of the MBean +

+

+
See Also:
getObjectName()
+
+
+
+ +

+getObjectName

+
+public javax.management.ObjectName getObjectName()
+
+
Returns the ObjectName of the MBean +

+

+
See Also:
setObjectName(javax.management.ObjectName)
+
+
+
+ +

+setMBeanInfo

+
+public void setMBeanInfo(javax.management.MBeanInfo info)
+
+
Sets the MBeanInfo of the MBean +

+

+
See Also:
getMBeanInfo()
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo()
+
+
Returns the MBeanInfo of the MBean +

+

+
See Also:
setMBeanInfo(javax.management.MBeanInfo)
+
+
+
+ +

+setMBeanInterface

+
+public void setMBeanInterface(java.lang.Class management)
+
+
Sets the management interface of the standard MBean +

+

+
See Also:
getMBeanInterface()
+
+
+
+ +

+getMBeanInterface

+
+public java.lang.Class getMBeanInterface()
+
+
Returns the management interface of the standard MBean +

+

+
See Also:
setMBeanInterface(java.lang.Class)
+
+
+
+ +

+setMBeanStandard

+
+public void setMBeanStandard(boolean value)
+
+
Sets whether the MBean is standard +

+

+
See Also:
isMBeanStandard()
+
+
+
+ +

+isMBeanStandard

+
+public boolean isMBeanStandard()
+
+
Returns whether the MBean is standard +

+

+
See Also:
setMBeanStandard(boolean)
+
+
+
+ +

+setMBeanDynamic

+
+public void setMBeanDynamic(boolean value)
+
+
Sets whether the MBean is dynamic +

+

+
See Also:
isMBeanDynamic()
+
+
+
+ +

+isMBeanDynamic

+
+public boolean isMBeanDynamic()
+
+
Returns whether the MBean is dynamic +

+

+
See Also:
setMBeanDynamic(boolean)
+
+
+
+ +

+setMBeanInvoker

+
+public void setMBeanInvoker(MBeanInvoker invoker)
+
+
Sets the MBeanInvoker of the standard MBean +

+

+
See Also:
getMBeanInvoker()
+
+
+
+ +

+getMBeanInvoker

+
+public MBeanInvoker getMBeanInvoker()
+
+
Returns the MBeanInvoker of the standard MBean +

+

+
See Also:
getMBeanInvoker()
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance()
+
+
Returns the ObjectInstance of the MBean +

+

+
See Also:
getMBeanInfo(), +getObjectName()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/MBeanRepository.html b/mx4j-3.0.2/docs/api/mx4j/server/MBeanRepository.html new file mode 100644 index 0000000..2d59292 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/MBeanRepository.html @@ -0,0 +1,352 @@ + + + + + + +MBeanRepository (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Interface MBeanRepository

+
+
All Superinterfaces:
java.lang.Cloneable
+
+
+
+
public interface MBeanRepository
extends java.lang.Cloneable
+ +

+The MBeanServer implementation delegates to implementations of this interface the storage of registered MBeans.

+ All necessary synchronization code is taken care by the MBeanServer, so implementations can be coded without caring + of synchronization issues. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectclone() + +
+          Clones this MBean repository
+ MBeanMetaDataget(javax.management.ObjectName name) + +
+          Returns the metadata information associated with the given object name.
+ java.util.Iteratoriterator() + +
+          Returns an iterator on the metadata stored in this repository.
+ voidput(javax.management.ObjectName name, + MBeanMetaData metadata) + +
+          Inserts the given metadata associated with the given object name into this repository.
+ voidremove(javax.management.ObjectName name) + +
+          Removes the metadata associated with the given object name from this repository.
+ intsize() + +
+          Returns the size of this repository.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+get

+
+public MBeanMetaData get(javax.management.ObjectName name)
+
+
Returns the metadata information associated with the given object name. +

+

+
+
+
+
See Also:
put(javax.management.ObjectName, mx4j.server.MBeanMetaData)
+
+
+
+ +

+put

+
+public void put(javax.management.ObjectName name,
+                MBeanMetaData metadata)
+
+
Inserts the given metadata associated with the given object name into this repository. +

+

+
+
+
+
See Also:
get(javax.management.ObjectName)
+
+
+
+ +

+remove

+
+public void remove(javax.management.ObjectName name)
+
+
Removes the metadata associated with the given object name from this repository. +

+

+
+
+
+
+
+
+
+ +

+size

+
+public int size()
+
+
Returns the size of this repository. +

+

+
+
+
+
+
+
+
+ +

+iterator

+
+public java.util.Iterator iterator()
+
+
Returns an iterator on the metadata stored in this repository. +

+

+
+
+
+
+
+
+
+ +

+clone

+
+public java.lang.Object clone()
+
+
Clones this MBean repository +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServer.html b/mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServer.html new file mode 100644 index 0000000..558d28e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServer.html @@ -0,0 +1,1342 @@ + + + + + + +MX4JMBeanServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class MX4JMBeanServer

+
+java.lang.Object
+  extended bymx4j.server.MX4JMBeanServer
+
+
+
All Implemented Interfaces:
javax.management.MBeanServer, javax.management.MBeanServerConnection
+
+
+
+
public class MX4JMBeanServer
extends java.lang.Object
implements javax.management.MBeanServer
+ +

+The MX4J MBeanServer implementation.
+ The MBeanServer accomplishes these roles: +

    +
  • Returns information about the Agent +
  • Acts as a repository for MBeans +
  • Acts as an invoker, on behalf of the user, on MBeans +
+
+ The repository function is delegated to instances of MBeanRepository classes. + This class acts as a factory for MBeanRepository instances, that can be controlled via the system property + MX4JSystemKeys.MX4J_MBEANSERVER_REPOSITORY to the qualified name of the implementation class.
+

+ This class also acts as an invoker on MBeans. The architecture is interceptor-based, that is whenever you call + from a client an MBeanServer method that will end up to call the MBean instance, the call is dispatched to + the interceptor chain and eventually to the MBean.
+ The interceptors are configurable via the MBean MBeanServerInterceptorConfigurator. + When the call is about to arrive to the MBean instance, the last interceptor dispatches the call depending on + the MBean type: if the MBean is a dynamic MBean, the call is dispatched directly; if the MBean is a standard + MBean an MBeanInvoker is delegated to invoke on the MBean instance. +

+ +

+

+
Version:
+
$Revision: 1.31 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MX4JMBeanServer(java.lang.String defaultDomain, + javax.management.MBeanServer outer, + javax.management.MBeanServerDelegate delegate) + +
+          Create a new MBeanServer implementation with the specified default domain.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidaddNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + javax.management.ObjectName loaderName) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + javax.management.ObjectName loaderName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ java.io.ObjectInputStreamdeserialize(javax.management.ObjectName objectName, + byte[] bytes) + +
+           
+ java.io.ObjectInputStreamdeserialize(java.lang.String className, + byte[] bytes) + +
+           
+ java.io.ObjectInputStreamdeserialize(java.lang.String className, + javax.management.ObjectName loaderName, + byte[] bytes) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName objectName, + java.lang.String attribute) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName objectName, + java.lang.String[] attributes) + +
+           
+ java.lang.ClassLoadergetClassLoader(javax.management.ObjectName name) + +
+           
+ java.lang.ClassLoadergetClassLoaderFor(javax.management.ObjectName name) + +
+           
+ javax.management.loading.ClassLoaderRepositorygetClassLoaderRepository() + +
+          Returns the ClassLoaderRepository for this MBeanServer.
+ java.lang.StringgetDefaultDomain() + +
+           
+ java.lang.String[]getDomains() + +
+           
+ java.lang.IntegergetMBeanCount() + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName objectName) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName objectName) + +
+           
+ java.lang.Objectinstantiate(java.lang.String className) + +
+           
+ java.lang.Objectinstantiate(java.lang.String className, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ java.lang.Objectinstantiate(java.lang.String className, + javax.management.ObjectName loaderName) + +
+           
+ java.lang.Objectinstantiate(java.lang.String className, + javax.management.ObjectName loaderName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName objectName, + java.lang.String methodName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName objectName, + java.lang.String className) + +
+           
+ booleanisRegistered(javax.management.ObjectName objectName) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName patternName, + javax.management.QueryExp filter) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName patternName, + javax.management.QueryExp filter) + +
+           
+ javax.management.ObjectInstanceregisterMBean(java.lang.Object mbean, + javax.management.ObjectName objectName) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidsetAttribute(javax.management.ObjectName objectName, + javax.management.Attribute attribute) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName objectName, + javax.management.AttributeList attributes) + +
+           
+ voidunregisterMBean(javax.management.ObjectName objectName) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JMBeanServer

+
+public MX4JMBeanServer(java.lang.String defaultDomain,
+                       javax.management.MBeanServer outer,
+                       javax.management.MBeanServerDelegate delegate)
+
+
Create a new MBeanServer implementation with the specified default domain. + If the default domain is null, then the empty string is assumed. +

+

Parameters:
defaultDomain - The default domain to be used +
Throws: +
java.lang.SecurityException - if access is not granted to create an MBeanServer instance
+ + + + + + + + +
+Method Detail
+ +

+getClassLoaderRepository

+
+public javax.management.loading.ClassLoaderRepository getClassLoaderRepository()
+
+
Returns the ClassLoaderRepository for this MBeanServer. + When first the ClassLoaderRepository is created in the constructor, the system property + MX4JSystemKeys.MX4J_MBEANSERVER_CLASSLOADER_REPOSITORY is tested; + if it is non-null and defines a subclass of + ModifiableClassLoaderRepository, then that class is used instead of the default one. +

+

+
Specified by:
getClassLoaderRepository in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+getClassLoader

+
+public java.lang.ClassLoader getClassLoader(javax.management.ObjectName name)
+                                     throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
getClassLoader in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+getClassLoaderFor

+
+public java.lang.ClassLoader getClassLoaderFor(javax.management.ObjectName name)
+                                        throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
getClassLoaderFor in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+deserialize

+
+public java.io.ObjectInputStream deserialize(java.lang.String className,
+                                             javax.management.ObjectName loaderName,
+                                             byte[] bytes)
+                                      throws javax.management.InstanceNotFoundException,
+                                             javax.management.OperationsException,
+                                             javax.management.ReflectionException
+
+
+
Specified by:
deserialize in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.OperationsException +
javax.management.ReflectionException
+
+
+
+ +

+deserialize

+
+public java.io.ObjectInputStream deserialize(java.lang.String className,
+                                             byte[] bytes)
+                                      throws javax.management.OperationsException,
+                                             javax.management.ReflectionException
+
+
+
Specified by:
deserialize in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.OperationsException +
javax.management.ReflectionException
+
+
+
+ +

+deserialize

+
+public java.io.ObjectInputStream deserialize(javax.management.ObjectName objectName,
+                                             byte[] bytes)
+                                      throws javax.management.InstanceNotFoundException,
+                                             javax.management.OperationsException
+
+
+
Specified by:
deserialize in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.OperationsException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName observed,
+                                    javax.management.ObjectName listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
addNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName observed,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
addNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.ObjectName listener)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.ObjectName listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException
+
+
+
+ +

+instantiate

+
+public java.lang.Object instantiate(java.lang.String className)
+                             throws javax.management.ReflectionException,
+                                    javax.management.MBeanException
+
+
+
Specified by:
instantiate in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException
+
+
+
+ +

+instantiate

+
+public java.lang.Object instantiate(java.lang.String className,
+                                    java.lang.Object[] args,
+                                    java.lang.String[] parameters)
+                             throws javax.management.ReflectionException,
+                                    javax.management.MBeanException
+
+
+
Specified by:
instantiate in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException
+
+
+
+ +

+instantiate

+
+public java.lang.Object instantiate(java.lang.String className,
+                                    javax.management.ObjectName loaderName)
+                             throws javax.management.ReflectionException,
+                                    javax.management.MBeanException,
+                                    javax.management.InstanceNotFoundException
+
+
+
Specified by:
instantiate in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException +
javax.management.InstanceNotFoundException
+
+
+
+ +

+instantiate

+
+public java.lang.Object instantiate(java.lang.String className,
+                                    javax.management.ObjectName loaderName,
+                                    java.lang.Object[] args,
+                                    java.lang.String[] parameters)
+                             throws javax.management.ReflectionException,
+                                    javax.management.MBeanException,
+                                    javax.management.InstanceNotFoundException
+
+
+
Specified by:
instantiate in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException +
javax.management.InstanceNotFoundException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   java.lang.Object[] args,
+                                                   java.lang.String[] parameters)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   javax.management.ObjectName loaderName)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object[] args,
+                                                   java.lang.String[] parameters)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException
+
+
+
+ +

+registerMBean

+
+public javax.management.ObjectInstance registerMBean(java.lang.Object mbean,
+                                                     javax.management.ObjectName objectName)
+                                              throws javax.management.InstanceAlreadyExistsException,
+                                                     javax.management.MBeanRegistrationException,
+                                                     javax.management.NotCompliantMBeanException
+
+
+
Specified by:
registerMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.NotCompliantMBeanException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName objectName)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException
+
+
+
Specified by:
unregisterMBean in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName objectName,
+                                     java.lang.String attribute)
+                              throws javax.management.InstanceNotFoundException,
+                                     javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.ReflectionException
+
+
+
Specified by:
getAttribute in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName objectName,
+                         javax.management.Attribute attribute)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException
+
+
+
Specified by:
setAttribute in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName objectName,
+                                                    java.lang.String[] attributes)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException
+
+
+
Specified by:
getAttributes in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName objectName,
+                                                    javax.management.AttributeList attributes)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException
+
+
+
Specified by:
setAttributes in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName objectName,
+                               java.lang.String methodName,
+                               java.lang.Object[] args,
+                               java.lang.String[] parameters)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
+
Specified by:
invoke in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain()
+
+
+
Specified by:
getDefaultDomain in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains()
+
+
+
Specified by:
getDomains in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount()
+
+
+
Specified by:
getMBeanCount in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName objectName)
+
+
+
Specified by:
isRegistered in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName objectName)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException
+
+
+
Specified by:
getMBeanInfo in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName objectName)
+                                                  throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
getObjectInstance in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName objectName,
+                            java.lang.String className)
+                     throws javax.management.InstanceNotFoundException
+
+
+
Specified by:
isInstanceOf in interface javax.management.MBeanServer
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName patternName,
+                                 javax.management.QueryExp filter)
+
+
+
Specified by:
queryMBeans in interface javax.management.MBeanServer
+
+
+
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName patternName,
+                                javax.management.QueryExp filter)
+
+
+
Specified by:
queryNames in interface javax.management.MBeanServer
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServerBuilder.html b/mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServerBuilder.html new file mode 100644 index 0000000..70652ec --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServerBuilder.html @@ -0,0 +1,299 @@ + + + + + + +MX4JMBeanServerBuilder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class MX4JMBeanServerBuilder

+
+java.lang.Object
+  extended byjavax.management.MBeanServerBuilder
+      extended bymx4j.server.MX4JMBeanServerBuilder
+
+
+
+
public class MX4JMBeanServerBuilder
extends javax.management.MBeanServerBuilder
+ +

+

This class is responsible for creating new instances of MBeanServerDelegate + and MBeanServer. It creates instances from the implementation in the + mx4j.server package.

+

+

The MBeanServerFactory first creates the delegate, then it + creates the MBeanServer and provides a reference to the created delegate to it. + Note that the delegate passed to the MBeanServer might not be the instance returned + by this builder; for example, it could be a wrapper around it.

+

+ +

+

+
Version:
+
$Revision: 1.7 $
+
See Also:
MBeanServer, +MBeanServerFactory
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MX4JMBeanServerBuilder() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ javax.management.MBeanServernewMBeanServer(java.lang.String defaultDomain, + javax.management.MBeanServer outer, + javax.management.MBeanServerDelegate delegate) + +
+          Returns a new MX4JMBeanServer instance.
+ javax.management.MBeanServerDelegatenewMBeanServerDelegate() + +
+          Returns a new MX4JMBeanServerDelegate instance for a new MBeanServer.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JMBeanServerBuilder

+
+public MX4JMBeanServerBuilder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newMBeanServerDelegate

+
+public javax.management.MBeanServerDelegate newMBeanServerDelegate()
+
+
Returns a new MX4JMBeanServerDelegate instance for a new MBeanServer. +

+

+ +
Returns:
a new MX4JMBeanServerDelegate instance for a new MBeanServer.
+
+
+
+ +

+newMBeanServer

+
+public javax.management.MBeanServer newMBeanServer(java.lang.String defaultDomain,
+                                                   javax.management.MBeanServer outer,
+                                                   javax.management.MBeanServerDelegate delegate)
+
+
Returns a new MX4JMBeanServer instance. +

+

+
Parameters:
defaultDomain - the default domain name for the new server.
outer - the MBeanServer that is passed in calls to + MBeanRegistration.preRegister(javax.management.MBeanServer, javax.management.ObjectName).
delegate - the MBeanServerDelegate instance for the new server. +
Returns:
a new MX4JMBeanServer instance.
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServerDelegate.html b/mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServerDelegate.html new file mode 100644 index 0000000..747badf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/MX4JMBeanServerDelegate.html @@ -0,0 +1,311 @@ + + + + + + +MX4JMBeanServerDelegate (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class MX4JMBeanServerDelegate

+
+java.lang.Object
+  extended byjavax.management.MBeanServerDelegate
+      extended bymx4j.server.MX4JMBeanServerDelegate
+
+
+
All Implemented Interfaces:
javax.management.MBeanServerDelegateMBean, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
+
public class MX4JMBeanServerDelegate
extends javax.management.MBeanServerDelegate
+ +

+The MBeanServerDelegate subclass typical of the MX4J implementation. +

+ +

+

+
Version:
+
$Revision: 1.12 $
+
See Also:
MBeanServerBuilder
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MX4JMBeanServerDelegate() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetImplementationName() + +
+           
+ java.lang.StringgetImplementationVendor() + +
+           
+ java.lang.StringgetImplementationVersion() + +
+           
+ + + + + + + +
Methods inherited from class javax.management.MBeanServerDelegate
addNotificationListener, getMBeanServerId, getNotificationInfo, getSpecificationName, getSpecificationVendor, getSpecificationVersion, removeNotificationListener, removeNotificationListener, sendNotification
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MX4JMBeanServerDelegate

+
+public MX4JMBeanServerDelegate()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getImplementationName

+
+public java.lang.String getImplementationName()
+
+
+
+
+
+
+ +

+getImplementationVendor

+
+public java.lang.String getImplementationVendor()
+
+
+
+
+
+
+ +

+getImplementationVersion

+
+public java.lang.String getImplementationVersion()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/ModifiableClassLoaderRepository.html b/mx4j-3.0.2/docs/api/mx4j/server/ModifiableClassLoaderRepository.html new file mode 100644 index 0000000..b1adeb1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/ModifiableClassLoaderRepository.html @@ -0,0 +1,309 @@ + + + + + + +ModifiableClassLoaderRepository (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class ModifiableClassLoaderRepository

+
+java.lang.Object
+  extended bymx4j.server.ModifiableClassLoaderRepository
+
+
+
All Implemented Interfaces:
javax.management.loading.ClassLoaderRepository
+
+
+
Direct Known Subclasses:
DefaultClassLoaderRepository
+
+
+
+
public abstract class ModifiableClassLoaderRepository
extends java.lang.Object
implements javax.management.loading.ClassLoaderRepository
+ +

+Base class to extend to create custom ClassLoaderRepositories. + MX4J's MBeanServer can use a custom ClassLoaderRepository instead of the default one + by simply specifying a suitable system property, see MX4JSystemKeys. + It must be a class, otherwise it opens up a security hole, as anyone can cast the MBeanServer's + ClassLoaderRepository down to this class and call addClassLoader or removeClassLoader + since, if this class is an interface, they must be public. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ModifiableClassLoaderRepository() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected abstract  voidaddClassLoader(java.lang.ClassLoader cl) + +
+          Adds, if does not already exist, the specified ClassLoader to this repository.
+protected abstract  voidremoveClassLoader(java.lang.ClassLoader cl) + +
+          Removes, if exists, the specified ClassLoader from this repository.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface javax.management.loading.ClassLoaderRepository
loadClass, loadClassBefore, loadClassWithout
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ModifiableClassLoaderRepository

+
+public ModifiableClassLoaderRepository()
+
+
+ + + + + + + + +
+Method Detail
+ +

+addClassLoader

+
+protected abstract void addClassLoader(java.lang.ClassLoader cl)
+
+
Adds, if does not already exist, the specified ClassLoader to this repository. +

+

+
+
+
+
Parameters:
cl - The classloader to add
See Also:
removeClassLoader(java.lang.ClassLoader)
+
+
+
+ +

+removeClassLoader

+
+protected abstract void removeClassLoader(java.lang.ClassLoader cl)
+
+
Removes, if exists, the specified ClassLoader from this repository. +

+

+
+
+
+
Parameters:
cl - The classloader to remove
See Also:
addClassLoader(java.lang.ClassLoader)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/ReflectionMBeanInvoker.html b/mx4j-3.0.2/docs/api/mx4j/server/ReflectionMBeanInvoker.html new file mode 100644 index 0000000..c39a135 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/ReflectionMBeanInvoker.html @@ -0,0 +1,597 @@ + + + + + + +ReflectionMBeanInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server +
+Class ReflectionMBeanInvoker

+
+java.lang.Object
+  extended bymx4j.server.ReflectionMBeanInvoker
+
+
+
All Implemented Interfaces:
MBeanInvoker
+
+
+
Direct Known Subclasses:
CachingReflectionMBeanInvoker
+
+
+
+
public class ReflectionMBeanInvoker
extends java.lang.Object
implements MBeanInvoker
+ +

+Stateless MBeanInvoker that uses reflection to invoke on MBean instances. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + +
+Field Summary
+protected static java.lang.Object[]EMPTY_ARGS + +
+          A zero-length Object[] that indicates a parameterless argument list of a method
+protected static java.lang.String[]EMPTY_PARAMS + +
+          A zero-length String[] that indicates a parameterless signature of a method.
+  + + + + + + + + + + +
+Constructor Summary
ReflectionMBeanInvoker() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectdoInvoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature, + java.lang.Object[] args) + +
+          Centralizes exception handling necessary to convert exceptions thrown by MBean's methods to + JMX exceptions.
+ java.lang.ObjectgetAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+          Returns the value of the specified attribute.
+protected  java.lang.StringgetMethodForAttribute(javax.management.MBeanAttributeInfo attribute, + boolean forRead) + +
+          Returns the method name for the given attribute.
+protected  javax.management.MBeanAttributeInfogetStandardAttributeInfo(MBeanMetaData metadata, + java.lang.String attribute, + boolean forWrite) + +
+          Returns the MBeanAttributeInfo for the given attribute, or null if the attribute + is not a management attribute.
+protected  java.lang.reflect.MethodgetStandardManagementMethod(MBeanMetaData metadata, + java.lang.String name, + java.lang.String[] signature) + +
+          Returns a java.lang.reflect.Method object for the given method name and signature.
+protected  javax.management.MBeanOperationInfogetStandardOperationInfo(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature) + +
+          Returns the MBeanOperationInfo for the given operation, or null if the operation + is not a management operation.
+ java.lang.Objectinvoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Invokes the specified operation on the MBean instance
+protected  java.lang.ObjectinvokeImpl(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature, + java.lang.Object[] args) + +
+          Performs the actual invocation of the MBean's method.
+ voidsetAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+          Sets the value of the specified attribute.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+EMPTY_PARAMS

+
+protected static final java.lang.String[] EMPTY_PARAMS
+
+
A zero-length String[] that indicates a parameterless signature of a method. +

+

+
+
+
+ +

+EMPTY_ARGS

+
+protected static final java.lang.Object[] EMPTY_ARGS
+
+
A zero-length Object[] that indicates a parameterless argument list of a method +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+ReflectionMBeanInvoker

+
+public ReflectionMBeanInvoker()
+
+
+ + + + + + + + +
+Method Detail
+ +

+invoke

+
+public java.lang.Object invoke(MBeanMetaData metadata,
+                               java.lang.String method,
+                               java.lang.String[] params,
+                               java.lang.Object[] args)
+                        throws javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
Description copied from interface: MBeanInvoker
+
Invokes the specified operation on the MBean instance +

+

+
Specified by:
invoke in interface MBeanInvoker
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(MBeanMetaData metadata,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.ReflectionException
+
+
Description copied from interface: MBeanInvoker
+
Returns the value of the specified attribute. +

+

+
Specified by:
getAttribute in interface MBeanInvoker
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(MBeanMetaData metadata,
+                         javax.management.Attribute attribute)
+                  throws javax.management.MBeanException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.ReflectionException
+
+
Description copied from interface: MBeanInvoker
+
Sets the value of the specified attribute. +

+

+
Specified by:
setAttribute in interface MBeanInvoker
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.ReflectionException
+
+
+
+ +

+doInvoke

+
+protected java.lang.Object doInvoke(MBeanMetaData metadata,
+                                    java.lang.String method,
+                                    java.lang.String[] signature,
+                                    java.lang.Object[] args)
+                             throws javax.management.ReflectionException,
+                                    javax.management.MBeanException,
+                                    mx4j.server.ReflectionMBeanInvoker.BadArgumentException
+
+
Centralizes exception handling necessary to convert exceptions thrown by MBean's methods to + JMX exceptions. Delegates the actual invocation to invokeImpl(mx4j.server.MBeanMetaData, java.lang.String, java.lang.String[], java.lang.Object[]) +

+

+
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException +
mx4j.server.ReflectionMBeanInvoker.BadArgumentException
+
+
+
+ +

+invokeImpl

+
+protected java.lang.Object invokeImpl(MBeanMetaData metadata,
+                                      java.lang.String method,
+                                      java.lang.String[] signature,
+                                      java.lang.Object[] args)
+                               throws java.lang.Throwable
+
+
Performs the actual invocation of the MBean's method. + Exceptions thrown by the MBean's methods should not be catched, since doInvoke(mx4j.server.MBeanMetaData, java.lang.String, java.lang.String[], java.lang.Object[]) + takes care of converting them to JMX exceptions. +

+

+
+
+
+ +
Throws: +
java.lang.Throwable
+
+
+
+ +

+getStandardOperationInfo

+
+protected javax.management.MBeanOperationInfo getStandardOperationInfo(MBeanMetaData metadata,
+                                                                       java.lang.String method,
+                                                                       java.lang.String[] signature)
+
+
Returns the MBeanOperationInfo for the given operation, or null if the operation + is not a management operation. +

+

+
+
+
+
+
+
+
+ +

+getStandardAttributeInfo

+
+protected javax.management.MBeanAttributeInfo getStandardAttributeInfo(MBeanMetaData metadata,
+                                                                       java.lang.String attribute,
+                                                                       boolean forWrite)
+
+
Returns the MBeanAttributeInfo for the given attribute, or null if the attribute + is not a management attribute. +

+

+
+
+
+
+
+
+
+ +

+getMethodForAttribute

+
+protected java.lang.String getMethodForAttribute(javax.management.MBeanAttributeInfo attribute,
+                                                 boolean forRead)
+
+
Returns the method name for the given attribute. +

+

+
+
+
+
+
+
+
+ +

+getStandardManagementMethod

+
+protected java.lang.reflect.Method getStandardManagementMethod(MBeanMetaData metadata,
+                                                               java.lang.String name,
+                                                               java.lang.String[] signature)
+                                                        throws javax.management.ReflectionException
+
+
Returns a java.lang.reflect.Method object for the given method name and signature. +

+

+
+
+
+ +
Throws: +
javax.management.ReflectionException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/BCELMBeanInvoker.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/BCELMBeanInvoker.html new file mode 100644 index 0000000..a9f84bd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/BCELMBeanInvoker.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.BCELMBeanInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.BCELMBeanInvoker

+
+No usage of mx4j.server.BCELMBeanInvoker +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/CachingReflectionMBeanInvoker.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/CachingReflectionMBeanInvoker.html new file mode 100644 index 0000000..2a578b6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/CachingReflectionMBeanInvoker.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.server.CachingReflectionMBeanInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.CachingReflectionMBeanInvoker

+
+ + + + + + + + + +
+Packages that use CachingReflectionMBeanInvoker
mx4j.server  
+  +

+ + + + + +
+Uses of CachingReflectionMBeanInvoker in mx4j.server
+  +

+ + + + + + + + + +
Subclasses of CachingReflectionMBeanInvoker in mx4j.server
+ classBCELMBeanInvoker + +
+          MBeanInvoker that generates on-the-fly implementations to call standard MBeans directly, instead of using reflection.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/ChainedMBeanServer.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/ChainedMBeanServer.html new file mode 100644 index 0000000..647f6e3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/ChainedMBeanServer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.ChainedMBeanServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.ChainedMBeanServer

+
+No usage of mx4j.server.ChainedMBeanServer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/ChainedMBeanServerBuilder.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/ChainedMBeanServerBuilder.html new file mode 100644 index 0000000..52db3e6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/ChainedMBeanServerBuilder.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.ChainedMBeanServerBuilder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.ChainedMBeanServerBuilder

+
+No usage of mx4j.server.ChainedMBeanServerBuilder +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/DefaultClassLoaderRepository.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/DefaultClassLoaderRepository.html new file mode 100644 index 0000000..358cfb5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/DefaultClassLoaderRepository.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.DefaultClassLoaderRepository (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.DefaultClassLoaderRepository

+
+No usage of mx4j.server.DefaultClassLoaderRepository +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanIntrospector.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanIntrospector.html new file mode 100644 index 0000000..4d730f2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanIntrospector.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.MBeanIntrospector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.MBeanIntrospector

+
+No usage of mx4j.server.MBeanIntrospector +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanInvoker.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanInvoker.html new file mode 100644 index 0000000..516708c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanInvoker.html @@ -0,0 +1,228 @@ + + + + + + +Uses of Interface mx4j.server.MBeanInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.server.MBeanInvoker

+
+ + + + + + + + + +
+Packages that use MBeanInvoker
mx4j.server  
+  +

+ + + + + +
+Uses of MBeanInvoker in mx4j.server
+  +

+ + + + + + + + + + + + + + + + + +
Classes in mx4j.server that implement MBeanInvoker
+ classBCELMBeanInvoker + +
+          MBeanInvoker that generates on-the-fly implementations to call standard MBeans directly, instead of using reflection.
+ classCachingReflectionMBeanInvoker + +
+          Caching MBeanInvoker that uses reflection to invoke on MBean instances.
+ classReflectionMBeanInvoker + +
+          Stateless MBeanInvoker that uses reflection to invoke on MBean instances.
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.server that return MBeanInvoker
+ MBeanInvokerMBeanMetaData.getMBeanInvoker() + +
+          Returns the MBeanInvoker of the standard MBean
+static MBeanInvokerBCELMBeanInvoker.create(MBeanMetaData metadata) + +
+          Creates a new MBeanInvoker created on-the-fly by using BCEL.
+  +

+ + + + + + + + + +
Methods in mx4j.server with parameters of type MBeanInvoker
+ voidMBeanMetaData.setMBeanInvoker(MBeanInvoker invoker) + +
+          Sets the MBeanInvoker of the standard MBean
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanMetaData.Factory.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanMetaData.Factory.html new file mode 100644 index 0000000..c4b81ad --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanMetaData.Factory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.MBeanMetaData.Factory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.MBeanMetaData.Factory

+
+No usage of mx4j.server.MBeanMetaData.Factory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanMetaData.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanMetaData.html new file mode 100644 index 0000000..473c911 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanMetaData.html @@ -0,0 +1,966 @@ + + + + + + +Uses of Interface mx4j.server.MBeanMetaData (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.server.MBeanMetaData

+
+ + + + + + + + + + + + + +
+Packages that use MBeanMetaData
mx4j.server  
mx4j.server.interceptor  
+  +

+ + + + + +
+Uses of MBeanMetaData in mx4j.server
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.server that return MBeanMetaData
+ MBeanMetaDataMBeanRepository.get(javax.management.ObjectName name) + +
+          Returns the metadata information associated with the given object name.
+static MBeanMetaDataMBeanMetaData.Factory.create() + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.server with parameters of type MBeanMetaData
+ java.lang.ObjectReflectionMBeanInvoker.invoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+           
+ java.lang.ObjectReflectionMBeanInvoker.getAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+           
+ voidReflectionMBeanInvoker.setAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+           
+protected  java.lang.ObjectReflectionMBeanInvoker.doInvoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature, + java.lang.Object[] args) + +
+          Centralizes exception handling necessary to convert exceptions thrown by MBean's methods to + JMX exceptions.
+protected  java.lang.ObjectReflectionMBeanInvoker.invokeImpl(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature, + java.lang.Object[] args) + +
+          Performs the actual invocation of the MBean's method.
+protected  javax.management.MBeanOperationInfoReflectionMBeanInvoker.getStandardOperationInfo(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature) + +
+          Returns the MBeanOperationInfo for the given operation, or null if the operation + is not a management operation.
+protected  javax.management.MBeanAttributeInfoReflectionMBeanInvoker.getStandardAttributeInfo(MBeanMetaData metadata, + java.lang.String attribute, + boolean forWrite) + +
+          Returns the MBeanAttributeInfo for the given attribute, or null if the attribute + is not a management attribute.
+protected  java.lang.reflect.MethodReflectionMBeanInvoker.getStandardManagementMethod(MBeanMetaData metadata, + java.lang.String name, + java.lang.String[] signature) + +
+          Returns a java.lang.reflect.Method object for the given method name and signature.
+ voidMBeanRepository.put(javax.management.ObjectName name, + MBeanMetaData metadata) + +
+          Inserts the given metadata associated with the given object name into this repository.
+ java.lang.ObjectMBeanInvoker.invoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature, + java.lang.Object[] args) + +
+          Invokes the specified operation on the MBean instance
+ java.lang.ObjectMBeanInvoker.getAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+          Returns the value of the specified attribute.
+ voidMBeanInvoker.setAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+          Sets the value of the specified attribute.
+ voidMBeanIntrospector.introspect(MBeanMetaData metadata) + +
+          Introspect the given mbean, storing the results in the given metadata.
+ booleanMBeanIntrospector.isMBeanCompliant(MBeanMetaData metadata) + +
+          Returns whether the given already introspected metadata is compliant.
+protected  javax.management.MBeanOperationInfoCachingReflectionMBeanInvoker.getStandardOperationInfo(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature) + +
+           
+protected  javax.management.MBeanAttributeInfoCachingReflectionMBeanInvoker.getStandardAttributeInfo(MBeanMetaData metadata, + java.lang.String attribute, + boolean forWrite) + +
+           
+protected  java.lang.reflect.MethodCachingReflectionMBeanInvoker.getStandardManagementMethod(MBeanMetaData metadata, + java.lang.String name, + java.lang.String[] signature) + +
+           
+static MBeanInvokerBCELMBeanInvoker.create(MBeanMetaData metadata) + +
+          Creates a new MBeanInvoker created on-the-fly by using BCEL.
+protected  java.lang.ObjectBCELMBeanInvoker.invokeImpl(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] signature, + java.lang.Object[] args) + +
+           
+  +

+ + + + + +
+Uses of MBeanMetaData in mx4j.server.interceptor
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.server.interceptor with parameters of type MBeanMetaData
+ voidSecurityMBeanServerInterceptor.addNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidSecurityMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+           
+ voidSecurityMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidSecurityMBeanServerInterceptor.instantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+           
+ javax.management.MBeanInfoSecurityMBeanServerInterceptor.getMBeanInfo(MBeanMetaData metadata) + +
+           
+ java.lang.ObjectSecurityMBeanServerInterceptor.invoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+           
+ javax.management.AttributeListSecurityMBeanServerInterceptor.getAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+           
+ javax.management.AttributeListSecurityMBeanServerInterceptor.setAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+           
+ java.lang.ObjectSecurityMBeanServerInterceptor.getAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+           
+ voidSecurityMBeanServerInterceptor.setAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+           
+ voidSecurityMBeanServerInterceptor.registration(MBeanMetaData metadata, + int operation) + +
+           
+ voidNotificationListenerMBeanServerInterceptor.addNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidNotificationListenerMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+           
+ voidNotificationListenerMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidNotificationListenerMBeanServerInterceptor.registration(MBeanMetaData metadata, + int operation) + +
+           
+ voidMBeanServerInterceptor.addNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Adds the given notification listener to the MBean, along with the given filter and handback
+ voidMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+          Removes the given notification listener from the MBean.
+ voidMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Removes the given notification listener from the MBean, specified by the given filter and handback.
+ voidMBeanServerInterceptor.instantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Instantiate the given className passing the given arguments to the constructor with the given signature
+ voidMBeanServerInterceptor.registration(MBeanMetaData metadata, + int operation) + +
+          Calls the specified MBeanRegistration method on the MBean instance.
+ javax.management.MBeanInfoMBeanServerInterceptor.getMBeanInfo(MBeanMetaData metadata) + +
+          Calls getMBeanInfo on the MBean instance (only on DynamicMBeans).
+ java.lang.ObjectMBeanServerInterceptor.invoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Invokes the specified MBean operation on the MBean instance
+ javax.management.AttributeListMBeanServerInterceptor.getAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+          Gets the specified attributes values from the MBean instance.
+ javax.management.AttributeListMBeanServerInterceptor.setAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+          Sets the specified attributes values on the MBean instance.
+ java.lang.ObjectMBeanServerInterceptor.getAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+          Gets the specified attribute value from the MBean instance.
+ voidMBeanServerInterceptor.setAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+          Sets the specified attribute value on the MBean instance.
+ voidInvokerMBeanServerInterceptor.addNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidInvokerMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+           
+ voidInvokerMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidInvokerMBeanServerInterceptor.instantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+           
+ voidInvokerMBeanServerInterceptor.registration(MBeanMetaData metadata, + int operation) + +
+           
+ javax.management.MBeanInfoInvokerMBeanServerInterceptor.getMBeanInfo(MBeanMetaData metadata) + +
+           
+ java.lang.ObjectInvokerMBeanServerInterceptor.invoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+           
+ java.lang.ObjectInvokerMBeanServerInterceptor.getAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+           
+ voidInvokerMBeanServerInterceptor.setAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+           
+ javax.management.AttributeListInvokerMBeanServerInterceptor.getAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+           
+ javax.management.AttributeListInvokerMBeanServerInterceptor.setAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+           
+ voidDefaultMBeanServerInterceptor.addNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidDefaultMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+           
+ voidDefaultMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidDefaultMBeanServerInterceptor.instantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+           
+ voidDefaultMBeanServerInterceptor.registration(MBeanMetaData metadata, + int operation) + +
+           
+ javax.management.MBeanInfoDefaultMBeanServerInterceptor.getMBeanInfo(MBeanMetaData metadata) + +
+           
+ java.lang.ObjectDefaultMBeanServerInterceptor.invoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+           
+ javax.management.AttributeListDefaultMBeanServerInterceptor.getAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+           
+ javax.management.AttributeListDefaultMBeanServerInterceptor.setAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+           
+ java.lang.ObjectDefaultMBeanServerInterceptor.getAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+           
+ voidDefaultMBeanServerInterceptor.setAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+           
+ voidContextClassLoaderMBeanServerInterceptor.addNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidContextClassLoaderMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+           
+ voidContextClassLoaderMBeanServerInterceptor.removeNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidContextClassLoaderMBeanServerInterceptor.instantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+           
+ voidContextClassLoaderMBeanServerInterceptor.registration(MBeanMetaData metadata, + int operation) + +
+           
+ javax.management.MBeanInfoContextClassLoaderMBeanServerInterceptor.getMBeanInfo(MBeanMetaData metadata) + +
+           
+ java.lang.ObjectContextClassLoaderMBeanServerInterceptor.invoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+           
+ javax.management.AttributeListContextClassLoaderMBeanServerInterceptor.getAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+           
+ javax.management.AttributeListContextClassLoaderMBeanServerInterceptor.setAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+           
+ java.lang.ObjectContextClassLoaderMBeanServerInterceptor.getAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+           
+ voidContextClassLoaderMBeanServerInterceptor.setAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanRepository.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanRepository.html new file mode 100644 index 0000000..2f0af27 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MBeanRepository.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Interface mx4j.server.MBeanRepository (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.server.MBeanRepository

+
+No usage of mx4j.server.MBeanRepository +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServer.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServer.html new file mode 100644 index 0000000..39a3f0b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.MX4JMBeanServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.MX4JMBeanServer

+
+No usage of mx4j.server.MX4JMBeanServer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServerBuilder.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServerBuilder.html new file mode 100644 index 0000000..170ad2a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServerBuilder.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.MX4JMBeanServerBuilder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.MX4JMBeanServerBuilder

+
+No usage of mx4j.server.MX4JMBeanServerBuilder +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServerDelegate.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServerDelegate.html new file mode 100644 index 0000000..e213b11 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/MX4JMBeanServerDelegate.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.MX4JMBeanServerDelegate (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.MX4JMBeanServerDelegate

+
+No usage of mx4j.server.MX4JMBeanServerDelegate +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/ModifiableClassLoaderRepository.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/ModifiableClassLoaderRepository.html new file mode 100644 index 0000000..1cd2ceb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/ModifiableClassLoaderRepository.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.server.ModifiableClassLoaderRepository (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.ModifiableClassLoaderRepository

+
+ + + + + + + + + +
+Packages that use ModifiableClassLoaderRepository
mx4j.server  
+  +

+ + + + + +
+Uses of ModifiableClassLoaderRepository in mx4j.server
+  +

+ + + + + + + + + +
Subclasses of ModifiableClassLoaderRepository in mx4j.server
+ classDefaultClassLoaderRepository + +
+          Default implementation of a ClassLoaderRepository
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/class-use/ReflectionMBeanInvoker.html b/mx4j-3.0.2/docs/api/mx4j/server/class-use/ReflectionMBeanInvoker.html new file mode 100644 index 0000000..710717a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/class-use/ReflectionMBeanInvoker.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Class mx4j.server.ReflectionMBeanInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.ReflectionMBeanInvoker

+
+ + + + + + + + + +
+Packages that use ReflectionMBeanInvoker
mx4j.server  
+  +

+ + + + + +
+Uses of ReflectionMBeanInvoker in mx4j.server
+  +

+ + + + + + + + + + + + + +
Subclasses of ReflectionMBeanInvoker in mx4j.server
+ classBCELMBeanInvoker + +
+          MBeanInvoker that generates on-the-fly implementations to call standard MBeans directly, instead of using reflection.
+ classCachingReflectionMBeanInvoker + +
+          Caching MBeanInvoker that uses reflection to invoke on MBean instances.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/ContextClassLoaderMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/ContextClassLoaderMBeanServerInterceptor.html new file mode 100644 index 0000000..1889784 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/ContextClassLoaderMBeanServerInterceptor.html @@ -0,0 +1,643 @@ + + + + + + +ContextClassLoaderMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class ContextClassLoaderMBeanServerInterceptor

+
+java.lang.Object
+  extended bymx4j.server.interceptor.DefaultMBeanServerInterceptor
+      extended bymx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor
+
+
+
All Implemented Interfaces:
DefaultMBeanServerInterceptorMBean, MBeanServerInterceptor
+
+
+
+
public class ContextClassLoaderMBeanServerInterceptor
extends DefaultMBeanServerInterceptor
+ +

+This interceptor sets the context class loader to the proper value for incoming calls. + It saves the current context class loader, set the context class loader to be the MBean's class loader for + the current call, and on return re-set the context class loader to the previous value +

+ +

+

+
Version:
+
$Revision: 1.11 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface mx4j.server.interceptor.MBeanServerInterceptor
POST_DEREGISTER, POST_REGISTER_FALSE, POST_REGISTER_TRUE, PRE_DEREGISTER, PRE_REGISTER
+  + + + + + + + + + + +
+Constructor Summary
ContextClassLoaderMBeanServerInterceptor() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Adds the given notification listener to the MBean, along with the given filter and handback
+ java.lang.ObjectgetAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+          Gets the specified attribute value from the MBean instance.
+ javax.management.AttributeListgetAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+          Gets the specified attributes values from the MBean instance.
+ javax.management.MBeanInfogetMBeanInfo(MBeanMetaData metadata) + +
+          Calls getMBeanInfo on the MBean instance (only on DynamicMBeans).
+ java.lang.StringgetType() + +
+          Returns the type of this interceptor
+ voidinstantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Instantiate the given className passing the given arguments to the constructor with the given signature
+ java.lang.Objectinvoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Invokes the specified MBean operation on the MBean instance
+ voidregistration(MBeanMetaData metadata, + int operation) + +
+          Calls the specified MBeanRegistration method on the MBean instance.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+          Removes the given notification listener from the MBean.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Removes the given notification listener from the MBean, specified by the given filter and handback.
+ voidsetAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+          Sets the specified attribute value on the MBean instance.
+ javax.management.AttributeListsetAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+          Sets the specified attributes values on the MBean instance.
+ + + + + + + +
Methods inherited from class mx4j.server.interceptor.DefaultMBeanServerInterceptor
getLogger, getNext, isEnabled, setChain, setEnabled
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ContextClassLoaderMBeanServerInterceptor

+
+public ContextClassLoaderMBeanServerInterceptor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getType

+
+public java.lang.String getType()
+
+
Description copied from class: DefaultMBeanServerInterceptor
+
Returns the type of this interceptor +

+

+
Specified by:
getType in interface MBeanServerInterceptor
Specified by:
getType in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(MBeanMetaData metadata,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+
+
Description copied from interface: MBeanServerInterceptor
+
Adds the given notification listener to the MBean, along with the given filter and handback +

+

+
Specified by:
addNotificationListener in interface MBeanServerInterceptor
Overrides:
addNotificationListener in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
Overrides:
removeNotificationListener in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean, specified by the given filter and handback. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
Overrides:
removeNotificationListener in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+instantiate

+
+public void instantiate(MBeanMetaData metadata,
+                        java.lang.String className,
+                        java.lang.String[] params,
+                        java.lang.Object[] args)
+                 throws javax.management.ReflectionException,
+                        javax.management.MBeanException
+
+
Description copied from interface: MBeanServerInterceptor
+
Instantiate the given className passing the given arguments to the constructor with the given signature +

+

+
Specified by:
instantiate in interface MBeanServerInterceptor
Overrides:
instantiate in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException
+
+
+
+ +

+registration

+
+public void registration(MBeanMetaData metadata,
+                         int operation)
+                  throws javax.management.MBeanRegistrationException
+
+
Description copied from interface: MBeanServerInterceptor
+
Calls the specified MBeanRegistration method on the MBean instance. +

+

+
Specified by:
registration in interface MBeanServerInterceptor
Overrides:
registration in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanRegistrationException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(MBeanMetaData metadata)
+
+
Description copied from interface: MBeanServerInterceptor
+
Calls getMBeanInfo on the MBean instance (only on DynamicMBeans). +

+

+
Specified by:
getMBeanInfo in interface MBeanServerInterceptor
Overrides:
getMBeanInfo in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(MBeanMetaData metadata,
+                               java.lang.String method,
+                               java.lang.String[] params,
+                               java.lang.Object[] args)
+                        throws javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Invokes the specified MBean operation on the MBean instance +

+

+
Specified by:
invoke in interface MBeanServerInterceptor
Overrides:
invoke in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(MBeanMetaData metadata,
+                                                    java.lang.String[] attributes)
+
+
Description copied from interface: MBeanServerInterceptor
+
Gets the specified attributes values from the MBean instance. +

+

+
Specified by:
getAttributes in interface MBeanServerInterceptor
Overrides:
getAttributes in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(MBeanMetaData metadata,
+                                                    javax.management.AttributeList attributes)
+
+
Description copied from interface: MBeanServerInterceptor
+
Sets the specified attributes values on the MBean instance. +

+

+
Specified by:
setAttributes in interface MBeanServerInterceptor
Overrides:
setAttributes in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(MBeanMetaData metadata,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Gets the specified attribute value from the MBean instance. +

+

+
Specified by:
getAttribute in interface MBeanServerInterceptor
Overrides:
getAttribute in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(MBeanMetaData metadata,
+                         javax.management.Attribute attribute)
+                  throws javax.management.MBeanException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Sets the specified attribute value on the MBean instance. +

+

+
Specified by:
setAttribute in interface MBeanServerInterceptor
Overrides:
setAttribute in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.ReflectionException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptor.html new file mode 100644 index 0000000..9ddb402 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptor.html @@ -0,0 +1,753 @@ + + + + + + +DefaultMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class DefaultMBeanServerInterceptor

+
+java.lang.Object
+  extended bymx4j.server.interceptor.DefaultMBeanServerInterceptor
+
+
+
All Implemented Interfaces:
DefaultMBeanServerInterceptorMBean, MBeanServerInterceptor
+
+
+
Direct Known Subclasses:
ContextClassLoaderMBeanServerInterceptor, InvokerMBeanServerInterceptor, NotificationListenerMBeanServerInterceptor, SecurityMBeanServerInterceptor
+
+
+
+
public abstract class DefaultMBeanServerInterceptor
extends java.lang.Object
implements MBeanServerInterceptor, DefaultMBeanServerInterceptorMBean
+ +

+Base class for MBeanServer --> MBean interceptors. +

+ +

+

+
Version:
+
$Revision: 1.11 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface mx4j.server.interceptor.MBeanServerInterceptor
POST_DEREGISTER, POST_REGISTER_FALSE, POST_REGISTER_TRUE, PRE_DEREGISTER, PRE_REGISTER
+  + + + + + + + + + + + +
+Constructor Summary
+protected DefaultMBeanServerInterceptor() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Adds the given notification listener to the MBean, along with the given filter and handback
+ java.lang.ObjectgetAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+          Gets the specified attribute value from the MBean instance.
+ javax.management.AttributeListgetAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+          Gets the specified attributes values from the MBean instance.
+protected  LoggergetLogger() + +
+           
+ javax.management.MBeanInfogetMBeanInfo(MBeanMetaData metadata) + +
+          Calls getMBeanInfo on the MBean instance (only on DynamicMBeans).
+protected  MBeanServerInterceptorgetNext() + +
+           
+abstract  java.lang.StringgetType() + +
+          Returns the type of this interceptor
+ voidinstantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Instantiate the given className passing the given arguments to the constructor with the given signature
+ java.lang.Objectinvoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Invokes the specified MBean operation on the MBean instance
+ booleanisEnabled() + +
+          Returns whether this interceptor is enabled
+ voidregistration(MBeanMetaData metadata, + int operation) + +
+          Calls the specified MBeanRegistration method on the MBean instance.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+          Removes the given notification listener from the MBean.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Removes the given notification listener from the MBean, specified by the given filter and handback.
+ voidsetAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+          Sets the specified attribute value on the MBean instance.
+ javax.management.AttributeListsetAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+          Sets the specified attributes values on the MBean instance.
+ voidsetChain(java.util.List chain) + +
+          Sets the chain of interceptors on this interceptor.
+ voidsetEnabled(boolean enabled) + +
+          Enables or disables this interceptor
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultMBeanServerInterceptor

+
+protected DefaultMBeanServerInterceptor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+isEnabled

+
+public boolean isEnabled()
+
+
Returns whether this interceptor is enabled +

+

+
Specified by:
isEnabled in interface DefaultMBeanServerInterceptorMBean
+
+
+
See Also:
setEnabled(boolean)
+
+
+
+ +

+setEnabled

+
+public void setEnabled(boolean enabled)
+
+
Enables or disables this interceptor +

+

+
Specified by:
setEnabled in interface DefaultMBeanServerInterceptorMBean
+
+
+
See Also:
isEnabled()
+
+
+
+ +

+getType

+
+public abstract java.lang.String getType()
+
+
Returns the type of this interceptor +

+

+
Specified by:
getType in interface MBeanServerInterceptor
+
+
+
+
+
+
+ +

+getNext

+
+protected MBeanServerInterceptor getNext()
+
+
+
+
+
+
+
+
+
+ +

+setChain

+
+public void setChain(java.util.List chain)
+
+
Description copied from interface: MBeanServerInterceptor
+
Sets the chain of interceptors on this interceptor. This interceptor will use this list to + find the interceptor in the chain after itself +

+

+
Specified by:
setChain in interface MBeanServerInterceptor
+
+
+
Parameters:
chain - The list of interceptors
+
+
+
+ +

+getLogger

+
+protected Logger getLogger()
+
+
+
+
+
+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(MBeanMetaData metadata,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+
+
Description copied from interface: MBeanServerInterceptor
+
Adds the given notification listener to the MBean, along with the given filter and handback +

+

+
Specified by:
addNotificationListener in interface MBeanServerInterceptor
+
+
+
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean, specified by the given filter and handback. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+instantiate

+
+public void instantiate(MBeanMetaData metadata,
+                        java.lang.String className,
+                        java.lang.String[] params,
+                        java.lang.Object[] args)
+                 throws javax.management.ReflectionException,
+                        javax.management.MBeanException
+
+
Description copied from interface: MBeanServerInterceptor
+
Instantiate the given className passing the given arguments to the constructor with the given signature +

+

+
Specified by:
instantiate in interface MBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException
+
+
+
+ +

+registration

+
+public void registration(MBeanMetaData metadata,
+                         int operation)
+                  throws javax.management.MBeanRegistrationException
+
+
Description copied from interface: MBeanServerInterceptor
+
Calls the specified MBeanRegistration method on the MBean instance. +

+

+
Specified by:
registration in interface MBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanRegistrationException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(MBeanMetaData metadata)
+
+
Description copied from interface: MBeanServerInterceptor
+
Calls getMBeanInfo on the MBean instance (only on DynamicMBeans). +

+

+
Specified by:
getMBeanInfo in interface MBeanServerInterceptor
+
+
+
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(MBeanMetaData metadata,
+                               java.lang.String method,
+                               java.lang.String[] params,
+                               java.lang.Object[] args)
+                        throws javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Invokes the specified MBean operation on the MBean instance +

+

+
Specified by:
invoke in interface MBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(MBeanMetaData metadata,
+                                                    java.lang.String[] attributes)
+
+
Description copied from interface: MBeanServerInterceptor
+
Gets the specified attributes values from the MBean instance. +

+

+
Specified by:
getAttributes in interface MBeanServerInterceptor
+
+
+
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(MBeanMetaData metadata,
+                                                    javax.management.AttributeList attributes)
+
+
Description copied from interface: MBeanServerInterceptor
+
Sets the specified attributes values on the MBean instance. +

+

+
Specified by:
setAttributes in interface MBeanServerInterceptor
+
+
+
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(MBeanMetaData metadata,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Gets the specified attribute value from the MBean instance. +

+

+
Specified by:
getAttribute in interface MBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(MBeanMetaData metadata,
+                         javax.management.Attribute attribute)
+                  throws javax.management.MBeanException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Sets the specified attribute value on the MBean instance. +

+

+
Specified by:
setAttribute in interface MBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.ReflectionException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBean.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBean.html new file mode 100644 index 0000000..2bf207d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBean.html @@ -0,0 +1,267 @@ + + + + + + +DefaultMBeanServerInterceptorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Interface DefaultMBeanServerInterceptorMBean

+
+
All Known Implementing Classes:
DefaultMBeanServerInterceptor
+
+
+
+
public interface DefaultMBeanServerInterceptorMBean
+ +

+Management interface for the DefaultMBeanServerInterceptor MBean +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetType() + +
+          Returns the type of this interceptor
+ booleanisEnabled() + +
+          Returns whether this interceptor is enabled
+ voidsetEnabled(boolean enabled) + +
+          Enables or disables this interceptor
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+isEnabled

+
+public boolean isEnabled()
+
+
Returns whether this interceptor is enabled +

+

+
See Also:
setEnabled(boolean)
+
+
+
+ +

+setEnabled

+
+public void setEnabled(boolean enabled)
+
+
Enables or disables this interceptor +

+

+
See Also:
isEnabled()
+
+
+
+ +

+getType

+
+public java.lang.String getType()
+
+
Returns the type of this interceptor +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBeanDescription.html new file mode 100644 index 0000000..11c8b68 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBeanDescription.html @@ -0,0 +1,306 @@ + + + + + + +DefaultMBeanServerInterceptorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class DefaultMBeanServerInterceptorMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.server.interceptor.DefaultMBeanServerInterceptorMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class DefaultMBeanServerInterceptorMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Management interface description for the DefaultMBeanServerInterceptor MBean +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultMBeanServerInterceptorMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName, getOperationDescription, getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultMBeanServerInterceptorMBeanDescription

+
+public DefaultMBeanServerInterceptorMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptor.html new file mode 100644 index 0000000..93914fd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptor.html @@ -0,0 +1,669 @@ + + + + + + +InvokerMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class InvokerMBeanServerInterceptor

+
+java.lang.Object
+  extended bymx4j.server.interceptor.DefaultMBeanServerInterceptor
+      extended bymx4j.server.interceptor.InvokerMBeanServerInterceptor
+
+
+
All Implemented Interfaces:
DefaultMBeanServerInterceptorMBean, InvokerMBeanServerInterceptorMBean, MBeanServerInterceptor
+
+
+
+
public class InvokerMBeanServerInterceptor
extends DefaultMBeanServerInterceptor
implements InvokerMBeanServerInterceptorMBean
+ +

+The last MBeanServer --$gt; MBean interceptor in the chain. + It calls the MBean instance; if the MBean is a dynamic MBean, the call is direct, otherwise the call is delegated + to an MBeanInvoker. +

+ +

+

+
Version:
+
$Revision: 1.23 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface mx4j.server.interceptor.MBeanServerInterceptor
POST_DEREGISTER, POST_REGISTER_FALSE, POST_REGISTER_TRUE, PRE_DEREGISTER, PRE_REGISTER
+  + + + + + + + + + + +
+Constructor Summary
InvokerMBeanServerInterceptor(javax.management.MBeanServer outerServer) + +
+          Instantiates a new interceptor instance.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Adds the given notification listener to the MBean, along with the given filter and handback
+ java.lang.ObjectgetAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+          Gets the specified attribute value from the MBean instance.
+ javax.management.AttributeListgetAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+          Gets the specified attributes values from the MBean instance.
+ javax.management.MBeanInfogetMBeanInfo(MBeanMetaData metadata) + +
+          Calls getMBeanInfo on the MBean instance (only on DynamicMBeans).
+ java.lang.StringgetType() + +
+          Returns the type of this interceptor
+ voidinstantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Instantiate the given className passing the given arguments to the constructor with the given signature
+ java.lang.Objectinvoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Invokes the specified MBean operation on the MBean instance
+ booleanisEnabled() + +
+          This interceptor is always enabled
+ voidregistration(MBeanMetaData metadata, + int operation) + +
+          Calls the specified MBeanRegistration method on the MBean instance.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+          Removes the given notification listener from the MBean.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Removes the given notification listener from the MBean, specified by the given filter and handback.
+ voidsetAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+          Sets the specified attribute value on the MBean instance.
+ javax.management.AttributeListsetAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+          Sets the specified attributes values on the MBean instance.
+ + + + + + + +
Methods inherited from class mx4j.server.interceptor.DefaultMBeanServerInterceptor
getLogger, getNext, setChain, setEnabled
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+InvokerMBeanServerInterceptor

+
+public InvokerMBeanServerInterceptor(javax.management.MBeanServer outerServer)
+
+
Instantiates a new interceptor instance. +

+

Parameters:
outerServer - the MBeanServer instance that is passed to + MBeanRegistration.preRegister(MBeanServer, ObjectName).
+ + + + + + + + +
+Method Detail
+ +

+getType

+
+public java.lang.String getType()
+
+
Returns the type of this interceptor +

+

+
Specified by:
getType in interface InvokerMBeanServerInterceptorMBean
Specified by:
getType in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+isEnabled

+
+public boolean isEnabled()
+
+
This interceptor is always enabled +

+

+
Specified by:
isEnabled in interface InvokerMBeanServerInterceptorMBean
Overrides:
isEnabled in class DefaultMBeanServerInterceptor
+
+
+
See Also:
DefaultMBeanServerInterceptor.setEnabled(boolean)
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(MBeanMetaData metadata,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+
+
Description copied from interface: MBeanServerInterceptor
+
Adds the given notification listener to the MBean, along with the given filter and handback +

+

+
Specified by:
addNotificationListener in interface MBeanServerInterceptor
Overrides:
addNotificationListener in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
Overrides:
removeNotificationListener in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean, specified by the given filter and handback. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
Overrides:
removeNotificationListener in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+instantiate

+
+public void instantiate(MBeanMetaData metadata,
+                        java.lang.String className,
+                        java.lang.String[] params,
+                        java.lang.Object[] args)
+                 throws javax.management.ReflectionException,
+                        javax.management.MBeanException
+
+
Description copied from interface: MBeanServerInterceptor
+
Instantiate the given className passing the given arguments to the constructor with the given signature +

+

+
Specified by:
instantiate in interface MBeanServerInterceptor
Overrides:
instantiate in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException
+
+
+
+ +

+registration

+
+public void registration(MBeanMetaData metadata,
+                         int operation)
+                  throws javax.management.MBeanRegistrationException
+
+
Description copied from interface: MBeanServerInterceptor
+
Calls the specified MBeanRegistration method on the MBean instance. +

+

+
Specified by:
registration in interface MBeanServerInterceptor
Overrides:
registration in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanRegistrationException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(MBeanMetaData metadata)
+
+
Description copied from interface: MBeanServerInterceptor
+
Calls getMBeanInfo on the MBean instance (only on DynamicMBeans). +

+

+
Specified by:
getMBeanInfo in interface MBeanServerInterceptor
Overrides:
getMBeanInfo in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(MBeanMetaData metadata,
+                               java.lang.String method,
+                               java.lang.String[] params,
+                               java.lang.Object[] args)
+                        throws javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Invokes the specified MBean operation on the MBean instance +

+

+
Specified by:
invoke in interface MBeanServerInterceptor
Overrides:
invoke in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(MBeanMetaData metadata,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Gets the specified attribute value from the MBean instance. +

+

+
Specified by:
getAttribute in interface MBeanServerInterceptor
Overrides:
getAttribute in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(MBeanMetaData metadata,
+                         javax.management.Attribute attribute)
+                  throws javax.management.MBeanException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Sets the specified attribute value on the MBean instance. +

+

+
Specified by:
setAttribute in interface MBeanServerInterceptor
Overrides:
setAttribute in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.ReflectionException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(MBeanMetaData metadata,
+                                                    java.lang.String[] attributes)
+
+
Description copied from interface: MBeanServerInterceptor
+
Gets the specified attributes values from the MBean instance. +

+

+
Specified by:
getAttributes in interface MBeanServerInterceptor
Overrides:
getAttributes in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(MBeanMetaData metadata,
+                                                    javax.management.AttributeList attributes)
+
+
Description copied from interface: MBeanServerInterceptor
+
Sets the specified attributes values on the MBean instance. +

+

+
Specified by:
setAttributes in interface MBeanServerInterceptor
Overrides:
setAttributes in class DefaultMBeanServerInterceptor
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBean.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBean.html new file mode 100644 index 0000000..983cb81 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBean.html @@ -0,0 +1,246 @@ + + + + + + +InvokerMBeanServerInterceptorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Interface InvokerMBeanServerInterceptorMBean

+
+
All Known Implementing Classes:
InvokerMBeanServerInterceptor
+
+
+
+
public interface InvokerMBeanServerInterceptorMBean
+ +

+Management interface for the InvokerMBeanServerInterceptor MBean +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetType() + +
+          Returns the type of this interceptor
+ booleanisEnabled() + +
+          This interceptor is always enabled
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getType

+
+public java.lang.String getType()
+
+
Returns the type of this interceptor +

+

+
+
+
+
+ +

+isEnabled

+
+public boolean isEnabled()
+
+
This interceptor is always enabled +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBeanDescription.html new file mode 100644 index 0000000..9bf5d1c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBeanDescription.html @@ -0,0 +1,306 @@ + + + + + + +InvokerMBeanServerInterceptorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class InvokerMBeanServerInterceptorMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.server.interceptor.InvokerMBeanServerInterceptorMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class InvokerMBeanServerInterceptorMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Management interface description for the InvokerMBeanServerInterceptor MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
InvokerMBeanServerInterceptorMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName, getOperationDescription, getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+InvokerMBeanServerInterceptorMBeanDescription

+
+public InvokerMBeanServerInterceptorMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptor.html new file mode 100644 index 0000000..79cb27d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptor.html @@ -0,0 +1,664 @@ + + + + + + +MBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Interface MBeanServerInterceptor

+
+
All Known Implementing Classes:
DefaultMBeanServerInterceptor
+
+
+
+
public interface MBeanServerInterceptor
+ +

+MBeanServer --> MBean interceptor. + These interceptors are used internally to implement MBeanServer functionality prior to call + MBeans, and can be used to customize MBeanServer implementation by users. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static intPOST_DEREGISTER + +
+          Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int)
+static intPOST_REGISTER_FALSE + +
+          Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int)
+static intPOST_REGISTER_TRUE + +
+          Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int)
+static intPRE_DEREGISTER + +
+          Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int)
+static intPRE_REGISTER + +
+          Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int)
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Adds the given notification listener to the MBean, along with the given filter and handback
+ java.lang.ObjectgetAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+          Gets the specified attribute value from the MBean instance.
+ javax.management.AttributeListgetAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+          Gets the specified attributes values from the MBean instance.
+ javax.management.MBeanInfogetMBeanInfo(MBeanMetaData metadata) + +
+          Calls getMBeanInfo on the MBean instance (only on DynamicMBeans).
+ java.lang.StringgetType() + +
+          A concise string that tells the type of this interceptor
+ voidinstantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Instantiate the given className passing the given arguments to the constructor with the given signature
+ java.lang.Objectinvoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Invokes the specified MBean operation on the MBean instance
+ voidregistration(MBeanMetaData metadata, + int operation) + +
+          Calls the specified MBeanRegistration method on the MBean instance.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+          Removes the given notification listener from the MBean.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Removes the given notification listener from the MBean, specified by the given filter and handback.
+ voidsetAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+          Sets the specified attribute value on the MBean instance.
+ javax.management.AttributeListsetAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+          Sets the specified attributes values on the MBean instance.
+ voidsetChain(java.util.List interceptors) + +
+          Sets the chain of interceptors on this interceptor.
+  +

+ + + + + + + + +
+Field Detail
+ +

+PRE_REGISTER

+
+public static final int PRE_REGISTER
+
+
Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int) +

+

+
See Also:
Constant Field Values
+
+
+ +

+POST_REGISTER_TRUE

+
+public static final int POST_REGISTER_TRUE
+
+
Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int) +

+

+
See Also:
Constant Field Values
+
+
+ +

+POST_REGISTER_FALSE

+
+public static final int POST_REGISTER_FALSE
+
+
Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int) +

+

+
See Also:
Constant Field Values
+
+
+ +

+PRE_DEREGISTER

+
+public static final int PRE_DEREGISTER
+
+
Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int) +

+

+
See Also:
Constant Field Values
+
+
+ +

+POST_DEREGISTER

+
+public static final int POST_DEREGISTER
+
+
Constant used to specify the status of the MBean registration in registration(mx4j.server.MBeanMetaData, int) +

+

+
See Also:
Constant Field Values
+
+ + + + + + + + + + + +
+Method Detail
+ +

+getType

+
+public java.lang.String getType()
+
+
A concise string that tells the type of this interceptor +

+

+
+
+
+
+ +

+setChain

+
+public void setChain(java.util.List interceptors)
+
+
Sets the chain of interceptors on this interceptor. This interceptor will use this list to + find the interceptor in the chain after itself +

+

+
Parameters:
interceptors - The list of interceptors
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(MBeanMetaData metadata,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+
+
Adds the given notification listener to the MBean, along with the given filter and handback +

+

+
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.ListenerNotFoundException
+
+
Removes the given notification listener from the MBean. +

+

+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
Removes the given notification listener from the MBean, specified by the given filter and handback. +

+

+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+instantiate

+
+public void instantiate(MBeanMetaData metadata,
+                        java.lang.String className,
+                        java.lang.String[] params,
+                        java.lang.Object[] args)
+                 throws javax.management.ReflectionException,
+                        javax.management.MBeanException
+
+
Instantiate the given className passing the given arguments to the constructor with the given signature +

+

+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException
+
+
+
+ +

+registration

+
+public void registration(MBeanMetaData metadata,
+                         int operation)
+                  throws javax.management.MBeanRegistrationException
+
+
Calls the specified MBeanRegistration method on the MBean instance. +

+

+ +
Throws: +
javax.management.MBeanRegistrationException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(MBeanMetaData metadata)
+
+
Calls getMBeanInfo on the MBean instance (only on DynamicMBeans). +

+

+
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(MBeanMetaData metadata,
+                               java.lang.String method,
+                               java.lang.String[] params,
+                               java.lang.Object[] args)
+                        throws javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
Invokes the specified MBean operation on the MBean instance +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(MBeanMetaData metadata,
+                                                    java.lang.String[] attributes)
+
+
Gets the specified attributes values from the MBean instance. +

+

+
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(MBeanMetaData metadata,
+                                                    javax.management.AttributeList attributes)
+
+
Sets the specified attributes values on the MBean instance. +

+

+
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(MBeanMetaData metadata,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.ReflectionException
+
+
Gets the specified attribute value from the MBean instance. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(MBeanMetaData metadata,
+                         javax.management.Attribute attribute)
+                  throws javax.management.MBeanException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.ReflectionException
+
+
Sets the specified attribute value on the MBean instance. +

+

+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.ReflectionException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfigurator.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfigurator.html new file mode 100644 index 0000000..b7bddd3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfigurator.html @@ -0,0 +1,506 @@ + + + + + + +MBeanServerInterceptorConfigurator (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class MBeanServerInterceptorConfigurator

+
+java.lang.Object
+  extended bymx4j.server.interceptor.MBeanServerInterceptorConfigurator
+
+
+
All Implemented Interfaces:
MBeanServerInterceptorConfiguratorMBean
+
+
+
+
public class MBeanServerInterceptorConfigurator
extends java.lang.Object
implements MBeanServerInterceptorConfiguratorMBean
+ +

+MBean that configures the MBeanServer --> MBean interceptor chain. +

+ +

+

+
Version:
+
$Revision: 1.9 $
+
+
+ +

+ + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringOBJECT_NAME + +
+           
+  + + + + + + + + + + +
+Constructor Summary
MBeanServerInterceptorConfigurator(javax.management.MBeanServer server) + +
+          Creates an instance of this configurator, for the given MBeanServer
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddInterceptor(MBeanServerInterceptor interceptor) + +
+          Appends the given interceptor, provided by the client, to the existing interceptor chain.
+ voidaddPostInterceptor(MBeanServerInterceptor interceptor) + +
+          Adds the given interceptor at the end of the interceptor chain, after the custom interceptors that may be added + via addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor).
+ voidaddPreInterceptor(MBeanServerInterceptor interceptor) + +
+          Adds the given interceptor at the beginning of the interceptor chain, before the custom interceptors that may be added + via addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor).
+ voidclearInterceptors() + +
+          Removes all the interceptors added via addInterceptor(MBeanServerInterceptor interceptor).
+ MBeanServerInterceptorgetHeadInterceptor() + +
+          Returns the head interceptor of the interceptor chain.
+ booleanisRunning() + +
+          Returns whether this configurator is running and thus if the MBeanServer can accept incoming calls
+ voidregisterInterceptor(MBeanServerInterceptor interceptor, + javax.management.ObjectName name) + +
+          Appends the given interceptor, provided by the client, to the existing interceptor chain and registers it as MBean.
+ voidstart() + +
+          Starts this configurator, so that the MBeanServer is now able to accept incoming calls.
+ voidstop() + +
+          Stops this configurator, so that the MBeanServer is not able to accept incoming calls.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+OBJECT_NAME

+
+public static final java.lang.String OBJECT_NAME
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+MBeanServerInterceptorConfigurator

+
+public MBeanServerInterceptorConfigurator(javax.management.MBeanServer server)
+
+
Creates an instance of this configurator, for the given MBeanServer +

+

+ + + + + + + + +
+Method Detail
+ +

+addInterceptor

+
+public void addInterceptor(MBeanServerInterceptor interceptor)
+
+
Appends the given interceptor, provided by the client, to the existing interceptor chain. +

+

+
Specified by:
addInterceptor in interface MBeanServerInterceptorConfiguratorMBean
+
+
+
See Also:
registerInterceptor(mx4j.server.interceptor.MBeanServerInterceptor, javax.management.ObjectName)
+
+
+
+ +

+registerInterceptor

+
+public void registerInterceptor(MBeanServerInterceptor interceptor,
+                                javax.management.ObjectName name)
+                         throws javax.management.MBeanException
+
+
Appends the given interceptor, provided by the client, to the existing interceptor chain and registers it as MBean. +

+

+
Specified by:
registerInterceptor in interface MBeanServerInterceptorConfiguratorMBean
+
+
+ +
Throws: +
javax.management.MBeanException
See Also:
addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor)
+
+
+
+ +

+clearInterceptors

+
+public void clearInterceptors()
+
+
Removes all the interceptors added via addInterceptor(MBeanServerInterceptor interceptor). +

+

+
Specified by:
clearInterceptors in interface MBeanServerInterceptorConfiguratorMBean
+
+
+
See Also:
addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor)
+
+
+
+ +

+addPreInterceptor

+
+public void addPreInterceptor(MBeanServerInterceptor interceptor)
+
+
Adds the given interceptor at the beginning of the interceptor chain, before the custom interceptors that may be added + via addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor). + This method is called by the MBeanServer during initialization, to configure the interceptors needed to work properly. +

+

+
+
+
+
+
+
+
+ +

+addPostInterceptor

+
+public void addPostInterceptor(MBeanServerInterceptor interceptor)
+
+
Adds the given interceptor at the end of the interceptor chain, after the custom interceptors that may be added + via addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor). + This method is called by the MBeanServer during initialization, to configure the interceptors needed to work properly. +

+

+
+
+
+
+
+
+
+ +

+getHeadInterceptor

+
+public MBeanServerInterceptor getHeadInterceptor()
+
+
Returns the head interceptor of the interceptor chain. + The head interceptor is always present. +

+

+
+
+
+
+
+
+
+ +

+start

+
+public void start()
+
+
Starts this configurator, so that the MBeanServer is now able to accept incoming calls. +

+

+
Specified by:
start in interface MBeanServerInterceptorConfiguratorMBean
+
+
+
See Also:
stop(), +isRunning()
+
+
+
+ +

+stop

+
+public void stop()
+
+
Stops this configurator, so that the MBeanServer is not able to accept incoming calls. +

+

+
Specified by:
stop in interface MBeanServerInterceptorConfiguratorMBean
+
+
+
See Also:
start()
+
+
+
+ +

+isRunning

+
+public boolean isRunning()
+
+
Returns whether this configurator is running and thus if the MBeanServer can accept incoming calls +

+

+
Specified by:
isRunning in interface MBeanServerInterceptorConfiguratorMBean
+
+
+
See Also:
start()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBean.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBean.html new file mode 100644 index 0000000..528afe1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBean.html @@ -0,0 +1,336 @@ + + + + + + +MBeanServerInterceptorConfiguratorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Interface MBeanServerInterceptorConfiguratorMBean

+
+
All Known Implementing Classes:
MBeanServerInterceptorConfigurator
+
+
+
+
public interface MBeanServerInterceptorConfiguratorMBean
+ +

+Management interface for the MBeanServerInterceptorConfigurator MBean. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddInterceptor(MBeanServerInterceptor interceptor) + +
+          Appends the given interceptor, provided by the client, to the existing interceptor chain.
+ voidclearInterceptors() + +
+          Removes all the interceptors added via addInterceptor(MBeanServerInterceptor interceptor).
+ booleanisRunning() + +
+          Returns whether this configurator is running and thus if the MBeanServer can accept incoming calls
+ voidregisterInterceptor(MBeanServerInterceptor interceptor, + javax.management.ObjectName name) + +
+          Appends the given interceptor, provided by the client, to the existing interceptor chain and registers it as MBean.
+ voidstart() + +
+          Starts this configurator, so that the MBeanServer is now able to accept incoming calls.
+ voidstop() + +
+          Stops this configurator, so that the MBeanServer is not able to accept incoming calls.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+addInterceptor

+
+public void addInterceptor(MBeanServerInterceptor interceptor)
+
+
Appends the given interceptor, provided by the client, to the existing interceptor chain. +

+

+
See Also:
registerInterceptor(mx4j.server.interceptor.MBeanServerInterceptor, javax.management.ObjectName)
+
+
+
+ +

+registerInterceptor

+
+public void registerInterceptor(MBeanServerInterceptor interceptor,
+                                javax.management.ObjectName name)
+                         throws javax.management.MBeanException
+
+
Appends the given interceptor, provided by the client, to the existing interceptor chain and registers it as MBean. +

+

+ +
Throws: +
javax.management.MBeanException
See Also:
addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor)
+
+
+
+ +

+clearInterceptors

+
+public void clearInterceptors()
+
+
Removes all the interceptors added via addInterceptor(MBeanServerInterceptor interceptor). +

+

+
See Also:
addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor)
+
+
+
+ +

+start

+
+public void start()
+
+
Starts this configurator, so that the MBeanServer is now able to accept incoming calls. +

+

+
See Also:
stop(), +isRunning()
+
+
+
+ +

+stop

+
+public void stop()
+
+
Stops this configurator, so that the MBeanServer is not able to accept incoming calls. +

+

+
See Also:
start()
+
+
+
+ +

+isRunning

+
+public boolean isRunning()
+
+
Returns whether this configurator is running and thus if the MBeanServer can accept incoming calls +

+

+
See Also:
start()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBeanDescription.html new file mode 100644 index 0000000..dcb0b43 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBeanDescription.html @@ -0,0 +1,461 @@ + + + + + + +MBeanServerInterceptorConfiguratorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class MBeanServerInterceptorConfiguratorMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class MBeanServerInterceptorConfiguratorMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Management interface description for the MBeanServerInterceptorConfigurator MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MBeanServerInterceptorConfiguratorMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetConstructorDescription(java.lang.reflect.Constructor ctor) + +
+          Should return the description for the given constructor of the MBean.
+ java.lang.StringgetConstructorParameterDescription(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the description for the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetConstructorParameterName(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the name of the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ java.lang.StringgetOperationParameterDescription(java.lang.reflect.Method method, + int index) + +
+          Should return the description for the operations's parameter for the given operation and parameter index.
+ java.lang.StringgetOperationParameterName(java.lang.reflect.Method method, + int index) + +
+          Should return the name of the operation's parameter for the given operation and parameter index.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanServerInterceptorConfiguratorMBeanDescription

+
+public MBeanServerInterceptorConfiguratorMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorDescription

+
+public java.lang.String getConstructorDescription(java.lang.reflect.Constructor ctor)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the given constructor of the MBean. + For example: "Creates an rmiregistry instance on the specified port" +

+

+
Specified by:
getConstructorDescription in interface MBeanDescription
Overrides:
getConstructorDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorParameterName

+
+public java.lang.String getConstructorParameterName(java.lang.reflect.Constructor ctor,
+                                                    int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the constructor's parameter for the given constructor and parameter index. + For example: "port" +

+

+
Specified by:
getConstructorParameterName in interface MBeanDescription
Overrides:
getConstructorParameterName in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorParameterDescription

+
+public java.lang.String getConstructorParameterDescription(java.lang.reflect.Constructor ctor,
+                                                           int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the constructor's parameter for the given constructor and parameter index. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getConstructorParameterDescription in interface MBeanDescription
Overrides:
getConstructorParameterDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
Overrides:
getOperationDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationParameterName

+
+public java.lang.String getOperationParameterName(java.lang.reflect.Method method,
+                                                  int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the operation's parameter for the given operation and parameter index. + For example: "bindName" +

+

+
Specified by:
getOperationParameterName in interface MBeanDescription
Overrides:
getOperationParameterName in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationParameterDescription

+
+public java.lang.String getOperationParameterDescription(java.lang.reflect.Method method,
+                                                         int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the operations's parameter for the given operation and parameter index. + For example: "The name to which the object will be bound to" +

+

+
Specified by:
getOperationParameterDescription in interface MBeanDescription
Overrides:
getOperationParameterDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/NotificationListenerMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/NotificationListenerMBeanServerInterceptor.html new file mode 100644 index 0000000..8d6aa52 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/NotificationListenerMBeanServerInterceptor.html @@ -0,0 +1,478 @@ + + + + + + +NotificationListenerMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class NotificationListenerMBeanServerInterceptor

+
+java.lang.Object
+  extended bymx4j.server.interceptor.DefaultMBeanServerInterceptor
+      extended bymx4j.server.interceptor.NotificationListenerMBeanServerInterceptor
+
+
+
All Implemented Interfaces:
DefaultMBeanServerInterceptorMBean, MBeanServerInterceptor
+
+
+
+
public class NotificationListenerMBeanServerInterceptor
extends DefaultMBeanServerInterceptor
+ +

+Interceptor that takes care of replacing the source of Notifications to the + ObjectName of the NotificationBroadcaster that emitted it. +

+ +

+

+
Version:
+
$Revision: 1.14 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface mx4j.server.interceptor.MBeanServerInterceptor
POST_DEREGISTER, POST_REGISTER_FALSE, POST_REGISTER_TRUE, PRE_DEREGISTER, PRE_REGISTER
+  + + + + + + + + + + +
+Constructor Summary
NotificationListenerMBeanServerInterceptor() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Adds the given notification listener to the MBean, along with the given filter and handback
+ intgetNotificationListenerWrapperReferenceCount(java.lang.Object wrapper) + +
+           
+ java.util.MapgetNotificationListenerWrappers() + +
+           
+ java.util.MapgetObjectNames() + +
+           
+ java.lang.StringgetType() + +
+          Returns the type of this interceptor
+ voidregistration(MBeanMetaData metadata, + int operation) + +
+          Calls the specified MBeanRegistration method on the MBean instance.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+          Removes the given notification listener from the MBean.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Removes the given notification listener from the MBean, specified by the given filter and handback.
+ + + + + + + +
Methods inherited from class mx4j.server.interceptor.DefaultMBeanServerInterceptor
getAttribute, getAttributes, getLogger, getMBeanInfo, getNext, instantiate, invoke, isEnabled, setAttribute, setAttributes, setChain, setEnabled
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationListenerMBeanServerInterceptor

+
+public NotificationListenerMBeanServerInterceptor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getType

+
+public java.lang.String getType()
+
+
Description copied from class: DefaultMBeanServerInterceptor
+
Returns the type of this interceptor +

+

+
Specified by:
getType in interface MBeanServerInterceptor
Specified by:
getType in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(MBeanMetaData metadata,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+
+
Description copied from interface: MBeanServerInterceptor
+
Adds the given notification listener to the MBean, along with the given filter and handback +

+

+
Specified by:
addNotificationListener in interface MBeanServerInterceptor
Overrides:
addNotificationListener in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
Overrides:
removeNotificationListener in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean, specified by the given filter and handback. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
Overrides:
removeNotificationListener in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+registration

+
+public void registration(MBeanMetaData metadata,
+                         int operation)
+                  throws javax.management.MBeanRegistrationException
+
+
Description copied from interface: MBeanServerInterceptor
+
Calls the specified MBeanRegistration method on the MBean instance. +

+

+
Specified by:
registration in interface MBeanServerInterceptor
Overrides:
registration in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanRegistrationException
+
+
+
+ +

+getNotificationListenerWrappers

+
+public java.util.Map getNotificationListenerWrappers()
+
+
+
+
+
+
+ +

+getNotificationListenerWrapperReferenceCount

+
+public int getNotificationListenerWrapperReferenceCount(java.lang.Object wrapper)
+
+
+
+
+
+
+ +

+getObjectNames

+
+public java.util.Map getObjectNames()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptor.html new file mode 100644 index 0000000..137c338 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptor.html @@ -0,0 +1,667 @@ + + + + + + +SecurityMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class SecurityMBeanServerInterceptor

+
+java.lang.Object
+  extended bymx4j.server.interceptor.DefaultMBeanServerInterceptor
+      extended bymx4j.server.interceptor.SecurityMBeanServerInterceptor
+
+
+
All Implemented Interfaces:
DefaultMBeanServerInterceptorMBean, MBeanServerInterceptor, SecurityMBeanServerInterceptorMBean
+
+
+
+
public class SecurityMBeanServerInterceptor
extends DefaultMBeanServerInterceptor
implements SecurityMBeanServerInterceptorMBean
+ +

+Interceptor that takes care of performing security checks (in case the SecurityManager is installed) for + MBeanServer to MBean calls. +

+ +

+

+
Version:
+
$Revision: 1.14 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface mx4j.server.interceptor.MBeanServerInterceptor
POST_DEREGISTER, POST_REGISTER_FALSE, POST_REGISTER_TRUE, PRE_DEREGISTER, PRE_REGISTER
+  + + + + + + + + + + +
+Constructor Summary
SecurityMBeanServerInterceptor() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Adds the given notification listener to the MBean, along with the given filter and handback
+ java.lang.ObjectgetAttribute(MBeanMetaData metadata, + java.lang.String attribute) + +
+          Gets the specified attribute value from the MBean instance.
+ javax.management.AttributeListgetAttributes(MBeanMetaData metadata, + java.lang.String[] attributes) + +
+          Gets the specified attributes values from the MBean instance.
+ javax.management.MBeanInfogetMBeanInfo(MBeanMetaData metadata) + +
+          Calls getMBeanInfo on the MBean instance (only on DynamicMBeans).
+ java.lang.StringgetType() + +
+          Returns the type of this interceptor
+ voidinstantiate(MBeanMetaData metadata, + java.lang.String className, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Instantiate the given className passing the given arguments to the constructor with the given signature
+ java.lang.Objectinvoke(MBeanMetaData metadata, + java.lang.String method, + java.lang.String[] params, + java.lang.Object[] args) + +
+          Invokes the specified MBean operation on the MBean instance
+ booleanisEnabled() + +
+          This interceptor is always enabled
+ voidregistration(MBeanMetaData metadata, + int operation) + +
+          Calls the specified MBeanRegistration method on the MBean instance.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener) + +
+          Removes the given notification listener from the MBean.
+ voidremoveNotificationListener(MBeanMetaData metadata, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+          Removes the given notification listener from the MBean, specified by the given filter and handback.
+ voidsetAttribute(MBeanMetaData metadata, + javax.management.Attribute attribute) + +
+          Sets the specified attribute value on the MBean instance.
+ javax.management.AttributeListsetAttributes(MBeanMetaData metadata, + javax.management.AttributeList attributes) + +
+          Sets the specified attributes values on the MBean instance.
+ + + + + + + +
Methods inherited from class mx4j.server.interceptor.DefaultMBeanServerInterceptor
getLogger, getNext, setChain, setEnabled
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SecurityMBeanServerInterceptor

+
+public SecurityMBeanServerInterceptor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getType

+
+public java.lang.String getType()
+
+
Description copied from interface: SecurityMBeanServerInterceptorMBean
+
Returns the type of this interceptor +

+

+
Specified by:
getType in interface SecurityMBeanServerInterceptorMBean
Specified by:
getType in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+isEnabled

+
+public boolean isEnabled()
+
+
Description copied from interface: SecurityMBeanServerInterceptorMBean
+
This interceptor is always enabled +

+

+
Specified by:
isEnabled in interface SecurityMBeanServerInterceptorMBean
Overrides:
isEnabled in class DefaultMBeanServerInterceptor
+
+
+
See Also:
DefaultMBeanServerInterceptor.setEnabled(boolean)
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(MBeanMetaData metadata,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+
+
Description copied from interface: MBeanServerInterceptor
+
Adds the given notification listener to the MBean, along with the given filter and handback +

+

+
Specified by:
addNotificationListener in interface MBeanServerInterceptor
Overrides:
addNotificationListener in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
Overrides:
removeNotificationListener in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(MBeanMetaData metadata,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
Description copied from interface: MBeanServerInterceptor
+
Removes the given notification listener from the MBean, specified by the given filter and handback. +

+

+
Specified by:
removeNotificationListener in interface MBeanServerInterceptor
Overrides:
removeNotificationListener in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+instantiate

+
+public void instantiate(MBeanMetaData metadata,
+                        java.lang.String className,
+                        java.lang.String[] params,
+                        java.lang.Object[] args)
+                 throws javax.management.ReflectionException,
+                        javax.management.MBeanException
+
+
Description copied from interface: MBeanServerInterceptor
+
Instantiate the given className passing the given arguments to the constructor with the given signature +

+

+
Specified by:
instantiate in interface MBeanServerInterceptor
Overrides:
instantiate in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.MBeanException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(MBeanMetaData metadata)
+
+
Description copied from interface: MBeanServerInterceptor
+
Calls getMBeanInfo on the MBean instance (only on DynamicMBeans). +

+

+
Specified by:
getMBeanInfo in interface MBeanServerInterceptor
Overrides:
getMBeanInfo in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(MBeanMetaData metadata,
+                               java.lang.String method,
+                               java.lang.String[] params,
+                               java.lang.Object[] args)
+                        throws javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Invokes the specified MBean operation on the MBean instance +

+

+
Specified by:
invoke in interface MBeanServerInterceptor
Overrides:
invoke in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(MBeanMetaData metadata,
+                                                    java.lang.String[] attributes)
+
+
Description copied from interface: MBeanServerInterceptor
+
Gets the specified attributes values from the MBean instance. +

+

+
Specified by:
getAttributes in interface MBeanServerInterceptor
Overrides:
getAttributes in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(MBeanMetaData metadata,
+                                                    javax.management.AttributeList attributes)
+
+
Description copied from interface: MBeanServerInterceptor
+
Sets the specified attributes values on the MBean instance. +

+

+
Specified by:
setAttributes in interface MBeanServerInterceptor
Overrides:
setAttributes in class DefaultMBeanServerInterceptor
+
+
+
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(MBeanMetaData metadata,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Gets the specified attribute value from the MBean instance. +

+

+
Specified by:
getAttribute in interface MBeanServerInterceptor
Overrides:
getAttribute in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.ReflectionException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(MBeanMetaData metadata,
+                         javax.management.Attribute attribute)
+                  throws javax.management.MBeanException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.ReflectionException
+
+
Description copied from interface: MBeanServerInterceptor
+
Sets the specified attribute value on the MBean instance. +

+

+
Specified by:
setAttribute in interface MBeanServerInterceptor
Overrides:
setAttribute in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.ReflectionException
+
+
+
+ +

+registration

+
+public void registration(MBeanMetaData metadata,
+                         int operation)
+                  throws javax.management.MBeanRegistrationException
+
+
Description copied from interface: MBeanServerInterceptor
+
Calls the specified MBeanRegistration method on the MBean instance. +

+

+
Specified by:
registration in interface MBeanServerInterceptor
Overrides:
registration in class DefaultMBeanServerInterceptor
+
+
+ +
Throws: +
javax.management.MBeanRegistrationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBean.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBean.html new file mode 100644 index 0000000..923fd43 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBean.html @@ -0,0 +1,246 @@ + + + + + + +SecurityMBeanServerInterceptorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Interface SecurityMBeanServerInterceptorMBean

+
+
All Known Implementing Classes:
SecurityMBeanServerInterceptor
+
+
+
+
public interface SecurityMBeanServerInterceptorMBean
+ +

+Management interface for the SecurityMBeanServerInterceptor MBean +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetType() + +
+          Returns the type of this interceptor
+ booleanisEnabled() + +
+          This interceptor is always enabled
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getType

+
+public java.lang.String getType()
+
+
Returns the type of this interceptor +

+

+
+
+
+
+ +

+isEnabled

+
+public boolean isEnabled()
+
+
This interceptor is always enabled +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBeanDescription.html new file mode 100644 index 0000000..df805ff --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBeanDescription.html @@ -0,0 +1,306 @@ + + + + + + +SecurityMBeanServerInterceptorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.server.interceptor +
+Class SecurityMBeanServerInterceptorMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.server.interceptor.SecurityMBeanServerInterceptorMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class SecurityMBeanServerInterceptorMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Management interface description for the SecurityMBeanServerInterceptor MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SecurityMBeanServerInterceptorMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName, getOperationDescription, getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SecurityMBeanServerInterceptorMBeanDescription

+
+public SecurityMBeanServerInterceptorMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/ContextClassLoaderMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/ContextClassLoaderMBeanServerInterceptor.html new file mode 100644 index 0000000..9bb43d6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/ContextClassLoaderMBeanServerInterceptor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor

+
+No usage of mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptor.html new file mode 100644 index 0000000..19c4d86 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptor.html @@ -0,0 +1,198 @@ + + + + + + +Uses of Class mx4j.server.interceptor.DefaultMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.DefaultMBeanServerInterceptor

+
+ + + + + + + + + +
+Packages that use DefaultMBeanServerInterceptor
mx4j.server.interceptor  
+  +

+ + + + + +
+Uses of DefaultMBeanServerInterceptor in mx4j.server.interceptor
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Subclasses of DefaultMBeanServerInterceptor in mx4j.server.interceptor
+ classContextClassLoaderMBeanServerInterceptor + +
+          This interceptor sets the context class loader to the proper value for incoming calls.
+ classInvokerMBeanServerInterceptor + +
+          The last MBeanServer --$gt; MBean interceptor in the chain.
+ classNotificationListenerMBeanServerInterceptor + +
+          Interceptor that takes care of replacing the source of Notifications to the + ObjectName of the NotificationBroadcaster that emitted it.
+ classSecurityMBeanServerInterceptor + +
+          Interceptor that takes care of performing security checks (in case the SecurityManager is installed) for + MBeanServer to MBean calls.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptorMBean.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptorMBean.html new file mode 100644 index 0000000..1077439 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptorMBean.html @@ -0,0 +1,206 @@ + + + + + + +Uses of Interface mx4j.server.interceptor.DefaultMBeanServerInterceptorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.server.interceptor.DefaultMBeanServerInterceptorMBean

+
+ + + + + + + + + +
+Packages that use DefaultMBeanServerInterceptorMBean
mx4j.server.interceptor  
+  +

+ + + + + +
+Uses of DefaultMBeanServerInterceptorMBean in mx4j.server.interceptor
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.server.interceptor that implement DefaultMBeanServerInterceptorMBean
+ classContextClassLoaderMBeanServerInterceptor + +
+          This interceptor sets the context class loader to the proper value for incoming calls.
+ classDefaultMBeanServerInterceptor + +
+          Base class for MBeanServer --> MBean interceptors.
+ classInvokerMBeanServerInterceptor + +
+          The last MBeanServer --$gt; MBean interceptor in the chain.
+ classNotificationListenerMBeanServerInterceptor + +
+          Interceptor that takes care of replacing the source of Notifications to the + ObjectName of the NotificationBroadcaster that emitted it.
+ classSecurityMBeanServerInterceptor + +
+          Interceptor that takes care of performing security checks (in case the SecurityManager is installed) for + MBeanServer to MBean calls.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptorMBeanDescription.html new file mode 100644 index 0000000..94ee865 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/DefaultMBeanServerInterceptorMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.interceptor.DefaultMBeanServerInterceptorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.DefaultMBeanServerInterceptorMBeanDescription

+
+No usage of mx4j.server.interceptor.DefaultMBeanServerInterceptorMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptor.html new file mode 100644 index 0000000..702ae7e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.interceptor.InvokerMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.InvokerMBeanServerInterceptor

+
+No usage of mx4j.server.interceptor.InvokerMBeanServerInterceptor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptorMBean.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptorMBean.html new file mode 100644 index 0000000..91f12ae --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptorMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.server.interceptor.InvokerMBeanServerInterceptorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.server.interceptor.InvokerMBeanServerInterceptorMBean

+
+ + + + + + + + + +
+Packages that use InvokerMBeanServerInterceptorMBean
mx4j.server.interceptor  
+  +

+ + + + + +
+Uses of InvokerMBeanServerInterceptorMBean in mx4j.server.interceptor
+  +

+ + + + + + + + + +
Classes in mx4j.server.interceptor that implement InvokerMBeanServerInterceptorMBean
+ classInvokerMBeanServerInterceptor + +
+          The last MBeanServer --$gt; MBean interceptor in the chain.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptorMBeanDescription.html new file mode 100644 index 0000000..2cd0f94 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/InvokerMBeanServerInterceptorMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.interceptor.InvokerMBeanServerInterceptorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.InvokerMBeanServerInterceptorMBeanDescription

+
+No usage of mx4j.server.interceptor.InvokerMBeanServerInterceptorMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptor.html new file mode 100644 index 0000000..65b3928 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptor.html @@ -0,0 +1,290 @@ + + + + + + +Uses of Interface mx4j.server.interceptor.MBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.server.interceptor.MBeanServerInterceptor

+
+ + + + + + + + + +
+Packages that use MBeanServerInterceptor
mx4j.server.interceptor  
+  +

+ + + + + +
+Uses of MBeanServerInterceptor in mx4j.server.interceptor
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.server.interceptor that implement MBeanServerInterceptor
+ classContextClassLoaderMBeanServerInterceptor + +
+          This interceptor sets the context class loader to the proper value for incoming calls.
+ classDefaultMBeanServerInterceptor + +
+          Base class for MBeanServer --> MBean interceptors.
+ classInvokerMBeanServerInterceptor + +
+          The last MBeanServer --$gt; MBean interceptor in the chain.
+ classNotificationListenerMBeanServerInterceptor + +
+          Interceptor that takes care of replacing the source of Notifications to the + ObjectName of the NotificationBroadcaster that emitted it.
+ classSecurityMBeanServerInterceptor + +
+          Interceptor that takes care of performing security checks (in case the SecurityManager is installed) for + MBeanServer to MBean calls.
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.server.interceptor that return MBeanServerInterceptor
+ MBeanServerInterceptorMBeanServerInterceptorConfigurator.getHeadInterceptor() + +
+          Returns the head interceptor of the interceptor chain.
+protected  MBeanServerInterceptorDefaultMBeanServerInterceptor.getNext() + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.server.interceptor with parameters of type MBeanServerInterceptor
+ voidMBeanServerInterceptorConfiguratorMBean.addInterceptor(MBeanServerInterceptor interceptor) + +
+          Appends the given interceptor, provided by the client, to the existing interceptor chain.
+ voidMBeanServerInterceptorConfiguratorMBean.registerInterceptor(MBeanServerInterceptor interceptor, + javax.management.ObjectName name) + +
+          Appends the given interceptor, provided by the client, to the existing interceptor chain and registers it as MBean.
+ voidMBeanServerInterceptorConfigurator.addInterceptor(MBeanServerInterceptor interceptor) + +
+          Appends the given interceptor, provided by the client, to the existing interceptor chain.
+ voidMBeanServerInterceptorConfigurator.registerInterceptor(MBeanServerInterceptor interceptor, + javax.management.ObjectName name) + +
+          Appends the given interceptor, provided by the client, to the existing interceptor chain and registers it as MBean.
+ voidMBeanServerInterceptorConfigurator.addPreInterceptor(MBeanServerInterceptor interceptor) + +
+          Adds the given interceptor at the beginning of the interceptor chain, before the custom interceptors that may be added + via MBeanServerInterceptorConfigurator.addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor).
+ voidMBeanServerInterceptorConfigurator.addPostInterceptor(MBeanServerInterceptor interceptor) + +
+          Adds the given interceptor at the end of the interceptor chain, after the custom interceptors that may be added + via MBeanServerInterceptorConfigurator.addInterceptor(mx4j.server.interceptor.MBeanServerInterceptor).
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfigurator.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfigurator.html new file mode 100644 index 0000000..a0e7d40 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfigurator.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.interceptor.MBeanServerInterceptorConfigurator (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.MBeanServerInterceptorConfigurator

+
+No usage of mx4j.server.interceptor.MBeanServerInterceptorConfigurator +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfiguratorMBean.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfiguratorMBean.html new file mode 100644 index 0000000..8fe8b82 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfiguratorMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBean

+
+ + + + + + + + + +
+Packages that use MBeanServerInterceptorConfiguratorMBean
mx4j.server.interceptor  
+  +

+ + + + + +
+Uses of MBeanServerInterceptorConfiguratorMBean in mx4j.server.interceptor
+  +

+ + + + + + + + + +
Classes in mx4j.server.interceptor that implement MBeanServerInterceptorConfiguratorMBean
+ classMBeanServerInterceptorConfigurator + +
+          MBean that configures the MBeanServer --> MBean interceptor chain.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfiguratorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfiguratorMBeanDescription.html new file mode 100644 index 0000000..3afac94 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/MBeanServerInterceptorConfiguratorMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription

+
+No usage of mx4j.server.interceptor.MBeanServerInterceptorConfiguratorMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/NotificationListenerMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/NotificationListenerMBeanServerInterceptor.html new file mode 100644 index 0000000..a02d0bd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/NotificationListenerMBeanServerInterceptor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor

+
+No usage of mx4j.server.interceptor.NotificationListenerMBeanServerInterceptor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptor.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptor.html new file mode 100644 index 0000000..947f71b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.interceptor.SecurityMBeanServerInterceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.SecurityMBeanServerInterceptor

+
+No usage of mx4j.server.interceptor.SecurityMBeanServerInterceptor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptorMBean.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptorMBean.html new file mode 100644 index 0000000..8795829 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptorMBean.html @@ -0,0 +1,173 @@ + + + + + + +Uses of Interface mx4j.server.interceptor.SecurityMBeanServerInterceptorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.server.interceptor.SecurityMBeanServerInterceptorMBean

+
+ + + + + + + + + +
+Packages that use SecurityMBeanServerInterceptorMBean
mx4j.server.interceptor  
+  +

+ + + + + +
+Uses of SecurityMBeanServerInterceptorMBean in mx4j.server.interceptor
+  +

+ + + + + + + + + +
Classes in mx4j.server.interceptor that implement SecurityMBeanServerInterceptorMBean
+ classSecurityMBeanServerInterceptor + +
+          Interceptor that takes care of performing security checks (in case the SecurityManager is installed) for + MBeanServer to MBean calls.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptorMBeanDescription.html new file mode 100644 index 0000000..a4828cf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/class-use/SecurityMBeanServerInterceptorMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.server.interceptor.SecurityMBeanServerInterceptorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.server.interceptor.SecurityMBeanServerInterceptorMBeanDescription

+
+No usage of mx4j.server.interceptor.SecurityMBeanServerInterceptorMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-frame.html new file mode 100644 index 0000000..4019881 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-frame.html @@ -0,0 +1,69 @@ + + + + + + +mx4j.server.interceptor (MX4J API) + + + + + + + + + + + +mx4j.server.interceptor + + + + +
+Interfaces  + +
+DefaultMBeanServerInterceptorMBean +
+InvokerMBeanServerInterceptorMBean +
+MBeanServerInterceptor +
+MBeanServerInterceptorConfiguratorMBean +
+SecurityMBeanServerInterceptorMBean
+ + + + + + +
+Classes  + +
+ContextClassLoaderMBeanServerInterceptor +
+DefaultMBeanServerInterceptor +
+DefaultMBeanServerInterceptorMBeanDescription +
+InvokerMBeanServerInterceptor +
+InvokerMBeanServerInterceptorMBeanDescription +
+MBeanServerInterceptorConfigurator +
+MBeanServerInterceptorConfiguratorMBeanDescription +
+NotificationListenerMBeanServerInterceptor +
+SecurityMBeanServerInterceptor +
+SecurityMBeanServerInterceptorMBeanDescription
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-summary.html new file mode 100644 index 0000000..b2fc4a0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-summary.html @@ -0,0 +1,216 @@ + + + + + + +mx4j.server.interceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.server.interceptor +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Interface Summary
DefaultMBeanServerInterceptorMBeanManagement interface for the DefaultMBeanServerInterceptor MBean
InvokerMBeanServerInterceptorMBeanManagement interface for the InvokerMBeanServerInterceptor MBean
MBeanServerInterceptorMBeanServer --> MBean interceptor.
MBeanServerInterceptorConfiguratorMBeanManagement interface for the MBeanServerInterceptorConfigurator MBean.
SecurityMBeanServerInterceptorMBeanManagement interface for the SecurityMBeanServerInterceptor MBean
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
ContextClassLoaderMBeanServerInterceptorThis interceptor sets the context class loader to the proper value for incoming calls.
DefaultMBeanServerInterceptorBase class for MBeanServer --> MBean interceptors.
DefaultMBeanServerInterceptorMBeanDescriptionManagement interface description for the DefaultMBeanServerInterceptor MBean
InvokerMBeanServerInterceptorThe last MBeanServer --$gt; MBean interceptor in the chain.
InvokerMBeanServerInterceptorMBeanDescriptionManagement interface description for the InvokerMBeanServerInterceptor MBean.
MBeanServerInterceptorConfiguratorMBean that configures the MBeanServer --> MBean interceptor chain.
MBeanServerInterceptorConfiguratorMBeanDescriptionManagement interface description for the MBeanServerInterceptorConfigurator MBean.
NotificationListenerMBeanServerInterceptorInterceptor that takes care of replacing the source of Notifications to the + ObjectName of the NotificationBroadcaster that emitted it.
SecurityMBeanServerInterceptorInterceptor that takes care of performing security checks (in case the SecurityManager is installed) for + MBeanServer to MBean calls.
SecurityMBeanServerInterceptorMBeanDescriptionManagement interface description for the SecurityMBeanServerInterceptor MBean.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-tree.html new file mode 100644 index 0000000..59a10cc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-tree.html @@ -0,0 +1,159 @@ + + + + + + +mx4j.server.interceptor Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.server.interceptor +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-use.html b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-use.html new file mode 100644 index 0000000..a2b6a18 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/interceptor/package-use.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Package mx4j.server.interceptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.server.interceptor

+
+ + + + + + + + + +
+Packages that use mx4j.server.interceptor
mx4j.server.interceptor  
+  +

+ + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.server.interceptor used by mx4j.server.interceptor
DefaultMBeanServerInterceptor + +
+          Base class for MBeanServer --> MBean interceptors.
DefaultMBeanServerInterceptorMBean + +
+          Management interface for the DefaultMBeanServerInterceptor MBean
InvokerMBeanServerInterceptorMBean + +
+          Management interface for the InvokerMBeanServerInterceptor MBean
MBeanServerInterceptor + +
+          MBeanServer --> MBean interceptor.
MBeanServerInterceptorConfiguratorMBean + +
+          Management interface for the MBeanServerInterceptorConfigurator MBean.
SecurityMBeanServerInterceptorMBean + +
+          Management interface for the SecurityMBeanServerInterceptor MBean
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/server/package-frame.html new file mode 100644 index 0000000..9fd4041 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/package-frame.html @@ -0,0 +1,69 @@ + + + + + + +mx4j.server (MX4J API) + + + + + + + + + + + +mx4j.server + + + + +
+Interfaces  + +
+MBeanInvoker +
+MBeanMetaData +
+MBeanRepository
+ + + + + + +
+Classes  + +
+BCELMBeanInvoker +
+CachingReflectionMBeanInvoker +
+ChainedMBeanServer +
+ChainedMBeanServerBuilder +
+DefaultClassLoaderRepository +
+MBeanIntrospector +
+MBeanMetaData.Factory +
+ModifiableClassLoaderRepository +
+MX4JMBeanServer +
+MX4JMBeanServerBuilder +
+MX4JMBeanServerDelegate +
+ReflectionMBeanInvoker
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/server/package-summary.html new file mode 100644 index 0000000..36cfe41 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/package-summary.html @@ -0,0 +1,215 @@ + + + + + + +mx4j.server (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.server +

+ + + + + + + + + + + + + + + + + +
+Interface Summary
MBeanInvokerInvokes methods on standard MBeans.
MBeanMetaDataObjects of this class hold metadata information about MBeans.
MBeanRepositoryThe MBeanServer implementation delegates to implementations of this interface the storage of registered MBeans.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
BCELMBeanInvokerMBeanInvoker that generates on-the-fly implementations to call standard MBeans directly, instead of using reflection.
CachingReflectionMBeanInvokerCaching MBeanInvoker that uses reflection to invoke on MBean instances.
ChainedMBeanServerBase class for chained MBeanServers.
ChainedMBeanServerBuilderBase class for chained MBeanServerBuilders.
DefaultClassLoaderRepositoryDefault implementation of a ClassLoaderRepository
MBeanIntrospectorIntrospector for MBeans.
MBeanMetaData.FactoryFactory class that creates instance of the MBeanMetaData interface.
ModifiableClassLoaderRepositoryBase class to extend to create custom ClassLoaderRepositories.
MX4JMBeanServerThe MX4J MBeanServer implementation.
MX4JMBeanServerBuilderThis class is responsible for creating new instances of MBeanServerDelegate + and MBeanServer.
MX4JMBeanServerDelegateThe MBeanServerDelegate subclass typical of the MX4J implementation.
ReflectionMBeanInvokerStateless MBeanInvoker that uses reflection to invoke on MBean instances.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/server/package-tree.html new file mode 100644 index 0000000..d1c4914 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/package-tree.html @@ -0,0 +1,167 @@ + + + + + + +mx4j.server Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.server +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/server/package-use.html b/mx4j-3.0.2/docs/api/mx4j/server/package-use.html new file mode 100644 index 0000000..4166af3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/server/package-use.html @@ -0,0 +1,205 @@ + + + + + + +Uses of Package mx4j.server (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.server

+
+ + + + + + + + + + + + + +
+Packages that use mx4j.server
mx4j.server  
mx4j.server.interceptor  
+  +

+ + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.server used by mx4j.server
CachingReflectionMBeanInvoker + +
+          Caching MBeanInvoker that uses reflection to invoke on MBean instances.
MBeanInvoker + +
+          Invokes methods on standard MBeans.
MBeanMetaData + +
+          Objects of this class hold metadata information about MBeans.
ModifiableClassLoaderRepository + +
+          Base class to extend to create custom ClassLoaderRepositories.
ReflectionMBeanInvoker + +
+          Stateless MBeanInvoker that uses reflection to invoke on MBean instances.
+  +

+ + + + + + + + +
+Classes in mx4j.server used by mx4j.server.interceptor
MBeanMetaData + +
+          Objects of this class hold metadata information about MBeans.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/TimeQueue.html b/mx4j-3.0.2/docs/api/mx4j/timer/TimeQueue.html new file mode 100644 index 0000000..8138065 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/TimeQueue.html @@ -0,0 +1,393 @@ + + + + + + +TimeQueue (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.timer +
+Class TimeQueue

+
+java.lang.Object
+  extended bymx4j.timer.TimeQueue
+
+
+
+
public class TimeQueue
extends java.lang.Object
+ +

+A queue that executes TimeTasks when it is started.
+ Every scheduled task is executed at the specified time; if this time is in the past, + the task is executed immediately. + Just before the task is executed, the task itself is updated so that its new + execution time is set or it is marked as finished (if it is not forever periodic). +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
TimeTask
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Constructor Summary
TimeQueue() + +
+          Creates a new TimeQueue
TimeQueue(boolean daemon) + +
+          Creates a new TimeQueue that will set the thread daemon or not depending on the given argument
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidclear() + +
+          Removes all the tasks from this TimeQueue.
+ voidschedule(TimeTask task) + +
+          Schedules the given task for execution.
+ intsize() + +
+          Returns the number of tasks present in this TimeQueue
+ voidstart() + +
+          Starts this TimeQueue.
+ voidstop() + +
+          Stops this TimeQueue.
+ voidunschedule(TimeTask task) + +
+          Removes the given task from this TimeQueue
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TimeQueue

+
+public TimeQueue()
+
+
Creates a new TimeQueue +

+

+
+ +

+TimeQueue

+
+public TimeQueue(boolean daemon)
+
+
Creates a new TimeQueue that will set the thread daemon or not depending on the given argument +

+

+ + + + + + + + +
+Method Detail
+ +

+start

+
+public void start()
+
+
Starts this TimeQueue.
+ Tasks are executed only after the queue has been started. +

+

+
See Also:
stop()
+
+
+
+ +

+stop

+
+public void stop()
+
+
Stops this TimeQueue.
+ No task is executed when the queue is stopped; however, already scheduled tasks + are not removed; restarting the queue has the effect of executing the tasks remained + if their time has come. +

+

+
See Also:
start()
+
+
+
+ +

+size

+
+public int size()
+
+
Returns the number of tasks present in this TimeQueue +

+

+
+
+
+
+ +

+schedule

+
+public void schedule(TimeTask task)
+
+
Schedules the given task for execution. +

+

+
See Also:
unschedule(mx4j.timer.TimeTask)
+
+
+
+ +

+unschedule

+
+public void unschedule(TimeTask task)
+
+
Removes the given task from this TimeQueue +

+

+
See Also:
schedule(mx4j.timer.TimeTask)
+
+
+
+ +

+clear

+
+public void clear()
+
+
Removes all the tasks from this TimeQueue. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/TimeTask.html b/mx4j-3.0.2/docs/api/mx4j/timer/TimeTask.html new file mode 100644 index 0000000..994333c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/TimeTask.html @@ -0,0 +1,471 @@ + + + + + + +TimeTask (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.timer +
+Class TimeTask

+
+java.lang.Object
+  extended bymx4j.timer.TimeTask
+
+
+
All Implemented Interfaces:
java.lang.Comparable, java.lang.Runnable
+
+
+
Direct Known Subclasses:
TimerTask
+
+
+
+
public abstract class TimeTask
extends java.lang.Object
implements java.lang.Comparable, java.lang.Runnable
+ +

+A task that is executed at a specified time.

+ Subclasses implement the periodicity, if needed. + Two TimeTasks are compared with their neext execution time. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected TimeTask() + +
+          Constructor for subclasses
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intcompareTo(java.lang.Object obj) + +
+          Compares 2 TimeTasks by comparing their next execution times
+ booleangetFixedRate() + +
+          Returns whether this task is a fixed rate or fixed delay task.
+protected  longgetNextExecutionTime() + +
+          Returns the next time at which the task will be executed, ie the run() method is called.
+protected  longgetPeriod() + +
+          Returns the period of this task.
+protected  booleanisFinished() + +
+          Returns whethere this task is finished.
+protected  booleanisPeriodic() + +
+          Returns whether this task is periodic.
+abstract  voidrun() + +
+          The method to implement to have this TimeTask to do something.
+protected  voidsetFinished(boolean value) + +
+          Marks this task as finished or not.
+protected  voidsetNextExecutionTime(long time) + +
+          Sets the next execution time.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TimeTask

+
+protected TimeTask()
+
+
Constructor for subclasses +

+

+ + + + + + + + +
+Method Detail
+ +

+run

+
+public abstract void run()
+
+
The method to implement to have this TimeTask to do something. +

+

+
Specified by:
run in interface java.lang.Runnable
+
+
+
+
+
+
+ +

+isPeriodic

+
+protected boolean isPeriodic()
+
+
Returns whether this task is periodic. By default return false. +

+

+
+
+
+
See Also:
getPeriod()
+
+
+
+ +

+getPeriod

+
+protected long getPeriod()
+
+
Returns the period of this task. By default returns 0. +

+

+
+
+
+
See Also:
isPeriodic()
+
+
+
+ +

+getFixedRate

+
+public boolean getFixedRate()
+
+
Returns whether this task is a fixed rate or fixed delay task. By default + return false +

+

+
+
+
+
+
+
+
+ +

+getNextExecutionTime

+
+protected long getNextExecutionTime()
+
+
Returns the next time at which the task will be executed, ie the run() method is called. +

+

+
+
+
+
See Also:
setNextExecutionTime(long)
+
+
+
+ +

+setNextExecutionTime

+
+protected void setNextExecutionTime(long time)
+
+
Sets the next execution time. +

+

+
+
+
+
See Also:
getNextExecutionTime()
+
+
+
+ +

+setFinished

+
+protected void setFinished(boolean value)
+
+
Marks this task as finished or not. When a task is finished, its + run() method will not be called anymore. +

+

+
+
+
+
See Also:
isFinished()
+
+
+
+ +

+isFinished

+
+protected boolean isFinished()
+
+
Returns whethere this task is finished. +

+

+
+
+
+
See Also:
setFinished(boolean)
+
+
+
+ +

+compareTo

+
+public int compareTo(java.lang.Object obj)
+
+
Compares 2 TimeTasks by comparing their next execution times +

+

+
Specified by:
compareTo in interface java.lang.Comparable
+
+
+
See Also:
getNextExecutionTime()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/TimerTask.html b/mx4j-3.0.2/docs/api/mx4j/timer/TimerTask.html new file mode 100644 index 0000000..9382592 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/TimerTask.html @@ -0,0 +1,534 @@ + + + + + + +TimerTask (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.timer +
+Class TimerTask

+
+java.lang.Object
+  extended bymx4j.timer.TimeTask
+      extended bymx4j.timer.TimerTask
+
+
+
All Implemented Interfaces:
java.lang.Comparable, java.lang.Runnable
+
+
+
+
public abstract class TimerTask
extends TimeTask
+ +

+A subclass of TimeTask for the JMX Timer service. +

+ +

+

+
Version:
+
$Revision: 1.8 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
TimerTask(javax.management.timer.TimerNotification n, + java.util.Date date, + long period, + long occurrences, + boolean fixedRate) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleanequals(java.lang.Object obj) + +
+           
+ longgetDate() + +
+           
+ booleangetFixedRate() + +
+          Returns whether this task is a fixed rate or fixed delay task.
+ longgetNextExecutionTime() + +
+          Returns the next time at which the task will be executed, ie the TimeTask.run() method is called.
+ javax.management.timer.TimerNotificationgetNotification() + +
+           
+ longgetOccurrences() + +
+           
+ longgetPeriod() + +
+          Returns the period of this task.
+ inthashCode() + +
+           
+ booleanisFinished() + +
+          Returns whethere this task is finished.
+ booleanisPeriodic() + +
+          Returns whether this task is periodic.
+ voidsetFinished(boolean value) + +
+          Marks this task as finished or not.
+ voidsetNextExecutionTime(long time) + +
+          Sets the next execution time.
+ + + + + + + +
Methods inherited from class mx4j.timer.TimeTask
compareTo, run
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TimerTask

+
+public TimerTask(javax.management.timer.TimerNotification n,
+                 java.util.Date date,
+                 long period,
+                 long occurrences,
+                 boolean fixedRate)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getNotification

+
+public javax.management.timer.TimerNotification getNotification()
+
+
+
+
+
+
+ +

+isFinished

+
+public boolean isFinished()
+
+
Description copied from class: TimeTask
+
Returns whethere this task is finished. +

+

+
Overrides:
isFinished in class TimeTask
+
+
+
See Also:
TimeTask.setFinished(boolean)
+
+
+
+ +

+setFinished

+
+public void setFinished(boolean value)
+
+
Description copied from class: TimeTask
+
Marks this task as finished or not. When a task is finished, its + TimeTask.run() method will not be called anymore. +

+

+
Overrides:
setFinished in class TimeTask
+
+
+
See Also:
TimeTask.isFinished()
+
+
+
+ +

+getPeriod

+
+public long getPeriod()
+
+
Description copied from class: TimeTask
+
Returns the period of this task. By default returns 0. +

+

+
Overrides:
getPeriod in class TimeTask
+
+
+
See Also:
TimeTask.isPeriodic()
+
+
+
+ +

+isPeriodic

+
+public boolean isPeriodic()
+
+
Description copied from class: TimeTask
+
Returns whether this task is periodic. By default return false. +

+

+
Overrides:
isPeriodic in class TimeTask
+
+
+
See Also:
TimeTask.getPeriod()
+
+
+
+ +

+getNextExecutionTime

+
+public long getNextExecutionTime()
+
+
Description copied from class: TimeTask
+
Returns the next time at which the task will be executed, ie the TimeTask.run() method is called. +

+

+
Overrides:
getNextExecutionTime in class TimeTask
+
+
+
See Also:
TimeTask.setNextExecutionTime(long)
+
+
+
+ +

+setNextExecutionTime

+
+public void setNextExecutionTime(long time)
+
+
Description copied from class: TimeTask
+
Sets the next execution time. +

+

+
Overrides:
setNextExecutionTime in class TimeTask
+
+
+
See Also:
TimeTask.getNextExecutionTime()
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object obj)
+
+
+
+
+
+
+ +

+getOccurrences

+
+public long getOccurrences()
+
+
+
+
+
+
+ +

+getDate

+
+public long getDate()
+
+
+
+
+
+
+ +

+getFixedRate

+
+public boolean getFixedRate()
+
+
Description copied from class: TimeTask
+
Returns whether this task is a fixed rate or fixed delay task. By default + return false +

+

+
Overrides:
getFixedRate in class TimeTask
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimeQueue.html b/mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimeQueue.html new file mode 100644 index 0000000..19fc8d4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimeQueue.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.timer.TimeQueue (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.timer.TimeQueue

+
+No usage of mx4j.timer.TimeQueue +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimeTask.html b/mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimeTask.html new file mode 100644 index 0000000..5676fad --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimeTask.html @@ -0,0 +1,196 @@ + + + + + + +Uses of Class mx4j.timer.TimeTask (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.timer.TimeTask

+
+ + + + + + + + + +
+Packages that use TimeTask
mx4j.timer  
+  +

+ + + + + +
+Uses of TimeTask in mx4j.timer
+  +

+ + + + + + + + + +
Subclasses of TimeTask in mx4j.timer
+ classTimerTask + +
+          A subclass of TimeTask for the JMX Timer service.
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.timer with parameters of type TimeTask
+ voidTimeQueue.schedule(TimeTask task) + +
+          Schedules the given task for execution.
+ voidTimeQueue.unschedule(TimeTask task) + +
+          Removes the given task from this TimeQueue
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimerTask.html b/mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimerTask.html new file mode 100644 index 0000000..545b7e0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/class-use/TimerTask.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.timer.TimerTask (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.timer.TimerTask

+
+No usage of mx4j.timer.TimerTask +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/timer/package-frame.html new file mode 100644 index 0000000..cf0ba24 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/package-frame.html @@ -0,0 +1,36 @@ + + + + + + +mx4j.timer (MX4J API) + + + + + + + + + + + +mx4j.timer + + + + +
+Classes  + +
+TimeQueue +
+TimerTask +
+TimeTask
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/timer/package-summary.html new file mode 100644 index 0000000..2772bb5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/package-summary.html @@ -0,0 +1,156 @@ + + + + + + +mx4j.timer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.timer +

+ + + + + + + + + + + + + + + + + +
+Class Summary
TimeQueueA queue that executes TimeTasks when it is started.
TimerTaskA subclass of TimeTask for the JMX Timer service.
TimeTaskA task that is executed at a specified time.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/timer/package-tree.html new file mode 100644 index 0000000..6995cb3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/package-tree.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.timer Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.timer +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.timer.TimeQueue
    • class mx4j.timer.TimeTask (implements java.lang.Comparable, java.lang.Runnable) + +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/timer/package-use.html b/mx4j-3.0.2/docs/api/mx4j/timer/package-use.html new file mode 100644 index 0000000..0e95e30 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/timer/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.timer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.timer

+
+ + + + + + + + + +
+Packages that use mx4j.timer
mx4j.timer  
+  +

+ + + + + + + + +
+Classes in mx4j.timer used by mx4j.timer
TimeTask + +
+          A task that is executed at a specified time.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/AdaptorServerSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/AdaptorServerSocketFactory.html new file mode 100644 index 0000000..3da77f2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/AdaptorServerSocketFactory.html @@ -0,0 +1,237 @@ + + + + + + +AdaptorServerSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor +
+Interface AdaptorServerSocketFactory

+
+
All Known Subinterfaces:
SSLAdaptorServerSocketFactoryMBean
+
+
+
All Known Implementing Classes:
PlainAdaptorServerSocketFactory, SSLAdaptorServerSocketFactory
+
+
+
+
public interface AdaptorServerSocketFactory
+ +

+The ServerSocket factory interface.

+ It allows to create ServerSocket for JMX adaptors +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.net.ServerSocketcreateServerSocket(int port, + int backlog, + java.lang.String host) + +
+          Creates a new ServerSocket on the specified port, with the specified backlog and on the given host.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+createServerSocket

+
+public java.net.ServerSocket createServerSocket(int port,
+                                                int backlog,
+                                                java.lang.String host)
+                                         throws java.io.IOException
+
+
Creates a new ServerSocket on the specified port, with the specified backlog and on the given host.
+ The last parameter is useful for hosts with more than one IP address. +

+

+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/PlainAdaptorServerSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/PlainAdaptorServerSocketFactory.html new file mode 100644 index 0000000..1d8399e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/PlainAdaptorServerSocketFactory.html @@ -0,0 +1,277 @@ + + + + + + +PlainAdaptorServerSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor +
+Class PlainAdaptorServerSocketFactory

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.PlainAdaptorServerSocketFactory
+
+
+
All Implemented Interfaces:
AdaptorServerSocketFactory
+
+
+
+
public class PlainAdaptorServerSocketFactory
extends java.lang.Object
implements AdaptorServerSocketFactory
+ +

+Creates plain ServerSockets. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
PlainAdaptorServerSocketFactory() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.net.ServerSocketcreateServerSocket(int port, + int backlog, + java.lang.String host) + +
+          Creates a new ServerSocket on the specified port, with the specified backlog and on the given host.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+PlainAdaptorServerSocketFactory

+
+public PlainAdaptorServerSocketFactory()
+
+
+ + + + + + + + +
+Method Detail
+ +

+createServerSocket

+
+public java.net.ServerSocket createServerSocket(int port,
+                                                int backlog,
+                                                java.lang.String host)
+                                         throws java.io.IOException
+
+
Description copied from interface: AdaptorServerSocketFactory
+
Creates a new ServerSocket on the specified port, with the specified backlog and on the given host.
+ The last parameter is useful for hosts with more than one IP address. +

+

+
Specified by:
createServerSocket in interface AdaptorServerSocketFactory
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/class-use/AdaptorServerSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/class-use/AdaptorServerSocketFactory.html new file mode 100644 index 0000000..5521c3b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/class-use/AdaptorServerSocketFactory.html @@ -0,0 +1,254 @@ + + + + + + +Uses of Interface mx4j.tools.adaptor.AdaptorServerSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.adaptor.AdaptorServerSocketFactory

+
+ + + + + + + + + + + + + + + + + +
+Packages that use AdaptorServerSocketFactory
mx4j.tools.adaptor  
mx4j.tools.adaptor.http  
mx4j.tools.adaptor.ssl  
+  +

+ + + + + +
+Uses of AdaptorServerSocketFactory in mx4j.tools.adaptor
+  +

+ + + + + + + + + +
Classes in mx4j.tools.adaptor that implement AdaptorServerSocketFactory
+ classPlainAdaptorServerSocketFactory + +
+          Creates plain ServerSockets.
+  +

+ + + + + +
+Uses of AdaptorServerSocketFactory in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.adaptor.http with parameters of type AdaptorServerSocketFactory
+ voidHttpAdaptorMBean.setSocketFactory(AdaptorServerSocketFactory factory) + +
+          Sets the object which create the server sockets
+ voidHttpAdaptor.setSocketFactory(AdaptorServerSocketFactory factory) + +
+          Sets the object which create the server sockets
+  +

+ + + + + +
+Uses of AdaptorServerSocketFactory in mx4j.tools.adaptor.ssl
+  +

+ + + + + + + + + +
Subinterfaces of AdaptorServerSocketFactory in mx4j.tools.adaptor.ssl
+ interfaceSSLAdaptorServerSocketFactoryMBean + +
+          Management interface for the SSL ServerSocket factory
+  +

+ + + + + + + + + +
Classes in mx4j.tools.adaptor.ssl that implement AdaptorServerSocketFactory
+ classSSLAdaptorServerSocketFactory + +
+          TODO: Fix this class to avoid hardcoding Sun's provider, since it will not work with IBM's JDK.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/class-use/PlainAdaptorServerSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/class-use/PlainAdaptorServerSocketFactory.html new file mode 100644 index 0000000..08b618d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/class-use/PlainAdaptorServerSocketFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.PlainAdaptorServerSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.PlainAdaptorServerSocketFactory

+
+No usage of mx4j.tools.adaptor.PlainAdaptorServerSocketFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/CommandProcessorUtil.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/CommandProcessorUtil.html new file mode 100644 index 0000000..8499875 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/CommandProcessorUtil.html @@ -0,0 +1,374 @@ + + + + + + +CommandProcessorUtil (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class CommandProcessorUtil

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.CommandProcessorUtil
+
+
+
+
public class CommandProcessorUtil
extends java.lang.Object
+ +

+Contains utilities common to CommandProcessor objects +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
CommandProcessorUtil() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected static booleancanCreateParameterValue(java.lang.String parameterType) + +
+          Checks if the given type is primitive of can be initialized from String.
+ This is done by trying to load the class and checking if there is a public String + only constructor.
+static java.util.ComparatorcreateClassComparator() + +
+           
+static java.util.ComparatorcreateConstructorComparator() + +
+           
+static java.util.ComparatorcreateObjectInstanceComparator() + +
+           
+static java.util.ComparatorcreateObjectNameComparator() + +
+           
+protected static java.lang.ObjectcreateParameterValue(java.lang.String parameterType, + java.lang.String parameterValue) + +
+          Creates a parameter object of the given type containing a given value.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CommandProcessorUtil

+
+public CommandProcessorUtil()
+
+
+ + + + + + + + +
+Method Detail
+ +

+createParameterValue

+
+protected static java.lang.Object createParameterValue(java.lang.String parameterType,
+                                                       java.lang.String parameterValue)
+                                                throws java.lang.Exception
+
+
Creates a parameter object of the given type containing a given value. + If the type is unknown null is returned +

+

+
Parameters:
parameterType - Indicates the type of the parameter, for instance java.lang.String
parameterValue - The value of the parameter as a String +
Returns:
an object of parameterType type and value parameterValue or null if the type is unknown +
Throws: +
Thrown - in case there is a data conversion error +
java.lang.Exception
+
+
+
+ +

+canCreateParameterValue

+
+protected static boolean canCreateParameterValue(java.lang.String parameterType)
+
+
Checks if the given type is primitive of can be initialized from String.
+ This is done by trying to load the class and checking if there is a public String + only constructor. +

+

+
Parameters:
parameterType - Indicates the type of the parameter, for instance java.lang.String +
Returns:
true if the type is primitive or String initializable +
Throws: +
Thrown - in case there is a data conversion error
+
+
+
+ +

+createObjectNameComparator

+
+public static java.util.Comparator createObjectNameComparator()
+
+
+
+
+
+
+ +

+createObjectInstanceComparator

+
+public static java.util.Comparator createObjectInstanceComparator()
+
+
+
+
+
+
+ +

+createConstructorComparator

+
+public static java.util.Comparator createConstructorComparator()
+
+
+
+
+
+
+ +

+createClassComparator

+
+public static java.util.Comparator createClassComparator()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ConstructorsCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ConstructorsCommandProcessor.html new file mode 100644 index 0000000..5479458 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ConstructorsCommandProcessor.html @@ -0,0 +1,324 @@ + + + + + + +ConstructorsCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class ConstructorsCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.ConstructorsCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class ConstructorsCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+ConstructorsCommandProcessor, processes a request to query the available + constructors for a classname +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
ConstructorsCommandProcessor() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidaddParameters(org.w3c.dom.Element node, + org.w3c.dom.Document document, + java.lang.Class[] parameters) + +
+           
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ConstructorsCommandProcessor

+
+public ConstructorsCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+
+ +

+addParameters

+
+protected void addParameters(org.w3c.dom.Element node,
+                             org.w3c.dom.Document document,
+                             java.lang.Class[] parameters)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/CreateMBeanCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/CreateMBeanCommandProcessor.html new file mode 100644 index 0000000..73aae2b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/CreateMBeanCommandProcessor.html @@ -0,0 +1,303 @@ + + + + + + +CreateMBeanCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class CreateMBeanCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.CreateMBeanCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class CreateMBeanCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+CreateMBeanCommandProcessor, processes a request for creating and registering + an MBean +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
CreateMBeanCommandProcessor() + +
+          Constructs a new CreateMBeanCommandProcessor
+  + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CreateMBeanCommandProcessor

+
+public CreateMBeanCommandProcessor()
+
+
Constructs a new CreateMBeanCommandProcessor +

+

+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/DefaultProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/DefaultProcessor.html new file mode 100644 index 0000000..83c389c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/DefaultProcessor.html @@ -0,0 +1,484 @@ + + + + + + +DefaultProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class DefaultProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.DefaultProcessor
+
+
+
All Implemented Interfaces:
ProcessorMBean
+
+
+
+
public class DefaultProcessor
extends java.lang.Object
implements ProcessorMBean
+ +

+DefaultPostProcessor doesn't alter the result, just publising the xml file +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultProcessor() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetName() + +
+           
+protected  java.lang.Stringnormalize(java.lang.String s) + +
+          Normalizes the given string.
+ java.lang.StringnotFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+          Let the processor load internally a not found element.
+ java.lang.StringpreProcess(java.lang.String path) + +
+          Preprocess a path and return a replacement path.
+protected  voidprint(java.io.PrintWriter out, + org.w3c.dom.Node node) + +
+           
+protected  org.w3c.dom.Attr[]sortAttributes(org.w3c.dom.NamedNodeMap attrs) + +
+          Returns a sorted list of attributes.
+ voidwriteError(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+          The method will process the result exception and produce output.
+ voidwriteResponse(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+          The method will process the result string and produce an output.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultProcessor

+
+public DefaultProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getName

+
+public java.lang.String getName()
+
+
+
Specified by:
getName in interface ProcessorMBean
+
+
+
+
+
+
+ +

+writeResponse

+
+public void writeResponse(HttpOutputStream out,
+                          HttpInputStream in,
+                          org.w3c.dom.Document document)
+                   throws java.io.IOException
+
+
Description copied from interface: ProcessorMBean
+
The method will process the result string and produce an output. The + implementor is also responsible to set the mime type, response code and + send the headers before answering as follow: + + out.setCode(HttpConstants.STATUS_OKAY); + out.setHeader("Content-type", "text/html"); + out.sendHeaders(); + out.write("some text"); + +

+

+
Specified by:
writeResponse in interface ProcessorMBean
+
+
+
Parameters:
out - The output stream
in - The input stream
document - A document containing the data +
Throws: +
java.io.IOException
+
+
+
+ +

+writeError

+
+public void writeError(HttpOutputStream out,
+                       HttpInputStream in,
+                       java.lang.Exception e)
+                throws java.io.IOException
+
+
Description copied from interface: ProcessorMBean
+
The method will process the result exception and produce output. The + implementor is also responsible to set the mime type, response code and + send the headers before answering as follow: + + out.setCode(HttpConstants.STATUS_OKAY); + out.setHeader("Content-type", "text/html"); + out.sendHeaders(); + out.write("some text"); + +

+

+
Specified by:
writeError in interface ProcessorMBean
+
+
+
Parameters:
out - The output stream
in - The input stream
e - The exception to be reported +
Throws: +
java.io.IOException
+
+
+
+ +

+preProcess

+
+public java.lang.String preProcess(java.lang.String path)
+
+
Description copied from interface: ProcessorMBean
+
Preprocess a path and return a replacement path. For instance the / path + could be replaced by the server path +

+

+
Specified by:
preProcess in interface ProcessorMBean
+
+
+
Parameters:
path - The original path +
Returns:
the replacement path. If not modification the path param should + be returned
+
+
+
+ +

+notFoundElement

+
+public java.lang.String notFoundElement(java.lang.String path,
+                                        HttpOutputStream out,
+                                        HttpInputStream in)
+                                 throws java.io.IOException,
+                                        HttpException
+
+
Description copied from interface: ProcessorMBean
+
Let the processor load internally a not found element. This can be used + to load images, stylesheets and so on. If return is not null, the path is + processed +

+

+
Specified by:
notFoundElement in interface ProcessorMBean
+
+
+
Parameters:
path - The request element
out - The output stream
in - The input stream +
Throws: +
java.io.IOException +
HttpException
+
+
+
+ +

+print

+
+protected void print(java.io.PrintWriter out,
+                     org.w3c.dom.Node node)
+
+
+
+
+
+
+
+
+
+ +

+sortAttributes

+
+protected org.w3c.dom.Attr[] sortAttributes(org.w3c.dom.NamedNodeMap attrs)
+
+
Returns a sorted list of attributes. +

+

+
+
+
+
Parameters:
attrs - Description of Parameter +
Returns:
Description of the Returned Value
+
+
+
+ +

+normalize

+
+protected java.lang.String normalize(java.lang.String s)
+
+
Normalizes the given string. +

+

+
+
+
+
Parameters:
s - Description of Parameter +
Returns:
Description of the Returned Value
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/DeleteMBeanCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/DeleteMBeanCommandProcessor.html new file mode 100644 index 0000000..a2df4b8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/DeleteMBeanCommandProcessor.html @@ -0,0 +1,300 @@ + + + + + + +DeleteMBeanCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class DeleteMBeanCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.DeleteMBeanCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class DeleteMBeanCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+DeleteMBeanCommandProcessor, processes a request for unregistering an MBean +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
DeleteMBeanCommandProcessor() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DeleteMBeanCommandProcessor

+
+public DeleteMBeanCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/EmptyCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/EmptyCommandProcessor.html new file mode 100644 index 0000000..0d3e282 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/EmptyCommandProcessor.html @@ -0,0 +1,302 @@ + + + + + + +EmptyCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class EmptyCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.EmptyCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class EmptyCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+EmptyCommandProcessor, returns an empty xml tree +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
EmptyCommandProcessor() + +
+          Constructs a new EmptyCommandProcessor
+  + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+EmptyCommandProcessor

+
+public EmptyCommandProcessor()
+
+
Constructs a new EmptyCommandProcessor +

+

+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/GetAttributeCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/GetAttributeCommandProcessor.html new file mode 100644 index 0000000..f527f06 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/GetAttributeCommandProcessor.html @@ -0,0 +1,301 @@ + + + + + + +GetAttributeCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class GetAttributeCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.GetAttributeCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class GetAttributeCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+GetAttributeCommandProcessor, processes a request for getting one attribute + of a specific MBean. It also support some formats for types like Arrays +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
GetAttributeCommandProcessor() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+GetAttributeCommandProcessor

+
+public GetAttributeCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptor.html new file mode 100644 index 0000000..597d849 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptor.html @@ -0,0 +1,1253 @@ + + + + + + +HttpAdaptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class HttpAdaptor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpAdaptor
+
+
+
All Implemented Interfaces:
HttpAdaptorMBean, javax.management.MBeanRegistration
+
+
+
+
public class HttpAdaptor
extends java.lang.Object
implements HttpAdaptorMBean, javax.management.MBeanRegistration
+ +

+HttpAdaptor sets the basic adaptor listening for HTTP requests +

+ +

+

+
Version:
+
$Revision: 1.14 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Constructor Summary
HttpAdaptor() + +
+          Default Constructor added so that we can have some additional + constructors as well.
HttpAdaptor(int port) + +
+          Overloaded constructor to allow the port to be set.
HttpAdaptor(int port, + java.lang.String host) + +
+          Overloaded constructor to allow the port to be set.
HttpAdaptor(java.lang.String host) + +
+          Overloaded constructor to allow the host to be set.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddAuthorization(java.lang.String username, + java.lang.String password) + +
+          Adds an authorization pair as username/password
+ voidaddCommandProcessor(java.lang.String path, + HttpCommandProcessor processor) + +
+          Adds a command processor object
+ voidaddCommandProcessor(java.lang.String path, + java.lang.String processorClass) + +
+          Adds a command processor object by class
+protected  voidbuildCommands() + +
+          Build the commands
+protected  voidfindUnknownElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+           
+ java.lang.StringgetAuthenticationMethod() + +
+          Authentication Method
+ java.lang.StringgetHost() + +
+          Return the host name the server will be listening to.
+ intgetPort() + +
+          Returns the port where the server is running on.
+ ProcessorMBeangetProcessor() + +
+          Returns the Processor set by setProcessor(mx4j.tools.adaptor.http.ProcessorMBean)
+protected  HttpCommandProcessorgetProcessor(java.lang.String path) + +
+           
+ javax.management.ObjectNamegetProcessorName() + +
+          Returns the ObjectName of the processor set by setProcessorName(javax.management.ObjectName)
+ longgetRequestsCount() + +
+          Requests count
+ java.util.DategetStartDate() + +
+          Starting date
+ java.lang.StringgetVersion() + +
+          Gets the HttpAdaptor version
+ booleanisActive() + +
+          Indicates whether the server's running
+ voidpostDeregister() + +
+           
+protected  voidpostProcess(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+           
+protected  voidpostProcess(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+           
+ voidpostRegister(java.lang.Boolean registrationDone) + +
+           
+ voidpreDeregister() + +
+           
+protected  java.lang.StringpreProcess(java.lang.String path) + +
+           
+ javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, + javax.management.ObjectName name) + +
+          Gathers some basic data
+ voidremoveCommandProcessor(java.lang.String path) + +
+          Removes a command processor object by class
+ voidrestart() + +
+          Deprecated. as of RC 1
+ voidsetAuthenticationMethod(java.lang.String method) + +
+          Sets the Authentication Method.
+ voidsetHost(java.lang.String host) + +
+          Sets the host name where the server will be listening
+ voidsetPort(int port) + +
+          Sets the value of the server's port
+ voidsetProcessor(ProcessorMBean processor) + +
+          Sets the object which will post process the XML results.
+ voidsetProcessorClass(java.lang.String processorClass) + +
+          Sets the classname of the object which will post process the XML results.
+ voidsetProcessorName(javax.management.ObjectName processorName) + +
+          Sets the object name which will post process the XML result.
+ voidsetProcessorNameString(java.lang.String processorName) + +
+          Sets the object name of the PostProcessor MBean.
+ voidsetSocketFactory(AdaptorServerSocketFactory factory) + +
+          Sets the object which create the server sockets
+ voidsetSocketFactoryName(javax.management.ObjectName factoryName) + +
+          Sets the factory's object name which will create the server sockets
+ voidsetSocketFactoryNameString(java.lang.String factoryName) + +
+          Sets the factory's object name which will create the server sockets
+ voidstart() + +
+          Starts the server
+ voidstop() + +
+          Stops the HTTP daemon
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HttpAdaptor

+
+public HttpAdaptor()
+
+
Default Constructor added so that we can have some additional + constructors as well. +

+

+
+ +

+HttpAdaptor

+
+public HttpAdaptor(int port)
+
+
Overloaded constructor to allow the port to be set. + The reason this was added was to allow the loading of this adaptor by + the dynamic loading service of the MBean server and have the port set + from a param in the mlet file. Example: (replaced lt & gt symbol with []) +
[mlet code="mx4j.tools.adaptor.http.HttpAdaptor" +
archive="mx4j.jar" +
name="Server:name=HttpAdaptor"] +
[arg type="int" value="12345"] +
[/mlet] +

+

This constructor uses the default host or the host must be set later. +

+

Parameters:
port - The port on which the HttpAdaptor should listen
+
+ +

+HttpAdaptor

+
+public HttpAdaptor(java.lang.String host)
+
+
Overloaded constructor to allow the host to be set. + The reason this was added was to allow the loading of this adaptor by + the dynamic loading service of the MBean server and have the host set + from a param in the mlet file. Example: (replaced lt & gt symbol with []) +
[mlet code="mx4j.tools.adaptor.http.HttpAdaptor" +
archive="mx4j.jar" +
name="Server:name=HttpAdaptor"] +
[arg type="java.lang.String" value="someserver.somehost.com"] +
[/mlet] +

+

This constructor uses the default port or the port must be set later. +

+

Parameters:
host - The host on which the HttpAdaptor should listen
+
+ +

+HttpAdaptor

+
+public HttpAdaptor(int port,
+                   java.lang.String host)
+
+
Overloaded constructor to allow the port to be set. + The reason this was added was to allow the loading of this adaptor by + the dynamic loading service of the MBean server and have the port set + from a param in the mlet file. Example: (replaced lt & gt symbol with []) + NOTE that the port must come before the host in the arg list of the mlet +
[mlet code="mx4j.tools.adaptor.http.HttpAdaptor" +
archive="mx4j.jar" +
name="Server:name=HttpAdaptor"] +
[arg type="int" value="12345"] +
[arg type="java.lang.String" value="someserver.somehost.com"] +
[/mlet] +

+

Parameters:
port - The port on which the HttpAdaptor should listen
host - The host on which the HttpAdaptor should listen
+ + + + + + + + +
+Method Detail
+ +

+setPort

+
+public void setPort(int port)
+
+
Sets the value of the server's port +

+

+
Specified by:
setPort in interface HttpAdaptorMBean
+
+
+
Parameters:
port - the new port's value
+
+
+
+ +

+getPort

+
+public int getPort()
+
+
Returns the port where the server is running on. Default is 8080 +

+

+
Specified by:
getPort in interface HttpAdaptorMBean
+
+
+ +
Returns:
HTTPServer's port
+
+
+
+ +

+setHost

+
+public void setHost(java.lang.String host)
+
+
Sets the host name where the server will be listening +

+

+
Specified by:
setHost in interface HttpAdaptorMBean
+
+
+
Parameters:
host - Server's host
+
+
+
+ +

+getHost

+
+public java.lang.String getHost()
+
+
Return the host name the server will be listening to. If null the server + listen at the localhost +

+

+
Specified by:
getHost in interface HttpAdaptorMBean
+
+
+ +
Returns:
the current hostname
+
+
+
+ +

+setAuthenticationMethod

+
+public void setAuthenticationMethod(java.lang.String method)
+
+
Sets the Authentication Method. +

+

+
Specified by:
setAuthenticationMethod in interface HttpAdaptorMBean
+
+
+
Parameters:
method - none/basic/digest
+
+
+
+ +

+getAuthenticationMethod

+
+public java.lang.String getAuthenticationMethod()
+
+
Authentication Method +

+

+
Specified by:
getAuthenticationMethod in interface HttpAdaptorMBean
+
+
+ +
Returns:
authentication method
+
+
+
+ +

+setProcessor

+
+public void setProcessor(ProcessorMBean processor)
+
+
Sets the object which will post process the XML results. The last value set + between the setPostProcessor and setPostProcessorName will be the valid one +

+

+
Specified by:
setProcessor in interface HttpAdaptorMBean
+
+
+
Parameters:
processor - a Post processor object
+
+
+
+ +

+setProcessorClass

+
+public void setProcessorClass(java.lang.String processorClass)
+
+
Sets the classname of the object which will post process the XML results. The adaptor + will try to build the object and use the processor name ObjectName to register it + The class name has to implements mx4j.tools.adaptor.http.ProcessorMBean and be MBean + compliant +

+

+
Specified by:
setProcessorClass in interface HttpAdaptorMBean
+
+
+
Parameters:
processorClass - a Post processor object
+
+
+
+ +

+setProcessorNameString

+
+public void setProcessorNameString(java.lang.String processorName)
+                            throws javax.management.MalformedObjectNameException
+
+
Sets the object name of the PostProcessor MBean. If ProcessorClass is set the processor + will be created +

+

+
Specified by:
setProcessorNameString in interface HttpAdaptorMBean
+
+
+
Parameters:
processorName - a Post processor object +
Throws: +
javax.management.MalformedObjectNameException
+
+
+
+ +

+setProcessorName

+
+public void setProcessorName(javax.management.ObjectName processorName)
+
+
Sets the object name which will post process the XML result. The last value + set between the setPostProcessor and setPostProcessorName will be the valid + one. The MBean will be verified to be of instance HttpPostProcessor +

+

+
Specified by:
setProcessorName in interface HttpAdaptorMBean
+
+
+
Parameters:
processorName - The new processorName value
+
+
+
+ +

+getProcessor

+
+public ProcessorMBean getProcessor()
+
+
Description copied from interface: HttpAdaptorMBean
+
Returns the Processor set by HttpAdaptorMBean.setProcessor(mx4j.tools.adaptor.http.ProcessorMBean) +

+

+
Specified by:
getProcessor in interface HttpAdaptorMBean
+
+
+
+
+
+
+ +

+getProcessorName

+
+public javax.management.ObjectName getProcessorName()
+
+
Description copied from interface: HttpAdaptorMBean
+
Returns the ObjectName of the processor set by HttpAdaptorMBean.setProcessorName(javax.management.ObjectName) +

+

+
Specified by:
getProcessorName in interface HttpAdaptorMBean
+
+
+
+
+
+
+ +

+setSocketFactory

+
+public void setSocketFactory(AdaptorServerSocketFactory factory)
+
+
Sets the object which create the server sockets +

+

+
Specified by:
setSocketFactory in interface HttpAdaptorMBean
+
+
+
Parameters:
factory - the socket factory
+
+
+
+ +

+setSocketFactoryName

+
+public void setSocketFactoryName(javax.management.ObjectName factoryName)
+
+
Sets the factory's object name which will create the server sockets +

+

+
Specified by:
setSocketFactoryName in interface HttpAdaptorMBean
+
+
+
Parameters:
factoryName - the socket factory
+
+
+
+ +

+setSocketFactoryNameString

+
+public void setSocketFactoryNameString(java.lang.String factoryName)
+                                throws javax.management.MalformedObjectNameException
+
+
Sets the factory's object name which will create the server sockets +

+

+
Specified by:
setSocketFactoryNameString in interface HttpAdaptorMBean
+
+
+
Parameters:
factoryName - the socket factory +
Throws: +
javax.management.MalformedObjectNameException
+
+
+
+ +

+isActive

+
+public boolean isActive()
+
+
Indicates whether the server's running +

+

+
Specified by:
isActive in interface HttpAdaptorMBean
+
+
+ +
Returns:
The active value
+
+
+
+ +

+getStartDate

+
+public java.util.Date getStartDate()
+
+
Starting date +

+

+
Specified by:
getStartDate in interface HttpAdaptorMBean
+
+
+ +
Returns:
The date when the server was started
+
+
+
+ +

+getRequestsCount

+
+public long getRequestsCount()
+
+
Requests count +

+

+
Specified by:
getRequestsCount in interface HttpAdaptorMBean
+
+
+ +
Returns:
The total of requests served so far
+
+
+
+ +

+getVersion

+
+public java.lang.String getVersion()
+
+
Gets the HttpAdaptor version +

+

+
Specified by:
getVersion in interface HttpAdaptorMBean
+
+
+ +
Returns:
HttpAdaptor's version
+
+
+
+ +

+addCommandProcessor

+
+public void addCommandProcessor(java.lang.String path,
+                                HttpCommandProcessor processor)
+
+
Adds a command processor object +

+

+
Specified by:
addCommandProcessor in interface HttpAdaptorMBean
+
+
+
+
+
+
+ +

+addCommandProcessor

+
+public void addCommandProcessor(java.lang.String path,
+                                java.lang.String processorClass)
+
+
Adds a command processor object by class +

+

+
Specified by:
addCommandProcessor in interface HttpAdaptorMBean
+
+
+
+
+
+
+ +

+removeCommandProcessor

+
+public void removeCommandProcessor(java.lang.String path)
+
+
Removes a command processor object by class +

+

+
Specified by:
removeCommandProcessor in interface HttpAdaptorMBean
+
+
+
+
+
+
+ +

+start

+
+public void start()
+           throws java.io.IOException
+
+
Starts the server +

+

+
Specified by:
start in interface HttpAdaptorMBean
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+restart

+
+public void restart()
+             throws java.io.IOException
+
+
Deprecated. as of RC 1 +

+

Restarts the server. Useful when changing the Server parameters +

+

+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+stop

+
+public void stop()
+
+
Stops the HTTP daemon +

+

+
Specified by:
stop in interface HttpAdaptorMBean
+
+
+
+
+
+
+ +

+addAuthorization

+
+public void addAuthorization(java.lang.String username,
+                             java.lang.String password)
+
+
Adds an authorization pair as username/password +

+

+
Specified by:
addAuthorization in interface HttpAdaptorMBean
+
+
+
+
+
+
+ +

+preRegister

+
+public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
+                                               javax.management.ObjectName name)
+                                        throws java.lang.Exception
+
+
Gathers some basic data +

+

+
Specified by:
preRegister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postRegister

+
+public void postRegister(java.lang.Boolean registrationDone)
+
+
+
Specified by:
postRegister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+preDeregister

+
+public void preDeregister()
+                   throws java.lang.Exception
+
+
+
Specified by:
preDeregister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postDeregister

+
+public void postDeregister()
+
+
+
Specified by:
postDeregister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+getProcessor

+
+protected HttpCommandProcessor getProcessor(java.lang.String path)
+
+
+
+
+
+
+
+
+
+ +

+buildCommands

+
+protected void buildCommands()
+
+
Build the commands +

+

+
+
+
+
+
+
+
+ +

+postProcess

+
+protected void postProcess(HttpOutputStream out,
+                           HttpInputStream in,
+                           org.w3c.dom.Document document)
+                    throws java.io.IOException,
+                           javax.management.JMException
+
+
+
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+
+ +

+findUnknownElement

+
+protected void findUnknownElement(java.lang.String path,
+                                  HttpOutputStream out,
+                                  HttpInputStream in)
+                           throws java.io.IOException,
+                                  javax.management.JMException
+
+
+
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+
+ +

+preProcess

+
+protected java.lang.String preProcess(java.lang.String path)
+                               throws java.io.IOException,
+                                      javax.management.JMException
+
+
+
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+
+ +

+postProcess

+
+protected void postProcess(HttpOutputStream out,
+                           HttpInputStream in,
+                           java.lang.Exception e)
+                    throws java.io.IOException,
+                           javax.management.JMException
+
+
+
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptorMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptorMBean.html new file mode 100644 index 0000000..55a3693 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptorMBean.html @@ -0,0 +1,754 @@ + + + + + + +HttpAdaptorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Interface HttpAdaptorMBean

+
+
All Known Implementing Classes:
HttpAdaptor
+
+
+
+
public interface HttpAdaptorMBean
+ +

+Management interface for the HttpAdaptor MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddAuthorization(java.lang.String username, + java.lang.String password) + +
+          Adds an authorization pair as username/password
+ voidaddCommandProcessor(java.lang.String path, + HttpCommandProcessor processor) + +
+          Adds a command processor object
+ voidaddCommandProcessor(java.lang.String path, + java.lang.String processorClass) + +
+          Adds a command processor object by class
+ java.lang.StringgetAuthenticationMethod() + +
+          Authentication Method
+ java.lang.StringgetHost() + +
+          Return the host name the server will be listening to.
+ intgetPort() + +
+          Returns the port where the server is running on.
+ ProcessorMBeangetProcessor() + +
+          Returns the Processor set by setProcessor(mx4j.tools.adaptor.http.ProcessorMBean)
+ javax.management.ObjectNamegetProcessorName() + +
+          Returns the ObjectName of the processor set by setProcessorName(javax.management.ObjectName)
+ longgetRequestsCount() + +
+          Requests count
+ java.util.DategetStartDate() + +
+          Starting date
+ java.lang.StringgetVersion() + +
+          Gets the HttpAdaptor version
+ booleanisActive() + +
+          Indicates whether the server's running
+ voidremoveCommandProcessor(java.lang.String path) + +
+          Removes a command processor object by class
+ voidsetAuthenticationMethod(java.lang.String method) + +
+          Sets the Authentication Method.
+ voidsetHost(java.lang.String host) + +
+          Sets the host name where the server will be listening
+ voidsetPort(int port) + +
+          Sets the value of the server's port
+ voidsetProcessor(ProcessorMBean processor) + +
+          Sets the object which will post process the XML results.
+ voidsetProcessorClass(java.lang.String processorClass) + +
+          Sets the classname of the object which will post process the XML results.
+ voidsetProcessorName(javax.management.ObjectName processorName) + +
+          Sets the object name which will post process the XML result.
+ voidsetProcessorNameString(java.lang.String processorName) + +
+          Sets the object name of the PostProcessor MBean.
+ voidsetSocketFactory(AdaptorServerSocketFactory factory) + +
+          Sets the object which create the server sockets
+ voidsetSocketFactoryName(javax.management.ObjectName factoryName) + +
+          Sets the factory's object name which will create the server sockets
+ voidsetSocketFactoryNameString(java.lang.String factoryName) + +
+          Sets the factory's object name which will create the server sockets
+ voidstart() + +
+          Starts the server
+ voidstop() + +
+          Stops the HTTP daemon
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setPort

+
+public void setPort(int port)
+
+
Sets the value of the server's port +

+

+
Parameters:
port - the new port's value
+
+
+
+ +

+getPort

+
+public int getPort()
+
+
Returns the port where the server is running on. Default is 8080 +

+

+ +
Returns:
HTTPServer's port
+
+
+
+ +

+setHost

+
+public void setHost(java.lang.String host)
+
+
Sets the host name where the server will be listening +

+

+
Parameters:
host - Server's host
+
+
+
+ +

+getHost

+
+public java.lang.String getHost()
+
+
Return the host name the server will be listening to. If null the server listen at the localhost +

+

+ +
Returns:
the current hostname
+
+
+
+ +

+setAuthenticationMethod

+
+public void setAuthenticationMethod(java.lang.String method)
+
+
Sets the Authentication Method. +

+

+
Parameters:
method - none/basic/digest
+
+
+
+ +

+getAuthenticationMethod

+
+public java.lang.String getAuthenticationMethod()
+
+
Authentication Method +

+

+ +
Returns:
authentication method
+
+
+
+ +

+setProcessor

+
+public void setProcessor(ProcessorMBean processor)
+
+
Sets the object which will post process the XML results. + The last value set between the setPostProcessor and setPostProcessorName will be the valid one +

+

+
Parameters:
processor - a Post processor object
+
+
+
+ +

+getProcessor

+
+public ProcessorMBean getProcessor()
+
+
Returns the Processor set by setProcessor(mx4j.tools.adaptor.http.ProcessorMBean) +

+

+
+
+
+
+ +

+setProcessorClass

+
+public void setProcessorClass(java.lang.String processorClass)
+
+
Sets the classname of the object which will post process the XML results. + The adaptor will try to build the object and use the processor name ObjectName to register it. + The class name has to implements mx4j.tools.adaptor.http.ProcessorMBean and be MBean compliant +

+

+
Parameters:
processorClass - a Post processor object
+
+
+
+ +

+setProcessorNameString

+
+public void setProcessorNameString(java.lang.String processorName)
+                            throws javax.management.MalformedObjectNameException
+
+
Sets the object name of the PostProcessor MBean. If ProcessorClass is set the processor will be created +

+

+
Parameters:
processorName - a Post processor object +
Throws: +
javax.management.MalformedObjectNameException
+
+
+
+ +

+setProcessorName

+
+public void setProcessorName(javax.management.ObjectName processorName)
+
+
Sets the object name which will post process the XML result. The last value set between the setPostProcessor and setPostProcessorName will be the valid one. The MBean will be verified to be of instance HttpPostProcessor +

+

+
Parameters:
processorName - The new processorName value
+
+
+
+ +

+getProcessorName

+
+public javax.management.ObjectName getProcessorName()
+
+
Returns the ObjectName of the processor set by setProcessorName(javax.management.ObjectName) +

+

+
+
+
+
+ +

+setSocketFactory

+
+public void setSocketFactory(AdaptorServerSocketFactory factory)
+
+
Sets the object which create the server sockets +

+

+
Parameters:
factory - the socket factory
+
+
+
+ +

+setSocketFactoryName

+
+public void setSocketFactoryName(javax.management.ObjectName factoryName)
+
+
Sets the factory's object name which will create the server sockets +

+

+
Parameters:
factoryName - the socket factory
+
+
+
+ +

+setSocketFactoryNameString

+
+public void setSocketFactoryNameString(java.lang.String factoryName)
+                                throws javax.management.MalformedObjectNameException
+
+
Sets the factory's object name which will create the server sockets +

+

+
Parameters:
factoryName - the socket factory +
Throws: +
javax.management.MalformedObjectNameException
+
+
+
+ +

+isActive

+
+public boolean isActive()
+
+
Indicates whether the server's running +

+

+ +
Returns:
The active value
+
+
+
+ +

+getStartDate

+
+public java.util.Date getStartDate()
+
+
Starting date +

+

+ +
Returns:
The date when the server was started
+
+
+
+ +

+getRequestsCount

+
+public long getRequestsCount()
+
+
Requests count +

+

+ +
Returns:
The total of requests served so far
+
+
+
+ +

+getVersion

+
+public java.lang.String getVersion()
+
+
Gets the HttpAdaptor version +

+

+ +
Returns:
HttpAdaptor's version
+
+
+
+ +

+addCommandProcessor

+
+public void addCommandProcessor(java.lang.String path,
+                                HttpCommandProcessor processor)
+
+
Adds a command processor object +

+

+
+
+
+
+ +

+addCommandProcessor

+
+public void addCommandProcessor(java.lang.String path,
+                                java.lang.String processorClass)
+
+
Adds a command processor object by class +

+

+
+
+
+
+ +

+removeCommandProcessor

+
+public void removeCommandProcessor(java.lang.String path)
+
+
Removes a command processor object by class +

+

+
+
+
+
+ +

+start

+
+public void start()
+           throws java.io.IOException
+
+
Starts the server +

+

+ +
Throws: +
java.io.IOException
+
+
+
+ +

+stop

+
+public void stop()
+
+
Stops the HTTP daemon +

+

+
+
+
+
+ +

+addAuthorization

+
+public void addAuthorization(java.lang.String username,
+                             java.lang.String password)
+
+
Adds an authorization pair as username/password +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptorMBeanDescription.html new file mode 100644 index 0000000..8a9f8cc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpAdaptorMBeanDescription.html @@ -0,0 +1,461 @@ + + + + + + +HttpAdaptorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class HttpAdaptorMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.adaptor.http.HttpAdaptorMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class HttpAdaptorMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Management interface descriptions for the HttpAdaptor MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HttpAdaptorMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetConstructorDescription(java.lang.reflect.Constructor ctor) + +
+          Should return the description for the given constructor of the MBean.
+ java.lang.StringgetConstructorParameterDescription(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the description for the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetConstructorParameterName(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the name of the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ java.lang.StringgetOperationParameterDescription(java.lang.reflect.Method method, + int index) + +
+          Should return the description for the operations's parameter for the given operation and parameter index.
+ java.lang.StringgetOperationParameterName(java.lang.reflect.Method method, + int index) + +
+          Should return the name of the operation's parameter for the given operation and parameter index.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HttpAdaptorMBeanDescription

+
+public HttpAdaptorMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorDescription

+
+public java.lang.String getConstructorDescription(java.lang.reflect.Constructor ctor)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the given constructor of the MBean. + For example: "Creates an rmiregistry instance on the specified port" +

+

+
Specified by:
getConstructorDescription in interface MBeanDescription
Overrides:
getConstructorDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorParameterName

+
+public java.lang.String getConstructorParameterName(java.lang.reflect.Constructor ctor,
+                                                    int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the constructor's parameter for the given constructor and parameter index. + For example: "port" +

+

+
Specified by:
getConstructorParameterName in interface MBeanDescription
Overrides:
getConstructorParameterName in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorParameterDescription

+
+public java.lang.String getConstructorParameterDescription(java.lang.reflect.Constructor ctor,
+                                                           int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the constructor's parameter for the given constructor and parameter index. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getConstructorParameterDescription in interface MBeanDescription
Overrides:
getConstructorParameterDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
Overrides:
getOperationDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationParameterName

+
+public java.lang.String getOperationParameterName(java.lang.reflect.Method method,
+                                                  int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the operation's parameter for the given operation and parameter index. + For example: "bindName" +

+

+
Specified by:
getOperationParameterName in interface MBeanDescription
Overrides:
getOperationParameterName in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationParameterDescription

+
+public java.lang.String getOperationParameterDescription(java.lang.reflect.Method method,
+                                                         int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the operations's parameter for the given operation and parameter index. + For example: "The name to which the object will be bound to" +

+

+
Specified by:
getOperationParameterDescription in interface MBeanDescription
Overrides:
getOperationParameterDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpCommandProcessor.html new file mode 100644 index 0000000..67dff95 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpCommandProcessor.html @@ -0,0 +1,273 @@ + + + + + + +HttpCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Interface HttpCommandProcessor

+
+
All Known Implementing Classes:
HttpCommandProcessorAdaptor
+
+
+
+
public interface HttpCommandProcessor
+ +

+HttpCommandProcessor sets the structure of a command processor +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ voidsetDocumentBuilder(javax.xml.parsers.DocumentBuilder builder) + +
+          Sets the Document Builder factory
+ voidsetMBeanServer(javax.management.MBeanServer server) + +
+          Sets the target MBeanServer
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Executes an HTTP request. It assumes the request is well formed +

+

+ +
Returns:
An XML Document +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+
+ +

+setMBeanServer

+
+public void setMBeanServer(javax.management.MBeanServer server)
+
+
Sets the target MBeanServer +

+

+
+
+
+
+ +

+setDocumentBuilder

+
+public void setDocumentBuilder(javax.xml.parsers.DocumentBuilder builder)
+
+
Sets the Document Builder factory +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpCommandProcessorAdaptor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpCommandProcessorAdaptor.html new file mode 100644 index 0000000..79eb827 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpCommandProcessorAdaptor.html @@ -0,0 +1,375 @@ + + + + + + +HttpCommandProcessorAdaptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class HttpCommandProcessorAdaptor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
Direct Known Subclasses:
ConstructorsCommandProcessor, CreateMBeanCommandProcessor, DeleteMBeanCommandProcessor, EmptyCommandProcessor, GetAttributeCommandProcessor, InvokeOperationCommandProcessor, MBeanCommandProcessor, RelationCommandProcessor, ServerByDomainCommandProcessor, ServerCommandProcessor, SetAttributeCommandProcessor, SetAttributesCommandProcessor
+
+
+
+
public abstract class HttpCommandProcessorAdaptor
extends java.lang.Object
implements HttpCommandProcessor
+ +

+HttpCommandProcessor sets the structure of a command processor +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  javax.xml.parsers.DocumentBuilderbuilder + +
+           
+protected  javax.management.MBeanServerserver + +
+           
+  + + + + + + + + + + +
+Constructor Summary
HttpCommandProcessorAdaptor() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+abstract  org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ voidsetDocumentBuilder(javax.xml.parsers.DocumentBuilder builder) + +
+          Sets the Document Builder factory
+ voidsetMBeanServer(javax.management.MBeanServer server) + +
+          Sets the target MBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+server

+
+protected javax.management.MBeanServer server
+
+
+
+
+
+ +

+builder

+
+protected javax.xml.parsers.DocumentBuilder builder
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+HttpCommandProcessorAdaptor

+
+public HttpCommandProcessorAdaptor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public abstract org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                             throws java.io.IOException,
+                                                    javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
+
+
+ +
Returns:
An XML Document +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+
+ +

+setMBeanServer

+
+public void setMBeanServer(javax.management.MBeanServer server)
+
+
Sets the target MBeanServer +

+

+
Specified by:
setMBeanServer in interface HttpCommandProcessor
+
+
+
+
+
+
+ +

+setDocumentBuilder

+
+public void setDocumentBuilder(javax.xml.parsers.DocumentBuilder builder)
+
+
Sets the Document Builder factory +

+

+
Specified by:
setDocumentBuilder in interface HttpCommandProcessor
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpConstants.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpConstants.html new file mode 100644 index 0000000..f17b0fb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpConstants.html @@ -0,0 +1,541 @@ + + + + + + +HttpConstants (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class HttpConstants

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpConstants
+
+
+
+
public class HttpConstants
extends java.lang.Object
+ +

+Define constants for the HTTP request processing +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringHTTP_VERSION + +
+          HTTP implemented version
+static java.lang.StringMETHOD_GET + +
+          Get method header
+static java.lang.StringMETHOD_POST + +
+          Post method header
+static java.lang.StringSERVER_INFO + +
+          Server info header
+static intSTATUS_AUTHENTICATE + +
+          Status code AUTHENTICATE
+static intSTATUS_BAD_REQUEST + +
+          Status code BAD REQUEST
+static intSTATUS_FORBIDDEN + +
+          Status code FORBIDDEN
+static intSTATUS_INTERNAL_ERROR + +
+          Status code INTERNAL ERROR
+static intSTATUS_MOVED_PERMANENTLY + +
+          Status code MOVED PERMANENTLY
+static intSTATUS_MOVED_TEMPORARILY + +
+          Status code MOVED TEMPORARILY
+static intSTATUS_NO_CONTENT + +
+          Status code NO CONTENT
+static intSTATUS_NOT_ALLOWED + +
+          Status code NOT ALLOWED
+static intSTATUS_NOT_FOUND + +
+          Status code NOT FOUND
+static intSTATUS_NOT_IMPLEMENTED + +
+          Status code NOT IMPLEMENTED
+static intSTATUS_OKAY + +
+          Status code OK
+  + + + + + + + + + + +
+Constructor Summary
HttpConstants() + +
+           
+  + + + + + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+SERVER_INFO

+
+public static final java.lang.String SERVER_INFO
+
+
Server info header +

+

+
See Also:
Constant Field Values
+
+
+ +

+HTTP_VERSION

+
+public static final java.lang.String HTTP_VERSION
+
+
HTTP implemented version +

+

+
See Also:
Constant Field Values
+
+
+ +

+METHOD_GET

+
+public static final java.lang.String METHOD_GET
+
+
Get method header +

+

+
See Also:
Constant Field Values
+
+
+ +

+METHOD_POST

+
+public static final java.lang.String METHOD_POST
+
+
Post method header +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_OKAY

+
+public static final int STATUS_OKAY
+
+
Status code OK +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_NO_CONTENT

+
+public static final int STATUS_NO_CONTENT
+
+
Status code NO CONTENT +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_MOVED_PERMANENTLY

+
+public static final int STATUS_MOVED_PERMANENTLY
+
+
Status code MOVED PERMANENTLY +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_MOVED_TEMPORARILY

+
+public static final int STATUS_MOVED_TEMPORARILY
+
+
Status code MOVED TEMPORARILY +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_BAD_REQUEST

+
+public static final int STATUS_BAD_REQUEST
+
+
Status code BAD REQUEST +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_AUTHENTICATE

+
+public static final int STATUS_AUTHENTICATE
+
+
Status code AUTHENTICATE +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_FORBIDDEN

+
+public static final int STATUS_FORBIDDEN
+
+
Status code FORBIDDEN +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_NOT_FOUND

+
+public static final int STATUS_NOT_FOUND
+
+
Status code NOT FOUND +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_NOT_ALLOWED

+
+public static final int STATUS_NOT_ALLOWED
+
+
Status code NOT ALLOWED +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_INTERNAL_ERROR

+
+public static final int STATUS_INTERNAL_ERROR
+
+
Status code INTERNAL ERROR +

+

+
See Also:
Constant Field Values
+
+
+ +

+STATUS_NOT_IMPLEMENTED

+
+public static final int STATUS_NOT_IMPLEMENTED
+
+
Status code NOT IMPLEMENTED +

+

+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+HttpConstants

+
+public HttpConstants()
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpException.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpException.html new file mode 100644 index 0000000..22a4c02 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpException.html @@ -0,0 +1,333 @@ + + + + + + +HttpException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class HttpException

+
+java.lang.Object
+  extended byjava.lang.Throwable
+      extended byjava.lang.Exception
+          extended byjava.io.IOException
+              extended bymx4j.tools.adaptor.http.HttpException
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class HttpException
extends java.io.IOException
+ +

+HttpException is emitted when an error parsing an HTTP request appears +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + +
+Field Summary
+protected  intcode + +
+          Error code
+  + + + + + + + + + + +
+Constructor Summary
HttpException(int code, + java.lang.String description) + +
+          Constructor for the HttpException object
+  + + + + + + + + + + + + + + + +
+Method Summary
+ intgetCode() + +
+          Return the exception code
+ org.w3c.dom.DocumentgetResponseDoc() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+code

+
+protected int code
+
+
Error code +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+HttpException

+
+public HttpException(int code,
+                     java.lang.String description)
+
+
Constructor for the HttpException object +

+

Parameters:
code - Error code
description - Description
+ + + + + + + + +
+Method Detail
+ +

+getCode

+
+public int getCode()
+
+
Return the exception code +

+

+
+
+
+
+ +

+getResponseDoc

+
+public org.w3c.dom.Document getResponseDoc()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpInputStream.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpInputStream.html new file mode 100644 index 0000000..27e2de3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpInputStream.html @@ -0,0 +1,662 @@ + + + + + + +HttpInputStream (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class HttpInputStream

+
+java.lang.Object
+  extended byjava.io.InputStream
+      extended byjava.io.FilterInputStream
+          extended byjava.io.BufferedInputStream
+              extended bymx4j.tools.adaptor.http.HttpInputStream
+
+
+
+
public class HttpInputStream
extends java.io.BufferedInputStream
+ +

+HttpInputStream processes an HTTP request +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class java.io.BufferedInputStream
buf, count, marklimit, markpos, pos
+ + + + + + + +
Fields inherited from class java.io.FilterInputStream
in
+  + + + + + + + + + + +
+Constructor Summary
HttpInputStream(java.io.InputStream in) + +
+          Constructs a new HttpInputStream
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetHeader(java.lang.String name) + +
+          Returns a given header by name, assumes lower case
+ java.util.MapgetHeaders() + +
+          Returns a given header by name, assumes lower case
+ java.lang.StringgetMethod() + +
+          Returns the method of the request
+ java.lang.StringgetPath() + +
+          Returns the path of the request
+ java.lang.StringgetQueryString() + +
+          Returns the query string
+ java.lang.StringgetVariable(java.lang.String name) + +
+          Returns one variable value.
+ java.util.MapgetVariables() + +
+          Returns a map with the variables passed in the request.
+ java.lang.String[]getVariableValues(java.lang.String name) + +
+          Returns one variable values.
+ floatgetVersion() + +
+          Returns the version of the request
+protected  voidparseMethod(java.lang.String method) + +
+          Parses the connection method.
+protected  voidparseRequest(java.lang.String request) + +
+          Parses the request
+protected  voidparseVariables() + +
+          Parses the request parameters
+protected  voidparseVersion(java.lang.String verStr) + +
+          Parses the request HttpConstants version
+protected  voidreadHeaders() + +
+          Reads the headers
+ java.lang.StringreadLine() + +
+          Reads an HTTP line
+ voidreadRequest() + +
+          Reads the request parsing the headers
+ + + + + + + +
Methods inherited from class java.io.BufferedInputStream
available, close, mark, markSupported, read, read, reset, skip
+ + + + + + + +
Methods inherited from class java.io.FilterInputStream
read
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HttpInputStream

+
+public HttpInputStream(java.io.InputStream in)
+
+
Constructs a new HttpInputStream +

+

Parameters:
in - InputStream
+ + + + + + + + +
+Method Detail
+ +

+getMethod

+
+public java.lang.String getMethod()
+
+
Returns the method of the request +

+

+ +
Returns:
the method of the request GET/POST
+
+
+
+ +

+getPath

+
+public java.lang.String getPath()
+
+
Returns the path of the request +

+

+ +
Returns:
the path of the request
+
+
+
+ +

+getQueryString

+
+public java.lang.String getQueryString()
+
+
Returns the query string +

+

+ +
Returns:
The queryString value
+
+
+
+ +

+getVersion

+
+public float getVersion()
+
+
Returns the version of the request +

+

+ +
Returns:
The version value 1.0/1.1
+
+
+
+ +

+getHeader

+
+public java.lang.String getHeader(java.lang.String name)
+
+
Returns a given header by name, assumes lower case +

+

+
Parameters:
name - Name of the header +
Returns:
The header value
+
+
+
+ +

+getHeaders

+
+public java.util.Map getHeaders()
+
+
Returns a given header by name, assumes lower case +

+

+ +
Returns:
The header value
+
+
+
+ +

+readRequest

+
+public void readRequest()
+                 throws java.io.IOException
+
+
Reads the request parsing the headers +

+

+ +
Throws: +
java.io.IOException - Description of Exception
+
+
+
+ +

+readLine

+
+public java.lang.String readLine()
+                          throws java.io.IOException
+
+
Reads an HTTP line +

+

+ +
Returns:
A read line +
Throws: +
java.io.IOException - Emmited in case of errors reading the stream
+
+
+
+ +

+getVariables

+
+public java.util.Map getVariables()
+
+
Returns a map with the variables passed in the request. +

+

+ +
Returns:
A map containing variables/value pairs. If a variable is +

+ present only once in the request the value will be a String. +

+ If it is present many times the variable will be a String[]

+
+
+
+ +

+getVariable

+
+public java.lang.String getVariable(java.lang.String name)
+
+
Returns one variable value. If the variable is present many times, the first +

+ instance will be returned +

+

+ +
Returns:
A String with the variable value
+
+
+
+ +

+getVariableValues

+
+public java.lang.String[] getVariableValues(java.lang.String name)
+
+
Returns one variable values. +

+

+ +
Returns:
A String array with all variable instances
+
+
+
+ +

+parseVariables

+
+protected void parseVariables()
+                       throws HttpException
+
+
Parses the request parameters +

+

+ +
Throws: +
HttpException
+
+
+
+ +

+parseMethod

+
+protected void parseMethod(java.lang.String method)
+                    throws HttpException
+
+
Parses the connection method. GET/POST are allowed +

+

+
Parameters:
method - Description of Parameter +
Throws: +
HttpException - Description of Exception
+
+
+
+ +

+parseRequest

+
+protected void parseRequest(java.lang.String request)
+                     throws HttpException
+
+
Parses the request +

+

+
Parameters:
request - Request string +
Throws: +
HttpException - Thrown if an error ocurr
+
+
+
+ +

+parseVersion

+
+protected void parseVersion(java.lang.String verStr)
+                     throws HttpException
+
+
Parses the request HttpConstants version +

+

+
Parameters:
verStr - String containing the HTTP version +
Throws: +
HttpException
+
+
+
+ +

+readHeaders

+
+protected void readHeaders()
+                    throws java.io.IOException
+
+
Reads the headers +

+

+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpOutputStream.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpOutputStream.html new file mode 100644 index 0000000..99b7af6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpOutputStream.html @@ -0,0 +1,476 @@ + + + + + + +HttpOutputStream (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class HttpOutputStream

+
+java.lang.Object
+  extended byjava.io.OutputStream
+      extended byjava.io.FilterOutputStream
+          extended byjava.io.BufferedOutputStream
+              extended bymx4j.tools.adaptor.http.HttpOutputStream
+
+
+
+
public class HttpOutputStream
extends java.io.BufferedOutputStream
+ +

+HttpAdaptor sets the basic adaptor listening for HTTP requests +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  intcode + +
+          Answer code
+protected  java.util.Mapheaders + +
+          Headers to be sent
+protected  booleansendHeaders + +
+          whether to send the headers
+ + + + + + + +
Fields inherited from class java.io.BufferedOutputStream
buf, count
+ + + + + + + +
Fields inherited from class java.io.FilterOutputStream
out
+  + + + + + + + + + + +
+Constructor Summary
HttpOutputStream(java.io.OutputStream out, + HttpInputStream in) + +
+          Creates a new HttpOutputStream with a given OutputStream and an InputStream
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleansendHeaders() + +
+          Sends the headers
+ voidsetCode(int code) + +
+          Sets the answer code
+ voidsetHeader(java.lang.String attr, + java.lang.String value) + +
+          Sets a given header code
+ voidwrite(java.io.InputStream in) + +
+          Writes the content of the input stream to the output stream
+ voidwrite(java.lang.String msg) + +
+          Writes a given message line
+ + + + + + + +
Methods inherited from class java.io.BufferedOutputStream
flush, write, write
+ + + + + + + +
Methods inherited from class java.io.FilterOutputStream
close, write
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+code

+
+protected int code
+
+
Answer code +

+

+
+
+
+ +

+sendHeaders

+
+protected boolean sendHeaders
+
+
whether to send the headers +

+

+
+
+
+ +

+headers

+
+protected java.util.Map headers
+
+
Headers to be sent +

+

+
+
+ + + + + + + + +
+Constructor Detail
+ +

+HttpOutputStream

+
+public HttpOutputStream(java.io.OutputStream out,
+                        HttpInputStream in)
+
+
Creates a new HttpOutputStream with a given OutputStream and an InputStream +

+

Parameters:
out - The OutputStream normally associated with the output socket +

+ stream of the incoming connection

in - HttpInputStream containing the incoming request
+ + + + + + + + +
+Method Detail
+ +

+setCode

+
+public void setCode(int code)
+
+
Sets the answer code +

+

+
Parameters:
code - The new code value
+
+
+
+ +

+setHeader

+
+public void setHeader(java.lang.String attr,
+                      java.lang.String value)
+
+
Sets a given header code +

+

+
Parameters:
attr - The new header name
value - The new header value
+
+
+
+ +

+sendHeaders

+
+public boolean sendHeaders()
+                    throws java.io.IOException
+
+
Sends the headers +

+

+ +
Returns:
Description of the Returned Value +
Throws: +
java.io.IOException - Description of Exception
+
+
+
+ +

+write

+
+public void write(java.lang.String msg)
+           throws java.io.IOException
+
+
Writes a given message line +

+

+
Parameters:
msg - The message to be written +
Throws: +
java.io.IOException
+
+
+
+ +

+write

+
+public void write(java.io.InputStream in)
+           throws java.io.IOException
+
+
Writes the content of the input stream to the output stream +

+

+
Parameters:
in - The input stream +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpUtil.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpUtil.html new file mode 100644 index 0000000..fa835f0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/HttpUtil.html @@ -0,0 +1,338 @@ + + + + + + +HttpUtil (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class HttpUtil

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpUtil
+
+
+
+
public class HttpUtil
extends java.lang.Object
+ +

+Utility methods for the HTTP adaptor +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HttpUtil() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static booleanbooleanVariableValue(HttpInputStream in, + java.lang.String variable, + boolean defaultValue) + +
+          Returns whether a boolean variable is in the variables.
+static java.lang.StringcanonicalizePath(java.lang.String path) + +
+          Makes a path canonical
+static java.lang.StringgetCodeMessage(int code) + +
+          Gets a message apropriate for a give HTTP code
+protected static intindexOf(char[] chars, + int length, + char chr, + int from) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HttpUtil

+
+public HttpUtil()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getCodeMessage

+
+public static java.lang.String getCodeMessage(int code)
+
+
Gets a message apropriate for a give HTTP code +

+

+
Parameters:
code - Reference Code +
Returns:
The result message
See Also:
HttpConstants
+
+
+
+ +

+canonicalizePath

+
+public static java.lang.String canonicalizePath(java.lang.String path)
+
+
Makes a path canonical +

+

+
Parameters:
path - Target path +
Returns:
The canonicalized path
+
+
+
+ +

+indexOf

+
+protected static int indexOf(char[] chars,
+                             int length,
+                             char chr,
+                             int from)
+
+
+
+
+
+
+ +

+booleanVariableValue

+
+public static boolean booleanVariableValue(HttpInputStream in,
+                                           java.lang.String variable,
+                                           boolean defaultValue)
+
+
Returns whether a boolean variable is in the variables. It tries to find + it. If not found the the default is used. If found is tested to check if + it is true or 1 and the answer is true. + Otherwise is false +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/InvokeOperationCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/InvokeOperationCommandProcessor.html new file mode 100644 index 0000000..3785d54 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/InvokeOperationCommandProcessor.html @@ -0,0 +1,300 @@ + + + + + + +InvokeOperationCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class InvokeOperationCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.InvokeOperationCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class InvokeOperationCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+InvokeOperationCommandProcessor, processes a request for unregistering an MBean +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
InvokeOperationCommandProcessor() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+InvokeOperationCommandProcessor

+
+public InvokeOperationCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/MBeanCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/MBeanCommandProcessor.html new file mode 100644 index 0000000..ea8da21 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/MBeanCommandProcessor.html @@ -0,0 +1,323 @@ + + + + + + +MBeanCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class MBeanCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.MBeanCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class MBeanCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+MBeanCommandProcessor, processes a request for getting data about a MBean +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
MBeanCommandProcessor() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidaddParameters(org.w3c.dom.Element node, + org.w3c.dom.Document document, + javax.management.MBeanParameterInfo[] parameters) + +
+           
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanCommandProcessor

+
+public MBeanCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+
+ +

+addParameters

+
+protected void addParameters(org.w3c.dom.Element node,
+                             org.w3c.dom.Document document,
+                             javax.management.MBeanParameterInfo[] parameters)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ProcessorMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ProcessorMBean.html new file mode 100644 index 0000000..1ba8468 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ProcessorMBean.html @@ -0,0 +1,354 @@ + + + + + + +ProcessorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Interface ProcessorMBean

+
+
All Known Subinterfaces:
XSLTProcessorMBean
+
+
+
All Known Implementing Classes:
DefaultProcessor, XSLTProcessor
+
+
+
+
public interface ProcessorMBean
+ +

+Processor ManagementBean, just defines a generic description +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetName() + +
+           
+ java.lang.StringnotFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+          Let the processor load internally a not found element.
+ java.lang.StringpreProcess(java.lang.String path) + +
+          Preprocess a path and return a replacement path.
+ voidwriteError(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+          The method will process the result exception and produce output.
+ voidwriteResponse(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+          The method will process the result string and produce an output.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getName

+
+public java.lang.String getName()
+
+
+
+
+
+
+ +

+writeResponse

+
+public void writeResponse(HttpOutputStream out,
+                          HttpInputStream in,
+                          org.w3c.dom.Document document)
+                   throws java.io.IOException
+
+
The method will process the result string and produce an output. The + implementor is also responsible to set the mime type, response code and + send the headers before answering as follow: + + out.setCode(HttpConstants.STATUS_OKAY); + out.setHeader("Content-type", "text/html"); + out.sendHeaders(); + out.write("some text"); + +

+

+
Parameters:
out - The output stream
in - The input stream
document - A document containing the data +
Throws: +
java.io.IOException
+
+
+
+ +

+writeError

+
+public void writeError(HttpOutputStream out,
+                       HttpInputStream in,
+                       java.lang.Exception e)
+                throws java.io.IOException
+
+
The method will process the result exception and produce output. The + implementor is also responsible to set the mime type, response code and + send the headers before answering as follow: + + out.setCode(HttpConstants.STATUS_OKAY); + out.setHeader("Content-type", "text/html"); + out.sendHeaders(); + out.write("some text"); + +

+

+
Parameters:
out - The output stream
in - The input stream
e - The exception to be reported +
Throws: +
java.io.IOException
+
+
+
+ +

+preProcess

+
+public java.lang.String preProcess(java.lang.String path)
+
+
Preprocess a path and return a replacement path. For instance the / path + could be replaced by the server path +

+

+
Parameters:
path - The original path +
Returns:
the replacement path. If not modification the path param should + be returned
+
+
+
+ +

+notFoundElement

+
+public java.lang.String notFoundElement(java.lang.String path,
+                                        HttpOutputStream out,
+                                        HttpInputStream in)
+                                 throws java.io.IOException,
+                                        HttpException
+
+
Let the processor load internally a not found element. This can be used + to load images, stylesheets and so on. If return is not null, the path is + processed +

+

+
Parameters:
path - The request element
out - The output stream
in - The input stream +
Throws: +
java.io.IOException +
HttpException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ProcessorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ProcessorMBeanDescription.html new file mode 100644 index 0000000..416249c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ProcessorMBeanDescription.html @@ -0,0 +1,309 @@ + + + + + + +ProcessorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class ProcessorMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.adaptor.http.ProcessorMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
Direct Known Subclasses:
XSLTProcessorMBeanDescription
+
+
+
+
public class ProcessorMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Description of the ProcessorMBean interface +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ProcessorMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName, getMBeanDescription, getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ProcessorMBeanDescription

+
+public ProcessorMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
Overrides:
getOperationDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/RelationCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/RelationCommandProcessor.html new file mode 100644 index 0000000..d48a62c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/RelationCommandProcessor.html @@ -0,0 +1,350 @@ + + + + + + +RelationCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class RelationCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.RelationCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class RelationCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+CreateMBeanCommandProcessor, processes a request for creating and registering + an MBean +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
RelationCommandProcessor() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidaddRelationTypeNames(org.w3c.dom.Element node, + org.w3c.dom.Document document, + java.util.List allRelationNames) + +
+          put everything into a map as we need to maintain the correct relationTypeName to relationId + TODO: determine how to make relationService tab useful!!
+protected  booleancheckRelationServiceIsRegistered() + +
+           
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RelationCommandProcessor

+
+public RelationCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+
+ +

+addRelationTypeNames

+
+protected void addRelationTypeNames(org.w3c.dom.Element node,
+                                    org.w3c.dom.Document document,
+                                    java.util.List allRelationNames)
+                             throws javax.management.JMException
+
+
put everything into a map as we need to maintain the correct relationTypeName to relationId + TODO: determine how to make relationService tab useful!! +

+

+ +
Throws: +
javax.management.JMException
+
+
+
+ +

+checkRelationServiceIsRegistered

+
+protected boolean checkRelationServiceIsRegistered()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ServerByDomainCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ServerByDomainCommandProcessor.html new file mode 100644 index 0000000..31b9ab0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ServerByDomainCommandProcessor.html @@ -0,0 +1,301 @@ + + + + + + +ServerByDomainCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class ServerByDomainCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.ServerByDomainCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class ServerByDomainCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+ServerByDomainCommandProcessor, processes a request for getting all the + MBeans of the current server grouped by domains +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
ServerByDomainCommandProcessor() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerByDomainCommandProcessor

+
+public ServerByDomainCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ServerCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ServerCommandProcessor.html new file mode 100644 index 0000000..8364669 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/ServerCommandProcessor.html @@ -0,0 +1,301 @@ + + + + + + +ServerCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class ServerCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.ServerCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class ServerCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+ServerCommandProcessor, processes a request for getting all the + MBeans of the current server +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
ServerCommandProcessor() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerCommandProcessor

+
+public ServerCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/SetAttributeCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/SetAttributeCommandProcessor.html new file mode 100644 index 0000000..47043bd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/SetAttributeCommandProcessor.html @@ -0,0 +1,301 @@ + + + + + + +SetAttributeCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class SetAttributeCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.SetAttributeCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class SetAttributeCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+SetAttributeCommandProcessor, processes a request for setting one attribute + in one MBean +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
SetAttributeCommandProcessor() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SetAttributeCommandProcessor

+
+public SetAttributeCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/SetAttributesCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/SetAttributesCommandProcessor.html new file mode 100644 index 0000000..0d4813b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/SetAttributesCommandProcessor.html @@ -0,0 +1,303 @@ + + + + + + +SetAttributesCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class SetAttributesCommandProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
+      extended bymx4j.tools.adaptor.http.SetAttributesCommandProcessor
+
+
+
All Implemented Interfaces:
HttpCommandProcessor
+
+
+
+
public class SetAttributesCommandProcessor
extends HttpCommandProcessorAdaptor
+ +

+SetAttributesCommandProcessor, processes a request for setting one or more attributes + in one MBean. it uses th facility of havin multiple submit buttons in a web page + if the set_all=Set variable is passed all attributes will be set, if a set_XXX varialbe + is passed only the specific attribute will be set +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
builder, server
+  + + + + + + + + + + +
+Constructor Summary
SetAttributesCommandProcessor() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ org.w3c.dom.DocumentexecuteRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+ + + + + + + +
Methods inherited from class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor
setDocumentBuilder, setMBeanServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SetAttributesCommandProcessor

+
+public SetAttributesCommandProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+executeRequest

+
+public org.w3c.dom.Document executeRequest(HttpInputStream in)
+                                    throws java.io.IOException,
+                                           javax.management.JMException
+
+
Description copied from interface: HttpCommandProcessor
+
Executes an HTTP request. It assumes the request is well formed +

+

+
Specified by:
executeRequest in interface HttpCommandProcessor
Specified by:
executeRequest in class HttpCommandProcessorAdaptor
+
+
+ +
Throws: +
java.io.IOException +
javax.management.JMException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessor.html new file mode 100644 index 0000000..9d1a563 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessor.html @@ -0,0 +1,861 @@ + + + + + + +XSLTProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class XSLTProcessor

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.http.XSLTProcessor
+
+
+
All Implemented Interfaces:
ProcessorMBean, javax.xml.transform.URIResolver, XSLTProcessorMBean
+
+
+
+
public class XSLTProcessor
extends java.lang.Object
implements ProcessorMBean, XSLTProcessorMBean, javax.xml.transform.URIResolver
+ +

+XSLTPostProcessor pass the document through an XSLT transformation +

+ +

+

+
Version:
+
$Revision: 1.8 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
XSLTProcessor() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddMimeType(java.lang.String extension, + java.lang.String type) + +
+          Maps a given extension with a specified MIME type
+protected  javax.xml.transform.TransformercreateTransformer(java.lang.String path) + +
+           
+ java.lang.StringgetDefaultPage() + +
+          Returns the default start page
+ java.lang.StringgetFile() + +
+          Returns the jar/zip file or the directory where XSL files are loaded
+protected  java.io.InputStreamgetInputStream(java.lang.String path) + +
+           
+ java.util.LocalegetLocale() + +
+          Returns the Locale used to internationalize the output
+ java.lang.StringgetName() + +
+           
+ java.lang.StringgetPathInJar() + +
+          Returns the path of the XSL templates inside a jar file.
+ booleanisUseCache() + +
+          Returns if the XSL Templates are cached
+ booleanisUseJar() + +
+          Returns if the XSL files are contained in a jar/zip file.
+ booleanisUsePath() + +
+          Returns if the XSL files are contained in a path.
+ java.lang.StringnotFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+          Let the processor load internally a not found element.
+ java.lang.StringpreProcess(java.lang.String path) + +
+          Preprocess a path and return a replacement path.
+protected  voidprocessHttpException(HttpInputStream in, + HttpOutputStream out, + HttpException e) + +
+           
+ javax.xml.transform.Sourceresolve(java.lang.String href, + java.lang.String base) + +
+           
+ voidsetDefaultPage(java.lang.String defaultPage) + +
+          Sets the default start page, serverbydomain as a default
+ voidsetFile(java.lang.String file) + +
+          Sets the jar/zip file or the directory where to find the XSL files
+ voidsetLocale(java.util.Locale locale) + +
+          Sets the locale used to internationalize the output
+ voidsetLocaleString(java.lang.String locale) + +
+          Sets the locale used to internationalize the output, as a string
+ voidsetPathInJar(java.lang.String path) + +
+          Specifies the path of the XSL templates inside a jar file.
+ voidsetUseCache(boolean useCache) + +
+          Sets the caching of the XSL Templates.
+ voidwriteError(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+          The method will process the result exception and produce output.
+ voidwriteResponse(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+          The method will process the result string and produce an output.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+XSLTProcessor

+
+public XSLTProcessor()
+
+
+ + + + + + + + +
+Method Detail
+ +

+writeResponse

+
+public void writeResponse(HttpOutputStream out,
+                          HttpInputStream in,
+                          org.w3c.dom.Document document)
+                   throws java.io.IOException
+
+
Description copied from interface: ProcessorMBean
+
The method will process the result string and produce an output. The + implementor is also responsible to set the mime type, response code and + send the headers before answering as follow: + + out.setCode(HttpConstants.STATUS_OKAY); + out.setHeader("Content-type", "text/html"); + out.sendHeaders(); + out.write("some text"); + +

+

+
Specified by:
writeResponse in interface ProcessorMBean
+
+
+
Parameters:
out - The output stream
in - The input stream
document - A document containing the data +
Throws: +
java.io.IOException
+
+
+
+ +

+createTransformer

+
+protected javax.xml.transform.Transformer createTransformer(java.lang.String path)
+
+
+
+
+
+
+
+
+
+ +

+processHttpException

+
+protected void processHttpException(HttpInputStream in,
+                                    HttpOutputStream out,
+                                    HttpException e)
+                             throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeError

+
+public void writeError(HttpOutputStream out,
+                       HttpInputStream in,
+                       java.lang.Exception e)
+                throws java.io.IOException
+
+
Description copied from interface: ProcessorMBean
+
The method will process the result exception and produce output. The + implementor is also responsible to set the mime type, response code and + send the headers before answering as follow: + + out.setCode(HttpConstants.STATUS_OKAY); + out.setHeader("Content-type", "text/html"); + out.sendHeaders(); + out.write("some text"); + +

+

+
Specified by:
writeError in interface ProcessorMBean
+
+
+
Parameters:
out - The output stream
in - The input stream
e - The exception to be reported +
Throws: +
java.io.IOException
+
+
+
+ +

+preProcess

+
+public java.lang.String preProcess(java.lang.String path)
+
+
Description copied from interface: ProcessorMBean
+
Preprocess a path and return a replacement path. For instance the / path + could be replaced by the server path +

+

+
Specified by:
preProcess in interface ProcessorMBean
+
+
+
Parameters:
path - The original path +
Returns:
the replacement path. If not modification the path param should + be returned
+
+
+
+ +

+notFoundElement

+
+public java.lang.String notFoundElement(java.lang.String path,
+                                        HttpOutputStream out,
+                                        HttpInputStream in)
+                                 throws java.io.IOException,
+                                        HttpException
+
+
Description copied from interface: ProcessorMBean
+
Let the processor load internally a not found element. This can be used + to load images, stylesheets and so on. If return is not null, the path is + processed +

+

+
Specified by:
notFoundElement in interface ProcessorMBean
+
+
+
Parameters:
path - The request element
out - The output stream
in - The input stream +
Throws: +
java.io.IOException +
HttpException
+
+
+
+ +

+getInputStream

+
+protected java.io.InputStream getInputStream(java.lang.String path)
+
+
+
+
+
+
+
+
+
+ +

+resolve

+
+public javax.xml.transform.Source resolve(java.lang.String href,
+                                          java.lang.String base)
+
+
+
Specified by:
resolve in interface javax.xml.transform.URIResolver
+
+
+
+
+
+
+ +

+setFile

+
+public void setFile(java.lang.String file)
+
+
Description copied from interface: XSLTProcessorMBean
+
Sets the jar/zip file or the directory where to find the XSL files +

+

+
Specified by:
setFile in interface XSLTProcessorMBean
+
+
+
See Also:
XSLTProcessorMBean.getFile()
+
+
+
+ +

+getFile

+
+public java.lang.String getFile()
+
+
Description copied from interface: XSLTProcessorMBean
+
Returns the jar/zip file or the directory where XSL files are loaded +

+

+
Specified by:
getFile in interface XSLTProcessorMBean
+
+
+
See Also:
XSLTProcessorMBean.setFile(java.lang.String)
+
+
+
+ +

+getPathInJar

+
+public java.lang.String getPathInJar()
+
+
Description copied from interface: XSLTProcessorMBean
+
Returns the path of the XSL templates inside a jar file. +

+

+
Specified by:
getPathInJar in interface XSLTProcessorMBean
+
+
+
See Also:
XSLTProcessorMBean.setPathInJar(java.lang.String)
+
+
+
+ +

+setPathInJar

+
+public void setPathInJar(java.lang.String path)
+
+
Description copied from interface: XSLTProcessorMBean
+
Specifies the path of the XSL templates inside a jar file. +

+

+
Specified by:
setPathInJar in interface XSLTProcessorMBean
+
+
+
See Also:
XSLTProcessorMBean.getPathInJar()
+
+
+
+ +

+getDefaultPage

+
+public java.lang.String getDefaultPage()
+
+
Description copied from interface: XSLTProcessorMBean
+
Returns the default start page +

+

+
Specified by:
getDefaultPage in interface XSLTProcessorMBean
+
+
+
See Also:
XSLTProcessorMBean.setDefaultPage(java.lang.String)
+
+
+
+ +

+setDefaultPage

+
+public void setDefaultPage(java.lang.String defaultPage)
+
+
Description copied from interface: XSLTProcessorMBean
+
Sets the default start page, serverbydomain as a default +

+

+
Specified by:
setDefaultPage in interface XSLTProcessorMBean
+
+
+
See Also:
XSLTProcessorMBean.getDefaultPage()
+
+
+
+ +

+isUseJar

+
+public boolean isUseJar()
+
+
Description copied from interface: XSLTProcessorMBean
+
Returns if the XSL files are contained in a jar/zip file. +

+

+
Specified by:
isUseJar in interface XSLTProcessorMBean
+
+
+
See Also:
XSLTProcessorMBean.isUsePath(), +XSLTProcessorMBean.setFile(java.lang.String)
+
+
+
+ +

+isUsePath

+
+public boolean isUsePath()
+
+
Description copied from interface: XSLTProcessorMBean
+
Returns if the XSL files are contained in a path. +

+

+
Specified by:
isUsePath in interface XSLTProcessorMBean
+
+
+
See Also:
XSLTProcessorMBean.isUseJar(), +XSLTProcessorMBean.setFile(java.lang.String)
+
+
+
+ +

+addMimeType

+
+public void addMimeType(java.lang.String extension,
+                        java.lang.String type)
+
+
Description copied from interface: XSLTProcessorMBean
+
Maps a given extension with a specified MIME type +

+

+
Specified by:
addMimeType in interface XSLTProcessorMBean
+
+
+
+
+
+
+ +

+setUseCache

+
+public void setUseCache(boolean useCache)
+
+
Description copied from interface: XSLTProcessorMBean
+
Sets the caching of the XSL Templates. +

+

+
Specified by:
setUseCache in interface XSLTProcessorMBean
+
+
+
+
+
+
+ +

+isUseCache

+
+public boolean isUseCache()
+
+
Description copied from interface: XSLTProcessorMBean
+
Returns if the XSL Templates are cached +

+

+
Specified by:
isUseCache in interface XSLTProcessorMBean
+
+
+
+
+
+
+ +

+getName

+
+public java.lang.String getName()
+
+
+
Specified by:
getName in interface ProcessorMBean
+
+
+
+
+
+
+ +

+getLocale

+
+public java.util.Locale getLocale()
+
+
Description copied from interface: XSLTProcessorMBean
+
Returns the Locale used to internationalize the output +

+

+
Specified by:
getLocale in interface XSLTProcessorMBean
+
+
+
+
+
+
+ +

+setLocale

+
+public void setLocale(java.util.Locale locale)
+
+
Description copied from interface: XSLTProcessorMBean
+
Sets the locale used to internationalize the output +

+

+
Specified by:
setLocale in interface XSLTProcessorMBean
+
+
+
+
+
+
+ +

+setLocaleString

+
+public void setLocaleString(java.lang.String locale)
+
+
Description copied from interface: XSLTProcessorMBean
+
Sets the locale used to internationalize the output, as a string +

+

+
Specified by:
setLocaleString in interface XSLTProcessorMBean
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessorMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessorMBean.html new file mode 100644 index 0000000..8459ed0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessorMBean.html @@ -0,0 +1,556 @@ + + + + + + +XSLTProcessorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Interface XSLTProcessorMBean

+
+
All Superinterfaces:
ProcessorMBean
+
+
+
All Known Implementing Classes:
XSLTProcessor
+
+
+
+
public interface XSLTProcessorMBean
extends ProcessorMBean
+ +

+Management interface for the XSLTProcessor MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddMimeType(java.lang.String extension, + java.lang.String type) + +
+          Maps a given extension with a specified MIME type
+ java.lang.StringgetDefaultPage() + +
+          Returns the default start page
+ java.lang.StringgetFile() + +
+          Returns the jar/zip file or the directory where XSL files are loaded
+ java.util.LocalegetLocale() + +
+          Returns the Locale used to internationalize the output
+ java.lang.StringgetPathInJar() + +
+          Returns the path of the XSL templates inside a jar file.
+ booleanisUseCache() + +
+          Returns if the XSL Templates are cached
+ booleanisUseJar() + +
+          Returns if the XSL files are contained in a jar/zip file.
+ booleanisUsePath() + +
+          Returns if the XSL files are contained in a path.
+ voidsetDefaultPage(java.lang.String defaultPage) + +
+          Sets the default start page, serverbydomain as a default
+ voidsetFile(java.lang.String file) + +
+          Sets the jar/zip file or the directory where to find the XSL files
+ voidsetLocale(java.util.Locale locale) + +
+          Sets the locale used to internationalize the output
+ voidsetLocaleString(java.lang.String locale) + +
+          Sets the locale used to internationalize the output, as a string
+ voidsetPathInJar(java.lang.String path) + +
+          Specifies the path of the XSL templates inside a jar file.
+ voidsetUseCache(boolean useCache) + +
+          Sets the caching of the XSL Templates.
+ + + + + + + +
Methods inherited from interface mx4j.tools.adaptor.http.ProcessorMBean
getName, notFoundElement, preProcess, writeError, writeResponse
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setFile

+
+public void setFile(java.lang.String file)
+
+
Sets the jar/zip file or the directory where to find the XSL files +

+

+
+
+
+
See Also:
getFile()
+
+
+
+ +

+getFile

+
+public java.lang.String getFile()
+
+
Returns the jar/zip file or the directory where XSL files are loaded +

+

+
+
+
+
See Also:
setFile(java.lang.String)
+
+
+
+ +

+getPathInJar

+
+public java.lang.String getPathInJar()
+
+
Returns the path of the XSL templates inside a jar file. +

+

+
+
+
+
See Also:
setPathInJar(java.lang.String)
+
+
+
+ +

+setPathInJar

+
+public void setPathInJar(java.lang.String path)
+
+
Specifies the path of the XSL templates inside a jar file. +

+

+
+
+
+
See Also:
getPathInJar()
+
+
+
+ +

+getDefaultPage

+
+public java.lang.String getDefaultPage()
+
+
Returns the default start page +

+

+
+
+
+
See Also:
setDefaultPage(java.lang.String)
+
+
+
+ +

+setDefaultPage

+
+public void setDefaultPage(java.lang.String defaultPage)
+
+
Sets the default start page, serverbydomain as a default +

+

+
+
+
+
See Also:
getDefaultPage()
+
+
+
+ +

+isUseJar

+
+public boolean isUseJar()
+
+
Returns if the XSL files are contained in a jar/zip file. +

+

+
+
+
+
See Also:
isUsePath(), +setFile(java.lang.String)
+
+
+
+ +

+isUsePath

+
+public boolean isUsePath()
+
+
Returns if the XSL files are contained in a path. +

+

+
+
+
+
See Also:
isUseJar(), +setFile(java.lang.String)
+
+
+
+ +

+addMimeType

+
+public void addMimeType(java.lang.String extension,
+                        java.lang.String type)
+
+
Maps a given extension with a specified MIME type +

+

+
+
+
+
+
+
+
+ +

+setUseCache

+
+public void setUseCache(boolean useCache)
+
+
Sets the caching of the XSL Templates. +

+

+
+
+
+
+
+
+
+ +

+isUseCache

+
+public boolean isUseCache()
+
+
Returns if the XSL Templates are cached +

+

+
+
+
+
+
+
+
+ +

+getLocale

+
+public java.util.Locale getLocale()
+
+
Returns the Locale used to internationalize the output +

+

+
+
+
+
+
+
+
+ +

+setLocale

+
+public void setLocale(java.util.Locale locale)
+
+
Sets the locale used to internationalize the output +

+

+
+
+
+
+
+
+
+ +

+setLocaleString

+
+public void setLocaleString(java.lang.String locale)
+
+
Sets the locale used to internationalize the output, as a string +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessorMBeanDescription.html new file mode 100644 index 0000000..754994f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/XSLTProcessorMBeanDescription.html @@ -0,0 +1,389 @@ + + + + + + +XSLTProcessorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.http +
+Class XSLTProcessorMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.adaptor.http.ProcessorMBeanDescription
+          extended bymx4j.tools.adaptor.http.XSLTProcessorMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class XSLTProcessorMBeanDescription
extends ProcessorMBeanDescription
+ +

+Management interface descriptions for the XSLTProcessor MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
XSLTProcessorMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ java.lang.StringgetOperationParameterDescription(java.lang.reflect.Method method, + int index) + +
+          Should return the description for the operations's parameter for the given operation and parameter index.
+ java.lang.StringgetOperationParameterName(java.lang.reflect.Method method, + int index) + +
+          Should return the name of the operation's parameter for the given operation and parameter index.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+XSLTProcessorMBeanDescription

+
+public XSLTProcessorMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class ProcessorMBeanDescription
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
Overrides:
getOperationDescription in class ProcessorMBeanDescription
+
+
+
+
+
+
+ +

+getOperationParameterName

+
+public java.lang.String getOperationParameterName(java.lang.reflect.Method method,
+                                                  int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the operation's parameter for the given operation and parameter index. + For example: "bindName" +

+

+
Specified by:
getOperationParameterName in interface MBeanDescription
Overrides:
getOperationParameterName in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationParameterDescription

+
+public java.lang.String getOperationParameterDescription(java.lang.reflect.Method method,
+                                                         int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the operations's parameter for the given operation and parameter index. + For example: "The name to which the object will be bound to" +

+

+
Specified by:
getOperationParameterDescription in interface MBeanDescription
Overrides:
getOperationParameterDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/CommandProcessorUtil.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/CommandProcessorUtil.html new file mode 100644 index 0000000..3685ed3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/CommandProcessorUtil.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.CommandProcessorUtil (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.CommandProcessorUtil

+
+No usage of mx4j.tools.adaptor.http.CommandProcessorUtil +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ConstructorsCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ConstructorsCommandProcessor.html new file mode 100644 index 0000000..6361423 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ConstructorsCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.ConstructorsCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.ConstructorsCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.ConstructorsCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/CreateMBeanCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/CreateMBeanCommandProcessor.html new file mode 100644 index 0000000..8a88a79 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/CreateMBeanCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.CreateMBeanCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.CreateMBeanCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.CreateMBeanCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/DefaultProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/DefaultProcessor.html new file mode 100644 index 0000000..bf98caa --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/DefaultProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.DefaultProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.DefaultProcessor

+
+No usage of mx4j.tools.adaptor.http.DefaultProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/DeleteMBeanCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/DeleteMBeanCommandProcessor.html new file mode 100644 index 0000000..219393b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/DeleteMBeanCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.DeleteMBeanCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.DeleteMBeanCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.DeleteMBeanCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/EmptyCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/EmptyCommandProcessor.html new file mode 100644 index 0000000..ecd16b3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/EmptyCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.EmptyCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.EmptyCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.EmptyCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/GetAttributeCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/GetAttributeCommandProcessor.html new file mode 100644 index 0000000..56d3c92 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/GetAttributeCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.GetAttributeCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.GetAttributeCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.GetAttributeCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptor.html new file mode 100644 index 0000000..59a7e39 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.HttpAdaptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.HttpAdaptor

+
+No usage of mx4j.tools.adaptor.http.HttpAdaptor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptorMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptorMBean.html new file mode 100644 index 0000000..87769c5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptorMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.tools.adaptor.http.HttpAdaptorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.adaptor.http.HttpAdaptorMBean

+
+ + + + + + + + + +
+Packages that use HttpAdaptorMBean
mx4j.tools.adaptor.http  
+  +

+ + + + + +
+Uses of HttpAdaptorMBean in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + +
Classes in mx4j.tools.adaptor.http that implement HttpAdaptorMBean
+ classHttpAdaptor + +
+          HttpAdaptor sets the basic adaptor listening for HTTP requests
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptorMBeanDescription.html new file mode 100644 index 0000000..7f39465 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpAdaptorMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription

+
+No usage of mx4j.tools.adaptor.http.HttpAdaptorMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpCommandProcessor.html new file mode 100644 index 0000000..41963ea --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpCommandProcessor.html @@ -0,0 +1,318 @@ + + + + + + +Uses of Interface mx4j.tools.adaptor.http.HttpCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.adaptor.http.HttpCommandProcessor

+
+ + + + + + + + + +
+Packages that use HttpCommandProcessor
mx4j.tools.adaptor.http  
+  +

+ + + + + +
+Uses of HttpCommandProcessor in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.adaptor.http that implement HttpCommandProcessor
+ classConstructorsCommandProcessor + +
+          ConstructorsCommandProcessor, processes a request to query the available + constructors for a classname
+ classCreateMBeanCommandProcessor + +
+          CreateMBeanCommandProcessor, processes a request for creating and registering + an MBean
+ classDeleteMBeanCommandProcessor + +
+          DeleteMBeanCommandProcessor, processes a request for unregistering an MBean
+ classEmptyCommandProcessor + +
+          EmptyCommandProcessor, returns an empty xml tree
+ classGetAttributeCommandProcessor + +
+          GetAttributeCommandProcessor, processes a request for getting one attribute + of a specific MBean.
+ classHttpCommandProcessorAdaptor + +
+          HttpCommandProcessor sets the structure of a command processor
+ classInvokeOperationCommandProcessor + +
+          InvokeOperationCommandProcessor, processes a request for unregistering an MBean
+ classMBeanCommandProcessor + +
+          MBeanCommandProcessor, processes a request for getting data about a MBean
+ classRelationCommandProcessor + +
+          CreateMBeanCommandProcessor, processes a request for creating and registering + an MBean
+ classServerByDomainCommandProcessor + +
+          ServerByDomainCommandProcessor, processes a request for getting all the + MBeans of the current server grouped by domains
+ classServerCommandProcessor + +
+          ServerCommandProcessor, processes a request for getting all the + MBeans of the current server
+ classSetAttributeCommandProcessor + +
+          SetAttributeCommandProcessor, processes a request for setting one attribute + in one MBean
+ classSetAttributesCommandProcessor + +
+          SetAttributesCommandProcessor, processes a request for setting one or more attributes + in one MBean.
+  +

+ + + + + + + + + +
Methods in mx4j.tools.adaptor.http that return HttpCommandProcessor
+protected  HttpCommandProcessorHttpAdaptor.getProcessor(java.lang.String path) + +
+           
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.adaptor.http with parameters of type HttpCommandProcessor
+ voidHttpAdaptorMBean.addCommandProcessor(java.lang.String path, + HttpCommandProcessor processor) + +
+          Adds a command processor object
+ voidHttpAdaptor.addCommandProcessor(java.lang.String path, + HttpCommandProcessor processor) + +
+          Adds a command processor object
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpCommandProcessorAdaptor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpCommandProcessorAdaptor.html new file mode 100644 index 0000000..f983e5a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpCommandProcessorAdaptor.html @@ -0,0 +1,268 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.HttpCommandProcessorAdaptor

+
+ + + + + + + + + +
+Packages that use HttpCommandProcessorAdaptor
mx4j.tools.adaptor.http  
+  +

+ + + + + +
+Uses of HttpCommandProcessorAdaptor in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of HttpCommandProcessorAdaptor in mx4j.tools.adaptor.http
+ classConstructorsCommandProcessor + +
+          ConstructorsCommandProcessor, processes a request to query the available + constructors for a classname
+ classCreateMBeanCommandProcessor + +
+          CreateMBeanCommandProcessor, processes a request for creating and registering + an MBean
+ classDeleteMBeanCommandProcessor + +
+          DeleteMBeanCommandProcessor, processes a request for unregistering an MBean
+ classEmptyCommandProcessor + +
+          EmptyCommandProcessor, returns an empty xml tree
+ classGetAttributeCommandProcessor + +
+          GetAttributeCommandProcessor, processes a request for getting one attribute + of a specific MBean.
+ classInvokeOperationCommandProcessor + +
+          InvokeOperationCommandProcessor, processes a request for unregistering an MBean
+ classMBeanCommandProcessor + +
+          MBeanCommandProcessor, processes a request for getting data about a MBean
+ classRelationCommandProcessor + +
+          CreateMBeanCommandProcessor, processes a request for creating and registering + an MBean
+ classServerByDomainCommandProcessor + +
+          ServerByDomainCommandProcessor, processes a request for getting all the + MBeans of the current server grouped by domains
+ classServerCommandProcessor + +
+          ServerCommandProcessor, processes a request for getting all the + MBeans of the current server
+ classSetAttributeCommandProcessor + +
+          SetAttributeCommandProcessor, processes a request for setting one attribute + in one MBean
+ classSetAttributesCommandProcessor + +
+          SetAttributesCommandProcessor, processes a request for setting one or more attributes + in one MBean.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpConstants.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpConstants.html new file mode 100644 index 0000000..7897364 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpConstants.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.HttpConstants (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.HttpConstants

+
+No usage of mx4j.tools.adaptor.http.HttpConstants +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpException.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpException.html new file mode 100644 index 0000000..7ca9c98 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpException.html @@ -0,0 +1,244 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.HttpException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.HttpException

+
+ + + + + + + + + +
+Packages that use HttpException
mx4j.tools.adaptor.http  
+  +

+ + + + + +
+Uses of HttpException in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + +
Methods in mx4j.tools.adaptor.http with parameters of type HttpException
+protected  voidXSLTProcessor.processHttpException(HttpInputStream in, + HttpOutputStream out, + HttpException e) + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.adaptor.http that throw HttpException
+ java.lang.StringXSLTProcessor.notFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+           
+ java.lang.StringProcessorMBean.notFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+          Let the processor load internally a not found element.
+protected  voidHttpInputStream.parseVariables() + +
+          Parses the request parameters
+protected  voidHttpInputStream.parseMethod(java.lang.String method) + +
+          Parses the connection method.
+protected  voidHttpInputStream.parseRequest(java.lang.String request) + +
+          Parses the request
+protected  voidHttpInputStream.parseVersion(java.lang.String verStr) + +
+          Parses the request HttpConstants version
+ java.lang.StringDefaultProcessor.notFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpInputStream.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpInputStream.html new file mode 100644 index 0000000..8c3a471 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpInputStream.html @@ -0,0 +1,431 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.HttpInputStream (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.HttpInputStream

+
+ + + + + + + + + +
+Packages that use HttpInputStream
mx4j.tools.adaptor.http  
+  +

+ + + + + +
+Uses of HttpInputStream in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.adaptor.http with parameters of type HttpInputStream
+ voidXSLTProcessor.writeResponse(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+           
+protected  voidXSLTProcessor.processHttpException(HttpInputStream in, + HttpOutputStream out, + HttpException e) + +
+           
+ voidXSLTProcessor.writeError(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+           
+ java.lang.StringXSLTProcessor.notFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentSetAttributesCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentSetAttributeCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentServerCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentServerByDomainCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentRelationCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ voidProcessorMBean.writeResponse(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+          The method will process the result string and produce an output.
+ voidProcessorMBean.writeError(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+          The method will process the result exception and produce output.
+ java.lang.StringProcessorMBean.notFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+          Let the processor load internally a not found element.
+ org.w3c.dom.DocumentMBeanCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentInvokeOperationCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+static booleanHttpUtil.booleanVariableValue(HttpInputStream in, + java.lang.String variable, + boolean defaultValue) + +
+          Returns whether a boolean variable is in the variables.
+abstract  org.w3c.dom.DocumentHttpCommandProcessorAdaptor.executeRequest(HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentHttpCommandProcessor.executeRequest(HttpInputStream in) + +
+          Executes an HTTP request.
+protected  voidHttpAdaptor.postProcess(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+           
+protected  voidHttpAdaptor.findUnknownElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+           
+protected  voidHttpAdaptor.postProcess(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+           
+ org.w3c.dom.DocumentGetAttributeCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentEmptyCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentDeleteMBeanCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ voidDefaultProcessor.writeResponse(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+           
+ voidDefaultProcessor.writeError(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+           
+ java.lang.StringDefaultProcessor.notFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentCreateMBeanCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+ org.w3c.dom.DocumentConstructorsCommandProcessor.executeRequest(HttpInputStream in) + +
+           
+  +

+ + + + + + + + +
Constructors in mx4j.tools.adaptor.http with parameters of type HttpInputStream
HttpOutputStream(java.io.OutputStream out, + HttpInputStream in) + +
+          Creates a new HttpOutputStream with a given OutputStream and an InputStream
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpOutputStream.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpOutputStream.html new file mode 100644 index 0000000..6f900f6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpOutputStream.html @@ -0,0 +1,294 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.HttpOutputStream (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.HttpOutputStream

+
+ + + + + + + + + +
+Packages that use HttpOutputStream
mx4j.tools.adaptor.http  
+  +

+ + + + + +
+Uses of HttpOutputStream in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.adaptor.http with parameters of type HttpOutputStream
+ voidXSLTProcessor.writeResponse(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+           
+protected  voidXSLTProcessor.processHttpException(HttpInputStream in, + HttpOutputStream out, + HttpException e) + +
+           
+ voidXSLTProcessor.writeError(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+           
+ java.lang.StringXSLTProcessor.notFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+           
+ voidProcessorMBean.writeResponse(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+          The method will process the result string and produce an output.
+ voidProcessorMBean.writeError(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+          The method will process the result exception and produce output.
+ java.lang.StringProcessorMBean.notFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+          Let the processor load internally a not found element.
+protected  voidHttpAdaptor.postProcess(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+           
+protected  voidHttpAdaptor.findUnknownElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+           
+protected  voidHttpAdaptor.postProcess(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+           
+ voidDefaultProcessor.writeResponse(HttpOutputStream out, + HttpInputStream in, + org.w3c.dom.Document document) + +
+           
+ voidDefaultProcessor.writeError(HttpOutputStream out, + HttpInputStream in, + java.lang.Exception e) + +
+           
+ java.lang.StringDefaultProcessor.notFoundElement(java.lang.String path, + HttpOutputStream out, + HttpInputStream in) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpUtil.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpUtil.html new file mode 100644 index 0000000..61abc3c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/HttpUtil.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.HttpUtil (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.HttpUtil

+
+No usage of mx4j.tools.adaptor.http.HttpUtil +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/InvokeOperationCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/InvokeOperationCommandProcessor.html new file mode 100644 index 0000000..8026dd0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/InvokeOperationCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.InvokeOperationCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.InvokeOperationCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.InvokeOperationCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/MBeanCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/MBeanCommandProcessor.html new file mode 100644 index 0000000..e5bbf7f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/MBeanCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.MBeanCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.MBeanCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.MBeanCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ProcessorMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ProcessorMBean.html new file mode 100644 index 0000000..b880578 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ProcessorMBean.html @@ -0,0 +1,244 @@ + + + + + + +Uses of Interface mx4j.tools.adaptor.http.ProcessorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.adaptor.http.ProcessorMBean

+
+ + + + + + + + + +
+Packages that use ProcessorMBean
mx4j.tools.adaptor.http  
+  +

+ + + + + +
+Uses of ProcessorMBean in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + +
Subinterfaces of ProcessorMBean in mx4j.tools.adaptor.http
+ interfaceXSLTProcessorMBean + +
+          Management interface for the XSLTProcessor MBean.
+  +

+ + + + + + + + + + + + + +
Classes in mx4j.tools.adaptor.http that implement ProcessorMBean
+ classDefaultProcessor + +
+          DefaultPostProcessor doesn't alter the result, just publising the xml file
+ classXSLTProcessor + +
+          XSLTPostProcessor pass the document through an XSLT transformation
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.adaptor.http that return ProcessorMBean
+ ProcessorMBeanHttpAdaptorMBean.getProcessor() + +
+          Returns the Processor set by HttpAdaptorMBean.setProcessor(mx4j.tools.adaptor.http.ProcessorMBean)
+ ProcessorMBeanHttpAdaptor.getProcessor() + +
+           
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.adaptor.http with parameters of type ProcessorMBean
+ voidHttpAdaptorMBean.setProcessor(ProcessorMBean processor) + +
+          Sets the object which will post process the XML results.
+ voidHttpAdaptor.setProcessor(ProcessorMBean processor) + +
+          Sets the object which will post process the XML results.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ProcessorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ProcessorMBeanDescription.html new file mode 100644 index 0000000..c5094b7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ProcessorMBeanDescription.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.ProcessorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.ProcessorMBeanDescription

+
+ + + + + + + + + +
+Packages that use ProcessorMBeanDescription
mx4j.tools.adaptor.http  
+  +

+ + + + + +
+Uses of ProcessorMBeanDescription in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + +
Subclasses of ProcessorMBeanDescription in mx4j.tools.adaptor.http
+ classXSLTProcessorMBeanDescription + +
+          Management interface descriptions for the XSLTProcessor MBean.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/RelationCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/RelationCommandProcessor.html new file mode 100644 index 0000000..2716827 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/RelationCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.RelationCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.RelationCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.RelationCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ServerByDomainCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ServerByDomainCommandProcessor.html new file mode 100644 index 0000000..779c301 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ServerByDomainCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.ServerByDomainCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.ServerByDomainCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.ServerByDomainCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ServerCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ServerCommandProcessor.html new file mode 100644 index 0000000..bc18e02 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/ServerCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.ServerCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.ServerCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.ServerCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/SetAttributeCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/SetAttributeCommandProcessor.html new file mode 100644 index 0000000..85e8c98 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/SetAttributeCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.SetAttributeCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.SetAttributeCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.SetAttributeCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/SetAttributesCommandProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/SetAttributesCommandProcessor.html new file mode 100644 index 0000000..99c045f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/SetAttributesCommandProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.SetAttributesCommandProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.SetAttributesCommandProcessor

+
+No usage of mx4j.tools.adaptor.http.SetAttributesCommandProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessor.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessor.html new file mode 100644 index 0000000..eb49212 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessor.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.XSLTProcessor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.XSLTProcessor

+
+No usage of mx4j.tools.adaptor.http.XSLTProcessor +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessorMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessorMBean.html new file mode 100644 index 0000000..ce589f7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessorMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.tools.adaptor.http.XSLTProcessorMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.adaptor.http.XSLTProcessorMBean

+
+ + + + + + + + + +
+Packages that use XSLTProcessorMBean
mx4j.tools.adaptor.http  
+  +

+ + + + + +
+Uses of XSLTProcessorMBean in mx4j.tools.adaptor.http
+  +

+ + + + + + + + + +
Classes in mx4j.tools.adaptor.http that implement XSLTProcessorMBean
+ classXSLTProcessor + +
+          XSLTPostProcessor pass the document through an XSLT transformation
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessorMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessorMBeanDescription.html new file mode 100644 index 0000000..4642d4b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/class-use/XSLTProcessorMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription

+
+No usage of mx4j.tools.adaptor.http.XSLTProcessorMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-frame.html new file mode 100644 index 0000000..14578d0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-frame.html @@ -0,0 +1,106 @@ + + + + + + +mx4j.tools.adaptor.http (MX4J API) + + + + + + + + + + + +mx4j.tools.adaptor.http + + + + +
+Interfaces  + +
+HttpAdaptorMBean +
+HttpCommandProcessor +
+ProcessorMBean +
+XSLTProcessorMBean
+ + + + + + +
+Classes  + +
+CommandProcessorUtil +
+ConstructorsCommandProcessor +
+CreateMBeanCommandProcessor +
+DefaultProcessor +
+DeleteMBeanCommandProcessor +
+EmptyCommandProcessor +
+GetAttributeCommandProcessor +
+HttpAdaptor +
+HttpAdaptorMBeanDescription +
+HttpCommandProcessorAdaptor +
+HttpConstants +
+HttpInputStream +
+HttpOutputStream +
+HttpUtil +
+InvokeOperationCommandProcessor +
+MBeanCommandProcessor +
+ProcessorMBeanDescription +
+RelationCommandProcessor +
+ServerByDomainCommandProcessor +
+ServerCommandProcessor +
+SetAttributeCommandProcessor +
+SetAttributesCommandProcessor +
+XSLTProcessor +
+XSLTProcessorMBeanDescription
+ + + + + + +
+Exceptions  + +
+HttpException
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-summary.html new file mode 100644 index 0000000..6d031b5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-summary.html @@ -0,0 +1,288 @@ + + + + + + +mx4j.tools.adaptor.http (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.adaptor.http +

+ + + + + + + + + + + + + + + + + + + + + +
+Interface Summary
HttpAdaptorMBeanManagement interface for the HttpAdaptor MBean.
HttpCommandProcessorHttpCommandProcessor sets the structure of a command processor
ProcessorMBeanProcessor ManagementBean, just defines a generic description
XSLTProcessorMBeanManagement interface for the XSLTProcessor MBean.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
CommandProcessorUtilContains utilities common to CommandProcessor objects
ConstructorsCommandProcessorConstructorsCommandProcessor, processes a request to query the available + constructors for a classname
CreateMBeanCommandProcessorCreateMBeanCommandProcessor, processes a request for creating and registering + an MBean
DefaultProcessorDefaultPostProcessor doesn't alter the result, just publising the xml file
DeleteMBeanCommandProcessorDeleteMBeanCommandProcessor, processes a request for unregistering an MBean
EmptyCommandProcessorEmptyCommandProcessor, returns an empty xml tree
GetAttributeCommandProcessorGetAttributeCommandProcessor, processes a request for getting one attribute + of a specific MBean.
HttpAdaptorHttpAdaptor sets the basic adaptor listening for HTTP requests
HttpAdaptorMBeanDescriptionManagement interface descriptions for the HttpAdaptor MBean.
HttpCommandProcessorAdaptorHttpCommandProcessor sets the structure of a command processor
HttpConstantsDefine constants for the HTTP request processing
HttpInputStreamHttpInputStream processes an HTTP request
HttpOutputStreamHttpAdaptor sets the basic adaptor listening for HTTP requests
HttpUtilUtility methods for the HTTP adaptor
InvokeOperationCommandProcessorInvokeOperationCommandProcessor, processes a request for unregistering an MBean
MBeanCommandProcessorMBeanCommandProcessor, processes a request for getting data about a MBean
ProcessorMBeanDescriptionDescription of the ProcessorMBean interface
RelationCommandProcessorCreateMBeanCommandProcessor, processes a request for creating and registering + an MBean
ServerByDomainCommandProcessorServerByDomainCommandProcessor, processes a request for getting all the + MBeans of the current server grouped by domains
ServerCommandProcessorServerCommandProcessor, processes a request for getting all the + MBeans of the current server
SetAttributeCommandProcessorSetAttributeCommandProcessor, processes a request for setting one attribute + in one MBean
SetAttributesCommandProcessorSetAttributesCommandProcessor, processes a request for setting one or more attributes + in one MBean.
XSLTProcessorXSLTPostProcessor pass the document through an XSLT transformation
XSLTProcessorMBeanDescriptionManagement interface descriptions for the XSLTProcessor MBean.
+  + +

+ + + + + + + + + +
+Exception Summary
HttpExceptionHttpException is emitted when an error parsing an HTTP request appears
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-tree.html new file mode 100644 index 0000000..6938bea --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-tree.html @@ -0,0 +1,182 @@ + + + + + + +mx4j.tools.adaptor.http Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.adaptor.http +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-use.html new file mode 100644 index 0000000..af3b35a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/http/package-use.html @@ -0,0 +1,210 @@ + + + + + + +Uses of Package mx4j.tools.adaptor.http (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.adaptor.http

+
+ + + + + + + + + +
+Packages that use mx4j.tools.adaptor.http
mx4j.tools.adaptor.http  
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.tools.adaptor.http used by mx4j.tools.adaptor.http
HttpAdaptorMBean + +
+          Management interface for the HttpAdaptor MBean.
HttpCommandProcessor + +
+          HttpCommandProcessor sets the structure of a command processor
HttpCommandProcessorAdaptor + +
+          HttpCommandProcessor sets the structure of a command processor
HttpException + +
+          HttpException is emitted when an error parsing an HTTP request appears
HttpInputStream + +
+          HttpInputStream processes an HTTP request
HttpOutputStream + +
+          HttpAdaptor sets the basic adaptor listening for HTTP requests
ProcessorMBean + +
+          Processor ManagementBean, just defines a generic description
ProcessorMBeanDescription + +
+          Description of the ProcessorMBean interface
XSLTProcessorMBean + +
+          Management interface for the XSLTProcessor MBean.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-frame.html new file mode 100644 index 0000000..d82f8cb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-frame.html @@ -0,0 +1,43 @@ + + + + + + +mx4j.tools.adaptor (MX4J API) + + + + + + + + + + + +mx4j.tools.adaptor + + + + +
+Interfaces  + +
+AdaptorServerSocketFactory
+ + + + + + +
+Classes  + +
+PlainAdaptorServerSocketFactory
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-summary.html new file mode 100644 index 0000000..ebf4d3a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-summary.html @@ -0,0 +1,162 @@ + + + + + + +mx4j.tools.adaptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.adaptor +

+ + + + + + + + + +
+Interface Summary
AdaptorServerSocketFactoryThe ServerSocket factory interface.
+  + +

+ + + + + + + + + +
+Class Summary
PlainAdaptorServerSocketFactoryCreates plain ServerSockets.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-tree.html new file mode 100644 index 0000000..32d570d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +mx4j.tools.adaptor Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.adaptor +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-use.html new file mode 100644 index 0000000..d6e9375 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/package-use.html @@ -0,0 +1,200 @@ + + + + + + +Uses of Package mx4j.tools.adaptor (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.adaptor

+
+ + + + + + + + + + + + + + + + + +
+Packages that use mx4j.tools.adaptor
mx4j.tools.adaptor  
mx4j.tools.adaptor.http  
mx4j.tools.adaptor.ssl  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.adaptor used by mx4j.tools.adaptor
AdaptorServerSocketFactory + +
+          The ServerSocket factory interface.
+  +

+ + + + + + + + +
+Classes in mx4j.tools.adaptor used by mx4j.tools.adaptor.http
AdaptorServerSocketFactory + +
+          The ServerSocket factory interface.
+  +

+ + + + + + + + +
+Classes in mx4j.tools.adaptor used by mx4j.tools.adaptor.ssl
AdaptorServerSocketFactory + +
+          The ServerSocket factory interface.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactory.html new file mode 100644 index 0000000..bdea2a5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactory.html @@ -0,0 +1,578 @@ + + + + + + +SSLAdaptorServerSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.ssl +
+Class SSLAdaptorServerSocketFactory

+
+java.lang.Object
+  extended bymx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory
+
+
+
All Implemented Interfaces:
AdaptorServerSocketFactory, SSLAdaptorServerSocketFactoryMBean
+
+
+
+
public class SSLAdaptorServerSocketFactory
extends java.lang.Object
implements SSLAdaptorServerSocketFactoryMBean
+ +

+TODO: Fix this class to avoid hardcoding Sun's provider, since it will not work with IBM's JDK. + This MBean creates SSLServerSocket instances.

+ It can be configured to use a specific keystore and SSL protocol version to create SSLServerSockets + that will use the keystore information to encrypt data.
+

+ A keystore can be created with this command: +

+ keytool -genkey -v -keystore store.key -storepass storepwd -keypass keypwd -dname "CN=Simone Bordet, OU=Project Administrator, O=MX4J, L=Torino, S=TO, C=IT" -validity 365
+ 
+ or with this minimal command (that will prompt you for further information): +
+ keytool -genkey -keystore store.key
+ 
+

+ A keystore may contains more than one entry, but only the first entry will be used + for encryption, no matter which is the alias for that entry. +

+ Following the first example of generation of the keystore, this MBean must be instantiated and then setup by + invoking the following methods: +

+ before createServerSocket(int, int, java.lang.String) is called. +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SSLAdaptorServerSocketFactory() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static voidaddProvider(java.security.Provider provider) + +
+           
+ java.net.ServerSocketcreateServerSocket(int port, + int backlog, + java.lang.String host) + +
+          Returns a SSLServerSocket on the given port.
+ voidsetKeyManagerAlgorithm(java.lang.String algorithm) + +
+          Sets the key manager algorithm, by default is "SunX509".
+ voidsetKeyManagerPassword(java.lang.String password) + +
+          Sets the password to access the key present in the keystore.
+ voidsetKeyStoreName(java.lang.String name) + +
+          Sets the name of the keystore; if the keystore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream.
+ voidsetKeyStorePassword(java.lang.String password) + +
+          Sets the password to access the keystore specified by setKeyStoreName(java.lang.String).
+ voidsetKeyStoreType(java.lang.String keyStoreType) + +
+          Sets the type of the keystore, by default is "JKS".
+ voidsetSSLProtocol(java.lang.String protocol) + +
+          Sets the SSL protocol version, by default is "TLS".
+ voidsetTrustManagerAlgorithm(java.lang.String algorithm) + +
+          Sets the trust manager algorithm, by default is "SunX509".
+ voidsetTrustStoreName(java.lang.String name) + +
+          Sets the name of the truststore; if the truststore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream.
+ voidsetTrustStorePassword(java.lang.String password) + +
+          Sets the password to access the truststore specified by setTrustStoreName(java.lang.String).
+ voidsetTrustStoreType(java.lang.String trustStoreType) + +
+          Sets the type of the truststore, by default is "JKS".
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SSLAdaptorServerSocketFactory

+
+public SSLAdaptorServerSocketFactory()
+
+
+ + + + + + + + +
+Method Detail
+ +

+addProvider

+
+public static void addProvider(java.security.Provider provider)
+
+
+
+
+
+
+
+
+
+ +

+setKeyStoreType

+
+public void setKeyStoreType(java.lang.String keyStoreType)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the type of the keystore, by default is "JKS". +

+

+
Specified by:
setKeyStoreType in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+setTrustStoreType

+
+public void setTrustStoreType(java.lang.String trustStoreType)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the type of the truststore, by default is "JKS". +

+

+
Specified by:
setTrustStoreType in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+setKeyStoreName

+
+public void setKeyStoreName(java.lang.String name)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the name of the keystore; if the keystore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream. +

+

+
Specified by:
setKeyStoreName in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+setTrustStoreName

+
+public void setTrustStoreName(java.lang.String name)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the name of the truststore; if the truststore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream. +

+

+
Specified by:
setTrustStoreName in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+setKeyStorePassword

+
+public void setKeyStorePassword(java.lang.String password)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the password to access the keystore specified by SSLAdaptorServerSocketFactoryMBean.setKeyStoreName(java.lang.String).

+ It correspond to the value of the -storepass option of keytool. +

+

+
Specified by:
setKeyStorePassword in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+setTrustStorePassword

+
+public void setTrustStorePassword(java.lang.String password)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the password to access the truststore specified by SSLAdaptorServerSocketFactoryMBean.setTrustStoreName(java.lang.String).

+ It correspond to the value of the -storepass option of keytool. +

+

+
Specified by:
setTrustStorePassword in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+setKeyManagerAlgorithm

+
+public void setKeyManagerAlgorithm(java.lang.String algorithm)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the key manager algorithm, by default is "SunX509". +

+

+
Specified by:
setKeyManagerAlgorithm in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+setTrustManagerAlgorithm

+
+public void setTrustManagerAlgorithm(java.lang.String algorithm)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the trust manager algorithm, by default is "SunX509". +

+

+
Specified by:
setTrustManagerAlgorithm in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+setKeyManagerPassword

+
+public void setKeyManagerPassword(java.lang.String password)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the password to access the key present in the keystore.

+ It correspond to the value of the -keypass option of keytool; if not specified, the KeyStore password is taken. +

+

+
Specified by:
setKeyManagerPassword in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+setSSLProtocol

+
+public void setSSLProtocol(java.lang.String protocol)
+
+
Description copied from interface: SSLAdaptorServerSocketFactoryMBean
+
Sets the SSL protocol version, by default is "TLS". +

+

+
Specified by:
setSSLProtocol in interface SSLAdaptorServerSocketFactoryMBean
+
+
+
+
+
+
+ +

+createServerSocket

+
+public java.net.ServerSocket createServerSocket(int port,
+                                                int backlog,
+                                                java.lang.String host)
+                                         throws java.io.IOException
+
+
Returns a SSLServerSocket on the given port. +

+

+
Specified by:
createServerSocket in interface AdaptorServerSocketFactory
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactoryMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactoryMBean.html new file mode 100644 index 0000000..de594d2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactoryMBean.html @@ -0,0 +1,463 @@ + + + + + + +SSLAdaptorServerSocketFactoryMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.ssl +
+Interface SSLAdaptorServerSocketFactoryMBean

+
+
All Superinterfaces:
AdaptorServerSocketFactory
+
+
+
All Known Implementing Classes:
SSLAdaptorServerSocketFactory
+
+
+
+
public interface SSLAdaptorServerSocketFactoryMBean
extends AdaptorServerSocketFactory
+ +

+Management interface for the SSL ServerSocket factory +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidsetKeyManagerAlgorithm(java.lang.String algorithm) + +
+          Sets the key manager algorithm, by default is "SunX509".
+ voidsetKeyManagerPassword(java.lang.String password) + +
+          Sets the password to access the key present in the keystore.
+ voidsetKeyStoreName(java.lang.String name) + +
+          Sets the name of the keystore; if the keystore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream.
+ voidsetKeyStorePassword(java.lang.String password) + +
+          Sets the password to access the keystore specified by setKeyStoreName(java.lang.String).
+ voidsetKeyStoreType(java.lang.String keyStoreType) + +
+          Sets the type of the keystore, by default is "JKS".
+ voidsetSSLProtocol(java.lang.String protocol) + +
+          Sets the SSL protocol version, by default is "TLS".
+ voidsetTrustManagerAlgorithm(java.lang.String algorithm) + +
+          Sets the trust manager algorithm, by default is "SunX509".
+ voidsetTrustStoreName(java.lang.String name) + +
+          Sets the name of the truststore; if the truststore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream.
+ voidsetTrustStorePassword(java.lang.String password) + +
+          Sets the password to access the truststore specified by setTrustStoreName(java.lang.String).
+ voidsetTrustStoreType(java.lang.String trustStoreType) + +
+          Sets the type of the truststore, by default is "JKS".
+ + + + + + + +
Methods inherited from interface mx4j.tools.adaptor.AdaptorServerSocketFactory
createServerSocket
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setKeyStoreType

+
+public void setKeyStoreType(java.lang.String keyStoreType)
+
+
Sets the type of the keystore, by default is "JKS". +

+

+
+
+
+
+
+
+
+ +

+setTrustStoreType

+
+public void setTrustStoreType(java.lang.String trustStoreType)
+
+
Sets the type of the truststore, by default is "JKS". +

+

+
+
+
+
+
+
+
+ +

+setKeyStoreName

+
+public void setKeyStoreName(java.lang.String name)
+
+
Sets the name of the keystore; if the keystore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream. +

+

+
+
+
+
+
+
+
+ +

+setTrustStoreName

+
+public void setTrustStoreName(java.lang.String name)
+
+
Sets the name of the truststore; if the truststore is of type JKS, then this is a file name, that will be + resolved by the ClassLoader of this class, via getResourceAsStream. +

+

+
+
+
+
+
+
+
+ +

+setKeyStorePassword

+
+public void setKeyStorePassword(java.lang.String password)
+
+
Sets the password to access the keystore specified by setKeyStoreName(java.lang.String).

+ It correspond to the value of the -storepass option of keytool. +

+

+
+
+
+
+
+
+
+ +

+setTrustStorePassword

+
+public void setTrustStorePassword(java.lang.String password)
+
+
Sets the password to access the truststore specified by setTrustStoreName(java.lang.String).

+ It correspond to the value of the -storepass option of keytool. +

+

+
+
+
+
+
+
+
+ +

+setKeyManagerAlgorithm

+
+public void setKeyManagerAlgorithm(java.lang.String algorithm)
+
+
Sets the key manager algorithm, by default is "SunX509". +

+

+
+
+
+
+
+
+
+ +

+setTrustManagerAlgorithm

+
+public void setTrustManagerAlgorithm(java.lang.String algorithm)
+
+
Sets the trust manager algorithm, by default is "SunX509". +

+

+
+
+
+
+
+
+
+ +

+setKeyManagerPassword

+
+public void setKeyManagerPassword(java.lang.String password)
+
+
Sets the password to access the key present in the keystore.

+ It correspond to the value of the -keypass option of keytool; if not specified, the KeyStore password is taken. +

+

+
+
+
+
+
+
+
+ +

+setSSLProtocol

+
+public void setSSLProtocol(java.lang.String protocol)
+
+
Sets the SSL protocol version, by default is "TLS". +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactoryMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactoryMBeanDescription.html new file mode 100644 index 0000000..9789af8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/SSLAdaptorServerSocketFactoryMBeanDescription.html @@ -0,0 +1,410 @@ + + + + + + +SSLAdaptorServerSocketFactoryMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.adaptor.ssl +
+Class SSLAdaptorServerSocketFactoryMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class SSLAdaptorServerSocketFactoryMBeanDescription
extends MBeanDescriptionAdapter
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SSLAdaptorServerSocketFactoryMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetConstructorDescription(java.lang.reflect.Constructor ctor) + +
+          Should return the description for the given constructor of the MBean.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ java.lang.StringgetOperationParameterDescription(java.lang.reflect.Method method, + int index) + +
+          Should return the description for the operations's parameter for the given operation and parameter index.
+ java.lang.StringgetOperationParameterName(java.lang.reflect.Method method, + int index) + +
+          Should return the name of the operation's parameter for the given operation and parameter index.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorParameterDescription, getConstructorParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SSLAdaptorServerSocketFactoryMBeanDescription

+
+public SSLAdaptorServerSocketFactoryMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorDescription

+
+public java.lang.String getConstructorDescription(java.lang.reflect.Constructor ctor)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the given constructor of the MBean. + For example: "Creates an rmiregistry instance on the specified port" +

+

+
Specified by:
getConstructorDescription in interface MBeanDescription
Overrides:
getConstructorDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
Overrides:
getOperationDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationParameterName

+
+public java.lang.String getOperationParameterName(java.lang.reflect.Method method,
+                                                  int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the operation's parameter for the given operation and parameter index. + For example: "bindName" +

+

+
Specified by:
getOperationParameterName in interface MBeanDescription
Overrides:
getOperationParameterName in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationParameterDescription

+
+public java.lang.String getOperationParameterDescription(java.lang.reflect.Method method,
+                                                         int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the operations's parameter for the given operation and parameter index. + For example: "The name to which the object will be bound to" +

+

+
Specified by:
getOperationParameterDescription in interface MBeanDescription
Overrides:
getOperationParameterDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactory.html new file mode 100644 index 0000000..2efc7de --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory

+
+No usage of mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactoryMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactoryMBean.html new file mode 100644 index 0000000..8d59382 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactoryMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean

+
+ + + + + + + + + +
+Packages that use SSLAdaptorServerSocketFactoryMBean
mx4j.tools.adaptor.ssl  
+  +

+ + + + + +
+Uses of SSLAdaptorServerSocketFactoryMBean in mx4j.tools.adaptor.ssl
+  +

+ + + + + + + + + +
Classes in mx4j.tools.adaptor.ssl that implement SSLAdaptorServerSocketFactoryMBean
+ classSSLAdaptorServerSocketFactory + +
+          TODO: Fix this class to avoid hardcoding Sun's provider, since it will not work with IBM's JDK.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactoryMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactoryMBeanDescription.html new file mode 100644 index 0000000..11b7788 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/class-use/SSLAdaptorServerSocketFactoryMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription

+
+No usage of mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-frame.html new file mode 100644 index 0000000..0b16a07 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-frame.html @@ -0,0 +1,45 @@ + + + + + + +mx4j.tools.adaptor.ssl (MX4J API) + + + + + + + + + + + +mx4j.tools.adaptor.ssl + + + + +
+Interfaces  + +
+SSLAdaptorServerSocketFactoryMBean
+ + + + + + +
+Classes  + +
+SSLAdaptorServerSocketFactory +
+SSLAdaptorServerSocketFactoryMBeanDescription
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-summary.html new file mode 100644 index 0000000..198394b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-summary.html @@ -0,0 +1,166 @@ + + + + + + +mx4j.tools.adaptor.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.adaptor.ssl +

+ + + + + + + + + +
+Interface Summary
SSLAdaptorServerSocketFactoryMBeanManagement interface for the SSL ServerSocket factory
+  + +

+ + + + + + + + + + + + + +
+Class Summary
SSLAdaptorServerSocketFactoryTODO: Fix this class to avoid hardcoding Sun's provider, since it will not work with IBM's JDK.
SSLAdaptorServerSocketFactoryMBeanDescription 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-tree.html new file mode 100644 index 0000000..33c490d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-tree.html @@ -0,0 +1,156 @@ + + + + + + +mx4j.tools.adaptor.ssl Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.adaptor.ssl +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-use.html new file mode 100644 index 0000000..6388983 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/adaptor/ssl/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.tools.adaptor.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.adaptor.ssl

+
+ + + + + + + + + +
+Packages that use mx4j.tools.adaptor.ssl
mx4j.tools.adaptor.ssl  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.adaptor.ssl used by mx4j.tools.adaptor.ssl
SSLAdaptorServerSocketFactoryMBean + +
+          Management interface for the SSL ServerSocket factory
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.Node.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.Node.html new file mode 100644 index 0000000..0e99fd8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.Node.html @@ -0,0 +1,338 @@ + + + + + + +ConfigurationBuilder.Node (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Interface ConfigurationBuilder.Node

+
+
All Known Implementing Classes:
DefaultConfigurationBuilder.AbstractNode
+
+
+
Enclosing interface:
ConfigurationBuilder
+
+
+
+
public static interface ConfigurationBuilder.Node
+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddChild(ConfigurationBuilder.Node child) + +
+           
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ java.util.ListgetChildren() + +
+           
+ ConfigurationBuilder.NodegetParent() + +
+           
+ voidsetAttributes(org.w3c.dom.NamedNodeMap attributes) + +
+           
+ voidsetParent(ConfigurationBuilder.Node parent) + +
+           
+ voidsetText(java.lang.String text) + +
+           
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setAttributes

+
+public void setAttributes(org.w3c.dom.NamedNodeMap attributes)
+                   throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+
+ +

+setText

+
+public void setText(java.lang.String text)
+
+
+
+
+
+
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+
+ +

+getParent

+
+public ConfigurationBuilder.Node getParent()
+
+
+
+
+
+
+ +

+setParent

+
+public void setParent(ConfigurationBuilder.Node parent)
+
+
+
+
+
+
+ +

+getChildren

+
+public java.util.List getChildren()
+
+
+
+
+
+
+ +

+addChild

+
+public void addChild(ConfigurationBuilder.Node child)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.ObjectsHolder.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.ObjectsHolder.html new file mode 100644 index 0000000..377a62d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.ObjectsHolder.html @@ -0,0 +1,258 @@ + + + + + + +ConfigurationBuilder.ObjectsHolder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Interface ConfigurationBuilder.ObjectsHolder

+
+
All Known Implementing Classes:
DefaultConfigurationBuilder.Configuration
+
+
+
Enclosing interface:
ConfigurationBuilder
+
+
+
+
public static interface ConfigurationBuilder.ObjectsHolder
+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleancontainsKey(java.lang.String key) + +
+           
+ java.lang.ObjectgetObject(java.lang.String key) + +
+           
+ java.lang.ObjectputObject(java.lang.String key, + java.lang.Object value) + +
+           
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getObject

+
+public java.lang.Object getObject(java.lang.String key)
+
+
+
+
+
+
+ +

+putObject

+
+public java.lang.Object putObject(java.lang.String key,
+                                  java.lang.Object value)
+
+
+
+
+
+
+ +

+containsKey

+
+public boolean containsKey(java.lang.String key)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.html new file mode 100644 index 0000000..078bc53 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationBuilder.html @@ -0,0 +1,245 @@ + + + + + + +ConfigurationBuilder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Interface ConfigurationBuilder

+
+
All Known Implementing Classes:
DefaultConfigurationBuilder
+
+
+
+
public interface ConfigurationBuilder
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + +
+Nested Class Summary
+static interfaceConfigurationBuilder.Node + +
+           
+static interfaceConfigurationBuilder.ObjectsHolder + +
+           
+  + + + + + + + + + + + + + + + + + +
+Method Summary
+ ConfigurationBuilder.NodecreateConfigurationNode(org.w3c.dom.Element node) + +
+           
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+createConfigurationNode

+
+public ConfigurationBuilder.Node createConfigurationNode(org.w3c.dom.Element node)
+                                                  throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationException.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationException.html new file mode 100644 index 0000000..7d36252 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationException.html @@ -0,0 +1,371 @@ + + + + + + +ConfigurationException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class ConfigurationException

+
+java.lang.Object
+  extended byjava.lang.Throwable
+      extended byjava.lang.Exception
+          extended bymx4j.tools.config.ConfigurationException
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class ConfigurationException
extends java.lang.Exception
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Constructor Summary
ConfigurationException() + +
+           
ConfigurationException(java.lang.String message) + +
+           
ConfigurationException(java.lang.String message, + java.lang.Throwable cause) + +
+           
ConfigurationException(java.lang.Throwable cause) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.ThrowablegetCause() + +
+           
+ voidprintStackTrace() + +
+           
+ voidprintStackTrace(java.io.PrintStream stream) + +
+           
+ voidprintStackTrace(java.io.PrintWriter writer) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, initCause, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ConfigurationException

+
+public ConfigurationException()
+
+
+
+ +

+ConfigurationException

+
+public ConfigurationException(java.lang.String message)
+
+
+
+ +

+ConfigurationException

+
+public ConfigurationException(java.lang.Throwable cause)
+
+
+
+ +

+ConfigurationException

+
+public ConfigurationException(java.lang.String message,
+                              java.lang.Throwable cause)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getCause

+
+public java.lang.Throwable getCause()
+
+
+
+
+
+
+ +

+printStackTrace

+
+public void printStackTrace()
+
+
+
+
+
+
+ +

+printStackTrace

+
+public void printStackTrace(java.io.PrintStream stream)
+
+
+
+
+
+
+ +

+printStackTrace

+
+public void printStackTrace(java.io.PrintWriter writer)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationLoader.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationLoader.html new file mode 100644 index 0000000..7755f72 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationLoader.html @@ -0,0 +1,430 @@ + + + + + + +ConfigurationLoader (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class ConfigurationLoader

+
+java.lang.Object
+  extended bymx4j.tools.config.ConfigurationLoader
+
+
+
All Implemented Interfaces:
ConfigurationLoaderMBean, javax.management.MBeanRegistration
+
+
+
+
public class ConfigurationLoader
extends java.lang.Object
implements ConfigurationLoaderMBean, javax.management.MBeanRegistration
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Constructor Summary
ConfigurationLoader() + +
+           
ConfigurationLoader(ConfigurationBuilder builder) + +
+           
ConfigurationLoader(javax.management.MBeanServer server) + +
+           
ConfigurationLoader(javax.management.MBeanServer server, + ConfigurationBuilder builder) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidpostDeregister() + +
+           
+ voidpostRegister(java.lang.Boolean registered) + +
+           
+ voidpreDeregister() + +
+           
+ javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, + javax.management.ObjectName name) + +
+           
+ voidshutdown() + +
+           
+ voidstartup(java.io.Reader source) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ConfigurationLoader

+
+public ConfigurationLoader()
+
+
+
+ +

+ConfigurationLoader

+
+public ConfigurationLoader(ConfigurationBuilder builder)
+
+
+
+ +

+ConfigurationLoader

+
+public ConfigurationLoader(javax.management.MBeanServer server)
+
+
+
+ +

+ConfigurationLoader

+
+public ConfigurationLoader(javax.management.MBeanServer server,
+                           ConfigurationBuilder builder)
+
+
+ + + + + + + + +
+Method Detail
+ +

+preRegister

+
+public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
+                                               javax.management.ObjectName name)
+                                        throws java.lang.Exception
+
+
+
Specified by:
preRegister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postRegister

+
+public void postRegister(java.lang.Boolean registered)
+
+
+
Specified by:
postRegister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+preDeregister

+
+public void preDeregister()
+                   throws java.lang.Exception
+
+
+
Specified by:
preDeregister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postDeregister

+
+public void postDeregister()
+
+
+
Specified by:
postDeregister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+startup

+
+public void startup(java.io.Reader source)
+             throws ConfigurationException
+
+
+
Specified by:
startup in interface ConfigurationLoaderMBean
+
+
+ +
Throws: +
ConfigurationException
+
+
+
+ +

+shutdown

+
+public void shutdown()
+              throws ConfigurationException
+
+
+
Specified by:
shutdown in interface ConfigurationLoaderMBean
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationLoaderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationLoaderMBean.html new file mode 100644 index 0000000..f24f875 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/ConfigurationLoaderMBean.html @@ -0,0 +1,244 @@ + + + + + + +ConfigurationLoaderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Interface ConfigurationLoaderMBean

+
+
All Known Implementing Classes:
ConfigurationLoader
+
+
+
+
public interface ConfigurationLoaderMBean
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidshutdown() + +
+           
+ voidstartup(java.io.Reader reader) + +
+           
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+startup

+
+public void startup(java.io.Reader reader)
+             throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+
+ +

+shutdown

+
+public void shutdown()
+              throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.AbstractNode.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.AbstractNode.html new file mode 100644 index 0000000..d3bd1d7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.AbstractNode.html @@ -0,0 +1,408 @@ + + + + + + +DefaultConfigurationBuilder.AbstractNode (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.AbstractNode

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Direct Known Subclasses:
DefaultConfigurationBuilder.Arg, DefaultConfigurationBuilder.Call, DefaultConfigurationBuilder.Configuration, DefaultConfigurationBuilder.Create, DefaultConfigurationBuilder.New, DefaultConfigurationBuilder.Object, DefaultConfigurationBuilder.Register, DefaultConfigurationBuilder.Shutdown, DefaultConfigurationBuilder.Startup, DefaultConfigurationBuilder.Unregister
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public abstract static class DefaultConfigurationBuilder.AbstractNode
extends java.lang.Object
implements ConfigurationBuilder.Node
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.AbstractNode() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddChild(ConfigurationBuilder.Node child) + +
+           
+ java.util.ListgetChildren() + +
+           
+ ConfigurationBuilder.NodegetParent() + +
+           
+protected  java.lang.StringgetText() + +
+           
+ voidsetAttributes(org.w3c.dom.NamedNodeMap attributes) + +
+           
+ voidsetParent(ConfigurationBuilder.Node parent) + +
+           
+ voidsetText(java.lang.String text) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.tools.config.ConfigurationBuilder.Node
configure
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.AbstractNode

+
+public DefaultConfigurationBuilder.AbstractNode()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setText

+
+public void setText(java.lang.String text)
+
+
+
Specified by:
setText in interface ConfigurationBuilder.Node
+
+
+
+
+
+
+ +

+setParent

+
+public void setParent(ConfigurationBuilder.Node parent)
+
+
+
Specified by:
setParent in interface ConfigurationBuilder.Node
+
+
+
+
+
+
+ +

+addChild

+
+public void addChild(ConfigurationBuilder.Node child)
+
+
+
Specified by:
addChild in interface ConfigurationBuilder.Node
+
+
+
+
+
+
+ +

+getText

+
+protected java.lang.String getText()
+
+
+
+
+
+
+
+
+
+ +

+getParent

+
+public ConfigurationBuilder.Node getParent()
+
+
+
Specified by:
getParent in interface ConfigurationBuilder.Node
+
+
+
+
+
+
+ +

+getChildren

+
+public java.util.List getChildren()
+
+
+
Specified by:
getChildren in interface ConfigurationBuilder.Node
+
+
+
+
+
+
+ +

+setAttributes

+
+public void setAttributes(org.w3c.dom.NamedNodeMap attributes)
+                   throws ConfigurationException
+
+
+
Specified by:
setAttributes in interface ConfigurationBuilder.Node
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Arg.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Arg.html new file mode 100644 index 0000000..9de95ff --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Arg.html @@ -0,0 +1,331 @@ + + + + + + +DefaultConfigurationBuilder.Arg (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.Arg

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.Arg
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.Arg
extends DefaultConfigurationBuilder.AbstractNode
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.Arg() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ java.lang.ClassgetJavaType() + +
+           
+ voidsetRefobjectid(java.lang.String refobjectid) + +
+           
+ voidsetType(java.lang.String type) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.Arg

+
+public DefaultConfigurationBuilder.Arg()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setType

+
+public void setType(java.lang.String type)
+
+
+
+
+
+
+ +

+setRefobjectid

+
+public void setRefobjectid(java.lang.String refobjectid)
+
+
+
+
+
+
+ +

+getJavaType

+
+public java.lang.Class getJavaType()
+                            throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Call.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Call.html new file mode 100644 index 0000000..72345cb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Call.html @@ -0,0 +1,388 @@ + + + + + + +DefaultConfigurationBuilder.Call (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.Call

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.Call
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.Call
extends DefaultConfigurationBuilder.AbstractNode
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.Call() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ voidsetAttribute(java.lang.String attribute) + +
+           
+ voidsetClassname(java.lang.String classname) + +
+           
+ voidsetMethod(java.lang.String method) + +
+           
+ voidsetObjectname(java.lang.String name) + +
+           
+ voidsetOperation(java.lang.String operation) + +
+           
+ voidsetRefobjectid(java.lang.String refid) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.Call

+
+public DefaultConfigurationBuilder.Call()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setClassname

+
+public void setClassname(java.lang.String classname)
+
+
+
+
+
+
+ +

+setObjectname

+
+public void setObjectname(java.lang.String name)
+                   throws javax.management.MalformedObjectNameException
+
+
+ +
Throws: +
javax.management.MalformedObjectNameException
+
+
+
+ +

+setRefobjectid

+
+public void setRefobjectid(java.lang.String refid)
+
+
+
+
+
+
+ +

+setMethod

+
+public void setMethod(java.lang.String method)
+
+
+
+
+
+
+ +

+setOperation

+
+public void setOperation(java.lang.String operation)
+
+
+
+
+
+
+ +

+setAttribute

+
+public void setAttribute(java.lang.String attribute)
+
+
+
+
+
+
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Configuration.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Configuration.html new file mode 100644 index 0000000..451c240 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Configuration.html @@ -0,0 +1,386 @@ + + + + + + +DefaultConfigurationBuilder.Configuration (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.Configuration

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.Configuration
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node, ConfigurationBuilder.ObjectsHolder, java.lang.Runnable
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.Configuration
extends DefaultConfigurationBuilder.AbstractNode
implements ConfigurationBuilder.ObjectsHolder, java.lang.Runnable
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.Configuration() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ booleancontainsKey(java.lang.String key) + +
+           
+ java.lang.ObjectgetObject(java.lang.String key) + +
+           
+ java.lang.ObjectputObject(java.lang.String key, + java.lang.Object value) + +
+           
+ voidrun() + +
+           
+ voidsetPort(java.lang.String portString) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.Configuration

+
+public DefaultConfigurationBuilder.Configuration()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setPort

+
+public void setPort(java.lang.String portString)
+
+
+
+
+
+
+
+
+
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+
Specified by:
configure in interface ConfigurationBuilder.Node
+
+
+ +
Throws: +
ConfigurationException
+
+
+
+ +

+run

+
+public void run()
+
+
+
Specified by:
run in interface java.lang.Runnable
+
+
+
+
+
+
+ +

+getObject

+
+public java.lang.Object getObject(java.lang.String key)
+
+
+
Specified by:
getObject in interface ConfigurationBuilder.ObjectsHolder
+
+
+
+
+
+
+ +

+putObject

+
+public java.lang.Object putObject(java.lang.String key,
+                                  java.lang.Object value)
+
+
+
Specified by:
putObject in interface ConfigurationBuilder.ObjectsHolder
+
+
+
+
+
+
+ +

+containsKey

+
+public boolean containsKey(java.lang.String key)
+
+
+
Specified by:
containsKey in interface ConfigurationBuilder.ObjectsHolder
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Create.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Create.html new file mode 100644 index 0000000..fe1c812 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Create.html @@ -0,0 +1,334 @@ + + + + + + +DefaultConfigurationBuilder.Create (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.Create

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.Create
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.Create
extends DefaultConfigurationBuilder.AbstractNode
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.Create() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ voidsetClassname(java.lang.String classname) + +
+           
+ voidsetLoadername(java.lang.String name) + +
+           
+ voidsetObjectname(java.lang.String name) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.Create

+
+public DefaultConfigurationBuilder.Create()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setClassname

+
+public void setClassname(java.lang.String classname)
+
+
+
+
+
+
+ +

+setObjectname

+
+public void setObjectname(java.lang.String name)
+                   throws javax.management.MalformedObjectNameException
+
+
+ +
Throws: +
javax.management.MalformedObjectNameException
+
+
+
+ +

+setLoadername

+
+public void setLoadername(java.lang.String name)
+                   throws javax.management.MalformedObjectNameException
+
+
+ +
Throws: +
javax.management.MalformedObjectNameException
+
+
+
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.New.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.New.html new file mode 100644 index 0000000..34cbc9f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.New.html @@ -0,0 +1,290 @@ + + + + + + +DefaultConfigurationBuilder.New (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.New

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.New
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.New
extends DefaultConfigurationBuilder.AbstractNode
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.New() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ voidsetClassname(java.lang.String classname) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.New

+
+public DefaultConfigurationBuilder.New()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setClassname

+
+public void setClassname(java.lang.String classname)
+
+
+
+
+
+
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Object.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Object.html new file mode 100644 index 0000000..a0fe9f7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Object.html @@ -0,0 +1,309 @@ + + + + + + +DefaultConfigurationBuilder.Object (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.Object

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.Object
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.Object
extends DefaultConfigurationBuilder.AbstractNode
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.Object() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ java.lang.StringgetObjectid() + +
+           
+ voidsetObjectid(java.lang.String id) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.Object

+
+public DefaultConfigurationBuilder.Object()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setObjectid

+
+public void setObjectid(java.lang.String id)
+
+
+
+
+
+
+ +

+getObjectid

+
+public java.lang.String getObjectid()
+
+
+
+
+
+
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Register.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Register.html new file mode 100644 index 0000000..6a4d8bc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Register.html @@ -0,0 +1,293 @@ + + + + + + +DefaultConfigurationBuilder.Register (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.Register

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.Register
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.Register
extends DefaultConfigurationBuilder.AbstractNode
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.Register() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ voidsetObjectname(java.lang.String name) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.Register

+
+public DefaultConfigurationBuilder.Register()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setObjectname

+
+public void setObjectname(java.lang.String name)
+                   throws javax.management.MalformedObjectNameException
+
+
+ +
Throws: +
javax.management.MalformedObjectNameException
+
+
+
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Shutdown.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Shutdown.html new file mode 100644 index 0000000..a78a71f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Shutdown.html @@ -0,0 +1,271 @@ + + + + + + +DefaultConfigurationBuilder.Shutdown (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.Shutdown

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.Shutdown
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.Shutdown
extends DefaultConfigurationBuilder.AbstractNode
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.Shutdown() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.Shutdown

+
+public DefaultConfigurationBuilder.Shutdown()
+
+
+ + + + + + + + +
+Method Detail
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Startup.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Startup.html new file mode 100644 index 0000000..fd38d33 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Startup.html @@ -0,0 +1,271 @@ + + + + + + +DefaultConfigurationBuilder.Startup (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.Startup

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.Startup
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.Startup
extends DefaultConfigurationBuilder.AbstractNode
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.Startup() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.Startup

+
+public DefaultConfigurationBuilder.Startup()
+
+
+ + + + + + + + +
+Method Detail
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Unregister.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Unregister.html new file mode 100644 index 0000000..6957466 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.Unregister.html @@ -0,0 +1,293 @@ + + + + + + +DefaultConfigurationBuilder.Unregister (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder.Unregister

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
+      extended bymx4j.tools.config.DefaultConfigurationBuilder.Unregister
+
+
+
All Implemented Interfaces:
ConfigurationBuilder.Node
+
+
+
Enclosing class:
DefaultConfigurationBuilder
+
+
+
+
public static class DefaultConfigurationBuilder.Unregister
extends DefaultConfigurationBuilder.AbstractNode
+ +

+


+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder.Unregister() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectconfigure(javax.management.MBeanServer server) + +
+           
+ voidsetObjectname(java.lang.String name) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode
addChild, getChildren, getParent, getText, setAttributes, setParent, setText
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder.Unregister

+
+public DefaultConfigurationBuilder.Unregister()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setObjectname

+
+public void setObjectname(java.lang.String name)
+                   throws javax.management.MalformedObjectNameException
+
+
+ +
Throws: +
javax.management.MalformedObjectNameException
+
+
+
+ +

+configure

+
+public java.lang.Object configure(javax.management.MBeanServer server)
+                           throws ConfigurationException
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.html new file mode 100644 index 0000000..bf621f7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/DefaultConfigurationBuilder.html @@ -0,0 +1,418 @@ + + + + + + +DefaultConfigurationBuilder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.config +
+Class DefaultConfigurationBuilder

+
+java.lang.Object
+  extended bymx4j.tools.config.DefaultConfigurationBuilder
+
+
+
All Implemented Interfaces:
ConfigurationBuilder
+
+
+
+
public class DefaultConfigurationBuilder
extends java.lang.Object
implements ConfigurationBuilder
+ +

+

+
Version:
+
$Revision: 1.8 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Nested Class Summary
+static classDefaultConfigurationBuilder.AbstractNode + +
+           
+static classDefaultConfigurationBuilder.Arg + +
+           
+static classDefaultConfigurationBuilder.Call + +
+           
+static classDefaultConfigurationBuilder.Configuration + +
+           
+static classDefaultConfigurationBuilder.Create + +
+           
+static classDefaultConfigurationBuilder.New + +
+           
+static classDefaultConfigurationBuilder.Object + +
+           
+static classDefaultConfigurationBuilder.Register + +
+           
+static classDefaultConfigurationBuilder.Shutdown + +
+           
+static classDefaultConfigurationBuilder.Startup + +
+           
+static classDefaultConfigurationBuilder.Unregister + +
+           
+ + + + + + + +
Nested classes inherited from class mx4j.tools.config.ConfigurationBuilder
ConfigurationBuilder.Node, ConfigurationBuilder.ObjectsHolder
+  + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringRESTART_COMMAND + +
+           
+static java.lang.StringSHUTDOWN_COMMAND + +
+           
+  + + + + + + + + + + +
+Constructor Summary
DefaultConfigurationBuilder() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ ConfigurationBuilder.NodecreateConfigurationNode(org.w3c.dom.Element node) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+SHUTDOWN_COMMAND

+
+public static final java.lang.String SHUTDOWN_COMMAND
+
+
+
See Also:
Constant Field Values
+
+
+ +

+RESTART_COMMAND

+
+public static final java.lang.String RESTART_COMMAND
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+DefaultConfigurationBuilder

+
+public DefaultConfigurationBuilder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+createConfigurationNode

+
+public ConfigurationBuilder.Node createConfigurationNode(org.w3c.dom.Element node)
+                                                  throws ConfigurationException
+
+
+
Specified by:
createConfigurationNode in interface ConfigurationBuilder
+
+
+ +
Throws: +
ConfigurationException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.Node.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.Node.html new file mode 100644 index 0000000..ce5ed9e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.Node.html @@ -0,0 +1,332 @@ + + + + + + +Uses of Interface mx4j.tools.config.ConfigurationBuilder.Node (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.config.ConfigurationBuilder.Node

+
+ + + + + + + + + +
+Packages that use ConfigurationBuilder.Node
mx4j.tools.config  
+  +

+ + + + + +
+Uses of ConfigurationBuilder.Node in mx4j.tools.config
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.config that implement ConfigurationBuilder.Node
+static classDefaultConfigurationBuilder.AbstractNode + +
+           
+static classDefaultConfigurationBuilder.Arg + +
+           
+static classDefaultConfigurationBuilder.Call + +
+           
+static classDefaultConfigurationBuilder.Configuration + +
+           
+static classDefaultConfigurationBuilder.Create + +
+           
+static classDefaultConfigurationBuilder.New + +
+           
+static classDefaultConfigurationBuilder.Object + +
+           
+static classDefaultConfigurationBuilder.Register + +
+           
+static classDefaultConfigurationBuilder.Shutdown + +
+           
+static classDefaultConfigurationBuilder.Startup + +
+           
+static classDefaultConfigurationBuilder.Unregister + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.config that return ConfigurationBuilder.Node
+ ConfigurationBuilder.NodeDefaultConfigurationBuilder.createConfigurationNode(org.w3c.dom.Element node) + +
+           
+ ConfigurationBuilder.NodeDefaultConfigurationBuilder.AbstractNode.getParent() + +
+           
+ ConfigurationBuilder.NodeConfigurationBuilder.createConfigurationNode(org.w3c.dom.Element node) + +
+           
+ ConfigurationBuilder.NodeConfigurationBuilder.Node.getParent() + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.config with parameters of type ConfigurationBuilder.Node
+ voidDefaultConfigurationBuilder.AbstractNode.setParent(ConfigurationBuilder.Node parent) + +
+           
+ voidDefaultConfigurationBuilder.AbstractNode.addChild(ConfigurationBuilder.Node child) + +
+           
+ voidConfigurationBuilder.Node.setParent(ConfigurationBuilder.Node parent) + +
+           
+ voidConfigurationBuilder.Node.addChild(ConfigurationBuilder.Node child) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.ObjectsHolder.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.ObjectsHolder.html new file mode 100644 index 0000000..09c3488 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.ObjectsHolder.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.tools.config.ConfigurationBuilder.ObjectsHolder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.config.ConfigurationBuilder.ObjectsHolder

+
+ + + + + + + + + +
+Packages that use ConfigurationBuilder.ObjectsHolder
mx4j.tools.config  
+  +

+ + + + + +
+Uses of ConfigurationBuilder.ObjectsHolder in mx4j.tools.config
+  +

+ + + + + + + + + +
Classes in mx4j.tools.config that implement ConfigurationBuilder.ObjectsHolder
+static classDefaultConfigurationBuilder.Configuration + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.html new file mode 100644 index 0000000..f32847a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationBuilder.html @@ -0,0 +1,193 @@ + + + + + + +Uses of Interface mx4j.tools.config.ConfigurationBuilder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.config.ConfigurationBuilder

+
+ + + + + + + + + +
+Packages that use ConfigurationBuilder
mx4j.tools.config  
+  +

+ + + + + +
+Uses of ConfigurationBuilder in mx4j.tools.config
+  +

+ + + + + + + + + +
Classes in mx4j.tools.config that implement ConfigurationBuilder
+ classDefaultConfigurationBuilder + +
+           
+  +

+ + + + + + + + + + + +
Constructors in mx4j.tools.config with parameters of type ConfigurationBuilder
ConfigurationLoader(ConfigurationBuilder builder) + +
+           
ConfigurationLoader(javax.management.MBeanServer server, + ConfigurationBuilder builder) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationException.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationException.html new file mode 100644 index 0000000..50d4018 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationException.html @@ -0,0 +1,324 @@ + + + + + + +Uses of Class mx4j.tools.config.ConfigurationException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.ConfigurationException

+
+ + + + + + + + + +
+Packages that use ConfigurationException
mx4j.tools.config  
+  +

+ + + + + +
+Uses of ConfigurationException in mx4j.tools.config
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.config that throw ConfigurationException
+ ConfigurationBuilder.NodeDefaultConfigurationBuilder.createConfigurationNode(org.w3c.dom.Element node) + +
+           
+ voidDefaultConfigurationBuilder.AbstractNode.setAttributes(org.w3c.dom.NamedNodeMap attributes) + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.Configuration.configure(javax.management.MBeanServer server) + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.Startup.configure(javax.management.MBeanServer server) + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.Shutdown.configure(javax.management.MBeanServer server) + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.Object.configure(javax.management.MBeanServer server) + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.New.configure(javax.management.MBeanServer server) + +
+           
+ java.lang.ClassDefaultConfigurationBuilder.Arg.getJavaType() + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.Arg.configure(javax.management.MBeanServer server) + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.Register.configure(javax.management.MBeanServer server) + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.Unregister.configure(javax.management.MBeanServer server) + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.Create.configure(javax.management.MBeanServer server) + +
+           
+ java.lang.ObjectDefaultConfigurationBuilder.Call.configure(javax.management.MBeanServer server) + +
+           
+ voidConfigurationLoaderMBean.startup(java.io.Reader reader) + +
+           
+ voidConfigurationLoaderMBean.shutdown() + +
+           
+ voidConfigurationLoader.startup(java.io.Reader source) + +
+           
+ voidConfigurationLoader.shutdown() + +
+           
+ ConfigurationBuilder.NodeConfigurationBuilder.createConfigurationNode(org.w3c.dom.Element node) + +
+           
+ voidConfigurationBuilder.Node.setAttributes(org.w3c.dom.NamedNodeMap attributes) + +
+           
+ java.lang.ObjectConfigurationBuilder.Node.configure(javax.management.MBeanServer server) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationLoader.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationLoader.html new file mode 100644 index 0000000..f4ef83c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationLoader.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.ConfigurationLoader (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.ConfigurationLoader

+
+No usage of mx4j.tools.config.ConfigurationLoader +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationLoaderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationLoaderMBean.html new file mode 100644 index 0000000..6f30a9c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/ConfigurationLoaderMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.tools.config.ConfigurationLoaderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.config.ConfigurationLoaderMBean

+
+ + + + + + + + + +
+Packages that use ConfigurationLoaderMBean
mx4j.tools.config  
+  +

+ + + + + +
+Uses of ConfigurationLoaderMBean in mx4j.tools.config
+  +

+ + + + + + + + + +
Classes in mx4j.tools.config that implement ConfigurationLoaderMBean
+ classConfigurationLoader + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.AbstractNode.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.AbstractNode.html new file mode 100644 index 0000000..708d6f1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.AbstractNode.html @@ -0,0 +1,244 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode

+
+ + + + + + + + + +
+Packages that use DefaultConfigurationBuilder.AbstractNode
mx4j.tools.config  
+  +

+ + + + + +
+Uses of DefaultConfigurationBuilder.AbstractNode in mx4j.tools.config
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of DefaultConfigurationBuilder.AbstractNode in mx4j.tools.config
+static classDefaultConfigurationBuilder.Arg + +
+           
+static classDefaultConfigurationBuilder.Call + +
+           
+static classDefaultConfigurationBuilder.Configuration + +
+           
+static classDefaultConfigurationBuilder.Create + +
+           
+static classDefaultConfigurationBuilder.New + +
+           
+static classDefaultConfigurationBuilder.Object + +
+           
+static classDefaultConfigurationBuilder.Register + +
+           
+static classDefaultConfigurationBuilder.Shutdown + +
+           
+static classDefaultConfigurationBuilder.Startup + +
+           
+static classDefaultConfigurationBuilder.Unregister + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Arg.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Arg.html new file mode 100644 index 0000000..7878e83 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Arg.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.Arg (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.Arg

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.Arg +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Call.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Call.html new file mode 100644 index 0000000..be80913 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Call.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.Call (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.Call

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.Call +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Configuration.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Configuration.html new file mode 100644 index 0000000..11340ba --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Configuration.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.Configuration (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.Configuration

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.Configuration +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Create.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Create.html new file mode 100644 index 0000000..277c12d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Create.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.Create (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.Create

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.Create +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.New.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.New.html new file mode 100644 index 0000000..eb53151 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.New.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.New (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.New

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.New +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Object.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Object.html new file mode 100644 index 0000000..e3e736f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Object.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.Object (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.Object

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.Object +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Register.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Register.html new file mode 100644 index 0000000..7d17f0a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Register.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.Register (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.Register

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.Register +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Shutdown.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Shutdown.html new file mode 100644 index 0000000..02db46e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Shutdown.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.Shutdown (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.Shutdown

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.Shutdown +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Startup.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Startup.html new file mode 100644 index 0000000..e2a9736 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Startup.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.Startup (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.Startup

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.Startup +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Unregister.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Unregister.html new file mode 100644 index 0000000..d32a38c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.Unregister.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder.Unregister (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder.Unregister

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder.Unregister +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.html new file mode 100644 index 0000000..f7dd833 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/class-use/DefaultConfigurationBuilder.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.config.DefaultConfigurationBuilder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.config.DefaultConfigurationBuilder

+
+No usage of mx4j.tools.config.DefaultConfigurationBuilder +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/package-frame.html new file mode 100644 index 0000000..bf19762 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/package-frame.html @@ -0,0 +1,84 @@ + + + + + + +mx4j.tools.config (MX4J API) + + + + + + + + + + + +mx4j.tools.config + + + + +
+Interfaces  + +
+ConfigurationBuilder +
+ConfigurationBuilder.Node +
+ConfigurationBuilder.ObjectsHolder +
+ConfigurationLoaderMBean
+ + + + + + +
+Classes  + +
+ConfigurationLoader +
+DefaultConfigurationBuilder +
+DefaultConfigurationBuilder.AbstractNode +
+DefaultConfigurationBuilder.Arg +
+DefaultConfigurationBuilder.Call +
+DefaultConfigurationBuilder.Configuration +
+DefaultConfigurationBuilder.Create +
+DefaultConfigurationBuilder.New +
+DefaultConfigurationBuilder.Object +
+DefaultConfigurationBuilder.Register +
+DefaultConfigurationBuilder.Shutdown +
+DefaultConfigurationBuilder.Startup +
+DefaultConfigurationBuilder.Unregister
+ + + + + + +
+Exceptions  + +
+ConfigurationException
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/package-summary.html new file mode 100644 index 0000000..5d70892 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/package-summary.html @@ -0,0 +1,236 @@ + + + + + + +mx4j.tools.config (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.config +

+ + + + + + + + + + + + + + + + + + + + + +
+Interface Summary
ConfigurationBuilder 
ConfigurationBuilder.Node 
ConfigurationBuilder.ObjectsHolder 
ConfigurationLoaderMBean 
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
ConfigurationLoader 
DefaultConfigurationBuilder 
DefaultConfigurationBuilder.AbstractNode 
DefaultConfigurationBuilder.Arg 
DefaultConfigurationBuilder.Call 
DefaultConfigurationBuilder.Configuration 
DefaultConfigurationBuilder.Create 
DefaultConfigurationBuilder.New 
DefaultConfigurationBuilder.Object 
DefaultConfigurationBuilder.Register 
DefaultConfigurationBuilder.Shutdown 
DefaultConfigurationBuilder.Startup 
DefaultConfigurationBuilder.Unregister 
+  + +

+ + + + + + + + + +
+Exception Summary
ConfigurationException 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/package-tree.html new file mode 100644 index 0000000..fa2d02a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/package-tree.html @@ -0,0 +1,161 @@ + + + + + + +mx4j.tools.config Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.config +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/config/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/config/package-use.html new file mode 100644 index 0000000..94142b9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/config/package-use.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Package mx4j.tools.config (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.config

+
+ + + + + + + + + +
+Packages that use mx4j.tools.config
mx4j.tools.config  
+  +

+ + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.tools.config used by mx4j.tools.config
ConfigurationBuilder + +
+           
ConfigurationBuilder.Node + +
+           
ConfigurationBuilder.ObjectsHolder + +
+           
ConfigurationException + +
+           
ConfigurationLoaderMBean + +
+           
DefaultConfigurationBuilder.AbstractNode + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/i18n/I18NStandardMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/I18NStandardMBean.html new file mode 100644 index 0000000..2cadde2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/I18NStandardMBean.html @@ -0,0 +1,733 @@ + + + + + + +I18NStandardMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.i18n +
+Class I18NStandardMBean

+
+java.lang.Object
+  extended byjavax.management.StandardMBean
+      extended bymx4j.tools.i18n.I18NStandardMBean
+
+
+
All Implemented Interfaces:
javax.management.DynamicMBean
+
+
+
+
public class I18NStandardMBean
extends javax.management.StandardMBean
+ +

+An extension of StandardMBean to support internationalization.

+

+ The I18N information is taken from a property bundle named MyImplMBeanResources + where "MyImpl" is the fully qualified class implementing the MBean.

+ These bundles are nested following the class hierachy of the implementation + class. This means that a superclass of the real implementing class can + define the resource bundle for the common attributes and operations. +

+ The resource bundle naming rules defined by ResourceBundle + are used; in particular :

    +
  • If a class called MyPackage.MyImplMBeanResources_localInfo exists it is used (programmatic methd) +
  • Otherwise the file called MyPackage.MyImplMBeanResources_localInfo.properties is used. +
+

+ localInfo consists of one or more sections of "language_country_variant" (eg en_GB or fr_FR). +

+ The locale to be used is determined by one of the following mechanisms (in this order)

    +
  • The locale object explicitly passed to the constructor (if not null) +
  • The static method setDefaultLocale(java.util.Locale) +
  • The system property "mx4j.descriptionLocale" +
  • The current system default locale +
+

+ The bundle should contain keys as described below : +

Global bean description

+ The global bean description is given by the single key "descr":
+ descr=The MBean Description
+ 
+

+

Attributes

+ Attribute desciptions are given by keys of form "attr.Name" where Name + is the attribute name (the method name minus the get/set prefix) :
+ attr.Counter=The counter
+ 
+

+

Constructors

+

Non ambiguous case

+ All constructors having a different number of arguments may be described in this way:
+ cons.N=desciption of constructor N
+ cons.N.param.1=Description of first parameter of constructor N
+ cons.N.paramName.1=paramName1
+ cons.N.param.2=Description of first parameter of constructor N
+ cons.N.paramName.2=paramName2
+ 
+ Where N is a sequential number starting at one. +

+

Ambiguous case

+ Where several constructors exist with the same number of arguments an explicit + signature must be given. The signature is a comma separated list of class descriptions + (as returned by Class.getName() and has the key cons.N.sig :
+ cons.N.sig=int,java.lang.Object
+ cons.N.param.1=The int parameter
+ cons.N.param.2=The Object parameter
+ 
+

+

Operations

+

No overloading

+ When no overloaded versions of an operation exist (same method name but different parameters) + the simplest case shown below can be used :
+ op.operationName=The description
+ op.operationName.param.1=The first parameter
+ op.operationName.paramName.1=param1
+ 
+

+

Non ambiguous overloading case

+ When operation overloading is used but the overloaded versions differ in the number + of parameters the format below can be used :
+ op.operationName.1=The first version of operationName
+ op.operationName.1.param.1=parameter for first version
+ op.operationName.1.paramName.1=param1
+ op.operationName.2=The second version of operationName
+ op.operationName.2.paramName.1=param1
+ op.operationName.2.param.1=first parameter for second version
+ op.operationName.2.param.2=second parameter for second version
+ op.operationName.2.paramName.2=param2
+ 
+

+

Ambiguous overloading case

+ When operations with the same name have the same number of arguments an explicit + signature must be used :
+ op.operationName.1.sig=int
+ op.operationName.1=The first version of operationName (takes int)
+ op.operationName.1.param.1=parameter for first version
+ op.operationName.1.paramName.1=param1
+ op.operationName.2.sig=java.lang.Object
+ op.operationName.2=The second version of operationName (take Object)
+ op.operationName.2.paramName.1=param1
+ op.operationName.2.param.1=first parameter for second version
+ 
+

+

Restrictions

+ Parameter names must only contain characters allowed in a Java identifier + (in particular spaces are not allowed). This is required by the JMX specifications. + No such restrictions exist for the other descriptions. +

+

Behaviour with missing data

+ If no resource bunde exists for the MBean a java.util.MissingResourceException + will be thrown by the constructor.

+

+ If the resouce bundle is found but the bean description, constructor description or + parameter name is missing the String "??(key)" will be returned instead (eg + "??(op.myOperation)".

+

+ If a paramName key is missing (for constructor or operation) the version normally + given by StandardMBean is used (generally "pN").

+

+ If a non ambiguous description cannot be determined the fixed (non translatable) + descriptions "ambiguous constructor", "parameter for ambiguous constructor", + "ambiguous operation", "parameter for ambiguous operation" are returned. +

+ +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected I18NStandardMBean(java.lang.Class mbeanInterface) + +
+          Makes a I18NStandardMBean for the default locale implemented by a subclass.
+protected I18NStandardMBean(java.lang.Class mbeanInterface, + java.util.Locale locale) + +
+          Makes a I18NStandardMBean for the given locale implemented by a subclass.
+ I18NStandardMBean(java.lang.Object implementation, + java.lang.Class mbeanInterface) + +
+          Makes an I18NStandardMBean for the default locale with a separate implementation class.
+ I18NStandardMBean(java.lang.Object implementation, + java.lang.Class mbeanInterface, + java.util.Locale locale) + +
+          Makes an I18NStandardMBean for the given locale with a separate implementation class.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidcacheMBeanInfo(javax.management.MBeanInfo info) + +
+          Once the MBeanInfo has been obtained discard our caches.
+protected  javax.management.MBeanInfogetCachedMBeanInfo() + +
+          Initialise internal data structures.
+protected  javax.management.MBeanConstructorInfo[]getConstructors(javax.management.MBeanConstructorInfo[] cstrs, + java.lang.Object impl) + +
+           
+protected  java.lang.StringgetDescription(javax.management.MBeanAttributeInfo attr) + +
+          Obtain the attribute description.
+protected  java.lang.StringgetDescription(javax.management.MBeanConstructorInfo cstr) + +
+          Obtain the constructor description.
+protected  java.lang.StringgetDescription(javax.management.MBeanConstructorInfo cstr, + javax.management.MBeanParameterInfo param, + int seq) + +
+          Obtain the constructor parameter description.
+protected  java.lang.StringgetDescription(javax.management.MBeanInfo info) + +
+          Obtain global description for MBean.
+protected  java.lang.StringgetDescription(javax.management.MBeanOperationInfo op) + +
+          Obtain the operation description.
+protected  java.lang.StringgetDescription(javax.management.MBeanOperationInfo op, + javax.management.MBeanParameterInfo param, + int seq) + +
+          Obtain the operation parameter description.
+protected  java.lang.StringgetParameterName(javax.management.MBeanConstructorInfo cstr, + javax.management.MBeanParameterInfo param, + int seq) + +
+          Obtain constructor parameter name.
+protected  java.lang.StringgetParameterName(javax.management.MBeanOperationInfo op, + javax.management.MBeanParameterInfo param, + int seq) + +
+          Obtain operation parameter name.
+static voidsetDefaultLocale(java.util.Locale locale) + +
+          Set the locale which will be used for future I18NStandardMBeans.
+ + + + + + + +
Methods inherited from class javax.management.StandardMBean
getAttribute, getAttributes, getClassName, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, invoke, setAttribute, setAttributes, setImplementation
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+I18NStandardMBean

+
+public I18NStandardMBean(java.lang.Object implementation,
+                         java.lang.Class mbeanInterface)
+                  throws javax.management.NotCompliantMBeanException
+
+
Makes an I18NStandardMBean for the default locale with a separate implementation class. +

+

See Also:
StandardMBean.StandardMBean(java.lang.Object, java.lang.Class)
+
+ +

+I18NStandardMBean

+
+public I18NStandardMBean(java.lang.Object implementation,
+                         java.lang.Class mbeanInterface,
+                         java.util.Locale locale)
+                  throws javax.management.NotCompliantMBeanException
+
+
Makes an I18NStandardMBean for the given locale with a separate implementation class. +

+

See Also:
StandardMBean.StandardMBean(java.lang.Object, java.lang.Class)
+
+ +

+I18NStandardMBean

+
+protected I18NStandardMBean(java.lang.Class mbeanInterface)
+                     throws javax.management.NotCompliantMBeanException
+
+
Makes a I18NStandardMBean for the default locale implemented by a subclass. +

+

See Also:
StandardMBean.StandardMBean(java.lang.Class)
+
+ +

+I18NStandardMBean

+
+protected I18NStandardMBean(java.lang.Class mbeanInterface,
+                            java.util.Locale locale)
+                     throws javax.management.NotCompliantMBeanException
+
+
Makes a I18NStandardMBean for the given locale implemented by a subclass. +

+

See Also:
StandardMBean.StandardMBean(java.lang.Class)
+ + + + + + + + +
+Method Detail
+ +

+setDefaultLocale

+
+public static void setDefaultLocale(java.util.Locale locale)
+
+
Set the locale which will be used for future I18NStandardMBeans.

+ The locale specified can be overridden on a per class basis via the + constructors but overrides other means of setting the Locale (system properties).

+

+ Changing the locale has no effect on already constructed MBeans. +

+

+
Parameters:
locale - the Locale for future MBeans
+
+
+
+ +

+getCachedMBeanInfo

+
+protected javax.management.MBeanInfo getCachedMBeanInfo()
+
+
Initialise internal data structures.

+ This method is always called first during getMBeanInfo processing. + We use this to avoid keeping all our internal Maps in memory too long. +

+

+
See Also:
StandardMBean.getCachedMBeanInfo()
+
+
+
+ +

+cacheMBeanInfo

+
+protected void cacheMBeanInfo(javax.management.MBeanInfo info)
+
+
Once the MBeanInfo has been obtained discard our caches. +

+

+
See Also:
StandardMBean.cacheMBeanInfo(javax.management.MBeanInfo)
+
+
+
+ +

+getConstructors

+
+protected javax.management.MBeanConstructorInfo[] getConstructors(javax.management.MBeanConstructorInfo[] cstrs,
+                                                                  java.lang.Object impl)
+
+
+
+
+
+
+ +

+getDescription

+
+protected java.lang.String getDescription(javax.management.MBeanInfo info)
+
+
Obtain global description for MBean.

+ Taken from "descr" key in resource bundle.

+

+ Also performs internal initialisations requiring the MBeanInfo obtained + by introspection. Therefore the superclass must call this method BEFORE + the other hooks. +

+

+
See Also:
StandardMBean.getDescription(javax.management.MBeanInfo)
+
+
+
+ +

+getDescription

+
+protected java.lang.String getDescription(javax.management.MBeanConstructorInfo cstr)
+
+
Obtain the constructor description.

+ Taken from "cons.N" key in resource bundle.

+

+ Maybe "ambiguous constructor" if correct index cannot be determined by + an explicit signature or parameter counts. +

+

+
See Also:
StandardMBean.getDescription(javax.management.MBeanConstructorInfo)
+
+
+
+ +

+getDescription

+
+protected java.lang.String getDescription(javax.management.MBeanConstructorInfo cstr,
+                                          javax.management.MBeanParameterInfo param,
+                                          int seq)
+
+
Obtain the constructor parameter description.

+ Taken from "cons.N.param.seq" key in resource bundle.

+

+ Maybe "parameter for ambiguous constructor" if correct index cannot be determined by + an explicit signature or parameter counts. +

+

+
See Also:
StandardMBean.getDescription(javax.management.MBeanConstructorInfo, javax.management.MBeanParameterInfo, int)
+
+
+
+ +

+getParameterName

+
+protected java.lang.String getParameterName(javax.management.MBeanConstructorInfo cstr,
+                                            javax.management.MBeanParameterInfo param,
+                                            int seq)
+
+
Obtain constructor parameter name.

+ Taken from "cons.N.paramName.seq" key in resource bundle.

+

+ If this key does not exist or if the correct index N cannot be determined by + an explicit signature or parameter counts the superclass method is called. +

+

+
See Also:
StandardMBean.getParameterName(javax.management.MBeanConstructorInfo, javax.management.MBeanParameterInfo, int)
+
+
+
+ +

+getDescription

+
+protected java.lang.String getDescription(javax.management.MBeanAttributeInfo attr)
+
+
Obtain the attribute description.

+ Taken from the "attr.attributeName" key in resource bundle. +

+

+
See Also:
StandardMBean.getDescription(javax.management.MBeanAttributeInfo)
+
+
+
+ +

+getDescription

+
+protected java.lang.String getDescription(javax.management.MBeanOperationInfo op)
+
+
Obtain the operation description.

+ Taken from the "op.operationName.N" or the "op.operationName" + key in the resource bundle.

+ May be "ambiguous operation" if the correct key cannot be determined by + signature or parameter counts. +

+

+
See Also:
StandardMBean.getDescription(javax.management.MBeanOperationInfo)
+
+
+
+ +

+getDescription

+
+protected java.lang.String getDescription(javax.management.MBeanOperationInfo op,
+                                          javax.management.MBeanParameterInfo param,
+                                          int seq)
+
+
Obtain the operation parameter description.

+ Taken from the "op.operationName.N.param.M" or the "op.operationName.param" + key in the resource bundle.

+ May be "parameter for ambiguous operation" if the correct key cannot be determined by + signature or parameter counts. +

+

+
See Also:
StandardMBean.getDescription(javax.management.MBeanOperationInfo, javax.management.MBeanParameterInfo, int)
+
+
+
+ +

+getParameterName

+
+protected java.lang.String getParameterName(javax.management.MBeanOperationInfo op,
+                                            javax.management.MBeanParameterInfo param,
+                                            int seq)
+
+
Obtain operation parameter name.

+ Taken from the "op.operationName.N.paramName.M" or the "op.operationName.paramName.M" + key in the resource bundle.

+

+ If this key does not exist or if the correct index N cannot be determined by + an explicit signature or parameter counts the superclass method is called. +

+

+
See Also:
StandardMBean.getParameterName(javax.management.MBeanOperationInfo, javax.management.MBeanParameterInfo, int)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/i18n/class-use/I18NStandardMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/class-use/I18NStandardMBean.html new file mode 100644 index 0000000..5586367 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/class-use/I18NStandardMBean.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.i18n.I18NStandardMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.i18n.I18NStandardMBean

+
+No usage of mx4j.tools.i18n.I18NStandardMBean +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-frame.html new file mode 100644 index 0000000..047353d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.i18n (MX4J API) + + + + + + + + + + + +mx4j.tools.i18n + + + + +
+Classes  + +
+I18NStandardMBean
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-summary.html new file mode 100644 index 0000000..f67001a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.i18n (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.i18n +

+ + + + + + + + + +
+Class Summary
I18NStandardMBeanAn extension of StandardMBean to support internationalization.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-tree.html new file mode 100644 index 0000000..b4e3f1b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-tree.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.i18n Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.i18n +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class javax.management.StandardMBean (implements javax.management.DynamicMBean) + +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-use.html new file mode 100644 index 0000000..fbe1349 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/i18n/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.i18n (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.i18n

+
+No usage of mx4j.tools.i18n +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunner.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunner.html new file mode 100644 index 0000000..7130d25 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunner.html @@ -0,0 +1,770 @@ + + + + + + +JythonRunner (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.jython +
+Class JythonRunner

+
+java.lang.Object
+  extended bymx4j.tools.jython.JythonRunner
+
+
+
All Implemented Interfaces:
java.util.EventListener, JythonRunnerMBean, javax.management.MBeanRegistration, javax.management.NotificationListener
+
+
+
+
public class JythonRunner
extends java.lang.Object
implements JythonRunnerMBean, javax.management.NotificationListener, javax.management.MBeanRegistration
+ +

+This MBean enables you to run scripts written in jython. Scripts can be run + using the managed operation runScript or by listening notifcations from + another MBean. To us it you need to install jython 2.1 or higher from + <a href="http://www.jython.org">here</a> +

+ If you want to use a jython library remember to add the jython jar to the + classpath in the right location or modify the python.path address +

+ The scripts have always the "server" embedded variable which points + to the current server. It also automatically import some JMX modules as: +

+

    +
  • from javax.management import * +
  • from javax.management.loading import * +
+

+ +

+

+
Version:
+
$Revision: 1.9 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
JythonRunner() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleangetCacheScript() + +
+          Returns whether the script should be kept in the cache.
+ java.lang.StringgetNotificationType() + +
+          Gets the specific notification type being listened
+ javax.management.ObjectNamegetObservedObject() + +
+          Gets the object being observed by this MBean
+static org.python.util.PythonInterpretergetPythonInterpreter() + +
+           
+ java.lang.StringgetScript() + +
+          Returns the script as text.
+ java.net.URLgetScriptURL() + +
+          Returns the URL pointing to the script source
+ booleangetUseText() + +
+          Indicates wether to use the script given in the ScripText variable or + the one given in the script File.
+ voidhandleNotification(javax.management.Notification notification, + java.lang.Object handback) + +
+           
+protected static java.lang.StringloadStream(java.io.InputStream in) + +
+           
+ voidpostDeregister() + +
+           
+ voidpostRegister(java.lang.Boolean registrationDone) + +
+           
+ voidpreDeregister() + +
+           
+ javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, + javax.management.ObjectName name) + +
+          Gathers some basic data
+protected  voidregisterListener() + +
+           
+ voidrunScript() + +
+          Executes a given script.
+ voidsetCacheScript(boolean useCache) + +
+          Sets whether the script should be kept in the cache.
+ voidsetNotificationType(java.lang.String notificationName) + +
+          Sets the notification being listed.
+ voidsetObservedObject(javax.management.ObjectName targetMBeanName) + +
+          Sets the object being observed by this MBean.
+ voidsetScript(java.lang.String text) + +
+          Sets the content of the script.
+ voidsetScriptURL(java.net.URL file) + +
+          Sets the script source as URL.
+protected  voidunregisterListener() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+JythonRunner

+
+public JythonRunner()
+
+
+ + + + + + + + +
+Method Detail
+ +

+handleNotification

+
+public void handleNotification(javax.management.Notification notification,
+                               java.lang.Object handback)
+
+
+
Specified by:
handleNotification in interface javax.management.NotificationListener
+
+
+
+
+
+
+ +

+runScript

+
+public void runScript()
+
+
Executes a given script. If useText is true the text passed will be run as a script + otherwise the script will be loaded from the URL an executed +

+

+
Specified by:
runScript in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+getPythonInterpreter

+
+public static org.python.util.PythonInterpreter getPythonInterpreter()
+
+
+
+
+
+
+
+
+
+ +

+loadStream

+
+protected static java.lang.String loadStream(java.io.InputStream in)
+                                      throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getNotificationType

+
+public java.lang.String getNotificationType()
+
+
Gets the specific notification type being listened +

+

+
Specified by:
getNotificationType in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+setNotificationType

+
+public void setNotificationType(java.lang.String notificationName)
+
+
Sets the notification being listed. If null any notification will trigger + the execution of the script. Otherwise only notifications matching notificationName + will trigger it +

+

+
Specified by:
setNotificationType in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+setObservedObject

+
+public void setObservedObject(javax.management.ObjectName targetMBeanName)
+
+
Sets the object being observed by this MBean. The MBean will register + itself as a listener of targetMBeanName +

+

+
Specified by:
setObservedObject in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+getObservedObject

+
+public javax.management.ObjectName getObservedObject()
+
+
Gets the object being observed by this MBean +

+

+
Specified by:
getObservedObject in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+getUseText

+
+public boolean getUseText()
+
+
Indicates wether to use the script given in the ScripText variable or + the one given in the script File. +

+

+
Specified by:
getUseText in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+setScript

+
+public void setScript(java.lang.String text)
+
+
Sets the content of the script. If you want to use a file, use ScriptFile + instead. +

+

+
Specified by:
setScript in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+getScript

+
+public java.lang.String getScript()
+
+
Returns the script as text. +

+

+
Specified by:
getScript in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+getScriptURL

+
+public java.net.URL getScriptURL()
+
+
Returns the URL pointing to the script source +

+

+
Specified by:
getScriptURL in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+setScriptURL

+
+public void setScriptURL(java.net.URL file)
+
+
Sets the script source as URL. If the cache script variable is true + the file will be loaded only once, otherwise everytime the script is + executed +

+

+
Specified by:
setScriptURL in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+getCacheScript

+
+public boolean getCacheScript()
+
+
Returns whether the script should be kept in the cache. If true, no further + attempts to read the script will be done afterwards. By default is false +

+

+
Specified by:
getCacheScript in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+setCacheScript

+
+public void setCacheScript(boolean useCache)
+
+
Sets whether the script should be kept in the cache. If true, no further + attempts to read the script will be done afterwards. By default is false +

+

+
Specified by:
setCacheScript in interface JythonRunnerMBean
+
+
+
+
+
+
+ +

+preRegister

+
+public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
+                                               javax.management.ObjectName name)
+                                        throws java.lang.Exception
+
+
Gathers some basic data +

+

+
Specified by:
preRegister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postRegister

+
+public void postRegister(java.lang.Boolean registrationDone)
+
+
+
Specified by:
postRegister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+preDeregister

+
+public void preDeregister()
+                   throws java.lang.Exception
+
+
+
Specified by:
preDeregister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postDeregister

+
+public void postDeregister()
+
+
+
Specified by:
postDeregister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+registerListener

+
+protected void registerListener()
+
+
+
+
+
+
+
+
+
+ +

+unregisterListener

+
+protected void unregisterListener()
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunnerMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunnerMBean.html new file mode 100644 index 0000000..a85aaa4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunnerMBean.html @@ -0,0 +1,462 @@ + + + + + + +JythonRunnerMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.jython +
+Interface JythonRunnerMBean

+
+
All Known Implementing Classes:
JythonRunner
+
+
+
+
public interface JythonRunnerMBean
+ +

+Management interface for the JythonRunner MBean. +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ booleangetCacheScript() + +
+          Returns whether the script should be kept in the cache.
+ java.lang.StringgetNotificationType() + +
+          Gets the specific notification type being listened
+ javax.management.ObjectNamegetObservedObject() + +
+          Gets the object being observed by this MBean
+ java.lang.StringgetScript() + +
+          Returns the script as text.
+ java.net.URLgetScriptURL() + +
+          Returns the URL pointing to the script source
+ booleangetUseText() + +
+          Indicates wether to use the script given in the ScripText variable or the one given in the script File.
+ voidrunScript() + +
+          Executes a given script.
+ voidsetCacheScript(boolean useCache) + +
+          Sets whether the script should be kept in the cache.
+ voidsetNotificationType(java.lang.String notificationName) + +
+          Sets the notification type being listened.
+ voidsetObservedObject(javax.management.ObjectName targetMBeanName) + +
+          Sets the object being observed by this MBean.
+ voidsetScript(java.lang.String text) + +
+          Sets the content of the script.
+ voidsetScriptURL(java.net.URL file) + +
+          Sets the script source as URL.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+runScript

+
+public void runScript()
+
+
Executes a given script. + If useText is true the text passed will be run as a script otherwise + the script will be loaded from the URL an executed +

+

+
+
+
+
+ +

+getNotificationType

+
+public java.lang.String getNotificationType()
+
+
Gets the specific notification type being listened +

+

+
+
+
+
+ +

+setNotificationType

+
+public void setNotificationType(java.lang.String notificationName)
+
+
Sets the notification type being listened. + If null any notification will trigger the execution of the script. + Otherwise only notifications matching notificationName will trigger it +

+

+
+
+
+
+ +

+setObservedObject

+
+public void setObservedObject(javax.management.ObjectName targetMBeanName)
+
+
Sets the object being observed by this MBean. + The MBean will register itself as a listener of targetMBeanName +

+

+
+
+
+
+ +

+getObservedObject

+
+public javax.management.ObjectName getObservedObject()
+
+
Gets the object being observed by this MBean +

+

+
+
+
+
+ +

+getUseText

+
+public boolean getUseText()
+
+
Indicates wether to use the script given in the ScripText variable or the one given in the script File. +

+

+
+
+
+
+ +

+setScript

+
+public void setScript(java.lang.String text)
+
+
Sets the content of the script. If you want to use a file, use ScriptFile instead. +

+

+
+
+
+
+ +

+getScript

+
+public java.lang.String getScript()
+
+
Returns the script as text. +

+

+
+
+
+
+ +

+getScriptURL

+
+public java.net.URL getScriptURL()
+
+
Returns the URL pointing to the script source +

+

+
+
+
+
+ +

+setScriptURL

+
+public void setScriptURL(java.net.URL file)
+
+
Sets the script source as URL. If the cache script variable is true the file will be loaded only once, otherwise everytime the script is executed +

+

+
+
+
+
+ +

+getCacheScript

+
+public boolean getCacheScript()
+
+
Returns whether the script should be kept in the cache. + If true, no further attempts to read the script will be done afterwards. By default is false +

+

+
+
+
+
+ +

+setCacheScript

+
+public void setCacheScript(boolean useCache)
+
+
Sets whether the script should be kept in the cache. If true, no further attempts to read the script will be done afterwards. By default is false +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunnerMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunnerMBeanDescription.html new file mode 100644 index 0000000..c0fc0b0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/JythonRunnerMBeanDescription.html @@ -0,0 +1,332 @@ + + + + + + +JythonRunnerMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.jython +
+Class JythonRunnerMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.jython.JythonRunnerMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class JythonRunnerMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Management interface descriptions for the JythonRunner MBean. +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
JythonRunnerMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName, getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+JythonRunnerMBeanDescription

+
+public JythonRunnerMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
Overrides:
getOperationDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunner.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunner.html new file mode 100644 index 0000000..f68fa4e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunner.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.jython.JythonRunner (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.jython.JythonRunner

+
+No usage of mx4j.tools.jython.JythonRunner +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunnerMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunnerMBean.html new file mode 100644 index 0000000..a0c4c50 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunnerMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.tools.jython.JythonRunnerMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.jython.JythonRunnerMBean

+
+ + + + + + + + + +
+Packages that use JythonRunnerMBean
mx4j.tools.jython  
+  +

+ + + + + +
+Uses of JythonRunnerMBean in mx4j.tools.jython
+  +

+ + + + + + + + + +
Classes in mx4j.tools.jython that implement JythonRunnerMBean
+ classJythonRunner + +
+          This MBean enables you to run scripts written in jython.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunnerMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunnerMBeanDescription.html new file mode 100644 index 0000000..9a78d90 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/class-use/JythonRunnerMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.jython.JythonRunnerMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.jython.JythonRunnerMBeanDescription

+
+No usage of mx4j.tools.jython.JythonRunnerMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-frame.html new file mode 100644 index 0000000..9be98bf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-frame.html @@ -0,0 +1,45 @@ + + + + + + +mx4j.tools.jython (MX4J API) + + + + + + + + + + + +mx4j.tools.jython + + + + +
+Interfaces  + +
+JythonRunnerMBean
+ + + + + + +
+Classes  + +
+JythonRunner +
+JythonRunnerMBeanDescription
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-summary.html new file mode 100644 index 0000000..e905945 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-summary.html @@ -0,0 +1,166 @@ + + + + + + +mx4j.tools.jython (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.jython +

+ + + + + + + + + +
+Interface Summary
JythonRunnerMBeanManagement interface for the JythonRunner MBean.
+  + +

+ + + + + + + + + + + + + +
+Class Summary
JythonRunnerThis MBean enables you to run scripts written in jython.
JythonRunnerMBeanDescriptionManagement interface descriptions for the JythonRunner MBean.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-tree.html new file mode 100644 index 0000000..9741b85 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-tree.html @@ -0,0 +1,154 @@ + + + + + + +mx4j.tools.jython Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.jython +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-use.html new file mode 100644 index 0000000..069e923 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/jython/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.tools.jython (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.jython

+
+ + + + + + + + + +
+Packages that use mx4j.tools.jython
mx4j.tools.jython  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.jython used by mx4j.tools.jython
JythonRunnerMBean + +
+          Management interface for the JythonRunner MBean.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/mail/SMTP.html b/mx4j-3.0.2/docs/api/mx4j/tools/mail/SMTP.html new file mode 100644 index 0000000..bdc1de3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/mail/SMTP.html @@ -0,0 +1,1229 @@ + + + + + + +SMTP (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.mail +
+Class SMTP

+
+java.lang.Object
+  extended bymx4j.tools.mail.SMTP
+
+
+
All Implemented Interfaces:
java.util.EventListener, javax.management.MBeanRegistration, javax.management.NotificationListener, SMTPMBean
+
+
+
+
public class SMTP
extends java.lang.Object
implements SMTPMBean, javax.management.NotificationListener, javax.management.MBeanRegistration
+ +

+This MBean is meant to send a mail given certain situation. It may be used to listen to a monitor + or timer and send a mail. +

+ To use it you need to add to your classpath the mail.jar from the JavaMail API and the activation.jar + from the Java Activation Framework. +

+ Besides you need to configure all the required fields, at least the serverHost and To fields and if your server + requires login also the serverUsername and serverPassword fields +

+ The subject and content fields are subject to keyword expansions, i.e. some keyworks put between $ signs will + be exapnded this can be used to give a more informative message. The current available expansions are +

+ $date$ -> Current date formatted with locale format + $time$ -> Current tim formatted with locale format + $datetime$ -> Current date and time formatted with locale format + $notification$ -> Notification type + $observed$ -> ObjectName of the observed object + $objectname$ -> This MBean's objectname +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SMTP() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetBCC() + +
+          Gets a comma separated list of addresses set in the BCC field
+ java.lang.StringgetCC() + +
+          Gets a comma separated list of addresses set in the CC field
+ java.lang.StringgetContent() + +
+          Returns the content of the mail
+ java.lang.StringgetFromAddress() + +
+          Gets the from address attached to mails
+ java.lang.StringgetFromName() + +
+          Gets the from name presented on the mail
+ java.lang.StringgetMimeType() + +
+          Gets the MIME type set to the mail
+ java.lang.StringgetNotificationName() + +
+          Returns the notification which will trigger the mail sending
+ javax.management.ObjectNamegetObservedObject() + +
+          Gets the MBean's objectname which is being listened
+ java.lang.StringgetServerHost() + +
+          Gets the server's host as name or IP
+ intgetServerPort() + +
+          Gets the server's port, by default is 25
+ java.lang.StringgetServerUsername() + +
+          Gets the username to log to the server
+ java.lang.StringgetSubject() + +
+          Gets the mail subject
+ intgetTimeout() + +
+          Returns the timeout used when sending mails
+ java.lang.StringgetTo() + +
+          Gets a comma separated list of addresses set in the TO field
+ voidhandleNotification(javax.management.Notification notification, + java.lang.Object handback) + +
+           
+ booleanisLoginToServer() + +
+          Indicates whether login to the SMTP server will be attpemted
+ voidpostDeregister() + +
+           
+ voidpostRegister(java.lang.Boolean registrationDone) + +
+           
+ voidpreDeregister() + +
+           
+ javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, + javax.management.ObjectName name) + +
+          Gathers some basic data
+protected  voidregisterListener() + +
+           
+ voidsendMail() + +
+          This will directly execute the send mail.
+ voidsetBCC(java.lang.String bccAddresses) + +
+          Sets a comma separated list of address which will go in the BCC mail field
+ voidsetCC(java.lang.String ccAddresses) + +
+          Sets a comma separated list of address which will go in the CC mail field
+ voidsetContent(java.lang.String content) + +
+          Sets the content of the mail
+ voidsetFromAddress(java.lang.String fromAddress) + +
+          Sets the form address set to mail
+ voidsetFromName(java.lang.String fromName) + +
+          Sets the from name presented on the mail
+ voidsetLoginToServer(boolean login) + +
+          Sets whether to login to the SMTP server
+ voidsetMimeType(java.lang.String mimeType) + +
+          Sets the MIME type, by default it is text/plain
+ voidsetNotificationName(java.lang.String notificationName) + +
+          Sets the notification name which will trigger the mail sending.
+ voidsetObservedObject(javax.management.ObjectName targetMBeanName) + +
+          Sets the observed object.
+ voidsetServerHost(java.lang.String host) + +
+          Sets the server's host, it can be set as name or IP
+ voidsetServerPassword(java.lang.String password) + +
+          Sets server's passowrd, use with setLoginToServer(true) and setServerUsername
+ voidsetServerPort(int port) + +
+          Sets the server's port.
+ voidsetServerUsername(java.lang.String username) + +
+          Sets server's username, use with setLoginToServer(true)
+ voidsetSubject(java.lang.String subject) + +
+          Sets the mail's subject, by default is Empty subject.
+ voidsetTimeout(int timeout) + +
+          Sets the send timeout, by default it is 10 secs
+ voidsetTo(java.lang.String toAddresses) + +
+          Sets a comma separated list of address which will go in the TO mail field
+protected  voidunregisterListener() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SMTP

+
+public SMTP()
+
+
+ + + + + + + + +
+Method Detail
+ +

+handleNotification

+
+public void handleNotification(javax.management.Notification notification,
+                               java.lang.Object handback)
+
+
+
Specified by:
handleNotification in interface javax.management.NotificationListener
+
+
+
+
+
+
+ +

+sendMail

+
+public void sendMail()
+
+
Description copied from interface: SMTPMBean
+
This will directly execute the send mail. It can be used to manually testing the MBean or direct execution +

+

+
Specified by:
sendMail in interface SMTPMBean
+
+
+
+
+
+
+ +

+getBCC

+
+public java.lang.String getBCC()
+
+
Description copied from interface: SMTPMBean
+
Gets a comma separated list of addresses set in the BCC field +

+

+
Specified by:
getBCC in interface SMTPMBean
+
+
+
+
+
+
+ +

+setBCC

+
+public void setBCC(java.lang.String bccAddresses)
+
+
Description copied from interface: SMTPMBean
+
Sets a comma separated list of address which will go in the BCC mail field +

+

+
Specified by:
setBCC in interface SMTPMBean
+
+
+
+
+
+
+ +

+setCC

+
+public void setCC(java.lang.String ccAddresses)
+
+
Description copied from interface: SMTPMBean
+
Sets a comma separated list of address which will go in the CC mail field +

+

+
Specified by:
setCC in interface SMTPMBean
+
+
+
+
+
+
+ +

+getCC

+
+public java.lang.String getCC()
+
+
Description copied from interface: SMTPMBean
+
Gets a comma separated list of addresses set in the CC field +

+

+
Specified by:
getCC in interface SMTPMBean
+
+
+
+
+
+
+ +

+getFromAddress

+
+public java.lang.String getFromAddress()
+
+
Description copied from interface: SMTPMBean
+
Gets the from address attached to mails +

+

+
Specified by:
getFromAddress in interface SMTPMBean
+
+
+
+
+
+
+ +

+setFromAddress

+
+public void setFromAddress(java.lang.String fromAddress)
+
+
Description copied from interface: SMTPMBean
+
Sets the form address set to mail +

+

+
Specified by:
setFromAddress in interface SMTPMBean
+
+
+
+
+
+
+ +

+setServerHost

+
+public void setServerHost(java.lang.String host)
+
+
Description copied from interface: SMTPMBean
+
Sets the server's host, it can be set as name or IP +

+

+
Specified by:
setServerHost in interface SMTPMBean
+
+
+
+
+
+
+ +

+getServerHost

+
+public java.lang.String getServerHost()
+
+
Description copied from interface: SMTPMBean
+
Gets the server's host as name or IP +

+

+
Specified by:
getServerHost in interface SMTPMBean
+
+
+
+
+
+
+ +

+setServerPort

+
+public void setServerPort(int port)
+
+
Description copied from interface: SMTPMBean
+
Sets the server's port. +

+

+
Specified by:
setServerPort in interface SMTPMBean
+
+
+
+
+
+
+ +

+getServerPort

+
+public int getServerPort()
+
+
Description copied from interface: SMTPMBean
+
Gets the server's port, by default is 25 +

+

+
Specified by:
getServerPort in interface SMTPMBean
+
+
+
+
+
+
+ +

+setServerUsername

+
+public void setServerUsername(java.lang.String username)
+
+
Description copied from interface: SMTPMBean
+
Sets server's username, use with setLoginToServer(true) +

+

+
Specified by:
setServerUsername in interface SMTPMBean
+
+
+
+
+
+
+ +

+getServerUsername

+
+public java.lang.String getServerUsername()
+
+
Description copied from interface: SMTPMBean
+
Gets the username to log to the server +

+

+
Specified by:
getServerUsername in interface SMTPMBean
+
+
+
+
+
+
+ +

+setServerPassword

+
+public void setServerPassword(java.lang.String password)
+
+
Description copied from interface: SMTPMBean
+
Sets server's passowrd, use with setLoginToServer(true) and setServerUsername +

+

+
Specified by:
setServerPassword in interface SMTPMBean
+
+
+
+
+
+
+ +

+setLoginToServer

+
+public void setLoginToServer(boolean login)
+
+
Description copied from interface: SMTPMBean
+
Sets whether to login to the SMTP server +

+

+
Specified by:
setLoginToServer in interface SMTPMBean
+
+
+
+
+
+
+ +

+isLoginToServer

+
+public boolean isLoginToServer()
+
+
Description copied from interface: SMTPMBean
+
Indicates whether login to the SMTP server will be attpemted +

+

+
Specified by:
isLoginToServer in interface SMTPMBean
+
+
+
+
+
+
+ +

+getFromName

+
+public java.lang.String getFromName()
+
+
Description copied from interface: SMTPMBean
+
Gets the from name presented on the mail +

+

+
Specified by:
getFromName in interface SMTPMBean
+
+
+
+
+
+
+ +

+setFromName

+
+public void setFromName(java.lang.String fromName)
+
+
Description copied from interface: SMTPMBean
+
Sets the from name presented on the mail +

+

+
Specified by:
setFromName in interface SMTPMBean
+
+
+
+
+
+
+ +

+getMimeType

+
+public java.lang.String getMimeType()
+
+
Description copied from interface: SMTPMBean
+
Gets the MIME type set to the mail +

+

+
Specified by:
getMimeType in interface SMTPMBean
+
+
+
+
+
+
+ +

+setMimeType

+
+public void setMimeType(java.lang.String mimeType)
+
+
Description copied from interface: SMTPMBean
+
Sets the MIME type, by default it is text/plain +

+

+
Specified by:
setMimeType in interface SMTPMBean
+
+
+
+
+
+
+ +

+getNotificationName

+
+public java.lang.String getNotificationName()
+
+
Description copied from interface: SMTPMBean
+
Returns the notification which will trigger the mail sending +

+

+
Specified by:
getNotificationName in interface SMTPMBean
+
+
+
+
+
+
+ +

+setNotificationName

+
+public void setNotificationName(java.lang.String notificationName)
+
+
Description copied from interface: SMTPMBean
+
Sets the notification name which will trigger the mail sending. If it is null any notification + will trigger a mail +

+

+
Specified by:
setNotificationName in interface SMTPMBean
+
+
+
+
+
+
+ +

+getSubject

+
+public java.lang.String getSubject()
+
+
Description copied from interface: SMTPMBean
+
Gets the mail subject +

+

+
Specified by:
getSubject in interface SMTPMBean
+
+
+
+
+
+
+ +

+setSubject

+
+public void setSubject(java.lang.String subject)
+
+
Description copied from interface: SMTPMBean
+
Sets the mail's subject, by default is Empty subject. The subject field can contain keyword expansion +

+

+
Specified by:
setSubject in interface SMTPMBean
+
+
+
+
+
+
+ +

+getContent

+
+public java.lang.String getContent()
+
+
Description copied from interface: SMTPMBean
+
Returns the content of the mail +

+

+
Specified by:
getContent in interface SMTPMBean
+
+
+
+
+
+
+ +

+setContent

+
+public void setContent(java.lang.String content)
+
+
Description copied from interface: SMTPMBean
+
Sets the content of the mail +

+

+
Specified by:
setContent in interface SMTPMBean
+
+
+
+
+
+
+ +

+setTimeout

+
+public void setTimeout(int timeout)
+
+
Description copied from interface: SMTPMBean
+
Sets the send timeout, by default it is 10 secs +

+

+
Specified by:
setTimeout in interface SMTPMBean
+
+
+
+
+
+
+ +

+getTimeout

+
+public int getTimeout()
+
+
Description copied from interface: SMTPMBean
+
Returns the timeout used when sending mails +

+

+
Specified by:
getTimeout in interface SMTPMBean
+
+
+
+
+
+
+ +

+setObservedObject

+
+public void setObservedObject(javax.management.ObjectName targetMBeanName)
+
+
Description copied from interface: SMTPMBean
+
Sets the observed object. It is expected that the observed MBean is a NotificationBroadcster + On the contrary the MBean will not be listening to events +

+

+
Specified by:
setObservedObject in interface SMTPMBean
+
+
+
+
+
+
+ +

+getObservedObject

+
+public javax.management.ObjectName getObservedObject()
+
+
Description copied from interface: SMTPMBean
+
Gets the MBean's objectname which is being listened +

+

+
Specified by:
getObservedObject in interface SMTPMBean
+
+
+
+
+
+
+ +

+getTo

+
+public java.lang.String getTo()
+
+
Description copied from interface: SMTPMBean
+
Gets a comma separated list of addresses set in the TO field +

+

+
Specified by:
getTo in interface SMTPMBean
+
+
+
+
+
+
+ +

+setTo

+
+public void setTo(java.lang.String toAddresses)
+
+
Description copied from interface: SMTPMBean
+
Sets a comma separated list of address which will go in the TO mail field +

+

+
Specified by:
setTo in interface SMTPMBean
+
+
+
+
+
+
+ +

+preRegister

+
+public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
+                                               javax.management.ObjectName name)
+                                        throws java.lang.Exception
+
+
Gathers some basic data +

+

+
Specified by:
preRegister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postRegister

+
+public void postRegister(java.lang.Boolean registrationDone)
+
+
+
Specified by:
postRegister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+preDeregister

+
+public void preDeregister()
+                   throws java.lang.Exception
+
+
+
Specified by:
preDeregister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postDeregister

+
+public void postDeregister()
+
+
+
Specified by:
postDeregister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+registerListener

+
+protected void registerListener()
+
+
+
+
+
+
+
+
+
+ +

+unregisterListener

+
+protected void unregisterListener()
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/mail/SMTPMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/mail/SMTPMBean.html new file mode 100644 index 0000000..59a6760 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/mail/SMTPMBean.html @@ -0,0 +1,897 @@ + + + + + + +SMTPMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.mail +
+Interface SMTPMBean

+
+
All Known Implementing Classes:
SMTP
+
+
+
+
public interface SMTPMBean
+ +

+Management Interface of a SMTP MBean. +

+ This MBean is meant to send a mail given certain situation. It may be used to listen to a monitor + or timer and send a mail. +

+ To use it you need to add to your classpath the mail.jar from the JavaMail API and the activation.jar + from the Java Activation Framework. +

+ Besides you need to configure all the required fields, at least the serverHost and To fields and if your server + requires login also the serverUsername and serverPassword fields +

+ The subject and content fields are subject to keyword expansions, i.e. some keyworks put between $ signs will + be exapnded this can be used to give a more informative message. The current available expansions are +

+ $date$ -> Current date formatted with locale format + $time$ -> Current tim formatted with locale format + $datetime$ -> Current date and time formatted with locale format + $notification$ -> Notification type + $observed$ -> ObjectName of the observed object + $objectname$ -> This MBean's objectname +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetBCC() + +
+          Gets a comma separated list of addresses set in the BCC field
+ java.lang.StringgetCC() + +
+          Gets a comma separated list of addresses set in the CC field
+ java.lang.StringgetContent() + +
+          Returns the content of the mail
+ java.lang.StringgetFromAddress() + +
+          Gets the from address attached to mails
+ java.lang.StringgetFromName() + +
+          Gets the from name presented on the mail
+ java.lang.StringgetMimeType() + +
+          Gets the MIME type set to the mail
+ java.lang.StringgetNotificationName() + +
+          Returns the notification which will trigger the mail sending
+ javax.management.ObjectNamegetObservedObject() + +
+          Gets the MBean's objectname which is being listened
+ java.lang.StringgetServerHost() + +
+          Gets the server's host as name or IP
+ intgetServerPort() + +
+          Gets the server's port, by default is 25
+ java.lang.StringgetServerUsername() + +
+          Gets the username to log to the server
+ java.lang.StringgetSubject() + +
+          Gets the mail subject
+ intgetTimeout() + +
+          Returns the timeout used when sending mails
+ java.lang.StringgetTo() + +
+          Gets a comma separated list of addresses set in the TO field
+ booleanisLoginToServer() + +
+          Indicates whether login to the SMTP server will be attpemted
+ voidsendMail() + +
+          This will directly execute the send mail.
+ voidsetBCC(java.lang.String bccAddresses) + +
+          Sets a comma separated list of address which will go in the BCC mail field
+ voidsetCC(java.lang.String ccAddresses) + +
+          Sets a comma separated list of address which will go in the CC mail field
+ voidsetContent(java.lang.String content) + +
+          Sets the content of the mail
+ voidsetFromAddress(java.lang.String fromAddress) + +
+          Sets the form address set to mail
+ voidsetFromName(java.lang.String fromName) + +
+          Sets the from name presented on the mail
+ voidsetLoginToServer(boolean login) + +
+          Sets whether to login to the SMTP server
+ voidsetMimeType(java.lang.String mimeType) + +
+          Sets the MIME type, by default it is text/plain
+ voidsetNotificationName(java.lang.String notificationName) + +
+          Sets the notification name which will trigger the mail sending.
+ voidsetObservedObject(javax.management.ObjectName targetMBeanName) + +
+          Sets the observed object.
+ voidsetServerHost(java.lang.String host) + +
+          Sets the server's host, it can be set as name or IP
+ voidsetServerPassword(java.lang.String password) + +
+          Sets server's passowrd, use with setLoginToServer(true) and setServerUsername
+ voidsetServerPort(int port) + +
+          Sets the server's port.
+ voidsetServerUsername(java.lang.String username) + +
+          Sets server's username, use with setLoginToServer(true)
+ voidsetSubject(java.lang.String subject) + +
+          Sets the mail's subject, by default is Empty subject.
+ voidsetTimeout(int timeout) + +
+          Sets the send timeout, by default it is 10 secs
+ voidsetTo(java.lang.String toAddresses) + +
+          Sets a comma separated list of address which will go in the TO mail field
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getObservedObject

+
+public javax.management.ObjectName getObservedObject()
+
+
Gets the MBean's objectname which is being listened +

+

+
+
+
+
+ +

+setObservedObject

+
+public void setObservedObject(javax.management.ObjectName targetMBeanName)
+
+
Sets the observed object. It is expected that the observed MBean is a NotificationBroadcster + On the contrary the MBean will not be listening to events +

+

+
+
+
+
+ +

+getNotificationName

+
+public java.lang.String getNotificationName()
+
+
Returns the notification which will trigger the mail sending +

+

+
+
+
+
+ +

+setNotificationName

+
+public void setNotificationName(java.lang.String notificationName)
+
+
Sets the notification name which will trigger the mail sending. If it is null any notification + will trigger a mail +

+

+
+
+
+
+ +

+getServerHost

+
+public java.lang.String getServerHost()
+
+
Gets the server's host as name or IP +

+

+
+
+
+
+ +

+setServerHost

+
+public void setServerHost(java.lang.String host)
+
+
Sets the server's host, it can be set as name or IP +

+

+
+
+
+
+ +

+setServerPort

+
+public void setServerPort(int port)
+
+
Sets the server's port. +

+

+
+
+
+
+ +

+getServerPort

+
+public int getServerPort()
+
+
Gets the server's port, by default is 25 +

+

+
+
+
+
+ +

+setServerUsername

+
+public void setServerUsername(java.lang.String username)
+
+
Sets server's username, use with setLoginToServer(true) +

+

+
+
+
+
+ +

+getServerUsername

+
+public java.lang.String getServerUsername()
+
+
Gets the username to log to the server +

+

+
+
+
+
+ +

+setServerPassword

+
+public void setServerPassword(java.lang.String password)
+
+
Sets server's passowrd, use with setLoginToServer(true) and setServerUsername +

+

+
+
+
+
+ +

+setLoginToServer

+
+public void setLoginToServer(boolean login)
+
+
Sets whether to login to the SMTP server +

+

+
+
+
+
+ +

+isLoginToServer

+
+public boolean isLoginToServer()
+
+
Indicates whether login to the SMTP server will be attpemted +

+

+
+
+
+
+ +

+setTimeout

+
+public void setTimeout(int timeout)
+
+
Sets the send timeout, by default it is 10 secs +

+

+
+
+
+
+ +

+getTimeout

+
+public int getTimeout()
+
+
Returns the timeout used when sending mails +

+

+
+
+
+
+ +

+getFromAddress

+
+public java.lang.String getFromAddress()
+
+
Gets the from address attached to mails +

+

+
+
+
+
+ +

+setFromAddress

+
+public void setFromAddress(java.lang.String fromAddress)
+
+
Sets the form address set to mail +

+

+
+
+
+
+ +

+getFromName

+
+public java.lang.String getFromName()
+
+
Gets the from name presented on the mail +

+

+
+
+
+
+ +

+setFromName

+
+public void setFromName(java.lang.String fromName)
+
+
Sets the from name presented on the mail +

+

+
+
+
+
+ +

+getMimeType

+
+public java.lang.String getMimeType()
+
+
Gets the MIME type set to the mail +

+

+
+
+
+
+ +

+setMimeType

+
+public void setMimeType(java.lang.String mimeType)
+
+
Sets the MIME type, by default it is text/plain +

+

+
+
+
+
+ +

+getTo

+
+public java.lang.String getTo()
+
+
Gets a comma separated list of addresses set in the TO field +

+

+
+
+
+
+ +

+setTo

+
+public void setTo(java.lang.String toAddresses)
+
+
Sets a comma separated list of address which will go in the TO mail field +

+

+
+
+
+
+ +

+getBCC

+
+public java.lang.String getBCC()
+
+
Gets a comma separated list of addresses set in the BCC field +

+

+
+
+
+
+ +

+setBCC

+
+public void setBCC(java.lang.String bccAddresses)
+
+
Sets a comma separated list of address which will go in the BCC mail field +

+

+
+
+
+
+ +

+getCC

+
+public java.lang.String getCC()
+
+
Gets a comma separated list of addresses set in the CC field +

+

+
+
+
+
+ +

+setCC

+
+public void setCC(java.lang.String ccAddresses)
+
+
Sets a comma separated list of address which will go in the CC mail field +

+

+
+
+
+
+ +

+getSubject

+
+public java.lang.String getSubject()
+
+
Gets the mail subject +

+

+
+
+
+
+ +

+setSubject

+
+public void setSubject(java.lang.String subject)
+
+
Sets the mail's subject, by default is Empty subject. The subject field can contain keyword expansion +

+

+
+
+
+
+ +

+getContent

+
+public java.lang.String getContent()
+
+
Returns the content of the mail +

+

+
+
+
+
+ +

+setContent

+
+public void setContent(java.lang.String content)
+
+
Sets the content of the mail +

+

+
+
+
+
+ +

+sendMail

+
+public void sendMail()
+
+
This will directly execute the send mail. It can be used to manually testing the MBean or direct execution +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/mail/class-use/SMTP.html b/mx4j-3.0.2/docs/api/mx4j/tools/mail/class-use/SMTP.html new file mode 100644 index 0000000..6dcdae1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/mail/class-use/SMTP.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.mail.SMTP (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.mail.SMTP

+
+No usage of mx4j.tools.mail.SMTP +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/mail/class-use/SMTPMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/mail/class-use/SMTPMBean.html new file mode 100644 index 0000000..fe730ef --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/mail/class-use/SMTPMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.tools.mail.SMTPMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.mail.SMTPMBean

+
+ + + + + + + + + +
+Packages that use SMTPMBean
mx4j.tools.mail  
+  +

+ + + + + +
+Uses of SMTPMBean in mx4j.tools.mail
+  +

+ + + + + + + + + +
Classes in mx4j.tools.mail that implement SMTPMBean
+ classSMTP + +
+          This MBean is meant to send a mail given certain situation.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-frame.html new file mode 100644 index 0000000..df998cb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-frame.html @@ -0,0 +1,43 @@ + + + + + + +mx4j.tools.mail (MX4J API) + + + + + + + + + + + +mx4j.tools.mail + + + + +
+Interfaces  + +
+SMTPMBean
+ + + + + + +
+Classes  + +
+SMTP
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-summary.html new file mode 100644 index 0000000..7afd639 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-summary.html @@ -0,0 +1,162 @@ + + + + + + +mx4j.tools.mail (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.mail +

+ + + + + + + + + +
+Interface Summary
SMTPMBeanManagement Interface of a SMTP MBean.
+  + +

+ + + + + + + + + +
+Class Summary
SMTPThis MBean is meant to send a mail given certain situation.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-tree.html new file mode 100644 index 0000000..4f8ea43 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +mx4j.tools.mail Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.mail +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.mail.SMTP (implements javax.management.MBeanRegistration, javax.management.NotificationListener, mx4j.tools.mail.SMTPMBean) +
    +
+

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-use.html new file mode 100644 index 0000000..e157c3c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/mail/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.tools.mail (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.mail

+
+ + + + + + + + + +
+Packages that use mx4j.tools.mail
mx4j.tools.mail  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.mail used by mx4j.tools.mail
SMTPMBean + +
+          Management Interface of a SMTP MBean.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingService.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingService.html new file mode 100644 index 0000000..435a71e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingService.html @@ -0,0 +1,388 @@ + + + + + + +CosNamingService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.naming +
+Class CosNamingService

+
+java.lang.Object
+  extended bymx4j.tools.naming.CosNamingService
+
+
+
All Implemented Interfaces:
CosNamingServiceMBean
+
+
+
+
public class CosNamingService
extends java.lang.Object
implements CosNamingServiceMBean
+ +

+An MBean that wraps tnameserv.

+ Calling start() will start tnameserv in a separate process via + Runtime.exec(String command). +

+ +

+

+
Version:
+
$Revision: 1.13 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Constructor Summary
CosNamingService() + +
+          Creates a new instance of CosNamingService with the default port (900).
CosNamingService(int port) + +
+          Creates a new instance of CosNamingService with the specified port.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intgetPort() + +
+          Returns the port on which tnameserv listens for incoming connections
+ booleanisRunning() + +
+          Returns whether this MBean has been started and not yet stopped.
+ voidsetPort(int port) + +
+          Sets the port on which tnameserv listens for incoming connections.
+ voidstart() + +
+          Starts this MBean: tnameserv can now accept incoming calls
+ voidstop() + +
+          Stops this MBean: tnameserv cannot accept anymore incoming calls
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CosNamingService

+
+public CosNamingService()
+
+
Creates a new instance of CosNamingService with the default port (900). +

+

+
+ +

+CosNamingService

+
+public CosNamingService(int port)
+
+
Creates a new instance of CosNamingService with the specified port. +

+

+ + + + + + + + +
+Method Detail
+ +

+setPort

+
+public void setPort(int port)
+
+
Sets the port on which tnameserv listens for incoming connections. +

+

+
Specified by:
setPort in interface CosNamingServiceMBean
+
+
+
See Also:
getPort()
+
+
+
+ +

+getPort

+
+public int getPort()
+
+
Returns the port on which tnameserv listens for incoming connections +

+

+
Specified by:
getPort in interface CosNamingServiceMBean
+
+
+
See Also:
setPort(int)
+
+
+
+ +

+isRunning

+
+public boolean isRunning()
+
+
Returns whether this MBean has been started and not yet stopped. +

+

+
Specified by:
isRunning in interface CosNamingServiceMBean
+
+
+
See Also:
start()
+
+
+
+ +

+start

+
+public void start()
+           throws java.lang.Exception
+
+
Starts this MBean: tnameserv can now accept incoming calls +

+

+
Specified by:
start in interface CosNamingServiceMBean
+
+
+ +
Throws: +
java.lang.Exception
See Also:
stop(), +isRunning()
+
+
+
+ +

+stop

+
+public void stop()
+
+
Stops this MBean: tnameserv cannot accept anymore incoming calls +

+

+
Specified by:
stop in interface CosNamingServiceMBean
+
+
+
See Also:
start()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingServiceMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingServiceMBean.html new file mode 100644 index 0000000..1c0d769 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingServiceMBean.html @@ -0,0 +1,313 @@ + + + + + + +CosNamingServiceMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.naming +
+Interface CosNamingServiceMBean

+
+
All Known Implementing Classes:
CosNamingService
+
+
+
+
public interface CosNamingServiceMBean
+ +

+Management interface for the CosNamingService MBean. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intgetPort() + +
+          Returns the port on which tnameserv listens for incoming connections
+ booleanisRunning() + +
+          Returns whether this MBean has been started and not yet stopped.
+ voidsetPort(int port) + +
+          Sets the port on which tnameserv listens for incoming connections.
+ voidstart() + +
+          Starts this MBean: tnameserv can now accept incoming calls
+ voidstop() + +
+          Stops this MBean: tnameserv cannot accept anymore incoming calls
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setPort

+
+public void setPort(int port)
+
+
Sets the port on which tnameserv listens for incoming connections. +

+

+
See Also:
getPort()
+
+
+
+ +

+getPort

+
+public int getPort()
+
+
Returns the port on which tnameserv listens for incoming connections +

+

+
See Also:
setPort(int)
+
+
+
+ +

+isRunning

+
+public boolean isRunning()
+
+
Returns whether this MBean has been started and not yet stopped. +

+

+
See Also:
start()
+
+
+
+ +

+start

+
+public void start()
+           throws java.lang.Exception
+
+
Starts this MBean: tnameserv can now accept incoming calls +

+

+ +
Throws: +
java.lang.Exception
See Also:
stop(), +isRunning()
+
+
+
+ +

+stop

+
+public void stop()
+
+
Stops this MBean: tnameserv cannot accept anymore incoming calls +

+

+
See Also:
start()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingServiceMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingServiceMBeanDescription.html new file mode 100644 index 0000000..4e26347 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/CosNamingServiceMBeanDescription.html @@ -0,0 +1,414 @@ + + + + + + +CosNamingServiceMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.naming +
+Class CosNamingServiceMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.naming.CosNamingServiceMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class CosNamingServiceMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Management interface descriptions for the CosNamingService MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
CosNamingServiceMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetConstructorDescription(java.lang.reflect.Constructor ctor) + +
+          Should return the description for the given constructor of the MBean.
+ java.lang.StringgetConstructorParameterDescription(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the description for the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetConstructorParameterName(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the name of the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CosNamingServiceMBeanDescription

+
+public CosNamingServiceMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorDescription

+
+public java.lang.String getConstructorDescription(java.lang.reflect.Constructor ctor)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the given constructor of the MBean. + For example: "Creates an rmiregistry instance on the specified port" +

+

+
Specified by:
getConstructorDescription in interface MBeanDescription
Overrides:
getConstructorDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorParameterName

+
+public java.lang.String getConstructorParameterName(java.lang.reflect.Constructor ctor,
+                                                    int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the constructor's parameter for the given constructor and parameter index. + For example: "port" +

+

+
Specified by:
getConstructorParameterName in interface MBeanDescription
Overrides:
getConstructorParameterName in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorParameterDescription

+
+public java.lang.String getConstructorParameterDescription(java.lang.reflect.Constructor ctor,
+                                                           int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the constructor's parameter for the given constructor and parameter index. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getConstructorParameterDescription in interface MBeanDescription
Overrides:
getConstructorParameterDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
Overrides:
getOperationDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingService.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingService.html new file mode 100644 index 0000000..5cb88d3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingService.html @@ -0,0 +1,455 @@ + + + + + + +NamingService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.naming +
+Class NamingService

+
+java.lang.Object
+  extended bymx4j.tools.naming.NamingService
+
+
+
All Implemented Interfaces:
NamingServiceMBean
+
+
+
+
public class NamingService
extends java.lang.Object
implements NamingServiceMBean
+ +

+An MBean that wraps rmiregistry.

+ Calling start() will launch rmiregistry in the same JVM; this way + rmiregistry will have in its classpath the same classes the JVM has. +

+ +

+

+
Version:
+
$Revision: 1.11 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Constructor Summary
NamingService() + +
+          Creates a new instance of NamingService with the default rmiregistry port (1099).
NamingService(int port) + +
+          Creates a new instance of NamingService with the specified port.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intgetPort() + +
+          Returns the port on which rmiregistry listens for incoming connections
+ booleanisRunning() + +
+          Returns whether this MBean has been started and not yet stopped.
+ java.lang.String[]list() + +
+          Returns an array of the names bound in the rmiregistry
+ voidsetPort(int port) + +
+          Sets the port on which rmiregistry listens for incoming connections.
+ voidstart() + +
+          Starts this MBean: rmiregistry can now accept incoming calls
+ voidstop() + +
+          Stops this MBean: rmiregistry cannot accept anymore incoming calls
+ voidunbind(java.lang.String name) + +
+          Removes the binding for the specified name in the rmiregistry
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NamingService

+
+public NamingService()
+
+
Creates a new instance of NamingService with the default rmiregistry port (1099). +

+

+
+ +

+NamingService

+
+public NamingService(int port)
+
+
Creates a new instance of NamingService with the specified port. +

+

+ + + + + + + + +
+Method Detail
+ +

+setPort

+
+public void setPort(int port)
+
+
Description copied from interface: NamingServiceMBean
+
Sets the port on which rmiregistry listens for incoming connections. + Can be called only if this service is not running. +

+

+
Specified by:
setPort in interface NamingServiceMBean
+
+
+
See Also:
NamingServiceMBean.getPort()
+
+
+
+ +

+getPort

+
+public int getPort()
+
+
Description copied from interface: NamingServiceMBean
+
Returns the port on which rmiregistry listens for incoming connections +

+

+
Specified by:
getPort in interface NamingServiceMBean
+
+
+
See Also:
NamingServiceMBean.setPort(int)
+
+
+
+ +

+isRunning

+
+public boolean isRunning()
+
+
Description copied from interface: NamingServiceMBean
+
Returns whether this MBean has been started and not yet stopped. +

+

+
Specified by:
isRunning in interface NamingServiceMBean
+
+
+
See Also:
NamingServiceMBean.start()
+
+
+
+ +

+start

+
+public void start()
+           throws java.rmi.RemoteException
+
+
Description copied from interface: NamingServiceMBean
+
Starts this MBean: rmiregistry can now accept incoming calls +

+

+
Specified by:
start in interface NamingServiceMBean
+
+
+ +
Throws: +
java.rmi.RemoteException
See Also:
NamingServiceMBean.stop(), +NamingServiceMBean.isRunning()
+
+
+
+ +

+stop

+
+public void stop()
+          throws java.rmi.NoSuchObjectException
+
+
Description copied from interface: NamingServiceMBean
+
Stops this MBean: rmiregistry cannot accept anymore incoming calls +

+

+
Specified by:
stop in interface NamingServiceMBean
+
+
+ +
Throws: +
java.rmi.NoSuchObjectException
See Also:
NamingServiceMBean.start()
+
+
+
+ +

+list

+
+public java.lang.String[] list()
+                        throws java.rmi.RemoteException
+
+
Description copied from interface: NamingServiceMBean
+
Returns an array of the names bound in the rmiregistry +

+

+
Specified by:
list in interface NamingServiceMBean
+
+
+ +
Throws: +
java.rmi.RemoteException
See Also:
Registry.list()
+
+
+
+ +

+unbind

+
+public void unbind(java.lang.String name)
+            throws java.rmi.RemoteException,
+                   java.rmi.NotBoundException
+
+
Description copied from interface: NamingServiceMBean
+
Removes the binding for the specified name in the rmiregistry +

+

+
Specified by:
unbind in interface NamingServiceMBean
+
+
+ +
Throws: +
java.rmi.RemoteException +
java.rmi.NotBoundException
See Also:
Registry.unbind(String)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingServiceMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingServiceMBean.html new file mode 100644 index 0000000..7605057 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingServiceMBean.html @@ -0,0 +1,367 @@ + + + + + + +NamingServiceMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.naming +
+Interface NamingServiceMBean

+
+
All Known Implementing Classes:
NamingService
+
+
+
+
public interface NamingServiceMBean
+ +

+Management interface for the NamingService MBean. +

+ +

+

+
Version:
+
$Revision: 1.7 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intgetPort() + +
+          Returns the port on which rmiregistry listens for incoming connections
+ booleanisRunning() + +
+          Returns whether this MBean has been started and not yet stopped.
+ java.lang.String[]list() + +
+          Returns an array of the names bound in the rmiregistry
+ voidsetPort(int port) + +
+          Sets the port on which rmiregistry listens for incoming connections.
+ voidstart() + +
+          Starts this MBean: rmiregistry can now accept incoming calls
+ voidstop() + +
+          Stops this MBean: rmiregistry cannot accept anymore incoming calls
+ voidunbind(java.lang.String name) + +
+          Removes the binding for the specified name in the rmiregistry
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setPort

+
+public void setPort(int port)
+
+
Sets the port on which rmiregistry listens for incoming connections. + Can be called only if this service is not running. +

+

+
See Also:
getPort()
+
+
+
+ +

+getPort

+
+public int getPort()
+
+
Returns the port on which rmiregistry listens for incoming connections +

+

+
See Also:
setPort(int)
+
+
+
+ +

+isRunning

+
+public boolean isRunning()
+
+
Returns whether this MBean has been started and not yet stopped. +

+

+
See Also:
start()
+
+
+
+ +

+start

+
+public void start()
+           throws java.rmi.RemoteException
+
+
Starts this MBean: rmiregistry can now accept incoming calls +

+

+ +
Throws: +
java.rmi.RemoteException
See Also:
stop(), +isRunning()
+
+
+
+ +

+stop

+
+public void stop()
+          throws java.rmi.NoSuchObjectException
+
+
Stops this MBean: rmiregistry cannot accept anymore incoming calls +

+

+ +
Throws: +
java.rmi.NoSuchObjectException
See Also:
start()
+
+
+
+ +

+list

+
+public java.lang.String[] list()
+                        throws java.rmi.RemoteException
+
+
Returns an array of the names bound in the rmiregistry +

+

+ +
Throws: +
java.rmi.RemoteException
See Also:
Registry.list()
+
+
+
+ +

+unbind

+
+public void unbind(java.lang.String name)
+            throws java.rmi.RemoteException,
+                   java.rmi.NotBoundException
+
+
Removes the binding for the specified name in the rmiregistry +

+

+ +
Throws: +
java.rmi.RemoteException +
java.rmi.NotBoundException
See Also:
Registry.unbind(String)
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingServiceMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingServiceMBeanDescription.html new file mode 100644 index 0000000..0f09256 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/NamingServiceMBeanDescription.html @@ -0,0 +1,414 @@ + + + + + + +NamingServiceMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.naming +
+Class NamingServiceMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.naming.NamingServiceMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class NamingServiceMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Management interface descriptions for the NamingService MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
NamingServiceMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetConstructorDescription(java.lang.reflect.Constructor ctor) + +
+          Should return the description for the given constructor of the MBean.
+ java.lang.StringgetConstructorParameterDescription(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the description for the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetConstructorParameterName(java.lang.reflect.Constructor ctor, + int index) + +
+          Should return the name of the constructor's parameter for the given constructor and parameter index.
+ java.lang.StringgetMBeanDescription() + +
+          Should return the description of the MBean.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NamingServiceMBeanDescription

+
+public NamingServiceMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getMBeanDescription

+
+public java.lang.String getMBeanDescription()
+
+
Description copied from interface: MBeanDescription
+
Should return the description of the MBean. + For example: "This MBean is the rmiregistry service" +

+

+
Specified by:
getMBeanDescription in interface MBeanDescription
Overrides:
getMBeanDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorDescription

+
+public java.lang.String getConstructorDescription(java.lang.reflect.Constructor ctor)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the given constructor of the MBean. + For example: "Creates an rmiregistry instance on the specified port" +

+

+
Specified by:
getConstructorDescription in interface MBeanDescription
Overrides:
getConstructorDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorParameterName

+
+public java.lang.String getConstructorParameterName(java.lang.reflect.Constructor ctor,
+                                                    int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the name of the constructor's parameter for the given constructor and parameter index. + For example: "port" +

+

+
Specified by:
getConstructorParameterName in interface MBeanDescription
Overrides:
getConstructorParameterName in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getConstructorParameterDescription

+
+public java.lang.String getConstructorParameterDescription(java.lang.reflect.Constructor ctor,
+                                                           int index)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the constructor's parameter for the given constructor and parameter index. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getConstructorParameterDescription in interface MBeanDescription
Overrides:
getConstructorParameterDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
Overrides:
getOperationDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingService.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingService.html new file mode 100644 index 0000000..cbd614a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingService.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.naming.CosNamingService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.naming.CosNamingService

+
+No usage of mx4j.tools.naming.CosNamingService +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingServiceMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingServiceMBean.html new file mode 100644 index 0000000..efdcf33 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingServiceMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.tools.naming.CosNamingServiceMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.naming.CosNamingServiceMBean

+
+ + + + + + + + + +
+Packages that use CosNamingServiceMBean
mx4j.tools.naming  
+  +

+ + + + + +
+Uses of CosNamingServiceMBean in mx4j.tools.naming
+  +

+ + + + + + + + + +
Classes in mx4j.tools.naming that implement CosNamingServiceMBean
+ classCosNamingService + +
+          An MBean that wraps tnameserv.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingServiceMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingServiceMBeanDescription.html new file mode 100644 index 0000000..84fd99d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/CosNamingServiceMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.naming.CosNamingServiceMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.naming.CosNamingServiceMBeanDescription

+
+No usage of mx4j.tools.naming.CosNamingServiceMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingService.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingService.html new file mode 100644 index 0000000..643f0eb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingService.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.naming.NamingService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.naming.NamingService

+
+No usage of mx4j.tools.naming.NamingService +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingServiceMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingServiceMBean.html new file mode 100644 index 0000000..c220940 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingServiceMBean.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Interface mx4j.tools.naming.NamingServiceMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.naming.NamingServiceMBean

+
+ + + + + + + + + +
+Packages that use NamingServiceMBean
mx4j.tools.naming  
+  +

+ + + + + +
+Uses of NamingServiceMBean in mx4j.tools.naming
+  +

+ + + + + + + + + +
Classes in mx4j.tools.naming that implement NamingServiceMBean
+ classNamingService + +
+          An MBean that wraps rmiregistry.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingServiceMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingServiceMBeanDescription.html new file mode 100644 index 0000000..1d75238 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/class-use/NamingServiceMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.naming.NamingServiceMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.naming.NamingServiceMBeanDescription

+
+No usage of mx4j.tools.naming.NamingServiceMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-frame.html new file mode 100644 index 0000000..3d7ab1e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-frame.html @@ -0,0 +1,51 @@ + + + + + + +mx4j.tools.naming (MX4J API) + + + + + + + + + + + +mx4j.tools.naming + + + + +
+Interfaces  + +
+CosNamingServiceMBean +
+NamingServiceMBean
+ + + + + + +
+Classes  + +
+CosNamingService +
+CosNamingServiceMBeanDescription +
+NamingService +
+NamingServiceMBeanDescription
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-summary.html new file mode 100644 index 0000000..2830749 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-summary.html @@ -0,0 +1,178 @@ + + + + + + +mx4j.tools.naming (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.naming +

+ + + + + + + + + + + + + +
+Interface Summary
CosNamingServiceMBeanManagement interface for the CosNamingService MBean.
NamingServiceMBeanManagement interface for the NamingService MBean.
+  + +

+ + + + + + + + + + + + + + + + + + + + + +
+Class Summary
CosNamingServiceAn MBean that wraps tnameserv.
CosNamingServiceMBeanDescriptionManagement interface descriptions for the CosNamingService MBean.
NamingServiceAn MBean that wraps rmiregistry.
NamingServiceMBeanDescriptionManagement interface descriptions for the NamingService MBean.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-tree.html new file mode 100644 index 0000000..f881385 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-tree.html @@ -0,0 +1,155 @@ + + + + + + +mx4j.tools.naming Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.naming +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-use.html new file mode 100644 index 0000000..e32a572 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/naming/package-use.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Package mx4j.tools.naming (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.naming

+
+ + + + + + + + + +
+Packages that use mx4j.tools.naming
mx4j.tools.naming  
+  +

+ + + + + + + + + + + +
+Classes in mx4j.tools.naming used by mx4j.tools.naming
CosNamingServiceMBean + +
+          Management interface for the CosNamingService MBean.
NamingServiceMBean + +
+          Management interface for the NamingService MBean.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractConnection.html new file mode 100644 index 0000000..6656cd1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractConnection.html @@ -0,0 +1,307 @@ + + + + + + +AbstractConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Class AbstractConnection

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractConnection
+
+
+
All Implemented Interfaces:
Connection
+
+
+
Direct Known Subclasses:
JMXConnectionHandler
+
+
+
+
public abstract class AbstractConnection
extends java.lang.Object
implements Connection
+ +

+Implementation of the Connection interface, to be used on the server-side end of the connection. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected AbstractConnection(java.lang.String connectionId, + ConnectionManager manager) + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidclose() + +
+          Closes this connection
+ java.lang.StringgetConnectionId() + +
+          Returns the connection ID as specified by JSR 160 specification
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AbstractConnection

+
+protected AbstractConnection(java.lang.String connectionId,
+                             ConnectionManager manager)
+
+
+ + + + + + + + +
+Method Detail
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
Description copied from interface: Connection
+
Closes this connection +

+

+
Specified by:
close in interface Connection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getConnectionId

+
+public java.lang.String getConnectionId()
+                                 throws java.io.IOException
+
+
Description copied from interface: Connection
+
Returns the connection ID as specified by JSR 160 specification +

+

+
Specified by:
getConnectionId in interface Connection
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractConnectionManager.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractConnectionManager.html new file mode 100644 index 0000000..cbc0a65 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractConnectionManager.html @@ -0,0 +1,595 @@ + + + + + + +AbstractConnectionManager (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Class AbstractConnectionManager

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractConnectionManager
+
+
+
All Implemented Interfaces:
ConnectionManager
+
+
+
Direct Known Subclasses:
HTTPConnectionManager
+
+
+
+
public abstract class AbstractConnectionManager
extends java.lang.Object
implements ConnectionManager
+ +

+Implementation of the ConnectionManager interface that implements emission of connection notifications, + authentication, and proper closing of connections. +

+ +

+

+
Version:
+
$Revision: 1.8 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected AbstractConnectionManager(AbstractJMXConnectorServer server, + java.util.Map environment) + +
+          Called by subclasses.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  javax.security.auth.Subjectauthenticate(java.lang.Object credentials) + +
+          Authenticates a Subject with the given credentials, by looking up a JMXAuthenticator + in the environment returned by getEnvironment().
+ voidclose() + +
+          Implemented using the template method pattern
+ voidcloseConnection(Connection connection) + +
+          Implemented using the template method pattern, handles the emission of the connection notification + of type "closed".
+ Connectionconnect(java.lang.Object credentials) + +
+          Implemented using the template method pattern, it handles authentication, creation of the connection ID, + emission of connection notification of type "opened".
+protected  java.lang.StringcreateConnectionID(javax.security.auth.Subject subject) + +
+          Returns a connection ID as specified by JSR 160.
+protected abstract  voiddoClose() + +
+          Closes this ConnectionManager but not the connections it manages
+protected abstract  voiddoCloseConnection(Connection connection) + +
+          Closes the given Connection.
+protected abstract  ConnectiondoConnect(java.lang.String connectionId, + javax.security.auth.Subject subject) + +
+          Template method to be implemented by subclasses; must return the server-side part of + a connection.
+protected  java.util.MapgetEnvironment() + +
+          Returns the environment passed when creating the JMXConnectorServer
+protected  java.security.AccessControlContextgetSecurityContext() + +
+          Returns a security context at the moment of creation of this ConnectionManager.
+protected  booleanisClosed() + +
+          Returns whether the close() method has been called.
+protected  voidsetJMXConnectorServer(AbstractJMXConnectorServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.tools.remote.ConnectionManager
getProtocol
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AbstractConnectionManager

+
+protected AbstractConnectionManager(AbstractJMXConnectorServer server,
+                                    java.util.Map environment)
+
+
Called by subclasses. +

+

Parameters:
server - The JMXConnectorServer that will emit connection notifications
environment - The environment passed when the JMXConnectorServer is created.
+ + + + + + + + +
+Method Detail
+ +

+setJMXConnectorServer

+
+protected void setJMXConnectorServer(AbstractJMXConnectorServer server)
+
+
+
+
+
+
+
+
+
+ +

+connect

+
+public Connection connect(java.lang.Object credentials)
+                   throws java.io.IOException,
+                          java.lang.SecurityException
+
+
Implemented using the template method pattern, it handles authentication, creation of the connection ID, + emission of connection notification of type "opened". +

+

+
Specified by:
connect in interface ConnectionManager
+
+
+
Parameters:
credentials - The credentials sent by the client to authenticate a subject. +
Returns:
A new client-specific connection. +
Throws: +
java.lang.SecurityException - If the authentication fails. +
java.io.IOException - If the connection cannot be created.
See Also:
doConnect(java.lang.String, javax.security.auth.Subject), +authenticate(java.lang.Object), +createConnectionID(javax.security.auth.Subject)
+
+
+
+ +

+createConnectionID

+
+protected java.lang.String createConnectionID(javax.security.auth.Subject subject)
+
+
Returns a connection ID as specified by JSR 160. +

+

+
+
+
+
Parameters:
subject - The authenticated Subject
+
+
+
+ +

+doConnect

+
+protected abstract Connection doConnect(java.lang.String connectionId,
+                                        javax.security.auth.Subject subject)
+                                 throws java.io.IOException
+
+
Template method to be implemented by subclasses; must return the server-side part of + a connection. + When an remote invocation arrives, it will lookup the corrispondent server-side part + of the connection and delegate the call to it. The server-side part of the connection + must then (eventually) call the MBeanServer to satisfy the request. +

+

+
+
+
+
Parameters:
connectionId - The connection ID for connection that is returned
subject - The authenticated Subject +
Returns:
The server-side part of a connection (with the given connection ID) +
Throws: +
java.io.IOException - If the connection cannot be created
+
+
+
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
Implemented using the template method pattern +

+

+
Specified by:
close in interface ConnectionManager
+
+
+ +
Throws: +
java.io.IOException
See Also:
doClose(), +closeConnection(mx4j.tools.remote.Connection)
+
+
+
+ +

+doClose

+
+protected abstract void doClose()
+                         throws java.io.IOException
+
+
Closes this ConnectionManager but not the connections it manages +

+

+
+
+
+ +
Throws: +
java.io.IOException - If this ConnectionManager cannot be closed
+
+
+
+ +

+closeConnection

+
+public void closeConnection(Connection connection)
+                     throws java.io.IOException
+
+
Implemented using the template method pattern, handles the emission of the connection notification + of type "closed". + This method is called both when closing the connector server and when closing a connector. +

+

+
Specified by:
closeConnection in interface ConnectionManager
+
+
+ +
Throws: +
java.io.IOException
See Also:
doCloseConnection(mx4j.tools.remote.Connection)
+
+
+
+ +

+doCloseConnection

+
+protected abstract void doCloseConnection(Connection connection)
+                                   throws java.io.IOException
+
+
Closes the given Connection. +

+

+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isClosed

+
+protected boolean isClosed()
+
+
Returns whether the close() method has been called. +

+

+
+
+
+
+
+
+
+ +

+getEnvironment

+
+protected java.util.Map getEnvironment()
+
+
Returns the environment passed when creating the JMXConnectorServer +

+

+
+
+
+
+
+
+
+ +

+getSecurityContext

+
+protected java.security.AccessControlContext getSecurityContext()
+
+
Returns a security context at the moment of creation of this ConnectionManager. + This security context is the restricting context that should be used when a call + from a remote client is invoked in a doPrivileged() block. +

+

+
+
+
+
+
+
+
+ +

+authenticate

+
+protected javax.security.auth.Subject authenticate(java.lang.Object credentials)
+                                            throws java.io.IOException,
+                                                   java.lang.SecurityException
+
+
Authenticates a Subject with the given credentials, by looking up a JMXAuthenticator + in the environment returned by getEnvironment(). +

+

+
+
+
+ +
Throws: +
java.io.IOException +
java.lang.SecurityException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractJMXConnector.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractJMXConnector.html new file mode 100644 index 0000000..bf06faf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractJMXConnector.html @@ -0,0 +1,718 @@ + + + + + + +AbstractJMXConnector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Class AbstractJMXConnector

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractJMXConnector
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnector, java.io.Serializable
+
+
+
Direct Known Subclasses:
HTTPConnector, LocalConnector
+
+
+
+
public abstract class AbstractJMXConnector
extends java.lang.Object
implements javax.management.remote.JMXConnector, java.io.Serializable
+ +

+Abstract implementation of the JMXConnector interface. + It gives support for emitting connection notifications and implements JMXConnector methods + using the template method pattern. +

+ +

+

+
Version:
+
$Revision: 1.8 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface javax.management.remote.JMXConnector
CREDENTIALS
+  + + + + + + + + + + + +
+Constructor Summary
+protected AbstractJMXConnector(javax.management.remote.JMXServiceURL address) + +
+          Creates a new JMXConnector that will connect to the given JMXServiceURL
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddConnectionNotificationListener(javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidclose() + +
+           
+ voidconnect() + +
+           
+ voidconnect(java.util.Map environment) + +
+           
+protected  ConnectionNotificationEmittercreateConnectionNotificationEmitter() + +
+          Creates a notification emitter used to emit connection notifications.
+protected abstract  voiddoClose() + +
+          Template method to be implemented by subclasses to close this JMXConnector
+protected abstract  voiddoConnect(java.util.Map environment) + +
+           
+protected abstract  javax.management.MBeanServerConnectiondoGetMBeanServerConnection(javax.security.auth.Subject delegate) + +
+          Template method to be implemented by subclasses to return an MBeanServerConnection + for the given delegate subject.
+protected  javax.management.remote.JMXServiceURLgetAddress() + +
+          Returns the JMXServiceURL this JMXConnector will connect to.
+protected  ConnectionNotificationEmittergetConnectionNotificationEmitter() + +
+           
+ javax.management.MBeanServerConnectiongetMBeanServerConnection() + +
+           
+ javax.management.MBeanServerConnectiongetMBeanServerConnection(javax.security.auth.Subject delegate) + +
+           
+protected  booleanisClosed() + +
+          Returns whether the close() method has been called.
+protected  booleanisConnected() + +
+          Returns whether the connect() or connect(Map) method has been called on this JMXConnector.
+ voidremoveConnectionNotificationListener(javax.management.NotificationListener listener) + +
+           
+ voidremoveConnectionNotificationListener(javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+protected  voidsendConnectionNotificationClosed() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface javax.management.remote.JMXConnector
getConnectionId
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AbstractJMXConnector

+
+protected AbstractJMXConnector(javax.management.remote.JMXServiceURL address)
+                        throws java.io.IOException
+
+
Creates a new JMXConnector that will connect to the given JMXServiceURL +

+

+ + + + + + + + +
+Method Detail
+ +

+getAddress

+
+protected javax.management.remote.JMXServiceURL getAddress()
+
+
Returns the JMXServiceURL this JMXConnector will connect to. +

+

+
+
+
+
+
+
+
+ +

+connect

+
+public void connect()
+             throws java.io.IOException,
+                    java.lang.SecurityException
+
+
+
Specified by:
connect in interface javax.management.remote.JMXConnector
+
+
+ +
Throws: +
java.io.IOException +
java.lang.SecurityException
+
+
+
+ +

+connect

+
+public void connect(java.util.Map environment)
+             throws java.io.IOException,
+                    java.lang.SecurityException
+
+
+
Specified by:
connect in interface javax.management.remote.JMXConnector
+
+
+ +
Throws: +
java.io.IOException +
java.lang.SecurityException
+
+
+
+ +

+doConnect

+
+protected abstract void doConnect(java.util.Map environment)
+                           throws java.io.IOException,
+                                  java.lang.SecurityException
+
+
+
+
+
+ +
Throws: +
java.io.IOException +
java.lang.SecurityException
+
+
+
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
+
Specified by:
close in interface javax.management.remote.JMXConnector
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+doClose

+
+protected abstract void doClose()
+                         throws java.io.IOException
+
+
Template method to be implemented by subclasses to close this JMXConnector +

+

+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanServerConnection

+
+public javax.management.MBeanServerConnection getMBeanServerConnection()
+                                                                throws java.io.IOException
+
+
+
Specified by:
getMBeanServerConnection in interface javax.management.remote.JMXConnector
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanServerConnection

+
+public javax.management.MBeanServerConnection getMBeanServerConnection(javax.security.auth.Subject delegate)
+                                                                throws java.io.IOException
+
+
+
Specified by:
getMBeanServerConnection in interface javax.management.remote.JMXConnector
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+doGetMBeanServerConnection

+
+protected abstract javax.management.MBeanServerConnection doGetMBeanServerConnection(javax.security.auth.Subject delegate)
+                                                                              throws java.io.IOException
+
+
Template method to be implemented by subclasses to return an MBeanServerConnection + for the given delegate subject. + This method should return an MBeanServerConnection that delegates method calls to a + JMXConnection (or an equivalent client side connection object). + The JMXConnection object to which calls are delegated can in turn be a chain of + objects that decorate the call performing some other operation; the final object in + the chain is the one that really communicates with the server side, and it is normally + called ClientInvoker. +

+

+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+addConnectionNotificationListener

+
+public void addConnectionNotificationListener(javax.management.NotificationListener listener,
+                                              javax.management.NotificationFilter filter,
+                                              java.lang.Object handback)
+
+
+
Specified by:
addConnectionNotificationListener in interface javax.management.remote.JMXConnector
+
+
+
+
+
+
+ +

+removeConnectionNotificationListener

+
+public void removeConnectionNotificationListener(javax.management.NotificationListener listener)
+                                          throws javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeConnectionNotificationListener in interface javax.management.remote.JMXConnector
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeConnectionNotificationListener

+
+public void removeConnectionNotificationListener(javax.management.NotificationListener listener,
+                                                 javax.management.NotificationFilter filter,
+                                                 java.lang.Object handback)
+                                          throws javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeConnectionNotificationListener in interface javax.management.remote.JMXConnector
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+sendConnectionNotificationClosed

+
+protected void sendConnectionNotificationClosed()
+
+
+
+
+
+
+
+
+
+ +

+createConnectionNotificationEmitter

+
+protected ConnectionNotificationEmitter createConnectionNotificationEmitter()
+
+
Creates a notification emitter used to emit connection notifications. + This method is called once per JMXConnector. +

+

+
+
+
+
+
+
+
+ +

+getConnectionNotificationEmitter

+
+protected ConnectionNotificationEmitter getConnectionNotificationEmitter()
+
+
+
+
+
+
+
+
+
+ +

+isConnected

+
+protected boolean isConnected()
+
+
Returns whether the connect() or connect(Map) method has been called on this JMXConnector. +

+

+
+
+
+
+
+
+
+ +

+isClosed

+
+protected boolean isClosed()
+
+
Returns whether the close() method has been called. +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractJMXConnectorServer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractJMXConnectorServer.html new file mode 100644 index 0000000..687fb7a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractJMXConnectorServer.html @@ -0,0 +1,593 @@ + + + + + + +AbstractJMXConnectorServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Class AbstractJMXConnectorServer

+
+java.lang.Object
+  extended byjavax.management.NotificationBroadcasterSupport
+      extended byjavax.management.remote.JMXConnectorServer
+          extended bymx4j.tools.remote.AbstractJMXConnectorServer
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerMBean, javax.management.MBeanRegistration, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
Direct Known Subclasses:
HTTPConnectorServer, LocalConnectorServer
+
+
+
+
public abstract class AbstractJMXConnectorServer
extends javax.management.remote.JMXConnectorServer
+ +

+Extends the implementation of JMXConnectorServer by implementing most + JMXConnectorServer methods following the JSR 160 specification and delegating + implementation specific operations using the template method pattern. +

+ +

+

+
Version:
+
$Revision: 1.8 $
+
See Also:
ConnectionManager
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class javax.management.remote.JMXConnectorServer
AUTHENTICATOR
+  + + + + + + + + + + +
+Constructor Summary
AbstractJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidconnectionClosed(java.lang.String connectionId, + java.lang.String message, + java.lang.Object userData) + +
+           
+ voidconnectionFailed(java.lang.String connectionId, + java.lang.String message, + java.lang.Object userData) + +
+           
+ voidconnectionOpened(java.lang.String connectionId, + java.lang.String message, + java.lang.Object userData) + +
+           
+protected abstract  voiddoStart() + +
+          Template method implemented by subclasses to start this JMXConnectorServer
+protected abstract  voiddoStop() + +
+          Template method implemented by subclasses to stop this JMXConnectorServer
+ javax.management.remote.JMXServiceURLgetAddress() + +
+           
+ java.util.MapgetAttributes() + +
+           
+protected  java.util.MapgetEnvironment() + +
+          Returns the environment Map as is, without removing non-serializable entries like getAttributes() does.
+protected  LoggergetLogger() + +
+           
+ booleanisActive() + +
+           
+protected  booleanisStopped() + +
+          Returns whether the stop() method of this JMXConnectorServer has been called.
+protected  voidsetAddress(javax.management.remote.JMXServiceURL url) + +
+          Sets the JMXServiceURL that represent the address of this JMXConnectorServer
+ voidstart() + +
+           
+ voidstop() + +
+           
+ + + + + + + +
Methods inherited from class javax.management.remote.JMXConnectorServer
getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister, setMBeanServerForwarder, toJMXConnector
+ + + + + + + +
Methods inherited from class javax.management.NotificationBroadcasterSupport
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AbstractJMXConnectorServer

+
+public AbstractJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                  java.util.Map environment,
+                                  javax.management.MBeanServer server)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getAddress

+
+public javax.management.remote.JMXServiceURL getAddress()
+
+
+
+
+
+
+ +

+setAddress

+
+protected void setAddress(javax.management.remote.JMXServiceURL url)
+
+
Sets the JMXServiceURL that represent the address of this JMXConnectorServer +

+

+
+
+
+
+ +

+getAttributes

+
+public java.util.Map getAttributes()
+
+
+
+
+
+
+ +

+getEnvironment

+
+protected java.util.Map getEnvironment()
+
+
Returns the environment Map as is, without removing non-serializable entries like getAttributes() does. +

+

+
+
+
+
+ +

+isActive

+
+public boolean isActive()
+
+
+
+
+
+
+ +

+isStopped

+
+protected boolean isStopped()
+
+
Returns whether the stop() method of this JMXConnectorServer has been called. +

+

+
+
+
+
+ +

+start

+
+public void start()
+           throws java.io.IOException,
+                  java.lang.IllegalStateException
+
+
+ +
Throws: +
java.io.IOException +
java.lang.IllegalStateException
+
+
+
+ +

+doStart

+
+protected abstract void doStart()
+                         throws java.io.IOException,
+                                java.lang.IllegalStateException
+
+
Template method implemented by subclasses to start this JMXConnectorServer +

+

+ +
Throws: +
java.io.IOException +
java.lang.IllegalStateException
+
+
+
+ +

+stop

+
+public void stop()
+          throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+doStop

+
+protected abstract void doStop()
+                        throws java.io.IOException
+
+
Template method implemented by subclasses to stop this JMXConnectorServer +

+

+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getLogger

+
+protected Logger getLogger()
+
+
+
+
+
+
+ +

+connectionOpened

+
+public void connectionOpened(java.lang.String connectionId,
+                             java.lang.String message,
+                             java.lang.Object userData)
+
+
+
+
+
+
+ +

+connectionClosed

+
+public void connectionClosed(java.lang.String connectionId,
+                             java.lang.String message,
+                             java.lang.Object userData)
+
+
+
+
+
+
+ +

+connectionFailed

+
+public void connectionFailed(java.lang.String connectionId,
+                             java.lang.String message,
+                             java.lang.Object userData)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractServerInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractServerInvoker.html new file mode 100644 index 0000000..8fdf3ef --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/AbstractServerInvoker.html @@ -0,0 +1,945 @@ + + + + + + +AbstractServerInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Class AbstractServerInvoker

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractServerInvoker
+
+
+
All Implemented Interfaces:
JMXConnection
+
+
+
Direct Known Subclasses:
HTTPServerInvoker
+
+
+
+
public abstract class AbstractServerInvoker
extends java.lang.Object
implements JMXConnection
+ +

+This class implements partially the JMXConnection interface to forward the calls + to an MBeanServerConnection object (hence the name 'invoker'). + It does not handle nor unmarshalling of arguments (and all related classloading + problems), nor remote notification mechanisms of any sort, which are left + to subclasses, which will implement them in a protocol specific way. + This class is the server-side counterpart of JMXConnectionMBeanServerConnection +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected AbstractServerInvoker(javax.management.MBeanServerConnection server) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + javax.management.ObjectName loaderName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName name, + java.lang.String attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName name, + java.lang.String[] attributes, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.StringgetDefaultDomain(javax.security.auth.Subject delegate) + +
+           
+ java.lang.String[]getDomains(javax.security.auth.Subject delegate) + +
+           
+ java.lang.IntegergetMBeanCount(javax.security.auth.Subject delegate) + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+protected  javax.management.MBeanServerConnectiongetServer() + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName name, + java.lang.String operationName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName name, + java.lang.String className, + javax.security.auth.Subject delegate) + +
+           
+ booleanisRegistered(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + javax.security.auth.Subject delegate) + +
+           
+ voidsetAttribute(javax.management.ObjectName name, + java.lang.Object attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName name, + java.lang.Object attributes, + javax.security.auth.Subject delegate) + +
+           
+ voidunregisterMBean(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.tools.remote.JMXConnection
close
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AbstractServerInvoker

+
+protected AbstractServerInvoker(javax.management.MBeanServerConnection server)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getServer

+
+protected javax.management.MBeanServerConnection getServer()
+
+
+
+
+
+
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException,
+                            java.io.IOException
+
+
+
Specified by:
unregisterMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException +
java.io.IOException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName name,
+                                                         javax.security.auth.Subject delegate)
+                                                  throws javax.management.InstanceNotFoundException,
+                                                         java.io.IOException
+
+
+
Specified by:
getObjectInstance in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName name,
+                                 java.lang.Object query,
+                                 javax.security.auth.Subject delegate)
+                          throws java.io.IOException
+
+
+
Specified by:
queryMBeans in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName name,
+                                java.lang.Object query,
+                                javax.security.auth.Subject delegate)
+                         throws java.io.IOException
+
+
+
Specified by:
queryNames in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws java.io.IOException
+
+
+
Specified by:
isRegistered in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount(javax.security.auth.Subject delegate)
+                                throws java.io.IOException
+
+
+
Specified by:
getMBeanCount in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName name,
+                                     java.lang.String attribute,
+                                     javax.security.auth.Subject delegate)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException,
+                                     java.io.IOException
+
+
+
Specified by:
getAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName name,
+                                                    java.lang.String[] attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
getAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName name,
+                         java.lang.Object attribute,
+                         javax.security.auth.Subject delegate)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException,
+                         java.io.IOException
+
+
+
Specified by:
setAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName name,
+                                                    java.lang.Object attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
setAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName name,
+                               java.lang.String operationName,
+                               java.lang.Object params,
+                               java.lang.String[] signature,
+                               javax.security.auth.Subject delegate)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException,
+                               java.io.IOException
+
+
+
Specified by:
invoke in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain(javax.security.auth.Subject delegate)
+                                  throws java.io.IOException
+
+
+
Specified by:
getDefaultDomain in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains(javax.security.auth.Subject delegate)
+                              throws java.io.IOException
+
+
+
Specified by:
getDomains in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName name,
+                                               javax.security.auth.Subject delegate)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException,
+                                               java.io.IOException
+
+
+
Specified by:
getMBeanInfo in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName name,
+                            java.lang.String className,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            java.io.IOException
+
+
+
Specified by:
isInstanceOf in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName name,
+                                    javax.management.ObjectName listener,
+                                    java.lang.Object filter,
+                                    java.lang.Object handback,
+                                    javax.security.auth.Subject delegate)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       java.lang.Object filter,
+                                       java.lang.Object handback,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/Connection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/Connection.html new file mode 100644 index 0000000..67dfff1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/Connection.html @@ -0,0 +1,254 @@ + + + + + + +Connection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Interface Connection

+
+
All Known Implementing Classes:
AbstractConnection
+
+
+
+
public interface Connection
+ +

+Represents a connection between a client and a server. + A connection has normally a client end and a server end. Both ends will be implemented in + a protocol specific way by JSR 160 protocol provider implementations. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidclose() + +
+          Closes this connection
+ java.lang.StringgetConnectionId() + +
+          Returns the connection ID as specified by JSR 160 specification
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
Closes this connection +

+

+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getConnectionId

+
+public java.lang.String getConnectionId()
+                                 throws java.io.IOException
+
+
Returns the connection ID as specified by JSR 160 specification +

+

+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/ConnectionManager.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/ConnectionManager.html new file mode 100644 index 0000000..6638c83 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/ConnectionManager.html @@ -0,0 +1,308 @@ + + + + + + +ConnectionManager (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Interface ConnectionManager

+
+
All Known Implementing Classes:
AbstractConnectionManager
+
+
+
+
public interface ConnectionManager
+ +

+A ConnectionManager is a server-side object that acts as the factory for new connections and + manages the authentication details. + A JMXConnectorServer delegates a ConnectionManager for the creation of connections, and a + ConnectionManager interacts with the JMXConnectorServer to emit connection notifications. + It is the first object contacted by a remote client to obtain a client-specific connection, that is, + a connection with a specific connection ID. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidclose() + +
+          Closes this ConnectionManager and all the opened connections it manages.
+ voidcloseConnection(Connection connection) + +
+          Closes the given Connection.
+ Connectionconnect(java.lang.Object credentials) + +
+          Factory method that creates connections that are specific to the client that invoked this method.
+ java.lang.StringgetProtocol() + +
+          Returns the protocol used by the corrispondent JMXConnectorServer.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+connect

+
+public Connection connect(java.lang.Object credentials)
+                   throws java.io.IOException,
+                          java.lang.SecurityException
+
+
Factory method that creates connections that are specific to the client that invoked this method. +

+

+
Parameters:
credentials - The credentials sent by the client to authenticate a subject. +
Returns:
A new client-specific connection. +
Throws: +
java.io.IOException - If the connection cannot be created. +
java.lang.SecurityException - If the authentication fails.
+
+
+
+ +

+getProtocol

+
+public java.lang.String getProtocol()
+
+
Returns the protocol used by the corrispondent JMXConnectorServer. +

+

+
+
+
+
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
Closes this ConnectionManager and all the opened connections it manages. +

+

+ +
Throws: +
java.io.IOException
See Also:
closeConnection(mx4j.tools.remote.Connection)
+
+
+
+ +

+closeConnection

+
+public void closeConnection(Connection connection)
+                     throws java.io.IOException
+
+
Closes the given Connection. + This method is called by the connection manager when it is closing the connections it manages, + or as a consequence of the fact that the client end of the connection has been closed. +

+

+ +
Throws: +
java.io.IOException
See Also:
Connection.close(), +close()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnection.html new file mode 100644 index 0000000..bd3fd1d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnection.html @@ -0,0 +1,825 @@ + + + + + + +JMXConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Interface JMXConnection

+
+
All Known Subinterfaces:
HTTPConnection, LocalConnection
+
+
+
All Known Implementing Classes:
AbstractServerInvoker, HTTPClientInvoker, HTTPConnectionHandler, HTTPServerInvoker, HTTPService, JMXConnectionHandler, SOAPClientInvoker
+
+
+
+
public interface JMXConnection
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidclose() + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + javax.management.ObjectName loaderName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName name, + java.lang.String attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName name, + java.lang.String[] attributes, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.StringgetDefaultDomain(javax.security.auth.Subject delegate) + +
+           
+ java.lang.String[]getDomains(javax.security.auth.Subject delegate) + +
+           
+ java.lang.IntegergetMBeanCount(javax.security.auth.Subject delegate) + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName name, + java.lang.String operationName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName name, + java.lang.String className, + javax.security.auth.Subject delegate) + +
+           
+ booleanisRegistered(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + javax.security.auth.Subject delegate) + +
+           
+ voidsetAttribute(javax.management.ObjectName name, + java.lang.Object attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName name, + java.lang.Object attributes, + javax.security.auth.Subject delegate) + +
+           
+ voidunregisterMBean(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException,
+                            java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException +
java.io.IOException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName name,
+                                                         javax.security.auth.Subject delegate)
+                                                  throws javax.management.InstanceNotFoundException,
+                                                         java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName name,
+                                 java.lang.Object query,
+                                 javax.security.auth.Subject delegate)
+                          throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName name,
+                                java.lang.Object query,
+                                javax.security.auth.Subject delegate)
+                         throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount(javax.security.auth.Subject delegate)
+                                throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName name,
+                                     java.lang.String attribute,
+                                     javax.security.auth.Subject delegate)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException,
+                                     java.io.IOException
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName name,
+                                                    java.lang.String[] attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName name,
+                         java.lang.Object attribute,
+                         javax.security.auth.Subject delegate)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException,
+                         java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName name,
+                                                    java.lang.Object attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName name,
+                               java.lang.String operationName,
+                               java.lang.Object params,
+                               java.lang.String[] signature,
+                               javax.security.auth.Subject delegate)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException,
+                               java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain(javax.security.auth.Subject delegate)
+                                  throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains(javax.security.auth.Subject delegate)
+                              throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName name,
+                                               javax.security.auth.Subject delegate)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException,
+                                               java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName name,
+                            java.lang.String className,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName name,
+                                    javax.management.ObjectName listener,
+                                    java.lang.Object filter,
+                                    java.lang.Object handback,
+                                    javax.security.auth.Subject delegate)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       java.lang.Object filter,
+                                       java.lang.Object handback,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnectionHandler.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnectionHandler.html new file mode 100644 index 0000000..074d29c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnectionHandler.html @@ -0,0 +1,998 @@ + + + + + + +JMXConnectionHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Class JMXConnectionHandler

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractConnection
+      extended bymx4j.tools.remote.JMXConnectionHandler
+
+
+
All Implemented Interfaces:
Connection, JMXConnection
+
+
+
Direct Known Subclasses:
HTTPConnectionHandler
+
+
+
+
public abstract class JMXConnectionHandler
extends AbstractConnection
implements JMXConnection
+ +

+This handler manages the operations related to the connection itself, such as + close(), AbstractConnection.getConnectionId(). +

+ It is important that this object is the outermost wrapper of the Connection objects + returned by ConnectionManager.connect(java.lang.Object) +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
JMXConnectionHandler(JMXConnection connection, + ConnectionManager manager, + java.lang.String connectionId) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidclose() + +
+          Overridden to allow nested connections to close and release their resources and, afterwards, + to close this connection with the JSR 160 semantic provided by the superclass.
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + javax.management.ObjectName loaderName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName name, + java.lang.String attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName name, + java.lang.String[] attributes, + javax.security.auth.Subject delegate) + +
+           
+protected  JMXConnectiongetConnection() + +
+           
+ java.lang.StringgetDefaultDomain(javax.security.auth.Subject delegate) + +
+           
+ java.lang.String[]getDomains(javax.security.auth.Subject delegate) + +
+           
+ java.lang.IntegergetMBeanCount(javax.security.auth.Subject delegate) + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName name, + java.lang.String operationName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+protected  booleanisClosed() + +
+           
+ booleanisInstanceOf(javax.management.ObjectName name, + java.lang.String className, + javax.security.auth.Subject delegate) + +
+           
+ booleanisRegistered(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + javax.security.auth.Subject delegate) + +
+           
+ voidsetAttribute(javax.management.ObjectName name, + java.lang.Object attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName name, + java.lang.Object attributes, + javax.security.auth.Subject delegate) + +
+           
+ voidunregisterMBean(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.AbstractConnection
getConnectionId
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+JMXConnectionHandler

+
+public JMXConnectionHandler(JMXConnection connection,
+                            ConnectionManager manager,
+                            java.lang.String connectionId)
+
+
+ + + + + + + + +
+Method Detail
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
Overridden to allow nested connections to close and release their resources and, afterwards, + to close this connection with the JSR 160 semantic provided by the superclass. +

+

+
Specified by:
close in interface JMXConnection
Overrides:
close in class AbstractConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isClosed

+
+protected boolean isClosed()
+
+
+
+
+
+
+
+
+
+ +

+getConnection

+
+protected JMXConnection getConnection()
+
+
+
+
+
+
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException,
+                            java.io.IOException
+
+
+
Specified by:
unregisterMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException +
java.io.IOException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName name,
+                                                         javax.security.auth.Subject delegate)
+                                                  throws javax.management.InstanceNotFoundException,
+                                                         java.io.IOException
+
+
+
Specified by:
getObjectInstance in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName name,
+                                 java.lang.Object query,
+                                 javax.security.auth.Subject delegate)
+                          throws java.io.IOException
+
+
+
Specified by:
queryMBeans in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName name,
+                                java.lang.Object query,
+                                javax.security.auth.Subject delegate)
+                         throws java.io.IOException
+
+
+
Specified by:
queryNames in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws java.io.IOException
+
+
+
Specified by:
isRegistered in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount(javax.security.auth.Subject delegate)
+                                throws java.io.IOException
+
+
+
Specified by:
getMBeanCount in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName name,
+                                     java.lang.String attribute,
+                                     javax.security.auth.Subject delegate)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException,
+                                     java.io.IOException
+
+
+
Specified by:
getAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName name,
+                                                    java.lang.String[] attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
getAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName name,
+                         java.lang.Object attribute,
+                         javax.security.auth.Subject delegate)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException,
+                         java.io.IOException
+
+
+
Specified by:
setAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName name,
+                                                    java.lang.Object attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
setAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName name,
+                               java.lang.String operationName,
+                               java.lang.Object params,
+                               java.lang.String[] signature,
+                               javax.security.auth.Subject delegate)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException,
+                               java.io.IOException
+
+
+
Specified by:
invoke in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain(javax.security.auth.Subject delegate)
+                                  throws java.io.IOException
+
+
+
Specified by:
getDefaultDomain in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains(javax.security.auth.Subject delegate)
+                              throws java.io.IOException
+
+
+
Specified by:
getDomains in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName name,
+                                               javax.security.auth.Subject delegate)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException,
+                                               java.io.IOException
+
+
+
Specified by:
getMBeanInfo in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName name,
+                            java.lang.String className,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            java.io.IOException
+
+
+
Specified by:
isInstanceOf in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName name,
+                                    javax.management.ObjectName listener,
+                                    java.lang.Object filter,
+                                    java.lang.Object handback,
+                                    javax.security.auth.Subject delegate)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       java.lang.Object filter,
+                                       java.lang.Object handback,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnectionMBeanServerConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnectionMBeanServerConnection.html new file mode 100644 index 0000000..8fb7b5a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/JMXConnectionMBeanServerConnection.html @@ -0,0 +1,1012 @@ + + + + + + +JMXConnectionMBeanServerConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Class JMXConnectionMBeanServerConnection

+
+java.lang.Object
+  extended bymx4j.tools.remote.JMXConnectionMBeanServerConnection
+
+
+
All Implemented Interfaces:
javax.management.MBeanServerConnection
+
+
+
Direct Known Subclasses:
HTTPConnectionMBeanServerConnection
+
+
+
+
public abstract class JMXConnectionMBeanServerConnection
extends java.lang.Object
implements javax.management.MBeanServerConnection
+ +

+Abstract implementation of an adapter that converts MBeanServerConnection calls + to JMXConnection calls. + It does not handle nor marshalling nor remote notifications, which are left to + subclasses. + This is the client side counterpart of AbstractServerInvoker +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected JMXConnectionMBeanServerConnection(JMXConnection connection, + javax.security.auth.Subject delegate) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + javax.management.ObjectName loaderName) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + javax.management.ObjectName loaderName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName objectName, + java.lang.String attribute) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName objectName, + java.lang.String[] attributes) + +
+           
+protected  JMXConnectiongetConnection() + +
+           
+ java.lang.StringgetDefaultDomain() + +
+           
+protected  javax.security.auth.SubjectgetDelegateSubject() + +
+           
+ java.lang.String[]getDomains() + +
+           
+ java.lang.IntegergetMBeanCount() + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName objectName) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName objectName) + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName objectName, + java.lang.String methodName, + java.lang.Object[] args, + java.lang.String[] parameters) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName objectName, + java.lang.String className) + +
+           
+ booleanisRegistered(javax.management.ObjectName objectName) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName patternName, + javax.management.QueryExp filter) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName patternName, + javax.management.QueryExp filter) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.ObjectName listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidsetAttribute(javax.management.ObjectName objectName, + javax.management.Attribute attribute) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName objectName, + javax.management.AttributeList attributes) + +
+           
+ voidunregisterMBean(javax.management.ObjectName objectName) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface javax.management.MBeanServerConnection
addNotificationListener, removeNotificationListener, removeNotificationListener
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+JMXConnectionMBeanServerConnection

+
+protected JMXConnectionMBeanServerConnection(JMXConnection connection,
+                                             javax.security.auth.Subject delegate)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getConnection

+
+protected JMXConnection getConnection()
+
+
+
+
+
+
+
+
+
+ +

+getDelegateSubject

+
+protected javax.security.auth.Subject getDelegateSubject()
+
+
+
+
+
+
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName objectName)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException,
+                                               java.io.IOException
+
+
+
Specified by:
getMBeanInfo in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName objectName,
+                            java.lang.String className)
+                     throws javax.management.InstanceNotFoundException,
+                            java.io.IOException
+
+
+
Specified by:
isInstanceOf in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains()
+                              throws java.io.IOException
+
+
+
Specified by:
getDomains in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain()
+                                  throws java.io.IOException
+
+
+
Specified by:
getDefaultDomain in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   java.lang.Object[] args,
+                                                   java.lang.String[] parameters)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   javax.management.ObjectName loaderName)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object[] args,
+                                                   java.lang.String[] parameters)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName objectName)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException,
+                            java.io.IOException
+
+
+
Specified by:
unregisterMBean in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException +
java.io.IOException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName objectName,
+                                     java.lang.String attribute)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException,
+                                     java.io.IOException
+
+
+
Specified by:
getAttribute in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName objectName,
+                         javax.management.Attribute attribute)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException,
+                         java.io.IOException
+
+
+
Specified by:
setAttribute in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName objectName,
+                                                    java.lang.String[] attributes)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
getAttributes in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName objectName,
+                                                    javax.management.AttributeList attributes)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
setAttributes in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName objectName,
+                               java.lang.String methodName,
+                               java.lang.Object[] args,
+                               java.lang.String[] parameters)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException,
+                               java.io.IOException
+
+
+
Specified by:
invoke in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount()
+                                throws java.io.IOException
+
+
+
Specified by:
getMBeanCount in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName objectName)
+                     throws java.io.IOException
+
+
+
Specified by:
isRegistered in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName objectName)
+                                                  throws javax.management.InstanceNotFoundException,
+                                                         java.io.IOException
+
+
+
Specified by:
getObjectInstance in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName patternName,
+                                 javax.management.QueryExp filter)
+                          throws java.io.IOException
+
+
+
Specified by:
queryMBeans in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName patternName,
+                                javax.management.QueryExp filter)
+                         throws java.io.IOException
+
+
+
Specified by:
queryNames in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName observed,
+                                    javax.management.ObjectName listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.ObjectName listener)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.ObjectName listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.MBeanServerConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/PasswordAuthenticator.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/PasswordAuthenticator.html new file mode 100644 index 0000000..f084e87 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/PasswordAuthenticator.html @@ -0,0 +1,421 @@ + + + + + + +PasswordAuthenticator (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Class PasswordAuthenticator

+
+java.lang.Object
+  extended bymx4j.tools.remote.PasswordAuthenticator
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXAuthenticator
+
+
+
+
public class PasswordAuthenticator
extends java.lang.Object
implements javax.management.remote.JMXAuthenticator
+ +

+Implementation of the JMXAuthenticator interface to be used on server side + to secure access to JMXConnectorServers.
+ Usage: +

+ JMXAuthenticator authenticator = new PasswordAuthenticator(new File("users.properties"));
+ Map environment = new HashMap();
+ environment.put(JMXConnectorServer.AUTHENTICATOR, authenticator);
+ JMXServiceURL address = new JMXServiceURL("rmi", "localhost", 0);
+ MBeanServer server = ...;
+ JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(address, environment, server);
+ 
+ The format of the users.properties file is that of a standard properties file:
+ <user>=<password>
+ where <password> can be stored in 2 ways: +
    +
  • Clear text: the password is written in clear text
  • +
  • Obfuscated text: the password is obfuscated
  • +
+ The obfuscated form can be obtained running this class as a main class: +
+ java -cp mx4j-remote.jar mx4j.tools.remote.PasswordAuthenticator
+ 
+ and following the instructions printed on the console. The output will be a string that should be + copy/pasted as the password into the properties file.
+ The obfuscated password is obtained by digesting the clear text password using a + MessageDigest algorithm, and then by Base64-encoding the resulting bytes.
+
+ On client side, you are allowed to connect to a server side secured with the PasswordAuthenticator + only if you provide the correct credentials: +
+ String[] credentials = new String[2];
+ // The user will travel as clear text
+ credentials[0] = "user";
+ // You may send the password in clear text, but it's better to obfuscate it
+ credentials[1] = PasswordAuthenticator.obfuscatePassword("password");
+ Map environment = new HashMap();
+ environment.put(JMXConnector.CREDENTIALS, credentials);
+ JMXServiceURL address = ...;
+ JMXConnector cntor = JMXConnectorFactory.connect(address, environment);
+ 
+ Note that obfuscating the passwords only works if the server side has been + setup with the PasswordAuthenticator. + However, the PasswordAuthenticator can be used with other JSR 160 implementations, such as Sun's reference + implementation. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Constructor Summary
PasswordAuthenticator(java.io.File passwordFile) + +
+          Creates a new PasswordAuthenticator that reads user/password pairs from the specified properties file.
PasswordAuthenticator(java.io.InputStream is) + +
+          Creates a new PasswordAuthenticator that reads user/password pairs from the specified InputStream.
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ javax.security.auth.Subjectauthenticate(java.lang.Object credentials) + +
+           
+static voidmain(java.lang.String[] args) + +
+          Runs this class as main class to obfuscate passwords.
+static java.lang.StringobfuscatePassword(java.lang.String password) + +
+          Obfuscates the given password using MD5 as digest algorithm
+static java.lang.StringobfuscatePassword(java.lang.String password, + java.lang.String algorithm) + +
+          Obfuscates the given password using the given digest algorithm.
+ Obfuscation consists of 2 steps: first the clear text password is digested + using the specified algorithm, then the resulting bytes are Base64-encoded.
+ For example, the obfuscated version of the password "password" is "OBF(MD5):X03MO1qnZdYdgyfeuILPmQ==" + or "OBF(SHA-1):W6ph5Mm5Pz8GgiULbPgzG37mj9g=".
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+PasswordAuthenticator

+
+public PasswordAuthenticator(java.io.File passwordFile)
+                      throws java.io.IOException
+
+
Creates a new PasswordAuthenticator that reads user/password pairs from the specified properties file. + The file format is described in the javadoc of this class. +

+

See Also:
obfuscatePassword(java.lang.String)
+
+ +

+PasswordAuthenticator

+
+public PasswordAuthenticator(java.io.InputStream is)
+                      throws java.io.IOException
+
+
Creates a new PasswordAuthenticator that reads user/password pairs from the specified InputStream. + The file format is described in the javadoc of this class. +

+

See Also:
obfuscatePassword(java.lang.String)
+ + + + + + + + +
+Method Detail
+ +

+main

+
+public static void main(java.lang.String[] args)
+                 throws java.lang.Exception
+
+
Runs this class as main class to obfuscate passwords. + When no arguments are provided, it prints out the usage. +

+

+
+
+
+ +
Throws: +
java.lang.Exception
See Also:
obfuscatePassword(java.lang.String,java.lang.String)
+
+
+
+ +

+obfuscatePassword

+
+public static java.lang.String obfuscatePassword(java.lang.String password)
+
+
Obfuscates the given password using MD5 as digest algorithm +

+

+
+
+
+
See Also:
obfuscatePassword(java.lang.String,java.lang.String)
+
+
+
+ +

+obfuscatePassword

+
+public static java.lang.String obfuscatePassword(java.lang.String password,
+                                                 java.lang.String algorithm)
+
+
Obfuscates the given password using the given digest algorithm.
+ Obfuscation consists of 2 steps: first the clear text password is digested + using the specified algorithm, then the resulting bytes are Base64-encoded.
+ For example, the obfuscated version of the password "password" is "OBF(MD5):X03MO1qnZdYdgyfeuILPmQ==" + or "OBF(SHA-1):W6ph5Mm5Pz8GgiULbPgzG37mj9g=".
+ OBF stands for "obfuscated", in parenthesis the algorithm used to digest the password. +

+

+
+
+
+
+
+
+
+ +

+authenticate

+
+public javax.security.auth.Subject authenticate(java.lang.Object credentials)
+                                         throws java.lang.SecurityException
+
+
+
Specified by:
authenticate in interface javax.management.remote.JMXAuthenticator
+
+
+ +
Throws: +
java.lang.SecurityException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/SubjectInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/SubjectInvoker.html new file mode 100644 index 0000000..f9b38fb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/SubjectInvoker.html @@ -0,0 +1,391 @@ + + + + + + +SubjectInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote +
+Class SubjectInvoker

+
+java.lang.Object
+  extended bymx4j.tools.remote.SubjectInvoker
+
+
+
All Implemented Interfaces:
java.lang.reflect.InvocationHandler
+
+
+
Direct Known Subclasses:
HTTPSubjectInvoker
+
+
+
+
public abstract class SubjectInvoker
extends java.lang.Object
implements java.lang.reflect.InvocationHandler
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected SubjectInvoker(java.lang.Object target, + javax.security.auth.Subject subject, + java.security.AccessControlContext context, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.Objectchain(java.lang.Object proxy, + java.lang.reflect.Method method, + java.lang.Object[] args) + +
+           
+protected  java.lang.ObjecthandleSpecialInvoke(java.lang.Object target, + java.lang.reflect.Method method, + java.lang.Object[] args) + +
+           
+ java.lang.Objectinvoke(java.lang.Object proxy, + java.lang.reflect.Method method, + java.lang.Object[] args) + +
+           
+protected  booleanisPlainInvoke(java.lang.reflect.Method method) + +
+           
+protected  java.lang.ObjectsubjectInvoke(java.lang.Object proxy, + java.lang.reflect.Method method, + java.lang.Object[] args, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SubjectInvoker

+
+protected SubjectInvoker(java.lang.Object target,
+                         javax.security.auth.Subject subject,
+                         java.security.AccessControlContext context,
+                         java.util.Map environment)
+
+
+ + + + + + + + +
+Method Detail
+ +

+isPlainInvoke

+
+protected boolean isPlainInvoke(java.lang.reflect.Method method)
+
+
+
+
+
+
+
+
+
+ +

+handleSpecialInvoke

+
+protected java.lang.Object handleSpecialInvoke(java.lang.Object target,
+                                               java.lang.reflect.Method method,
+                                               java.lang.Object[] args)
+                                        throws java.lang.Exception
+
+
+
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(java.lang.Object proxy,
+                               java.lang.reflect.Method method,
+                               java.lang.Object[] args)
+                        throws java.lang.Throwable
+
+
+
Specified by:
invoke in interface java.lang.reflect.InvocationHandler
+
+
+ +
Throws: +
java.lang.Throwable
+
+
+
+ +

+subjectInvoke

+
+protected java.lang.Object subjectInvoke(java.lang.Object proxy,
+                                         java.lang.reflect.Method method,
+                                         java.lang.Object[] args,
+                                         javax.security.auth.Subject delegate)
+                                  throws java.lang.Exception
+
+
+
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+chain

+
+protected java.lang.Object chain(java.lang.Object proxy,
+                                 java.lang.reflect.Method method,
+                                 java.lang.Object[] args)
+                          throws java.lang.Exception
+
+
+
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoClientInvoker.html new file mode 100644 index 0000000..60f5b96 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoClientInvoker.html @@ -0,0 +1,313 @@ + + + + + + +CauchoClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho +
+Class CauchoClientInvoker

+
+java.lang.Object
+  extended bymx4j.tools.remote.http.HTTPClientInvoker
+      extended bymx4j.tools.remote.caucho.CauchoClientInvoker
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
Direct Known Subclasses:
BurlapClientInvoker, HessianClientInvoker
+
+
+
+
public abstract class CauchoClientInvoker
extends HTTPClientInvoker
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
CauchoClientInvoker(java.lang.String endpoint) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected abstract  CauchoInputcreateCauchoInput(java.io.InputStream stream) + +
+           
+protected abstract  CauchoOutputcreateCauchoOutput(java.io.OutputStream stream) + +
+           
+protected  HTTPConnectiongetService() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPClientInvoker
addNotificationListener, addNotificationListener, close, connect, createMBean, createMBean, fetchNotifications, getAttribute, getAttributes, getConnectionId, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, removeNotificationListeners, setAttribute, setAttributes, unregisterMBean
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CauchoClientInvoker

+
+public CauchoClientInvoker(java.lang.String endpoint)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getService

+
+protected HTTPConnection getService()
+
+
+
Specified by:
getService in class HTTPClientInvoker
+
+
+
+
+
+
+ +

+createCauchoInput

+
+protected abstract CauchoInput createCauchoInput(java.io.InputStream stream)
+
+
+
+
+
+
+ +

+createCauchoOutput

+
+protected abstract CauchoOutput createCauchoOutput(java.io.OutputStream stream)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoInput.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoInput.html new file mode 100644 index 0000000..d3fa1ce --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoInput.html @@ -0,0 +1,361 @@ + + + + + + +CauchoInput (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho +
+Interface CauchoInput

+
+
+
public interface CauchoInput
+ +

+

+
Version:
+
$
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidcompleteCall() + +
+           
+ voidcompleteReply() + +
+           
+ java.lang.StringreadHeader() + +
+           
+ java.lang.StringreadMethod() + +
+           
+ java.lang.ObjectreadObject(java.lang.Class cls) + +
+          Reads and returns an object of the given class, + or a generic object if the class is null.
+ voidstartCall() + +
+           
+ voidstartReply() + +
+          Starts reading a reply of a previous call; if the call threw an exception, + the exception is read and re-thrown, otherwise the result of the call + can be read using readObject(java.lang.Class).
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+startCall

+
+public void startCall()
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+completeCall

+
+public void completeCall()
+                  throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+readHeader

+
+public java.lang.String readHeader()
+                            throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+readMethod

+
+public java.lang.String readMethod()
+                            throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+readObject

+
+public java.lang.Object readObject(java.lang.Class cls)
+                            throws java.io.IOException
+
+
Reads and returns an object of the given class, + or a generic object if the class is null. +

+

+ +
Throws: +
java.io.IOException
+
+
+
+ +

+startReply

+
+public void startReply()
+                throws java.lang.Exception
+
+
Starts reading a reply of a previous call; if the call threw an exception, + the exception is read and re-thrown, otherwise the result of the call + can be read using readObject(java.lang.Class). +

+

+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+completeReply

+
+public void completeReply()
+                   throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoOutput.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoOutput.html new file mode 100644 index 0000000..6ee4eff --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoOutput.html @@ -0,0 +1,373 @@ + + + + + + +CauchoOutput (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho +
+Interface CauchoOutput

+
+
+
public interface CauchoOutput
+ +

+

+
Version:
+
$
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidcompleteCall() + +
+           
+ voidcompleteReply() + +
+           
+ voidstartCall() + +
+           
+ voidstartReply() + +
+           
+ voidwriteFault(java.lang.Throwable fault) + +
+           
+ voidwriteHeader(java.lang.String header) + +
+           
+ voidwriteMethod(java.lang.String methodName) + +
+           
+ voidwriteObject(java.lang.Object object) + +
+           
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+startCall

+
+public void startCall()
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+completeCall

+
+public void completeCall()
+                  throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+startReply

+
+public void startReply()
+                throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+completeReply

+
+public void completeReply()
+                   throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeHeader

+
+public void writeHeader(java.lang.String header)
+                 throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeMethod

+
+public void writeMethod(java.lang.String methodName)
+                 throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeObject

+
+public void writeObject(java.lang.Object object)
+                 throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeFault

+
+public void writeFault(java.lang.Throwable fault)
+                throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoService.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoService.html new file mode 100644 index 0000000..ca323f0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoService.html @@ -0,0 +1,316 @@ + + + + + + +CauchoService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho +
+Class CauchoService

+
+java.lang.Object
+  extended bymx4j.tools.remote.http.HTTPService
+      extended bymx4j.tools.remote.caucho.CauchoService
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
+
public class CauchoService
extends HTTPService
+ +

+

+
Version:
+
$
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
CauchoService(java.lang.String protocol) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.StringfindConnectionId() + +
+           
+protected  java.lang.StringfindRequestURL() + +
+           
+protected  java.lang.StringgetProtocol() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPService
addConnection, addNotificationListener, addNotificationListener, close, connect, createMBean, createMBean, fetchNotifications, findConnection, findJMXServiceURL, getAttribute, getAttributes, getConnectionId, getDefaultDomain, getDomains, getLogger, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeConnection, removeNotificationListener, removeNotificationListener, removeNotificationListeners, setAttribute, setAttributes, unregisterMBean
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CauchoService

+
+public CauchoService(java.lang.String protocol)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getProtocol

+
+protected java.lang.String getProtocol()
+
+
+
Specified by:
getProtocol in class HTTPService
+
+
+
+
+
+
+ +

+findRequestURL

+
+protected java.lang.String findRequestURL()
+
+
+
Specified by:
findRequestURL in class HTTPService
+
+
+
+
+
+
+ +

+findConnectionId

+
+protected java.lang.String findConnectionId()
+
+
+
Specified by:
findConnectionId in class HTTPService
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoServlet.html new file mode 100644 index 0000000..b02eb09 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/CauchoServlet.html @@ -0,0 +1,529 @@ + + + + + + +CauchoServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho +
+Class CauchoServlet

+
+java.lang.Object
+  extended byjavax.servlet.GenericServlet
+      extended byjavax.servlet.http.HttpServlet
+          extended bymx4j.tools.remote.caucho.CauchoServlet
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
+
+
+
Direct Known Subclasses:
BurlapServlet, HessianServlet
+
+
+
+
public abstract class CauchoServlet
extends javax.servlet.http.HttpServlet
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
CauchoServlet() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected abstract  CauchoInputcreateCauchoInput(java.io.InputStream stream) + +
+           
+protected abstract  CauchoOutputcreateCauchoOutput(java.io.OutputStream stream) + +
+           
+protected  java.lang.reflect.MethodfindMethod(java.lang.String methodName) + +
+           
+protected abstract  java.lang.ObjectgetService() + +
+           
+ voidinit() + +
+           
+protected  voidinvoke(javax.servlet.http.HttpServletRequest request, + CauchoInput input, + CauchoOutput output) + +
+           
+protected  java.lang.Objectinvoke(java.lang.String url, + java.lang.Object target, + java.lang.reflect.Method method, + java.util.Map headers, + java.lang.Object[] values) + +
+           
+protected  java.lang.StringmangleMethodName(java.lang.reflect.Method method) + +
+           
+protected  voidmapMethods(java.lang.Class cls, + java.util.Map methods) + +
+           
+protected  java.lang.Object[]readArguments(CauchoInput input, + java.lang.reflect.Method method) + +
+           
+protected  java.util.MapreadHeaders(CauchoInput input) + +
+           
+protected  voidservice(javax.servlet.http.HttpServletRequest request, + javax.servlet.http.HttpServletResponse response) + +
+           
+ + + + + + + +
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
+ + + + + + + +
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CauchoServlet

+
+public CauchoServlet()
+
+
+ + + + + + + + +
+Method Detail
+ +

+init

+
+public void init()
+          throws javax.servlet.ServletException
+
+
+ +
Throws: +
javax.servlet.ServletException
+
+
+
+ +

+mapMethods

+
+protected void mapMethods(java.lang.Class cls,
+                          java.util.Map methods)
+
+
+
+
+
+
+ +

+findMethod

+
+protected java.lang.reflect.Method findMethod(java.lang.String methodName)
+
+
+
+
+
+
+ +

+mangleMethodName

+
+protected java.lang.String mangleMethodName(java.lang.reflect.Method method)
+
+
+
+
+
+
+ +

+service

+
+protected void service(javax.servlet.http.HttpServletRequest request,
+                       javax.servlet.http.HttpServletResponse response)
+                throws javax.servlet.ServletException,
+                       java.io.IOException
+
+
+ +
Throws: +
javax.servlet.ServletException +
java.io.IOException
+
+
+
+ +

+createCauchoInput

+
+protected abstract CauchoInput createCauchoInput(java.io.InputStream stream)
+
+
+
+
+
+
+ +

+createCauchoOutput

+
+protected abstract CauchoOutput createCauchoOutput(java.io.OutputStream stream)
+
+
+
+
+
+
+ +

+getService

+
+protected abstract java.lang.Object getService()
+
+
+
+
+
+
+ +

+invoke

+
+protected void invoke(javax.servlet.http.HttpServletRequest request,
+                      CauchoInput input,
+                      CauchoOutput output)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+readHeaders

+
+protected java.util.Map readHeaders(CauchoInput input)
+                             throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+readArguments

+
+protected java.lang.Object[] readArguments(CauchoInput input,
+                                           java.lang.reflect.Method method)
+                                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+invoke

+
+protected java.lang.Object invoke(java.lang.String url,
+                                  java.lang.Object target,
+                                  java.lang.reflect.Method method,
+                                  java.util.Map headers,
+                                  java.lang.Object[] values)
+                           throws java.lang.Exception
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/BurlapClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/BurlapClientInvoker.html new file mode 100644 index 0000000..4368aa4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/BurlapClientInvoker.html @@ -0,0 +1,304 @@ + + + + + + +BurlapClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho.burlap +
+Class BurlapClientInvoker

+
+java.lang.Object
+  extended bymx4j.tools.remote.http.HTTPClientInvoker
+      extended bymx4j.tools.remote.caucho.CauchoClientInvoker
+          extended bymx4j.tools.remote.caucho.burlap.BurlapClientInvoker
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
+
public class BurlapClientInvoker
extends CauchoClientInvoker
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
BurlapClientInvoker(java.lang.String endpoint) + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  CauchoInputcreateCauchoInput(java.io.InputStream stream) + +
+           
+protected  CauchoOutputcreateCauchoOutput(java.io.OutputStream stream) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.caucho.CauchoClientInvoker
getService
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPClientInvoker
addNotificationListener, addNotificationListener, close, connect, createMBean, createMBean, fetchNotifications, getAttribute, getAttributes, getConnectionId, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, removeNotificationListeners, setAttribute, setAttributes, unregisterMBean
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+BurlapClientInvoker

+
+public BurlapClientInvoker(java.lang.String endpoint)
+
+
+ + + + + + + + +
+Method Detail
+ +

+createCauchoInput

+
+protected CauchoInput createCauchoInput(java.io.InputStream stream)
+
+
+
Specified by:
createCauchoInput in class CauchoClientInvoker
+
+
+
+
+
+
+ +

+createCauchoOutput

+
+protected CauchoOutput createCauchoOutput(java.io.OutputStream stream)
+
+
+
Specified by:
createCauchoOutput in class CauchoClientInvoker
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/BurlapServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/BurlapServlet.html new file mode 100644 index 0000000..1d25cfd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/BurlapServlet.html @@ -0,0 +1,402 @@ + + + + + + +BurlapServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho.burlap +
+Class BurlapServlet

+
+java.lang.Object
+  extended byjavax.servlet.GenericServlet
+      extended byjavax.servlet.http.HttpServlet
+          extended bymx4j.tools.remote.caucho.CauchoServlet
+              extended bymx4j.tools.remote.caucho.burlap.BurlapServlet
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
+
+
+
Direct Known Subclasses:
SSLBurlapServlet
+
+
+
+
public class BurlapServlet
extends CauchoServlet
+ +

+

+
Version:
+
$
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
BurlapServlet() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  CauchoInputcreateCauchoInput(java.io.InputStream stream) + +
+           
+protected  CauchoOutputcreateCauchoOutput(java.io.OutputStream stream) + +
+           
+protected  CauchoServicecreateService() + +
+           
+ voiddestroy() + +
+           
+protected  java.lang.ObjectgetService() + +
+           
+ voidinit() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.caucho.CauchoServlet
findMethod, invoke, invoke, mangleMethodName, mapMethods, readArguments, readHeaders, service
+ + + + + + + +
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
+ + + + + + + +
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+BurlapServlet

+
+public BurlapServlet()
+
+
+ + + + + + + + +
+Method Detail
+ +

+init

+
+public void init()
+          throws javax.servlet.ServletException
+
+
+
Overrides:
init in class CauchoServlet
+
+
+ +
Throws: +
javax.servlet.ServletException
+
+
+
+ +

+createService

+
+protected CauchoService createService()
+
+
+
+
+
+
+ +

+destroy

+
+public void destroy()
+
+
+
+
+
+
+ +

+getService

+
+protected java.lang.Object getService()
+
+
+
Specified by:
getService in class CauchoServlet
+
+
+
+
+
+
+ +

+createCauchoInput

+
+protected CauchoInput createCauchoInput(java.io.InputStream stream)
+
+
+
Specified by:
createCauchoInput in class CauchoServlet
+
+
+
+
+
+
+ +

+createCauchoOutput

+
+protected CauchoOutput createCauchoOutput(java.io.OutputStream stream)
+
+
+
Specified by:
createCauchoOutput in class CauchoServlet
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/SSLBurlapServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/SSLBurlapServlet.html new file mode 100644 index 0000000..dc3fc3c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/SSLBurlapServlet.html @@ -0,0 +1,302 @@ + + + + + + +SSLBurlapServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho.burlap +
+Class SSLBurlapServlet

+
+java.lang.Object
+  extended byjavax.servlet.GenericServlet
+      extended byjavax.servlet.http.HttpServlet
+          extended bymx4j.tools.remote.caucho.CauchoServlet
+              extended bymx4j.tools.remote.caucho.burlap.BurlapServlet
+                  extended bymx4j.tools.remote.caucho.burlap.SSLBurlapServlet
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
+
+
+
+
public class SSLBurlapServlet
extends BurlapServlet
+ +

+

+
Version:
+
$Revision: 1.1 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SSLBurlapServlet() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  CauchoServicecreateService() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.caucho.burlap.BurlapServlet
createCauchoInput, createCauchoOutput, destroy, getService, init
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.caucho.CauchoServlet
findMethod, invoke, invoke, mangleMethodName, mapMethods, readArguments, readHeaders, service
+ + + + + + + +
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
+ + + + + + + +
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SSLBurlapServlet

+
+public SSLBurlapServlet()
+
+
+ + + + + + + + +
+Method Detail
+ +

+createService

+
+protected CauchoService createService()
+
+
+
Overrides:
createService in class BurlapServlet
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/BurlapClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/BurlapClientInvoker.html new file mode 100644 index 0000000..a64c043 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/BurlapClientInvoker.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.burlap.BurlapClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.burlap.BurlapClientInvoker

+
+No usage of mx4j.tools.remote.caucho.burlap.BurlapClientInvoker +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/BurlapServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/BurlapServlet.html new file mode 100644 index 0000000..a7d872e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/BurlapServlet.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.burlap.BurlapServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.burlap.BurlapServlet

+
+ + + + + + + + + +
+Packages that use BurlapServlet
mx4j.tools.remote.caucho.burlap  
+  +

+ + + + + +
+Uses of BurlapServlet in mx4j.tools.remote.caucho.burlap
+  +

+ + + + + + + + + +
Subclasses of BurlapServlet in mx4j.tools.remote.caucho.burlap
+ classSSLBurlapServlet + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/SSLBurlapServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/SSLBurlapServlet.html new file mode 100644 index 0000000..82dde47 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/class-use/SSLBurlapServlet.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.burlap.SSLBurlapServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.burlap.SSLBurlapServlet

+
+No usage of mx4j.tools.remote.caucho.burlap.SSLBurlapServlet +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-frame.html new file mode 100644 index 0000000..68b8f1a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-frame.html @@ -0,0 +1,36 @@ + + + + + + +mx4j.tools.remote.caucho.burlap (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.caucho.burlap + + + + +
+Classes  + +
+BurlapClientInvoker +
+BurlapServlet +
+SSLBurlapServlet
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-summary.html new file mode 100644 index 0000000..c8ef2dd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-summary.html @@ -0,0 +1,156 @@ + + + + + + +mx4j.tools.remote.caucho.burlap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.caucho.burlap +

+ + + + + + + + + + + + + + + + + +
+Class Summary
BurlapClientInvoker 
BurlapServlet 
SSLBurlapServlet 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-tree.html new file mode 100644 index 0000000..c46a982 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-tree.html @@ -0,0 +1,160 @@ + + + + + + +mx4j.tools.remote.caucho.burlap Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.caucho.burlap +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class javax.servlet.GenericServlet (implements java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig) +
        +
      • class javax.servlet.http.HttpServlet (implements java.io.Serializable) + +
      +
    • class mx4j.tools.remote.http.HTTPClientInvoker (implements mx4j.tools.remote.http.HTTPConnection) + +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-use.html new file mode 100644 index 0000000..637fbea --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/burlap/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.tools.remote.caucho.burlap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.caucho.burlap

+
+ + + + + + + + + +
+Packages that use mx4j.tools.remote.caucho.burlap
mx4j.tools.remote.caucho.burlap  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote.caucho.burlap used by mx4j.tools.remote.caucho.burlap
BurlapServlet + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoClientInvoker.html new file mode 100644 index 0000000..14133c4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoClientInvoker.html @@ -0,0 +1,201 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.CauchoClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.CauchoClientInvoker

+
+ + + + + + + + + + + + + +
+Packages that use CauchoClientInvoker
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
+  +

+ + + + + +
+Uses of CauchoClientInvoker in mx4j.tools.remote.caucho.burlap
+  +

+ + + + + + + + + +
Subclasses of CauchoClientInvoker in mx4j.tools.remote.caucho.burlap
+ classBurlapClientInvoker + +
+           
+  +

+ + + + + +
+Uses of CauchoClientInvoker in mx4j.tools.remote.caucho.hessian
+  +

+ + + + + + + + + +
Subclasses of CauchoClientInvoker in mx4j.tools.remote.caucho.hessian
+ classHessianClientInvoker + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoInput.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoInput.html new file mode 100644 index 0000000..c58c64a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoInput.html @@ -0,0 +1,289 @@ + + + + + + +Uses of Interface mx4j.tools.remote.caucho.CauchoInput (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.remote.caucho.CauchoInput

+
+ + + + + + + + + + + + + + + + + +
+Packages that use CauchoInput
mx4j.tools.remote.caucho  
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
+  +

+ + + + + +
+Uses of CauchoInput in mx4j.tools.remote.caucho
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.caucho that return CauchoInput
+protected abstract  CauchoInputCauchoServlet.createCauchoInput(java.io.InputStream stream) + +
+           
+protected abstract  CauchoInputCauchoClientInvoker.createCauchoInput(java.io.InputStream stream) + +
+           
+  +

+ + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.remote.caucho with parameters of type CauchoInput
+protected  voidCauchoServlet.invoke(javax.servlet.http.HttpServletRequest request, + CauchoInput input, + CauchoOutput output) + +
+           
+protected  java.util.MapCauchoServlet.readHeaders(CauchoInput input) + +
+           
+protected  java.lang.Object[]CauchoServlet.readArguments(CauchoInput input, + java.lang.reflect.Method method) + +
+           
+  +

+ + + + + +
+Uses of CauchoInput in mx4j.tools.remote.caucho.burlap
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.caucho.burlap that return CauchoInput
+protected  CauchoInputBurlapServlet.createCauchoInput(java.io.InputStream stream) + +
+           
+protected  CauchoInputBurlapClientInvoker.createCauchoInput(java.io.InputStream stream) + +
+           
+  +

+ + + + + +
+Uses of CauchoInput in mx4j.tools.remote.caucho.hessian
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.caucho.hessian that return CauchoInput
+protected  CauchoInputHessianServlet.createCauchoInput(java.io.InputStream stream) + +
+           
+protected  CauchoInputHessianClientInvoker.createCauchoInput(java.io.InputStream stream) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoOutput.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoOutput.html new file mode 100644 index 0000000..aa1c644 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoOutput.html @@ -0,0 +1,272 @@ + + + + + + +Uses of Interface mx4j.tools.remote.caucho.CauchoOutput (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.remote.caucho.CauchoOutput

+
+ + + + + + + + + + + + + + + + + +
+Packages that use CauchoOutput
mx4j.tools.remote.caucho  
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
+  +

+ + + + + +
+Uses of CauchoOutput in mx4j.tools.remote.caucho
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.caucho that return CauchoOutput
+protected abstract  CauchoOutputCauchoServlet.createCauchoOutput(java.io.OutputStream stream) + +
+           
+protected abstract  CauchoOutputCauchoClientInvoker.createCauchoOutput(java.io.OutputStream stream) + +
+           
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.caucho with parameters of type CauchoOutput
+protected  voidCauchoServlet.invoke(javax.servlet.http.HttpServletRequest request, + CauchoInput input, + CauchoOutput output) + +
+           
+  +

+ + + + + +
+Uses of CauchoOutput in mx4j.tools.remote.caucho.burlap
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.caucho.burlap that return CauchoOutput
+protected  CauchoOutputBurlapServlet.createCauchoOutput(java.io.OutputStream stream) + +
+           
+protected  CauchoOutputBurlapClientInvoker.createCauchoOutput(java.io.OutputStream stream) + +
+           
+  +

+ + + + + +
+Uses of CauchoOutput in mx4j.tools.remote.caucho.hessian
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.caucho.hessian that return CauchoOutput
+protected  CauchoOutputHessianServlet.createCauchoOutput(java.io.OutputStream stream) + +
+           
+protected  CauchoOutputHessianClientInvoker.createCauchoOutput(java.io.OutputStream stream) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoService.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoService.html new file mode 100644 index 0000000..5c6708e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoService.html @@ -0,0 +1,217 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.CauchoService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.CauchoService

+
+ + + + + + + + + + + + + +
+Packages that use CauchoService
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
+  +

+ + + + + +
+Uses of CauchoService in mx4j.tools.remote.caucho.burlap
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.caucho.burlap that return CauchoService
+protected  CauchoServiceSSLBurlapServlet.createService() + +
+           
+protected  CauchoServiceBurlapServlet.createService() + +
+           
+  +

+ + + + + +
+Uses of CauchoService in mx4j.tools.remote.caucho.hessian
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.caucho.hessian that return CauchoService
+protected  CauchoServiceSSLHessianServlet.createService() + +
+           
+protected  CauchoServiceHessianServlet.createService() + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoServlet.html new file mode 100644 index 0000000..5da3cd6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/class-use/CauchoServlet.html @@ -0,0 +1,217 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.CauchoServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.CauchoServlet

+
+ + + + + + + + + + + + + +
+Packages that use CauchoServlet
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
+  +

+ + + + + +
+Uses of CauchoServlet in mx4j.tools.remote.caucho.burlap
+  +

+ + + + + + + + + + + + + +
Subclasses of CauchoServlet in mx4j.tools.remote.caucho.burlap
+ classBurlapServlet + +
+           
+ classSSLBurlapServlet + +
+           
+  +

+ + + + + +
+Uses of CauchoServlet in mx4j.tools.remote.caucho.hessian
+  +

+ + + + + + + + + + + + + +
Subclasses of CauchoServlet in mx4j.tools.remote.caucho.hessian
+ classHessianServlet + +
+           
+ classSSLHessianServlet + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/HessianClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/HessianClientInvoker.html new file mode 100644 index 0000000..eac7203 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/HessianClientInvoker.html @@ -0,0 +1,304 @@ + + + + + + +HessianClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho.hessian +
+Class HessianClientInvoker

+
+java.lang.Object
+  extended bymx4j.tools.remote.http.HTTPClientInvoker
+      extended bymx4j.tools.remote.caucho.CauchoClientInvoker
+          extended bymx4j.tools.remote.caucho.hessian.HessianClientInvoker
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
+
public class HessianClientInvoker
extends CauchoClientInvoker
+ +

+

+
Version:
+
$
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HessianClientInvoker(java.lang.String endpoint) + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  CauchoInputcreateCauchoInput(java.io.InputStream stream) + +
+           
+protected  CauchoOutputcreateCauchoOutput(java.io.OutputStream stream) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.caucho.CauchoClientInvoker
getService
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPClientInvoker
addNotificationListener, addNotificationListener, close, connect, createMBean, createMBean, fetchNotifications, getAttribute, getAttributes, getConnectionId, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, removeNotificationListeners, setAttribute, setAttributes, unregisterMBean
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HessianClientInvoker

+
+public HessianClientInvoker(java.lang.String endpoint)
+
+
+ + + + + + + + +
+Method Detail
+ +

+createCauchoInput

+
+protected CauchoInput createCauchoInput(java.io.InputStream stream)
+
+
+
Specified by:
createCauchoInput in class CauchoClientInvoker
+
+
+
+
+
+
+ +

+createCauchoOutput

+
+protected CauchoOutput createCauchoOutput(java.io.OutputStream stream)
+
+
+
Specified by:
createCauchoOutput in class CauchoClientInvoker
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/HessianServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/HessianServlet.html new file mode 100644 index 0000000..57f96e2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/HessianServlet.html @@ -0,0 +1,402 @@ + + + + + + +HessianServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho.hessian +
+Class HessianServlet

+
+java.lang.Object
+  extended byjavax.servlet.GenericServlet
+      extended byjavax.servlet.http.HttpServlet
+          extended bymx4j.tools.remote.caucho.CauchoServlet
+              extended bymx4j.tools.remote.caucho.hessian.HessianServlet
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
+
+
+
Direct Known Subclasses:
SSLHessianServlet
+
+
+
+
public class HessianServlet
extends CauchoServlet
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HessianServlet() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  CauchoInputcreateCauchoInput(java.io.InputStream stream) + +
+           
+protected  CauchoOutputcreateCauchoOutput(java.io.OutputStream stream) + +
+           
+protected  CauchoServicecreateService() + +
+           
+ voiddestroy() + +
+           
+protected  java.lang.ObjectgetService() + +
+           
+ voidinit() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.caucho.CauchoServlet
findMethod, invoke, invoke, mangleMethodName, mapMethods, readArguments, readHeaders, service
+ + + + + + + +
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
+ + + + + + + +
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HessianServlet

+
+public HessianServlet()
+
+
+ + + + + + + + +
+Method Detail
+ +

+init

+
+public void init()
+          throws javax.servlet.ServletException
+
+
+
Overrides:
init in class CauchoServlet
+
+
+ +
Throws: +
javax.servlet.ServletException
+
+
+
+ +

+createService

+
+protected CauchoService createService()
+
+
+
+
+
+
+ +

+destroy

+
+public void destroy()
+
+
+
+
+
+
+ +

+getService

+
+protected java.lang.Object getService()
+
+
+
Specified by:
getService in class CauchoServlet
+
+
+
+
+
+
+ +

+createCauchoInput

+
+protected CauchoInput createCauchoInput(java.io.InputStream stream)
+
+
+
Specified by:
createCauchoInput in class CauchoServlet
+
+
+
+
+
+
+ +

+createCauchoOutput

+
+protected CauchoOutput createCauchoOutput(java.io.OutputStream stream)
+
+
+
Specified by:
createCauchoOutput in class CauchoServlet
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/SSLHessianServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/SSLHessianServlet.html new file mode 100644 index 0000000..3478969 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/SSLHessianServlet.html @@ -0,0 +1,302 @@ + + + + + + +SSLHessianServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho.hessian +
+Class SSLHessianServlet

+
+java.lang.Object
+  extended byjavax.servlet.GenericServlet
+      extended byjavax.servlet.http.HttpServlet
+          extended bymx4j.tools.remote.caucho.CauchoServlet
+              extended bymx4j.tools.remote.caucho.hessian.HessianServlet
+                  extended bymx4j.tools.remote.caucho.hessian.SSLHessianServlet
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
+
+
+
+
public class SSLHessianServlet
extends HessianServlet
+ +

+

+
Version:
+
$Revision: 1.1 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SSLHessianServlet() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  CauchoServicecreateService() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.caucho.hessian.HessianServlet
createCauchoInput, createCauchoOutput, destroy, getService, init
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.caucho.CauchoServlet
findMethod, invoke, invoke, mangleMethodName, mapMethods, readArguments, readHeaders, service
+ + + + + + + +
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
+ + + + + + + +
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SSLHessianServlet

+
+public SSLHessianServlet()
+
+
+ + + + + + + + +
+Method Detail
+ +

+createService

+
+protected CauchoService createService()
+
+
+
Overrides:
createService in class HessianServlet
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/HessianClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/HessianClientInvoker.html new file mode 100644 index 0000000..1ca5c03 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/HessianClientInvoker.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.hessian.HessianClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.hessian.HessianClientInvoker

+
+No usage of mx4j.tools.remote.caucho.hessian.HessianClientInvoker +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/HessianServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/HessianServlet.html new file mode 100644 index 0000000..babf188 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/HessianServlet.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.hessian.HessianServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.hessian.HessianServlet

+
+ + + + + + + + + +
+Packages that use HessianServlet
mx4j.tools.remote.caucho.hessian  
+  +

+ + + + + +
+Uses of HessianServlet in mx4j.tools.remote.caucho.hessian
+  +

+ + + + + + + + + +
Subclasses of HessianServlet in mx4j.tools.remote.caucho.hessian
+ classSSLHessianServlet + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/SSLHessianServlet.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/SSLHessianServlet.html new file mode 100644 index 0000000..c014d49 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/class-use/SSLHessianServlet.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.hessian.SSLHessianServlet (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.hessian.SSLHessianServlet

+
+No usage of mx4j.tools.remote.caucho.hessian.SSLHessianServlet +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-frame.html new file mode 100644 index 0000000..e79a835 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-frame.html @@ -0,0 +1,36 @@ + + + + + + +mx4j.tools.remote.caucho.hessian (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.caucho.hessian + + + + +
+Classes  + +
+HessianClientInvoker +
+HessianServlet +
+SSLHessianServlet
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-summary.html new file mode 100644 index 0000000..3e001fc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-summary.html @@ -0,0 +1,156 @@ + + + + + + +mx4j.tools.remote.caucho.hessian (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.caucho.hessian +

+ + + + + + + + + + + + + + + + + +
+Class Summary
HessianClientInvoker 
HessianServlet 
SSLHessianServlet 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-tree.html new file mode 100644 index 0000000..be52051 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-tree.html @@ -0,0 +1,160 @@ + + + + + + +mx4j.tools.remote.caucho.hessian Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.caucho.hessian +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class javax.servlet.GenericServlet (implements java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig) +
        +
      • class javax.servlet.http.HttpServlet (implements java.io.Serializable) + +
      +
    • class mx4j.tools.remote.http.HTTPClientInvoker (implements mx4j.tools.remote.http.HTTPConnection) + +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-use.html new file mode 100644 index 0000000..353f2d0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/hessian/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.tools.remote.caucho.hessian (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.caucho.hessian

+
+ + + + + + + + + +
+Packages that use mx4j.tools.remote.caucho.hessian
mx4j.tools.remote.caucho.hessian  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote.caucho.hessian used by mx4j.tools.remote.caucho.hessian
HessianServlet + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-frame.html new file mode 100644 index 0000000..f38ff50 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-frame.html @@ -0,0 +1,49 @@ + + + + + + +mx4j.tools.remote.caucho (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.caucho + + + + +
+Interfaces  + +
+CauchoInput +
+CauchoOutput
+ + + + + + +
+Classes  + +
+CauchoClientInvoker +
+CauchoService +
+CauchoServlet
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-summary.html new file mode 100644 index 0000000..394747b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-summary.html @@ -0,0 +1,174 @@ + + + + + + +mx4j.tools.remote.caucho (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.caucho +

+ + + + + + + + + + + + + +
+Interface Summary
CauchoInput 
CauchoOutput 
+  + +

+ + + + + + + + + + + + + + + + + +
+Class Summary
CauchoClientInvoker 
CauchoService 
CauchoServlet 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-tree.html new file mode 100644 index 0000000..919bd53 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-tree.html @@ -0,0 +1,162 @@ + + + + + + +mx4j.tools.remote.caucho Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.caucho +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class javax.servlet.GenericServlet (implements java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig) +
        +
      • class javax.servlet.http.HttpServlet (implements java.io.Serializable) + +
      +
    • class mx4j.tools.remote.http.HTTPClientInvoker (implements mx4j.tools.remote.http.HTTPConnection) + +
    • class mx4j.tools.remote.http.HTTPService (implements mx4j.tools.remote.http.HTTPConnection) + +
    +
+

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-use.html new file mode 100644 index 0000000..a5721dd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/package-use.html @@ -0,0 +1,254 @@ + + + + + + +Uses of Package mx4j.tools.remote.caucho (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.caucho

+
+ + + + + + + + + + + + + + + + + +
+Packages that use mx4j.tools.remote.caucho
mx4j.tools.remote.caucho  
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
+  +

+ + + + + + + + + + + +
+Classes in mx4j.tools.remote.caucho used by mx4j.tools.remote.caucho
CauchoInput + +
+           
CauchoOutput + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.tools.remote.caucho used by mx4j.tools.remote.caucho.burlap
CauchoClientInvoker + +
+           
CauchoInput + +
+           
CauchoOutput + +
+           
CauchoService + +
+           
CauchoServlet + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.tools.remote.caucho used by mx4j.tools.remote.caucho.hessian
CauchoClientInvoker + +
+           
CauchoInput + +
+           
CauchoOutput + +
+           
CauchoService + +
+           
CauchoServlet + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/JMXSerializerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/JMXSerializerFactory.html new file mode 100644 index 0000000..36b4377 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/JMXSerializerFactory.html @@ -0,0 +1,301 @@ + + + + + + +JMXSerializerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.caucho.serialization +
+Class JMXSerializerFactory

+
+java.lang.Object
+  extended bycom.caucho.hessian.io.SerializerFactory
+      extended bymx4j.tools.remote.caucho.serialization.JMXSerializerFactory
+
+
+
+
public class JMXSerializerFactory
extends com.caucho.hessian.io.SerializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class com.caucho.hessian.io.SerializerFactory
_defaultSerializer
+  + + + + + + + + + + +
+Constructor Summary
JMXSerializerFactory() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  com.caucho.hessian.io.DeserializergetDefaultDeserializer(java.lang.Class cls) + +
+           
+protected  com.caucho.hessian.io.SerializergetDefaultSerializer(java.lang.Class cls) + +
+           
+ + + + + + + +
Methods inherited from class com.caucho.hessian.io.SerializerFactory
getDeserializer, getDeserializer, getObjectDeserializer, getSerializer, readList, readMap
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+JMXSerializerFactory

+
+public JMXSerializerFactory()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getDefaultSerializer

+
+protected com.caucho.hessian.io.Serializer getDefaultSerializer(java.lang.Class cls)
+
+
+
+
+
+
+ +

+getDefaultDeserializer

+
+protected com.caucho.hessian.io.Deserializer getDefaultDeserializer(java.lang.Class cls)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/class-use/JMXSerializerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/class-use/JMXSerializerFactory.html new file mode 100644 index 0000000..770caae --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/class-use/JMXSerializerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.caucho.serialization.JMXSerializerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.caucho.serialization.JMXSerializerFactory

+
+No usage of mx4j.tools.remote.caucho.serialization.JMXSerializerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-frame.html new file mode 100644 index 0000000..d1ca4b9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.remote.caucho.serialization (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.caucho.serialization + + + + +
+Classes  + +
+JMXSerializerFactory
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-summary.html new file mode 100644 index 0000000..307881e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.remote.caucho.serialization (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.caucho.serialization +

+ + + + + + + + + +
+Class Summary
JMXSerializerFactory 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-tree.html new file mode 100644 index 0000000..d2555aa --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.tools.remote.caucho.serialization Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.caucho.serialization +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class com.caucho.hessian.io.SerializerFactory +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-use.html new file mode 100644 index 0000000..c8b6a62 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/caucho/serialization/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.caucho.serialization (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.caucho.serialization

+
+No usage of mx4j.tools.remote.caucho.serialization +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractConnection.html new file mode 100644 index 0000000..b1529e6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractConnection.html @@ -0,0 +1,202 @@ + + + + + + +Uses of Class mx4j.tools.remote.AbstractConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.AbstractConnection

+
+ + + + + + + + + + + + + +
+Packages that use AbstractConnection
mx4j.tools.remote  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of AbstractConnection in mx4j.tools.remote
+  +

+ + + + + + + + + +
Subclasses of AbstractConnection in mx4j.tools.remote
+ classJMXConnectionHandler + +
+          This handler manages the operations related to the connection itself, such as + JMXConnectionHandler.close(), getConnectionId().
+  +

+ + + + + +
+Uses of AbstractConnection in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of AbstractConnection in mx4j.tools.remote.http
+ classHTTPConnectionHandler + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractConnectionManager.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractConnectionManager.html new file mode 100644 index 0000000..60df1a8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractConnectionManager.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.AbstractConnectionManager (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.AbstractConnectionManager

+
+ + + + + + + + + +
+Packages that use AbstractConnectionManager
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of AbstractConnectionManager in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of AbstractConnectionManager in mx4j.tools.remote.http
+ classHTTPConnectionManager + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractJMXConnector.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractJMXConnector.html new file mode 100644 index 0000000..db61d3c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractJMXConnector.html @@ -0,0 +1,230 @@ + + + + + + +Uses of Class mx4j.tools.remote.AbstractJMXConnector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.AbstractJMXConnector

+
+ + + + + + + + + + + + + + + + + +
+Packages that use AbstractJMXConnector
mx4j.tools.remote.http  
mx4j.tools.remote.local  
mx4j.tools.remote.soap  
+  +

+ + + + + +
+Uses of AbstractJMXConnector in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of AbstractJMXConnector in mx4j.tools.remote.http
+ classHTTPConnector + +
+           
+  +

+ + + + + +
+Uses of AbstractJMXConnector in mx4j.tools.remote.local
+  +

+ + + + + + + + + +
Subclasses of AbstractJMXConnector in mx4j.tools.remote.local
+ classLocalConnector + +
+           
+  +

+ + + + + +
+Uses of AbstractJMXConnector in mx4j.tools.remote.soap
+  +

+ + + + + + + + + +
Subclasses of AbstractJMXConnector in mx4j.tools.remote.soap
+ classSOAPConnector + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractJMXConnectorServer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractJMXConnectorServer.html new file mode 100644 index 0000000..68df1d5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractJMXConnectorServer.html @@ -0,0 +1,279 @@ + + + + + + +Uses of Class mx4j.tools.remote.AbstractJMXConnectorServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.AbstractJMXConnectorServer

+
+ + + + + + + + + + + + + + + + + +
+Packages that use AbstractJMXConnectorServer
mx4j.tools.remote  
mx4j.tools.remote.http  
mx4j.tools.remote.local  
+  +

+ + + + + +
+Uses of AbstractJMXConnectorServer in mx4j.tools.remote
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote with parameters of type AbstractJMXConnectorServer
+protected  voidAbstractConnectionManager.setJMXConnectorServer(AbstractJMXConnectorServer server) + +
+           
+  +

+ + + + + + + + +
Constructors in mx4j.tools.remote with parameters of type AbstractJMXConnectorServer
AbstractConnectionManager(AbstractJMXConnectorServer server, + java.util.Map environment) + +
+          Called by subclasses.
+  +

+ + + + + +
+Uses of AbstractJMXConnectorServer in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of AbstractJMXConnectorServer in mx4j.tools.remote.http
+ classHTTPConnectorServer + +
+           
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.http with parameters of type AbstractJMXConnectorServer
+protected  ConnectionManagerHTTPConnectorServer.createConnectionManager(AbstractJMXConnectorServer server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+  +

+ + + + + + + + +
Constructors in mx4j.tools.remote.http with parameters of type AbstractJMXConnectorServer
HTTPConnectionManager(AbstractJMXConnectorServer server, + java.lang.String protocol, + java.util.Map environment) + +
+           
+  +

+ + + + + +
+Uses of AbstractJMXConnectorServer in mx4j.tools.remote.local
+  +

+ + + + + + + + + +
Subclasses of AbstractJMXConnectorServer in mx4j.tools.remote.local
+ classLocalConnectorServer + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractServerInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractServerInvoker.html new file mode 100644 index 0000000..aec396b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/AbstractServerInvoker.html @@ -0,0 +1,173 @@ + + + + + + +Uses of Class mx4j.tools.remote.AbstractServerInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.AbstractServerInvoker

+
+ + + + + + + + + +
+Packages that use AbstractServerInvoker
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of AbstractServerInvoker in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of AbstractServerInvoker in mx4j.tools.remote.http
+ classHTTPServerInvoker + +
+          Implementation of the HTTPConnector interface that forwards the calls + to an MBeanServerConnection object.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/Connection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/Connection.html new file mode 100644 index 0000000..7432c96 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/Connection.html @@ -0,0 +1,336 @@ + + + + + + +Uses of Interface mx4j.tools.remote.Connection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.remote.Connection

+
+ + + + + + + + + + + + + +
+Packages that use Connection
mx4j.tools.remote  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of Connection in mx4j.tools.remote
+  +

+ + + + + + + + + + + + + +
Classes in mx4j.tools.remote that implement Connection
+ classAbstractConnection + +
+          Implementation of the Connection interface, to be used on the server-side end of the connection.
+ classJMXConnectionHandler + +
+          This handler manages the operations related to the connection itself, such as + JMXConnectionHandler.close(), AbstractConnection.getConnectionId().
+  +

+ + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.remote that return Connection
+ ConnectionConnectionManager.connect(java.lang.Object credentials) + +
+          Factory method that creates connections that are specific to the client that invoked this method.
+ ConnectionAbstractConnectionManager.connect(java.lang.Object credentials) + +
+          Implemented using the template method pattern, it handles authentication, creation of the connection ID, + emission of connection notification of type "opened".
+protected abstract  ConnectionAbstractConnectionManager.doConnect(java.lang.String connectionId, + javax.security.auth.Subject subject) + +
+          Template method to be implemented by subclasses; must return the server-side part of + a connection.
+  +

+ + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.remote with parameters of type Connection
+ voidConnectionManager.closeConnection(Connection connection) + +
+          Closes the given Connection.
+ voidAbstractConnectionManager.closeConnection(Connection connection) + +
+          Implemented using the template method pattern, handles the emission of the connection notification + of type "closed".
+protected abstract  voidAbstractConnectionManager.doCloseConnection(Connection connection) + +
+          Closes the given Connection.
+  +

+ + + + + +
+Uses of Connection in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote.http that implement Connection
+ classHTTPConnectionHandler + +
+           
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote.http that return Connection
+protected  ConnectionHTTPService.findConnection() + +
+           
+protected  ConnectionHTTPConnectionManager.doConnect(java.lang.String connectionId, + javax.security.auth.Subject subject) + +
+           
+  +

+ + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.remote.http with parameters of type Connection
+protected  voidHTTPService.addConnection(Connection connection) + +
+           
+protected  voidHTTPService.removeConnection(Connection connection) + +
+           
+protected  voidHTTPConnectionManager.doCloseConnection(Connection connection) + +
+          HTTPConnectionManager does not really manages connections, + so this method does nothing by default
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/ConnectionManager.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/ConnectionManager.html new file mode 100644 index 0000000..121e710 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/ConnectionManager.html @@ -0,0 +1,259 @@ + + + + + + +Uses of Interface mx4j.tools.remote.ConnectionManager (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.remote.ConnectionManager

+
+ + + + + + + + + + + + + +
+Packages that use ConnectionManager
mx4j.tools.remote  
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of ConnectionManager in mx4j.tools.remote
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote that implement ConnectionManager
+ classAbstractConnectionManager + +
+          Implementation of the ConnectionManager interface that implements emission of connection notifications, + authentication, and proper closing of connections.
+  +

+ + + + + + + + + + + +
Constructors in mx4j.tools.remote with parameters of type ConnectionManager
JMXConnectionHandler(JMXConnection connection, + ConnectionManager manager, + java.lang.String connectionId) + +
+           
AbstractConnection(java.lang.String connectionId, + ConnectionManager manager) + +
+           
+  +

+ + + + + +
+Uses of ConnectionManager in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote.http that implement ConnectionManager
+ classHTTPConnectionManager + +
+           
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.http that return ConnectionManager
+protected  ConnectionManagerHTTPConnectorServer.createConnectionManager(AbstractJMXConnectorServer server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+  +

+ + + + + + + + +
Constructors in mx4j.tools.remote.http with parameters of type ConnectionManager
HTTPConnectionHandler(JMXConnection connection, + ConnectionManager manager, + java.lang.String connectionId) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnection.html new file mode 100644 index 0000000..3f96ce0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnection.html @@ -0,0 +1,494 @@ + + + + + + +Uses of Interface mx4j.tools.remote.JMXConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.remote.JMXConnection

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use JMXConnection
mx4j.tools.remote  
mx4j.tools.remote.caucho  
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
mx4j.tools.remote.http  
mx4j.tools.remote.local  
mx4j.tools.remote.soap  
+  +

+ + + + + +
+Uses of JMXConnection in mx4j.tools.remote
+  +

+ + + + + + + + + + + + + +
Classes in mx4j.tools.remote that implement JMXConnection
+ classAbstractServerInvoker + +
+          This class implements partially the JMXConnection interface to forward the calls + to an MBeanServerConnection object (hence the name 'invoker').
+ classJMXConnectionHandler + +
+          This handler manages the operations related to the connection itself, such as + JMXConnectionHandler.close(), AbstractConnection.getConnectionId().
+  +

+ + + + + + + + + + + + + +
Methods in mx4j.tools.remote that return JMXConnection
+protected  JMXConnectionJMXConnectionMBeanServerConnection.getConnection() + +
+           
+protected  JMXConnectionJMXConnectionHandler.getConnection() + +
+           
+  +

+ + + + + + + + + + + +
Constructors in mx4j.tools.remote with parameters of type JMXConnection
JMXConnectionMBeanServerConnection(JMXConnection connection, + javax.security.auth.Subject delegate) + +
+           
JMXConnectionHandler(JMXConnection connection, + ConnectionManager manager, + java.lang.String connectionId) + +
+           
+  +

+ + + + + +
+Uses of JMXConnection in mx4j.tools.remote.caucho
+  +

+ + + + + + + + + + + + + +
Classes in mx4j.tools.remote.caucho that implement JMXConnection
+ classCauchoClientInvoker + +
+           
+ classCauchoService + +
+           
+  +

+ + + + + +
+Uses of JMXConnection in mx4j.tools.remote.caucho.burlap
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote.caucho.burlap that implement JMXConnection
+ classBurlapClientInvoker + +
+           
+  +

+ + + + + +
+Uses of JMXConnection in mx4j.tools.remote.caucho.hessian
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote.caucho.hessian that implement JMXConnection
+ classHessianClientInvoker + +
+           
+  +

+ + + + + +
+Uses of JMXConnection in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subinterfaces of JMXConnection in mx4j.tools.remote.http
+ interfaceHTTPConnection + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.remote.http that implement JMXConnection
+ classHTTPClientInvoker + +
+           
+ classHTTPConnectionHandler + +
+           
+ classHTTPServerInvoker + +
+          Implementation of the HTTPConnector interface that forwards the calls + to an MBeanServerConnection object.
+ classHTTPService + +
+           
+  +

+ + + + + + + + + + + +
Constructors in mx4j.tools.remote.http with parameters of type JMXConnection
HTTPConnectionMBeanServerConnection(JMXConnection connection, + javax.security.auth.Subject delegate, + RemoteNotificationClientHandler notificationHandler) + +
+           
HTTPConnectionHandler(JMXConnection connection, + ConnectionManager manager, + java.lang.String connectionId) + +
+           
+  +

+ + + + + +
+Uses of JMXConnection in mx4j.tools.remote.local
+  +

+ + + + + + + + + +
Subinterfaces of JMXConnection in mx4j.tools.remote.local
+ interfaceLocalConnection + +
+           
+  +

+ + + + + +
+Uses of JMXConnection in mx4j.tools.remote.soap
+  +

+ + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.remote.soap that implement JMXConnection
+ classSOAPClientInvoker + +
+           
+ classSOAPService + +
+          The server-side service (the WebService actually) where remote calls end up + after being parsed by Axis.
+ classSSLSOAPService + +
+          This 'pivot' is the one to be used when the invocation is uses the + https protocol
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnectionHandler.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnectionHandler.html new file mode 100644 index 0000000..135d9e3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnectionHandler.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.JMXConnectionHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.JMXConnectionHandler

+
+ + + + + + + + + +
+Packages that use JMXConnectionHandler
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of JMXConnectionHandler in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of JMXConnectionHandler in mx4j.tools.remote.http
+ classHTTPConnectionHandler + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnectionMBeanServerConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnectionMBeanServerConnection.html new file mode 100644 index 0000000..c733e67 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/JMXConnectionMBeanServerConnection.html @@ -0,0 +1,173 @@ + + + + + + +Uses of Class mx4j.tools.remote.JMXConnectionMBeanServerConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.JMXConnectionMBeanServerConnection

+
+ + + + + + + + + +
+Packages that use JMXConnectionMBeanServerConnection
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of JMXConnectionMBeanServerConnection in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of JMXConnectionMBeanServerConnection in mx4j.tools.remote.http
+ classHTTPConnectionMBeanServerConnection + +
+          Implementation of an adapter that converts MBeanServerConnection calls + to HTTPConnection calls.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/PasswordAuthenticator.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/PasswordAuthenticator.html new file mode 100644 index 0000000..009d82c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/PasswordAuthenticator.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.PasswordAuthenticator (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.PasswordAuthenticator

+
+No usage of mx4j.tools.remote.PasswordAuthenticator +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/SubjectInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/SubjectInvoker.html new file mode 100644 index 0000000..5c6664a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/class-use/SubjectInvoker.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.SubjectInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.SubjectInvoker

+
+ + + + + + + + + +
+Packages that use SubjectInvoker
mx4j.tools.remote.http  
+  +

+ + + + + +
+Uses of SubjectInvoker in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Subclasses of SubjectInvoker in mx4j.tools.remote.http
+ classHTTPSubjectInvoker + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPClientInvoker.html new file mode 100644 index 0000000..756e287 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPClientInvoker.html @@ -0,0 +1,1104 @@ + + + + + + +HTTPClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPClientInvoker

+
+java.lang.Object
+  extended bymx4j.tools.remote.http.HTTPClientInvoker
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
Direct Known Subclasses:
CauchoClientInvoker
+
+
+
+
public abstract class HTTPClientInvoker
extends java.lang.Object
implements HTTPConnection
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HTTPClientInvoker() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.IntegeraddNotificationListener(javax.management.ObjectName name, + java.lang.Object filter, + javax.security.auth.Subject delegate) + +
+           
+ voidclose() + +
+           
+ java.lang.Stringconnect(java.lang.Object credentials) + +
+          This method is called when a call initiated by JMXConnector.connect() + arrives on server side.
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + javax.management.ObjectName loaderName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.remote.NotificationResultfetchNotifications(long clientSequenceNumber, + int maxNotifications, + long timeout) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName name, + java.lang.String attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName name, + java.lang.String[] attributes, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.StringgetConnectionId() + +
+           
+ java.lang.StringgetDefaultDomain(javax.security.auth.Subject delegate) + +
+           
+ java.lang.String[]getDomains(javax.security.auth.Subject delegate) + +
+           
+ java.lang.IntegergetMBeanCount(javax.security.auth.Subject delegate) + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+protected abstract  HTTPConnectiongetService() + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName name, + java.lang.String operationName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName name, + java.lang.String className, + javax.security.auth.Subject delegate) + +
+           
+ booleanisRegistered(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListeners(javax.management.ObjectName name, + java.lang.Integer[] listenerIDs, + javax.security.auth.Subject delegate) + +
+           
+ voidsetAttribute(javax.management.ObjectName name, + java.lang.Object attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName name, + java.lang.Object attributes, + javax.security.auth.Subject delegate) + +
+           
+ voidunregisterMBean(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HTTPClientInvoker

+
+public HTTPClientInvoker()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getService

+
+protected abstract HTTPConnection getService()
+
+
+
+
+
+
+
+
+
+ +

+connect

+
+public java.lang.String connect(java.lang.Object credentials)
+                         throws java.io.IOException,
+                                java.lang.SecurityException
+
+
Description copied from interface: HTTPConnection
+
This method is called when a call initiated by JMXConnector.connect() + arrives on server side. For HTTP connections, the socket is handled by the web container, but + the remote procedure call that arrives along with the HTTP request is parsed and then (normally) + forwarded to a JavaBean (that will implement this interface). + Implementations of this method will normally call ConnectionManager.connect(java.lang.Object). +

+

+
Specified by:
connect in interface HTTPConnection
+
+
+
Parameters:
credentials - The credential for authentication +
Returns:
The connection id for the newly created connection +
Throws: +
java.lang.SecurityException - If the authentication fails +
java.io.IOException - If a communication problem occurs
+
+
+
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
+
Specified by:
close in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getConnectionId

+
+public java.lang.String getConnectionId()
+                                 throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException,
+                            java.io.IOException
+
+
+
Specified by:
unregisterMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException +
java.io.IOException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName name,
+                                                         javax.security.auth.Subject delegate)
+                                                  throws javax.management.InstanceNotFoundException,
+                                                         java.io.IOException
+
+
+
Specified by:
getObjectInstance in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName name,
+                                 java.lang.Object query,
+                                 javax.security.auth.Subject delegate)
+                          throws java.io.IOException
+
+
+
Specified by:
queryMBeans in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName name,
+                                java.lang.Object query,
+                                javax.security.auth.Subject delegate)
+                         throws java.io.IOException
+
+
+
Specified by:
queryNames in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws java.io.IOException
+
+
+
Specified by:
isRegistered in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount(javax.security.auth.Subject delegate)
+                                throws java.io.IOException
+
+
+
Specified by:
getMBeanCount in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName name,
+                                     java.lang.String attribute,
+                                     javax.security.auth.Subject delegate)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException,
+                                     java.io.IOException
+
+
+
Specified by:
getAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName name,
+                                                    java.lang.String[] attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
getAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName name,
+                         java.lang.Object attribute,
+                         javax.security.auth.Subject delegate)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException,
+                         java.io.IOException
+
+
+
Specified by:
setAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName name,
+                                                    java.lang.Object attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
setAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName name,
+                               java.lang.String operationName,
+                               java.lang.Object params,
+                               java.lang.String[] signature,
+                               javax.security.auth.Subject delegate)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException,
+                               java.io.IOException
+
+
+
Specified by:
invoke in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain(javax.security.auth.Subject delegate)
+                                  throws java.io.IOException
+
+
+
Specified by:
getDefaultDomain in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains(javax.security.auth.Subject delegate)
+                              throws java.io.IOException
+
+
+
Specified by:
getDomains in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName name,
+                                               javax.security.auth.Subject delegate)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException,
+                                               java.io.IOException
+
+
+
Specified by:
getMBeanInfo in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName name,
+                            java.lang.String className,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            java.io.IOException
+
+
+
Specified by:
isInstanceOf in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName name,
+                                    javax.management.ObjectName listener,
+                                    java.lang.Object filter,
+                                    java.lang.Object handback,
+                                    javax.security.auth.Subject delegate)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       java.lang.Object filter,
+                                       java.lang.Object handback,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public java.lang.Integer addNotificationListener(javax.management.ObjectName name,
+                                                 java.lang.Object filter,
+                                                 javax.security.auth.Subject delegate)
+                                          throws javax.management.InstanceNotFoundException,
+                                                 java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListeners

+
+public void removeNotificationListeners(javax.management.ObjectName name,
+                                        java.lang.Integer[] listenerIDs,
+                                        javax.security.auth.Subject delegate)
+                                 throws javax.management.InstanceNotFoundException,
+                                        javax.management.ListenerNotFoundException,
+                                        java.io.IOException
+
+
+
Specified by:
removeNotificationListeners in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+fetchNotifications

+
+public javax.management.remote.NotificationResult fetchNotifications(long clientSequenceNumber,
+                                                                     int maxNotifications,
+                                                                     long timeout)
+                                                              throws java.io.IOException
+
+
+
Specified by:
fetchNotifications in interface HTTPConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnection.html new file mode 100644 index 0000000..5ec1e48 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnection.html @@ -0,0 +1,340 @@ + + + + + + +HTTPConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Interface HTTPConnection

+
+
All Superinterfaces:
JMXConnection
+
+
+
All Known Implementing Classes:
HTTPClientInvoker, HTTPConnectionHandler, HTTPServerInvoker, HTTPService, SOAPClientInvoker
+
+
+
+
public interface HTTPConnection
extends JMXConnection
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.IntegeraddNotificationListener(javax.management.ObjectName name, + java.lang.Object filter, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.Stringconnect(java.lang.Object credentials) + +
+          This method is called when a call initiated by JMXConnector.connect() + arrives on server side.
+ javax.management.remote.NotificationResultfetchNotifications(long clientSequenceNumber, + int maxNotifications, + long timeout) + +
+           
+ voidremoveNotificationListeners(javax.management.ObjectName name, + java.lang.Integer[] listenerIDs, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from interface mx4j.tools.remote.JMXConnection
addNotificationListener, close, createMBean, createMBean, getAttribute, getAttributes, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, setAttribute, setAttributes, unregisterMBean
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+connect

+
+public java.lang.String connect(java.lang.Object credentials)
+                         throws java.io.IOException,
+                                java.lang.SecurityException
+
+
This method is called when a call initiated by JMXConnector.connect() + arrives on server side. For HTTP connections, the socket is handled by the web container, but + the remote procedure call that arrives along with the HTTP request is parsed and then (normally) + forwarded to a JavaBean (that will implement this interface). + Implementations of this method will normally call ConnectionManager.connect(java.lang.Object). +

+

+
+
+
+
Parameters:
credentials - The credential for authentication +
Returns:
The connection id for the newly created connection +
Throws: +
java.io.IOException - If a communication problem occurs +
java.lang.SecurityException - If the authentication fails
+
+
+
+ +

+addNotificationListener

+
+public java.lang.Integer addNotificationListener(javax.management.ObjectName name,
+                                                 java.lang.Object filter,
+                                                 javax.security.auth.Subject delegate)
+                                          throws javax.management.InstanceNotFoundException,
+                                                 java.io.IOException
+
+
+
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListeners

+
+public void removeNotificationListeners(javax.management.ObjectName name,
+                                        java.lang.Integer[] listenerIDs,
+                                        javax.security.auth.Subject delegate)
+                                 throws javax.management.InstanceNotFoundException,
+                                        javax.management.ListenerNotFoundException,
+                                        java.io.IOException
+
+
+
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+fetchNotifications

+
+public javax.management.remote.NotificationResult fetchNotifications(long clientSequenceNumber,
+                                                                     int maxNotifications,
+                                                                     long timeout)
+                                                              throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionHandler.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionHandler.html new file mode 100644 index 0000000..604f1be --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionHandler.html @@ -0,0 +1,402 @@ + + + + + + +HTTPConnectionHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPConnectionHandler

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractConnection
+      extended bymx4j.tools.remote.JMXConnectionHandler
+          extended bymx4j.tools.remote.http.HTTPConnectionHandler
+
+
+
All Implemented Interfaces:
Connection, HTTPConnection, JMXConnection
+
+
+
+
public class HTTPConnectionHandler
extends JMXConnectionHandler
implements HTTPConnection
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HTTPConnectionHandler(JMXConnection connection, + ConnectionManager manager, + java.lang.String connectionId) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.IntegeraddNotificationListener(javax.management.ObjectName name, + java.lang.Object filter, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.Stringconnect(java.lang.Object credentials) + +
+          This method is called when a call initiated by JMXConnector.connect() + arrives on server side.
+ javax.management.remote.NotificationResultfetchNotifications(long clientSequenceNumber, + int maxNotifications, + long timeout) + +
+           
+ voidremoveNotificationListeners(javax.management.ObjectName name, + java.lang.Integer[] listenerIDs, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.JMXConnectionHandler
addNotificationListener, close, createMBean, createMBean, getAttribute, getAttributes, getConnection, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isClosed, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, setAttribute, setAttributes, unregisterMBean
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.AbstractConnection
getConnectionId
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.tools.remote.JMXConnection
addNotificationListener, close, createMBean, createMBean, getAttribute, getAttributes, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, setAttribute, setAttributes, unregisterMBean
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HTTPConnectionHandler

+
+public HTTPConnectionHandler(JMXConnection connection,
+                             ConnectionManager manager,
+                             java.lang.String connectionId)
+
+
+ + + + + + + + +
+Method Detail
+ +

+connect

+
+public java.lang.String connect(java.lang.Object credentials)
+                         throws java.io.IOException,
+                                java.lang.SecurityException
+
+
Description copied from interface: HTTPConnection
+
This method is called when a call initiated by JMXConnector.connect() + arrives on server side. For HTTP connections, the socket is handled by the web container, but + the remote procedure call that arrives along with the HTTP request is parsed and then (normally) + forwarded to a JavaBean (that will implement this interface). + Implementations of this method will normally call ConnectionManager.connect(java.lang.Object). +

+

+
Specified by:
connect in interface HTTPConnection
+
+
+
Parameters:
credentials - The credential for authentication +
Returns:
The connection id for the newly created connection +
Throws: +
java.lang.SecurityException - If the authentication fails +
java.io.IOException - If a communication problem occurs
+
+
+
+ +

+addNotificationListener

+
+public java.lang.Integer addNotificationListener(javax.management.ObjectName name,
+                                                 java.lang.Object filter,
+                                                 javax.security.auth.Subject delegate)
+                                          throws javax.management.InstanceNotFoundException,
+                                                 java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListeners

+
+public void removeNotificationListeners(javax.management.ObjectName name,
+                                        java.lang.Integer[] listenerIDs,
+                                        javax.security.auth.Subject delegate)
+                                 throws javax.management.InstanceNotFoundException,
+                                        javax.management.ListenerNotFoundException,
+                                        java.io.IOException
+
+
+
Specified by:
removeNotificationListeners in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+fetchNotifications

+
+public javax.management.remote.NotificationResult fetchNotifications(long clientSequenceNumber,
+                                                                     int maxNotifications,
+                                                                     long timeout)
+                                                              throws java.io.IOException
+
+
+
Specified by:
fetchNotifications in interface HTTPConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionMBeanServerConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionMBeanServerConnection.html new file mode 100644 index 0000000..ac3a5d1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionMBeanServerConnection.html @@ -0,0 +1,352 @@ + + + + + + +HTTPConnectionMBeanServerConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPConnectionMBeanServerConnection

+
+java.lang.Object
+  extended bymx4j.tools.remote.JMXConnectionMBeanServerConnection
+      extended bymx4j.tools.remote.http.HTTPConnectionMBeanServerConnection
+
+
+
All Implemented Interfaces:
javax.management.MBeanServerConnection
+
+
+
+
public class HTTPConnectionMBeanServerConnection
extends JMXConnectionMBeanServerConnection
+ +

+Implementation of an adapter that converts MBeanServerConnection calls + to HTTPConnection calls. + It handles remote notifications, but it does not handle unmarshalling of + arguments (and all related classloading problems). + NotificationFilters are always invoked on client side. +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HTTPConnectionMBeanServerConnection(JMXConnection connection, + javax.security.auth.Subject delegate, + RemoteNotificationClientHandler notificationHandler) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.JMXConnectionMBeanServerConnection
addNotificationListener, createMBean, createMBean, createMBean, createMBean, getAttribute, getAttributes, getConnection, getDefaultDomain, getDelegateSubject, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, setAttribute, setAttributes, unregisterMBean
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HTTPConnectionMBeanServerConnection

+
+public HTTPConnectionMBeanServerConnection(JMXConnection connection,
+                                           javax.security.auth.Subject delegate,
+                                           RemoteNotificationClientHandler notificationHandler)
+
+
+ + + + + + + + +
+Method Detail
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName observed,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionManager.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionManager.html new file mode 100644 index 0000000..50c91dd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectionManager.html @@ -0,0 +1,370 @@ + + + + + + +HTTPConnectionManager (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPConnectionManager

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractConnectionManager
+      extended bymx4j.tools.remote.http.HTTPConnectionManager
+
+
+
All Implemented Interfaces:
ConnectionManager
+
+
+
+
public class HTTPConnectionManager
extends AbstractConnectionManager
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HTTPConnectionManager(AbstractJMXConnectorServer server, + java.lang.String protocol, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voiddoClose() + +
+          HTTPConnectionManager does not really manages connections, + so this method does nothing by default
+protected  voiddoCloseConnection(Connection connection) + +
+          HTTPConnectionManager does not really manages connections, + so this method does nothing by default
+protected  ConnectiondoConnect(java.lang.String connectionId, + javax.security.auth.Subject subject) + +
+          Template method to be implemented by subclasses; must return the server-side part of + a connection.
+ java.lang.StringgetProtocol() + +
+          Returns the protocol used by the corrispondent JMXConnectorServer.
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.AbstractConnectionManager
authenticate, close, closeConnection, connect, createConnectionID, getEnvironment, getSecurityContext, isClosed, setJMXConnectorServer
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HTTPConnectionManager

+
+public HTTPConnectionManager(AbstractJMXConnectorServer server,
+                             java.lang.String protocol,
+                             java.util.Map environment)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getProtocol

+
+public java.lang.String getProtocol()
+
+
Description copied from interface: ConnectionManager
+
Returns the protocol used by the corrispondent JMXConnectorServer. +

+

+
+
+
+
+ +

+doConnect

+
+protected Connection doConnect(java.lang.String connectionId,
+                               javax.security.auth.Subject subject)
+                        throws java.io.IOException
+
+
Description copied from class: AbstractConnectionManager
+
Template method to be implemented by subclasses; must return the server-side part of + a connection. + When an remote invocation arrives, it will lookup the corrispondent server-side part + of the connection and delegate the call to it. The server-side part of the connection + must then (eventually) call the MBeanServer to satisfy the request. +

+

+
Specified by:
doConnect in class AbstractConnectionManager
+
+
+
Parameters:
connectionId - The connection ID for connection that is returned
subject - The authenticated Subject +
Returns:
The server-side part of a connection (with the given connection ID) +
Throws: +
java.io.IOException - If the connection cannot be created
+
+
+
+ +

+doClose

+
+protected void doClose()
+                throws java.io.IOException
+
+
HTTPConnectionManager does not really manages connections, + so this method does nothing by default +

+

+
Specified by:
doClose in class AbstractConnectionManager
+
+
+ +
Throws: +
java.io.IOException - If this ConnectionManager cannot be closed
+
+
+
+ +

+doCloseConnection

+
+protected void doCloseConnection(Connection connection)
+                          throws java.io.IOException
+
+
HTTPConnectionManager does not really manages connections, + so this method does nothing by default +

+

+
Specified by:
doCloseConnection in class AbstractConnectionManager
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnector.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnector.html new file mode 100644 index 0000000..93adfc2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnector.html @@ -0,0 +1,471 @@ + + + + + + +HTTPConnector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPConnector

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractJMXConnector
+      extended bymx4j.tools.remote.http.HTTPConnector
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnector, java.io.Serializable
+
+
+
Direct Known Subclasses:
SOAPConnector
+
+
+
+
public class HTTPConnector
extends AbstractJMXConnector
+ +

+

+
Version:
+
$
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface javax.management.remote.JMXConnector
CREDENTIALS
+  + + + + + + + + + + +
+Constructor Summary
HTTPConnector(javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  HeartBeatcreateHeartBeat(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+           
+protected  RemoteNotificationClientHandlercreateRemoteNotificationClientHandler(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
+protected  voiddoClose() + +
+          Template method to be implemented by subclasses to close this JMXConnector
+protected  voiddoConnect(java.util.Map environment) + +
+           
+protected  javax.management.MBeanServerConnectiondoGetMBeanServerConnection(javax.security.auth.Subject delegate) + +
+          Template method to be implemented by subclasses to return an MBeanServerConnection + for the given delegate subject.
+ java.lang.StringgetConnectionId() + +
+           
+protected  HTTPConnectiongetHTTPConnection() + +
+           
+protected  RemoteNotificationClientHandlergetRemoteNotificationClientHandler() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.AbstractJMXConnector
addConnectionNotificationListener, close, connect, connect, createConnectionNotificationEmitter, getAddress, getConnectionNotificationEmitter, getMBeanServerConnection, getMBeanServerConnection, isClosed, isConnected, removeConnectionNotificationListener, removeConnectionNotificationListener, sendConnectionNotificationClosed
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HTTPConnector

+
+public HTTPConnector(javax.management.remote.JMXServiceURL address,
+                     java.util.Map environment)
+              throws java.io.IOException
+
+
+ + + + + + + + +
+Method Detail
+ +

+doConnect

+
+protected void doConnect(java.util.Map environment)
+                  throws java.io.IOException,
+                         java.lang.SecurityException
+
+
+
Specified by:
doConnect in class AbstractJMXConnector
+
+
+ +
Throws: +
java.io.IOException +
java.lang.SecurityException
+
+
+
+ +

+createHeartBeat

+
+protected HeartBeat createHeartBeat(HTTPConnection connection,
+                                    ConnectionNotificationEmitter emitter,
+                                    java.util.Map environment)
+
+
+
+
+
+
+ +

+createRemoteNotificationClientHandler

+
+protected RemoteNotificationClientHandler createRemoteNotificationClientHandler(HTTPConnection connection,
+                                                                                ConnectionNotificationEmitter emitter,
+                                                                                HeartBeat heartbeat,
+                                                                                java.util.Map environment)
+
+
+
+
+
+
+ +

+doGetMBeanServerConnection

+
+protected javax.management.MBeanServerConnection doGetMBeanServerConnection(javax.security.auth.Subject delegate)
+                                                                     throws java.io.IOException
+
+
Description copied from class: AbstractJMXConnector
+
Template method to be implemented by subclasses to return an MBeanServerConnection + for the given delegate subject. + This method should return an MBeanServerConnection that delegates method calls to a + JMXConnection (or an equivalent client side connection object). + The JMXConnection object to which calls are delegated can in turn be a chain of + objects that decorate the call performing some other operation; the final object in + the chain is the one that really communicates with the server side, and it is normally + called ClientInvoker. +

+

+
Specified by:
doGetMBeanServerConnection in class AbstractJMXConnector
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+doClose

+
+protected void doClose()
+                throws java.io.IOException
+
+
Description copied from class: AbstractJMXConnector
+
Template method to be implemented by subclasses to close this JMXConnector +

+

+
Specified by:
doClose in class AbstractJMXConnector
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getConnectionId

+
+public java.lang.String getConnectionId()
+                                 throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getHTTPConnection

+
+protected HTTPConnection getHTTPConnection()
+
+
+
+
+
+
+ +

+getRemoteNotificationClientHandler

+
+protected RemoteNotificationClientHandler getRemoteNotificationClientHandler()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectorServer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectorServer.html new file mode 100644 index 0000000..26ce98a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPConnectorServer.html @@ -0,0 +1,437 @@ + + + + + + +HTTPConnectorServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPConnectorServer

+
+java.lang.Object
+  extended byjavax.management.NotificationBroadcasterSupport
+      extended byjavax.management.remote.JMXConnectorServer
+          extended bymx4j.tools.remote.AbstractJMXConnectorServer
+              extended bymx4j.tools.remote.http.HTTPConnectorServer
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerMBean, javax.management.MBeanRegistration, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
+
public class HTTPConnectorServer
extends AbstractJMXConnectorServer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringEMBEDDED_WEB_CONTAINER_CLASS + +
+           
+static java.lang.StringUSE_EXTERNAL_WEB_CONTAINER + +
+           
+static java.lang.StringWEB_CONTAINER_CONFIGURATION + +
+          MX4J's implementation uses this property to specify a String that points to the configuration + resource used to configure the HTTP server for JSR 160 connectors that use HTTP as transport.
+ + + + + + + +
Fields inherited from class javax.management.remote.JMXConnectorServer
AUTHENTICATOR
+  + + + + + + + + + + +
+Constructor Summary
HTTPConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  ConnectionManagercreateConnectionManager(AbstractJMXConnectorServer server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+protected  voiddoStart() + +
+          Template method implemented by subclasses to start this JMXConnectorServer
+protected  voiddoStop() + +
+          Template method implemented by subclasses to stop this JMXConnectorServer
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.AbstractJMXConnectorServer
connectionClosed, connectionFailed, connectionOpened, getAddress, getAttributes, getEnvironment, getLogger, isActive, isStopped, setAddress, start, stop
+ + + + + + + +
Methods inherited from class javax.management.remote.JMXConnectorServer
getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister, setMBeanServerForwarder, toJMXConnector
+ + + + + + + +
Methods inherited from class javax.management.NotificationBroadcasterSupport
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+WEB_CONTAINER_CONFIGURATION

+
+public static final java.lang.String WEB_CONTAINER_CONFIGURATION
+
+
MX4J's implementation uses this property to specify a String that points to the configuration + resource used to configure the HTTP server for JSR 160 connectors that use HTTP as transport. + For Jetty, the default HTTP server, this can be a URL or a relative path (in this latter case + the resource must be in classpath). +

+

+
See Also:
Constant Field Values
+
+
+ +

+USE_EXTERNAL_WEB_CONTAINER

+
+public static final java.lang.String USE_EXTERNAL_WEB_CONTAINER
+
+
+
See Also:
Constant Field Values
+
+
+ +

+EMBEDDED_WEB_CONTAINER_CLASS

+
+public static final java.lang.String EMBEDDED_WEB_CONTAINER_CLASS
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+HTTPConnectorServer

+
+public HTTPConnectorServer(javax.management.remote.JMXServiceURL url,
+                           java.util.Map environment,
+                           javax.management.MBeanServer server)
+
+
+ + + + + + + + +
+Method Detail
+ +

+doStart

+
+protected void doStart()
+                throws java.io.IOException,
+                       java.lang.IllegalStateException
+
+
Description copied from class: AbstractJMXConnectorServer
+
Template method implemented by subclasses to start this JMXConnectorServer +

+

+
Specified by:
doStart in class AbstractJMXConnectorServer
+
+
+ +
Throws: +
java.io.IOException +
java.lang.IllegalStateException
+
+
+
+ +

+createConnectionManager

+
+protected ConnectionManager createConnectionManager(AbstractJMXConnectorServer server,
+                                                    javax.management.remote.JMXServiceURL url,
+                                                    java.util.Map environment)
+
+
+
+
+
+
+ +

+doStop

+
+protected void doStop()
+               throws java.io.IOException
+
+
Description copied from class: AbstractJMXConnectorServer
+
Template method implemented by subclasses to stop this JMXConnectorServer +

+

+
Specified by:
doStop in class AbstractJMXConnectorServer
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPHeartBeat.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPHeartBeat.html new file mode 100644 index 0000000..eb250d6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPHeartBeat.html @@ -0,0 +1,284 @@ + + + + + + +HTTPHeartBeat (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPHeartBeat

+
+java.lang.Object
+  extended bymx4j.remote.AbstractHeartBeat
+      extended bymx4j.tools.remote.http.HTTPHeartBeat
+
+
+
All Implemented Interfaces:
HeartBeat, java.lang.Runnable
+
+
+
+
public class HTTPHeartBeat
extends AbstractHeartBeat
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HTTPHeartBeat(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  voidpulse() + +
+          Subclasses will implement this method using protocol specific connections.
+ + + + + + + +
Methods inherited from class mx4j.remote.AbstractHeartBeat
getMaxRetries, getPulsePeriod, run, sendConnectionNotificationFailed, start, stop
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HTTPHeartBeat

+
+public HTTPHeartBeat(HTTPConnection connection,
+                     ConnectionNotificationEmitter emitter,
+                     java.util.Map environment)
+
+
+ + + + + + + + +
+Method Detail
+ +

+pulse

+
+protected void pulse()
+              throws java.io.IOException
+
+
Description copied from class: AbstractHeartBeat
+
Subclasses will implement this method using protocol specific connections. + Normally the method MBeanServerConnection.getDefaultDomain() is used + to "ping" the server side. +

+

+
Specified by:
pulse in class AbstractHeartBeat
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPRemoteNotificationClientHandler.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPRemoteNotificationClientHandler.html new file mode 100644 index 0000000..fb4bf02 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPRemoteNotificationClientHandler.html @@ -0,0 +1,288 @@ + + + + + + +HTTPRemoteNotificationClientHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPRemoteNotificationClientHandler

+
+java.lang.Object
+  extended bymx4j.remote.AbstractRemoteNotificationClientHandler
+      extended bymx4j.tools.remote.http.HTTPRemoteNotificationClientHandler
+
+
+
All Implemented Interfaces:
RemoteNotificationClientHandler
+
+
+
+
public class HTTPRemoteNotificationClientHandler
extends AbstractRemoteNotificationClientHandler
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HTTPRemoteNotificationClientHandler(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  javax.management.remote.NotificationResultfetchNotifications(long sequence, + int maxNumber, + long timeout) + +
+          Calls the server side to fetch notifications.
+ + + + + + + +
Methods inherited from class mx4j.remote.AbstractRemoteNotificationClientHandler
addNotificationListener, contains, getLogger, getMaxRetries, getNotificationListener, getNotificationListeners, getNotificationsCount, getRetryPeriod, isActive, removeNotificationListeners, sendConnectionNotificationLost, start, stop
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HTTPRemoteNotificationClientHandler

+
+public HTTPRemoteNotificationClientHandler(HTTPConnection connection,
+                                           ConnectionNotificationEmitter emitter,
+                                           HeartBeat heartbeat,
+                                           java.util.Map environment)
+
+
+ + + + + + + + +
+Method Detail
+ +

+fetchNotifications

+
+protected javax.management.remote.NotificationResult fetchNotifications(long sequence,
+                                                                        int maxNumber,
+                                                                        long timeout)
+                                                                 throws java.io.IOException
+
+
Description copied from class: AbstractRemoteNotificationClientHandler
+
Calls the server side to fetch notifications. +

+

+
Specified by:
fetchNotifications in class AbstractRemoteNotificationClientHandler
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPResolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPResolver.html new file mode 100644 index 0000000..dedf20a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPResolver.html @@ -0,0 +1,585 @@ + + + + + + +HTTPResolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPResolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.tools.remote.http.HTTPResolver
+
+
+
Direct Known Subclasses:
Resolver, Resolver, Resolver
+
+
+
+
public abstract class HTTPResolver
extends ConnectionResolver
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + +
+Field Summary
+protected static java.lang.StringDEFAULT_WEB_CONTAINER_CLASS + +
+           
+  + + + + + + + + + + +
+Constructor Summary
HTTPResolver() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.ObjectbindClient(java.lang.Object client, + java.util.Map environment) + +
+          Connects the client returned by ConnectionResolver.lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side.
+ javax.management.remote.JMXServiceURLbindServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Binds the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL.
+ java.lang.ObjectcreateServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Creates an instance of the server as specified in the given JMXServiceURL.
+protected  WebContainercreateWebContainer(javax.management.remote.JMXServiceURL url, + java.lang.String webContainerClassName, + java.util.Map environment) + +
+           
+protected  voiddeploy(javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+           
+ voiddestroyServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Destroys the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time
+protected  java.lang.StringgetEndpoint(javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+           
+protected  java.lang.StringgetEndpointProtocol(java.util.Map environment) + +
+           
+protected abstract  java.lang.StringgetServletClassName() + +
+           
+ voidunbindServer(java.lang.Object server, + javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+          Unbinds the server bound by bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map) from the place specified by the JMXServiceURL.
+protected  voidundeploy(javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
lookupClient, newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+DEFAULT_WEB_CONTAINER_CLASS

+
+protected static final java.lang.String DEFAULT_WEB_CONTAINER_CLASS
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+HTTPResolver

+
+public HTTPResolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+bindClient

+
+public java.lang.Object bindClient(java.lang.Object client,
+                                   java.util.Map environment)
+                            throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Connects the client returned by ConnectionResolver.lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side. +

+

+
Specified by:
bindClient in class ConnectionResolver
+
+
+ +
Returns:
An object of the same type as the client passed in; normally the client object itself +
Throws: +
java.io.IOException
+
+
+
+ +

+getEndpoint

+
+protected java.lang.String getEndpoint(javax.management.remote.JMXServiceURL address,
+                                       java.util.Map environment)
+
+
+
+
+
+
+ +

+getEndpointProtocol

+
+protected java.lang.String getEndpointProtocol(java.util.Map environment)
+
+
+
+
+
+
+ +

+createServer

+
+public java.lang.Object createServer(javax.management.remote.JMXServiceURL url,
+                                     java.util.Map environment)
+                              throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Creates an instance of the server as specified in the given JMXServiceURL. + It is only a factory method, it should just return a fresh instance of the server; + other methods are responsible to make it available to clients (for example exporting it). + This method is used in implementations of JMXConnectorServerMBean.start(). +

+

+
Specified by:
createServer in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map), +ConnectionResolver.destroyServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+bindServer

+
+public javax.management.remote.JMXServiceURL bindServer(java.lang.Object server,
+                                                        javax.management.remote.JMXServiceURL url,
+                                                        java.util.Map environment)
+                                                 throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Binds the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL. +

+

+
Specified by:
bindServer in class ConnectionResolver
+
+
+ +
Returns:
a new JMXServiceURL that specifies where the server has been bound to. +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.unbindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+getServletClassName

+
+protected abstract java.lang.String getServletClassName()
+
+
+
+
+
+
+ +

+deploy

+
+protected void deploy(javax.management.remote.JMXServiceURL address,
+                      java.util.Map environment)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+unbindServer

+
+public void unbindServer(java.lang.Object server,
+                         javax.management.remote.JMXServiceURL address,
+                         java.util.Map environment)
+                  throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Unbinds the server bound by ConnectionResolver.bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map) from the place specified by the JMXServiceURL. +

+

+
Specified by:
unbindServer in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.destroyServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+undeploy

+
+protected void undeploy(javax.management.remote.JMXServiceURL address,
+                        java.util.Map environment)
+                 throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+destroyServer

+
+public void destroyServer(java.lang.Object server,
+                          javax.management.remote.JMXServiceURL url,
+                          java.util.Map environment)
+                   throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Destroys the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time +

+

+
Specified by:
destroyServer in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+createWebContainer

+
+protected WebContainer createWebContainer(javax.management.remote.JMXServiceURL url,
+                                          java.lang.String webContainerClassName,
+                                          java.util.Map environment)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPServerInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPServerInvoker.html new file mode 100644 index 0000000..01d916c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPServerInvoker.html @@ -0,0 +1,422 @@ + + + + + + +HTTPServerInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPServerInvoker

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractServerInvoker
+      extended bymx4j.tools.remote.http.HTTPServerInvoker
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
+
public class HTTPServerInvoker
extends AbstractServerInvoker
implements HTTPConnection
+ +

+Implementation of the HTTPConnector interface that forwards the calls + to an MBeanServerConnection object. + It handles remote notifications, but it does not handle unmarshalling of + arguments (and all related classloading problems). +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HTTPServerInvoker(javax.management.MBeanServerConnection server, + RemoteNotificationServerHandler handler) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.IntegeraddNotificationListener(javax.management.ObjectName name, + java.lang.Object filter, + javax.security.auth.Subject delegate) + +
+           
+ voidclose() + +
+           
+ java.lang.Stringconnect(java.lang.Object credentials) + +
+          This method is called when a call initiated by JMXConnector.connect() + arrives on server side.
+ javax.management.remote.NotificationResultfetchNotifications(long clientSequenceNumber, + int maxNotifications, + long timeout) + +
+           
+ voidremoveNotificationListeners(javax.management.ObjectName name, + java.lang.Integer[] listenerIDs, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.AbstractServerInvoker
addNotificationListener, createMBean, createMBean, getAttribute, getAttributes, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, getServer, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, setAttribute, setAttributes, unregisterMBean
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.tools.remote.JMXConnection
addNotificationListener, createMBean, createMBean, getAttribute, getAttributes, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, setAttribute, setAttributes, unregisterMBean
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HTTPServerInvoker

+
+public HTTPServerInvoker(javax.management.MBeanServerConnection server,
+                         RemoteNotificationServerHandler handler)
+
+
+ + + + + + + + +
+Method Detail
+ +

+connect

+
+public java.lang.String connect(java.lang.Object credentials)
+                         throws java.io.IOException,
+                                java.lang.SecurityException
+
+
Description copied from interface: HTTPConnection
+
This method is called when a call initiated by JMXConnector.connect() + arrives on server side. For HTTP connections, the socket is handled by the web container, but + the remote procedure call that arrives along with the HTTP request is parsed and then (normally) + forwarded to a JavaBean (that will implement this interface). + Implementations of this method will normally call ConnectionManager.connect(java.lang.Object). +

+

+
Specified by:
connect in interface HTTPConnection
+
+
+
Parameters:
credentials - The credential for authentication +
Returns:
The connection id for the newly created connection +
Throws: +
java.lang.SecurityException - If the authentication fails +
java.io.IOException - If a communication problem occurs
+
+
+
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
+
Specified by:
close in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public java.lang.Integer addNotificationListener(javax.management.ObjectName name,
+                                                 java.lang.Object filter,
+                                                 javax.security.auth.Subject delegate)
+                                          throws javax.management.InstanceNotFoundException,
+                                                 java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListeners

+
+public void removeNotificationListeners(javax.management.ObjectName name,
+                                        java.lang.Integer[] listenerIDs,
+                                        javax.security.auth.Subject delegate)
+                                 throws javax.management.InstanceNotFoundException,
+                                        javax.management.ListenerNotFoundException,
+                                        java.io.IOException
+
+
+
Specified by:
removeNotificationListeners in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+fetchNotifications

+
+public javax.management.remote.NotificationResult fetchNotifications(long clientSequenceNumber,
+                                                                     int maxNotifications,
+                                                                     long timeout)
+                                                              throws java.io.IOException
+
+
+
Specified by:
fetchNotifications in interface HTTPConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPService.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPService.html new file mode 100644 index 0000000..b2ca9f7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPService.html @@ -0,0 +1,1270 @@ + + + + + + +HTTPService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPService

+
+java.lang.Object
+  extended bymx4j.tools.remote.http.HTTPService
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
Direct Known Subclasses:
CauchoService, SOAPService
+
+
+
+
public abstract class HTTPService
extends java.lang.Object
implements HTTPConnection
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
HTTPService() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidaddConnection(Connection connection) + +
+           
+ voidaddNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.IntegeraddNotificationListener(javax.management.ObjectName name, + java.lang.Object filter, + javax.security.auth.Subject delegate) + +
+           
+ voidclose() + +
+           
+ java.lang.Stringconnect(java.lang.Object credentials) + +
+          This method is called when a call initiated by JMXConnector.connect() + arrives on server side.
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + javax.management.ObjectName loaderName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName name, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.remote.NotificationResultfetchNotifications(long clientSequenceNumber, + int maxNotifications, + long timeout) + +
+           
+protected  ConnectionfindConnection() + +
+           
+protected abstract  java.lang.StringfindConnectionId() + +
+           
+protected  javax.management.remote.JMXServiceURLfindJMXServiceURL() + +
+           
+protected abstract  java.lang.StringfindRequestURL() + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName name, + java.lang.String attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName name, + java.lang.String[] attributes, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.StringgetConnectionId() + +
+           
+ java.lang.StringgetDefaultDomain(javax.security.auth.Subject delegate) + +
+           
+ java.lang.String[]getDomains(javax.security.auth.Subject delegate) + +
+           
+protected  LoggergetLogger() + +
+           
+ java.lang.IntegergetMBeanCount(javax.security.auth.Subject delegate) + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+protected abstract  java.lang.StringgetProtocol() + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName name, + java.lang.String operationName, + java.lang.Object params, + java.lang.String[] signature, + javax.security.auth.Subject delegate) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName name, + java.lang.String className, + javax.security.auth.Subject delegate) + +
+           
+ booleanisRegistered(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName name, + java.lang.Object query, + javax.security.auth.Subject delegate) + +
+           
+protected  voidremoveConnection(Connection connection) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListeners(javax.management.ObjectName name, + java.lang.Integer[] listenerIDs, + javax.security.auth.Subject delegate) + +
+           
+ voidsetAttribute(javax.management.ObjectName name, + java.lang.Object attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName name, + java.lang.Object attributes, + javax.security.auth.Subject delegate) + +
+           
+ voidunregisterMBean(javax.management.ObjectName name, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+HTTPService

+
+public HTTPService()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getLogger

+
+protected Logger getLogger()
+
+
+
+
+
+
+
+
+
+ +

+connect

+
+public java.lang.String connect(java.lang.Object credentials)
+                         throws java.io.IOException,
+                                java.lang.SecurityException
+
+
Description copied from interface: HTTPConnection
+
This method is called when a call initiated by JMXConnector.connect() + arrives on server side. For HTTP connections, the socket is handled by the web container, but + the remote procedure call that arrives along with the HTTP request is parsed and then (normally) + forwarded to a JavaBean (that will implement this interface). + Implementations of this method will normally call ConnectionManager.connect(java.lang.Object). +

+

+
Specified by:
connect in interface HTTPConnection
+
+
+
Parameters:
credentials - The credential for authentication +
Returns:
The connection id for the newly created connection +
Throws: +
java.lang.SecurityException - If the authentication fails +
java.io.IOException - If a communication problem occurs
+
+
+
+ +

+findJMXServiceURL

+
+protected javax.management.remote.JMXServiceURL findJMXServiceURL()
+                                                           throws java.net.MalformedURLException
+
+
+
+
+
+ +
Throws: +
java.net.MalformedURLException
+
+
+
+ +

+findRequestURL

+
+protected abstract java.lang.String findRequestURL()
+
+
+
+
+
+
+
+
+
+ +

+getProtocol

+
+protected abstract java.lang.String getProtocol()
+
+
+
+
+
+
+
+
+
+ +

+addConnection

+
+protected void addConnection(Connection connection)
+                      throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+removeConnection

+
+protected void removeConnection(Connection connection)
+                         throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+findConnection

+
+protected Connection findConnection()
+                             throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+findConnectionId

+
+protected abstract java.lang.String findConnectionId()
+
+
+
+
+
+
+
+
+
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
+
Specified by:
close in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getConnectionId

+
+public java.lang.String getConnectionId()
+                                 throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName name,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object params,
+                                                   java.lang.String[] signature,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException,
+                            java.io.IOException
+
+
+
Specified by:
unregisterMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException +
java.io.IOException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName name,
+                                                         javax.security.auth.Subject delegate)
+                                                  throws javax.management.InstanceNotFoundException,
+                                                         java.io.IOException
+
+
+
Specified by:
getObjectInstance in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName name,
+                                 java.lang.Object query,
+                                 javax.security.auth.Subject delegate)
+                          throws java.io.IOException
+
+
+
Specified by:
queryMBeans in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName name,
+                                java.lang.Object query,
+                                javax.security.auth.Subject delegate)
+                         throws java.io.IOException
+
+
+
Specified by:
queryNames in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName name,
+                            javax.security.auth.Subject delegate)
+                     throws java.io.IOException
+
+
+
Specified by:
isRegistered in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount(javax.security.auth.Subject delegate)
+                                throws java.io.IOException
+
+
+
Specified by:
getMBeanCount in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName name,
+                                     java.lang.String attribute,
+                                     javax.security.auth.Subject delegate)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException,
+                                     java.io.IOException
+
+
+
Specified by:
getAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName name,
+                                                    java.lang.String[] attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
getAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName name,
+                         java.lang.Object attribute,
+                         javax.security.auth.Subject delegate)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException,
+                         java.io.IOException
+
+
+
Specified by:
setAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName name,
+                                                    java.lang.Object attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
setAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName name,
+                               java.lang.String operationName,
+                               java.lang.Object params,
+                               java.lang.String[] signature,
+                               javax.security.auth.Subject delegate)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException,
+                               java.io.IOException
+
+
+
Specified by:
invoke in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain(javax.security.auth.Subject delegate)
+                                  throws java.io.IOException
+
+
+
Specified by:
getDefaultDomain in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains(javax.security.auth.Subject delegate)
+                              throws java.io.IOException
+
+
+
Specified by:
getDomains in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName name,
+                                               javax.security.auth.Subject delegate)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException,
+                                               java.io.IOException
+
+
+
Specified by:
getMBeanInfo in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName name,
+                            java.lang.String className,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            java.io.IOException
+
+
+
Specified by:
isInstanceOf in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName name,
+                                    javax.management.ObjectName listener,
+                                    java.lang.Object filter,
+                                    java.lang.Object handback,
+                                    javax.security.auth.Subject delegate)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       java.lang.Object filter,
+                                       java.lang.Object handback,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public java.lang.Integer addNotificationListener(javax.management.ObjectName name,
+                                                 java.lang.Object filter,
+                                                 javax.security.auth.Subject delegate)
+                                          throws javax.management.InstanceNotFoundException,
+                                                 java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListeners

+
+public void removeNotificationListeners(javax.management.ObjectName name,
+                                        java.lang.Integer[] listenerIDs,
+                                        javax.security.auth.Subject delegate)
+                                 throws javax.management.InstanceNotFoundException,
+                                        javax.management.ListenerNotFoundException,
+                                        java.io.IOException
+
+
+
Specified by:
removeNotificationListeners in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+fetchNotifications

+
+public javax.management.remote.NotificationResult fetchNotifications(long clientSequenceNumber,
+                                                                     int maxNotifications,
+                                                                     long timeout)
+                                                              throws java.io.IOException
+
+
+
Specified by:
fetchNotifications in interface HTTPConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPSubjectInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPSubjectInvoker.html new file mode 100644 index 0000000..bff72d7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/HTTPSubjectInvoker.html @@ -0,0 +1,270 @@ + + + + + + +HTTPSubjectInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Class HTTPSubjectInvoker

+
+java.lang.Object
+  extended bymx4j.tools.remote.SubjectInvoker
+      extended bymx4j.tools.remote.http.HTTPSubjectInvoker
+
+
+
All Implemented Interfaces:
java.lang.reflect.InvocationHandler
+
+
+
+
public class HTTPSubjectInvoker
extends SubjectInvoker
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  booleanisPlainInvoke(java.lang.reflect.Method method) + +
+           
+static HTTPConnectionnewInstance(HTTPConnection target, + javax.security.auth.Subject subject, + java.security.AccessControlContext context, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.SubjectInvoker
chain, handleSpecialInvoke, invoke, subjectInvoke
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+newInstance

+
+public static HTTPConnection newInstance(HTTPConnection target,
+                                         javax.security.auth.Subject subject,
+                                         java.security.AccessControlContext context,
+                                         java.util.Map environment)
+
+
+
+
+
+
+ +

+isPlainInvoke

+
+protected boolean isPlainInvoke(java.lang.reflect.Method method)
+
+
+
Overrides:
isPlainInvoke in class SubjectInvoker
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/WebContainer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/WebContainer.html new file mode 100644 index 0000000..bf4cc74 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/WebContainer.html @@ -0,0 +1,307 @@ + + + + + + +WebContainer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http +
+Interface WebContainer

+
+
All Known Implementing Classes:
JettyWebContainer
+
+
+
+
public interface WebContainer
+ +

+An Interface for the Web Container so that we can plug in any web container. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voiddeploy(java.lang.String servletClassName, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Deploys the given servlet class mapping it to the URL specified by the given JMXServiceURL.
+ voidstart(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Starts the web container
+ voidstop() + +
+          Stops the web container
+ voidundeploy(java.lang.String servletClassName, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Undeploys the servlet mapped to the URL specified by the given JMXServiceURL.
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+start

+
+public void start(javax.management.remote.JMXServiceURL url,
+                  java.util.Map environment)
+           throws java.io.IOException
+
+
Starts the web container +

+

+ +
Throws: +
java.io.IOException
+
+
+
+ +

+stop

+
+public void stop()
+          throws java.io.IOException
+
+
Stops the web container +

+

+ +
Throws: +
java.io.IOException
+
+
+
+ +

+deploy

+
+public void deploy(java.lang.String servletClassName,
+                   javax.management.remote.JMXServiceURL url,
+                   java.util.Map environment)
+            throws java.io.IOException
+
+
Deploys the given servlet class mapping it to the URL specified by the given JMXServiceURL. +

+

+ +
Throws: +
java.io.IOException
+
+
+
+ +

+undeploy

+
+public void undeploy(java.lang.String servletClassName,
+                     javax.management.remote.JMXServiceURL url,
+                     java.util.Map environment)
+
+
Undeploys the servlet mapped to the URL specified by the given JMXServiceURL. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPClientInvoker.html new file mode 100644 index 0000000..20d0cf9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPClientInvoker.html @@ -0,0 +1,230 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPClientInvoker

+
+ + + + + + + + + + + + + + + + + +
+Packages that use HTTPClientInvoker
mx4j.tools.remote.caucho  
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
+  +

+ + + + + +
+Uses of HTTPClientInvoker in mx4j.tools.remote.caucho
+  +

+ + + + + + + + + +
Subclasses of HTTPClientInvoker in mx4j.tools.remote.caucho
+ classCauchoClientInvoker + +
+           
+  +

+ + + + + +
+Uses of HTTPClientInvoker in mx4j.tools.remote.caucho.burlap
+  +

+ + + + + + + + + +
Subclasses of HTTPClientInvoker in mx4j.tools.remote.caucho.burlap
+ classBurlapClientInvoker + +
+           
+  +

+ + + + + +
+Uses of HTTPClientInvoker in mx4j.tools.remote.caucho.hessian
+  +

+ + + + + + + + + +
Subclasses of HTTPClientInvoker in mx4j.tools.remote.caucho.hessian
+ classHessianClientInvoker + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnection.html new file mode 100644 index 0000000..24750ad --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnection.html @@ -0,0 +1,455 @@ + + + + + + +Uses of Interface mx4j.tools.remote.http.HTTPConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.remote.http.HTTPConnection

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use HTTPConnection
mx4j.tools.remote.caucho  
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
mx4j.tools.remote.http  
mx4j.tools.remote.soap  
+  +

+ + + + + +
+Uses of HTTPConnection in mx4j.tools.remote.caucho
+  +

+ + + + + + + + + + + + + +
Classes in mx4j.tools.remote.caucho that implement HTTPConnection
+ classCauchoClientInvoker + +
+           
+ classCauchoService + +
+           
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.caucho that return HTTPConnection
+protected  HTTPConnectionCauchoClientInvoker.getService() + +
+           
+  +

+ + + + + +
+Uses of HTTPConnection in mx4j.tools.remote.caucho.burlap
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote.caucho.burlap that implement HTTPConnection
+ classBurlapClientInvoker + +
+           
+  +

+ + + + + +
+Uses of HTTPConnection in mx4j.tools.remote.caucho.hessian
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote.caucho.hessian that implement HTTPConnection
+ classHessianClientInvoker + +
+           
+  +

+ + + + + +
+Uses of HTTPConnection in mx4j.tools.remote.http
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.remote.http that implement HTTPConnection
+ classHTTPClientInvoker + +
+           
+ classHTTPConnectionHandler + +
+           
+ classHTTPServerInvoker + +
+          Implementation of the HTTPConnector interface that forwards the calls + to an MBeanServerConnection object.
+ classHTTPService + +
+           
+  +

+ + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.remote.http that return HTTPConnection
+static HTTPConnectionHTTPSubjectInvoker.newInstance(HTTPConnection target, + javax.security.auth.Subject subject, + java.security.AccessControlContext context, + java.util.Map environment) + +
+           
+protected  HTTPConnectionHTTPConnector.getHTTPConnection() + +
+           
+protected abstract  HTTPConnectionHTTPClientInvoker.getService() + +
+           
+  +

+ + + + + + + + + + + + + + + + + +
Methods in mx4j.tools.remote.http with parameters of type HTTPConnection
+static HTTPConnectionHTTPSubjectInvoker.newInstance(HTTPConnection target, + javax.security.auth.Subject subject, + java.security.AccessControlContext context, + java.util.Map environment) + +
+           
+protected  HeartBeatHTTPConnector.createHeartBeat(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+           
+protected  RemoteNotificationClientHandlerHTTPConnector.createRemoteNotificationClientHandler(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
+  +

+ + + + + + + + + + + +
Constructors in mx4j.tools.remote.http with parameters of type HTTPConnection
HTTPRemoteNotificationClientHandler(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + HeartBeat heartbeat, + java.util.Map environment) + +
+           
HTTPHeartBeat(HTTPConnection connection, + ConnectionNotificationEmitter emitter, + java.util.Map environment) + +
+           
+  +

+ + + + + +
+Uses of HTTPConnection in mx4j.tools.remote.soap
+  +

+ + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.remote.soap that implement HTTPConnection
+ classSOAPClientInvoker + +
+           
+ classSOAPService + +
+          The server-side service (the WebService actually) where remote calls end up + after being parsed by Axis.
+ classSSLSOAPService + +
+          This 'pivot' is the one to be used when the invocation is uses the + https protocol
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionHandler.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionHandler.html new file mode 100644 index 0000000..1d9205f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionHandler.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPConnectionHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPConnectionHandler

+
+No usage of mx4j.tools.remote.http.HTTPConnectionHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionMBeanServerConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionMBeanServerConnection.html new file mode 100644 index 0000000..29aae47 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionMBeanServerConnection.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPConnectionMBeanServerConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPConnectionMBeanServerConnection

+
+No usage of mx4j.tools.remote.http.HTTPConnectionMBeanServerConnection +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionManager.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionManager.html new file mode 100644 index 0000000..febc68c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectionManager.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPConnectionManager (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPConnectionManager

+
+No usage of mx4j.tools.remote.http.HTTPConnectionManager +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnector.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnector.html new file mode 100644 index 0000000..65e2327 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnector.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPConnector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPConnector

+
+ + + + + + + + + +
+Packages that use HTTPConnector
mx4j.tools.remote.soap  
+  +

+ + + + + +
+Uses of HTTPConnector in mx4j.tools.remote.soap
+  +

+ + + + + + + + + +
Subclasses of HTTPConnector in mx4j.tools.remote.soap
+ classSOAPConnector + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectorServer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectorServer.html new file mode 100644 index 0000000..fe624b6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPConnectorServer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPConnectorServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPConnectorServer

+
+No usage of mx4j.tools.remote.http.HTTPConnectorServer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPHeartBeat.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPHeartBeat.html new file mode 100644 index 0000000..87d08e9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPHeartBeat.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPHeartBeat (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPHeartBeat

+
+No usage of mx4j.tools.remote.http.HTTPHeartBeat +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPRemoteNotificationClientHandler.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPRemoteNotificationClientHandler.html new file mode 100644 index 0000000..dbb940a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPRemoteNotificationClientHandler.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPRemoteNotificationClientHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPRemoteNotificationClientHandler

+
+No usage of mx4j.tools.remote.http.HTTPRemoteNotificationClientHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPResolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPResolver.html new file mode 100644 index 0000000..c5cb503 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPResolver.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPResolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPResolver

+
+ + + + + + + + + +
+Packages that use HTTPResolver
mx4j.tools.remote.resolver.burlap  
+  +

+ + + + + +
+Uses of HTTPResolver in mx4j.tools.remote.resolver.burlap
+  +

+ + + + + + + + + +
Subclasses of HTTPResolver in mx4j.tools.remote.resolver.burlap
+ classResolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPServerInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPServerInvoker.html new file mode 100644 index 0000000..e61e65c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPServerInvoker.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPServerInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPServerInvoker

+
+No usage of mx4j.tools.remote.http.HTTPServerInvoker +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPService.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPService.html new file mode 100644 index 0000000..08278c9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPService.html @@ -0,0 +1,211 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPService

+
+ + + + + + + + + + + + + +
+Packages that use HTTPService
mx4j.tools.remote.caucho  
mx4j.tools.remote.soap  
+  +

+ + + + + +
+Uses of HTTPService in mx4j.tools.remote.caucho
+  +

+ + + + + + + + + +
Subclasses of HTTPService in mx4j.tools.remote.caucho
+ classCauchoService + +
+           
+  +

+ + + + + +
+Uses of HTTPService in mx4j.tools.remote.soap
+  +

+ + + + + + + + + + + + + +
Subclasses of HTTPService in mx4j.tools.remote.soap
+ classSOAPService + +
+          The server-side service (the WebService actually) where remote calls end up + after being parsed by Axis.
+ classSSLSOAPService + +
+          This 'pivot' is the one to be used when the invocation is uses the + https protocol
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPSubjectInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPSubjectInvoker.html new file mode 100644 index 0000000..3b1892c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/HTTPSubjectInvoker.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.HTTPSubjectInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.HTTPSubjectInvoker

+
+No usage of mx4j.tools.remote.http.HTTPSubjectInvoker +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/WebContainer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/WebContainer.html new file mode 100644 index 0000000..12c17a4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/class-use/WebContainer.html @@ -0,0 +1,203 @@ + + + + + + +Uses of Interface mx4j.tools.remote.http.WebContainer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.remote.http.WebContainer

+
+ + + + + + + + + + + + + +
+Packages that use WebContainer
mx4j.tools.remote.http  
mx4j.tools.remote.http.jetty  
+  +

+ + + + + +
+Uses of WebContainer in mx4j.tools.remote.http
+  +

+ + + + + + + + + +
Methods in mx4j.tools.remote.http that return WebContainer
+protected  WebContainerHTTPResolver.createWebContainer(javax.management.remote.JMXServiceURL url, + java.lang.String webContainerClassName, + java.util.Map environment) + +
+           
+  +

+ + + + + +
+Uses of WebContainer in mx4j.tools.remote.http.jetty
+  +

+ + + + + + + + + +
Classes in mx4j.tools.remote.http.jetty that implement WebContainer
+ classJettyWebContainer + +
+          Jetty's implementation of WebContainer interface
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/JettyWebContainer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/JettyWebContainer.html new file mode 100644 index 0000000..91e4d4b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/JettyWebContainer.html @@ -0,0 +1,434 @@ + + + + + + +JettyWebContainer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.http.jetty +
+Class JettyWebContainer

+
+java.lang.Object
+  extended bymx4j.tools.remote.http.jetty.JettyWebContainer
+
+
+
All Implemented Interfaces:
WebContainer
+
+
+
+
public class JettyWebContainer
extends java.lang.Object
implements WebContainer
+ +

+Jetty's implementation of WebContainer interface +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
JettyWebContainer() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidconfigureListener(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ voiddeploy(java.lang.String servletClassName, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Deploys the given servlet class mapping it to the URL specified by the given JMXServiceURL.
+protected  LoggergetLogger() + +
+           
+protected  org.mortbay.jetty.ServergetServer() + +
+           
+ voidstart(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Starts the web container
+ voidstop() + +
+          Stops the web container
+ voidundeploy(java.lang.String servletName, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Undeploys the servlet mapped to the URL specified by the given JMXServiceURL.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+JettyWebContainer

+
+public JettyWebContainer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getLogger

+
+protected Logger getLogger()
+
+
+
+
+
+
+
+
+
+ +

+getServer

+
+protected org.mortbay.jetty.Server getServer()
+
+
+
+
+
+
+
+
+
+ +

+start

+
+public void start(javax.management.remote.JMXServiceURL url,
+                  java.util.Map environment)
+           throws java.io.IOException
+
+
Description copied from interface: WebContainer
+
Starts the web container +

+

+
Specified by:
start in interface WebContainer
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+configureListener

+
+protected void configureListener(javax.management.remote.JMXServiceURL url,
+                                 java.util.Map environment)
+                          throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+stop

+
+public void stop()
+          throws java.io.IOException
+
+
Description copied from interface: WebContainer
+
Stops the web container +

+

+
Specified by:
stop in interface WebContainer
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+deploy

+
+public void deploy(java.lang.String servletClassName,
+                   javax.management.remote.JMXServiceURL url,
+                   java.util.Map environment)
+            throws java.io.IOException
+
+
Description copied from interface: WebContainer
+
Deploys the given servlet class mapping it to the URL specified by the given JMXServiceURL. +

+

+
Specified by:
deploy in interface WebContainer
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+undeploy

+
+public void undeploy(java.lang.String servletName,
+                     javax.management.remote.JMXServiceURL url,
+                     java.util.Map environment)
+
+
Description copied from interface: WebContainer
+
Undeploys the servlet mapped to the URL specified by the given JMXServiceURL. +

+

+
Specified by:
undeploy in interface WebContainer
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/class-use/JettyWebContainer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/class-use/JettyWebContainer.html new file mode 100644 index 0000000..e9f5173 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/class-use/JettyWebContainer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.http.jetty.JettyWebContainer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.http.jetty.JettyWebContainer

+
+No usage of mx4j.tools.remote.http.jetty.JettyWebContainer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-frame.html new file mode 100644 index 0000000..a3c6e8e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.remote.http.jetty (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.http.jetty + + + + +
+Classes  + +
+JettyWebContainer
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-summary.html new file mode 100644 index 0000000..573a4dd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.remote.http.jetty (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.http.jetty +

+ + + + + + + + + +
+Class Summary
JettyWebContainerJetty's implementation of WebContainer interface
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-tree.html new file mode 100644 index 0000000..4d1cfbc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-tree.html @@ -0,0 +1,146 @@ + + + + + + +mx4j.tools.remote.http.jetty Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.http.jetty +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-use.html new file mode 100644 index 0000000..c762e46 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/jetty/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.http.jetty (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.http.jetty

+
+No usage of mx4j.tools.remote.http.jetty +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-frame.html new file mode 100644 index 0000000..e55ed39 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-frame.html @@ -0,0 +1,67 @@ + + + + + + +mx4j.tools.remote.http (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.http + + + + +
+Interfaces  + +
+HTTPConnection +
+WebContainer
+ + + + + + +
+Classes  + +
+HTTPClientInvoker +
+HTTPConnectionHandler +
+HTTPConnectionManager +
+HTTPConnectionMBeanServerConnection +
+HTTPConnector +
+HTTPConnectorServer +
+HTTPHeartBeat +
+HTTPRemoteNotificationClientHandler +
+HTTPResolver +
+HTTPServerInvoker +
+HTTPService +
+HTTPSubjectInvoker
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-summary.html new file mode 100644 index 0000000..635d828 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-summary.html @@ -0,0 +1,212 @@ + + + + + + +mx4j.tools.remote.http (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.http +

+ + + + + + + + + + + + + +
+Interface Summary
HTTPConnection 
WebContainerAn Interface for the Web Container so that we can plug in any web container.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
HTTPClientInvoker 
HTTPConnectionHandler 
HTTPConnectionManager 
HTTPConnectionMBeanServerConnectionImplementation of an adapter that converts MBeanServerConnection calls + to HTTPConnection calls.
HTTPConnector 
HTTPConnectorServer 
HTTPHeartBeat 
HTTPRemoteNotificationClientHandler 
HTTPResolver 
HTTPServerInvokerImplementation of the HTTPConnector interface that forwards the calls + to an MBeanServerConnection object.
HTTPService 
HTTPSubjectInvoker 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-tree.html new file mode 100644 index 0000000..96ee200 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-tree.html @@ -0,0 +1,195 @@ + + + + + + +mx4j.tools.remote.http Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.http +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-use.html new file mode 100644 index 0000000..2b72399 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/http/package-use.html @@ -0,0 +1,318 @@ + + + + + + +Uses of Package mx4j.tools.remote.http (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.http

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use mx4j.tools.remote.http
mx4j.tools.remote.caucho  
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
mx4j.tools.remote.http  
mx4j.tools.remote.http.jetty  
mx4j.tools.remote.resolver.burlap  
mx4j.tools.remote.soap  
+  +

+ + + + + + + + + + + + + + +
+Classes in mx4j.tools.remote.http used by mx4j.tools.remote.caucho
HTTPClientInvoker + +
+           
HTTPConnection + +
+           
HTTPService + +
+           
+  +

+ + + + + + + + + + + +
+Classes in mx4j.tools.remote.http used by mx4j.tools.remote.caucho.burlap
HTTPClientInvoker + +
+           
HTTPConnection + +
+           
+  +

+ + + + + + + + + + + +
+Classes in mx4j.tools.remote.http used by mx4j.tools.remote.caucho.hessian
HTTPClientInvoker + +
+           
HTTPConnection + +
+           
+  +

+ + + + + + + + + + + +
+Classes in mx4j.tools.remote.http used by mx4j.tools.remote.http
HTTPConnection + +
+           
WebContainer + +
+          An Interface for the Web Container so that we can plug in any web container.
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote.http used by mx4j.tools.remote.http.jetty
WebContainer + +
+          An Interface for the Web Container so that we can plug in any web container.
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote.http used by mx4j.tools.remote.resolver.burlap
HTTPResolver + +
+           
+  +

+ + + + + + + + + + + + + + +
+Classes in mx4j.tools.remote.http used by mx4j.tools.remote.soap
HTTPConnection + +
+           
HTTPConnector + +
+           
HTTPService + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnection.html new file mode 100644 index 0000000..15f8740 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnection.html @@ -0,0 +1,314 @@ + + + + + + +LocalConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.local +
+Interface LocalConnection

+
+
All Superinterfaces:
JMXConnection
+
+
+
+
public interface LocalConnection
extends JMXConnection
+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName observed, + javax.management.NotificationListener listener, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from interface mx4j.tools.remote.JMXConnection
addNotificationListener, close, createMBean, createMBean, getAttribute, getAttributes, getDefaultDomain, getDomains, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeNotificationListener, removeNotificationListener, setAttribute, setAttributes, unregisterMBean
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName observed,
+                                    javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback,
+                                    javax.security.auth.Subject delegate)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName observed,
+                                       javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnector.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnector.html new file mode 100644 index 0000000..59d6c47 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnector.html @@ -0,0 +1,382 @@ + + + + + + +LocalConnector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.local +
+Class LocalConnector

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractJMXConnector
+      extended bymx4j.tools.remote.local.LocalConnector
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnector, java.io.Serializable
+
+
+
+
public class LocalConnector
extends AbstractJMXConnector
+ +

+

+
Version:
+
$Revision: 1.9 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface javax.management.remote.JMXConnector
CREDENTIALS
+  + + + + + + + + + + +
+Constructor Summary
LocalConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voiddoClose() + +
+          Template method to be implemented by subclasses to close this JMXConnector
+protected  voiddoConnect(java.util.Map environment) + +
+           
+protected  javax.management.MBeanServerConnectiondoGetMBeanServerConnection(javax.security.auth.Subject delegate) + +
+          Template method to be implemented by subclasses to return an MBeanServerConnection + for the given delegate subject.
+ java.lang.StringgetConnectionId() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.AbstractJMXConnector
addConnectionNotificationListener, close, connect, connect, createConnectionNotificationEmitter, getAddress, getConnectionNotificationEmitter, getMBeanServerConnection, getMBeanServerConnection, isClosed, isConnected, removeConnectionNotificationListener, removeConnectionNotificationListener, sendConnectionNotificationClosed
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+LocalConnector

+
+public LocalConnector(javax.management.remote.JMXServiceURL url,
+                      java.util.Map environment)
+               throws java.io.IOException
+
+
+ + + + + + + + +
+Method Detail
+ +

+doConnect

+
+protected void doConnect(java.util.Map environment)
+                  throws java.io.IOException,
+                         java.lang.SecurityException
+
+
+
Specified by:
doConnect in class AbstractJMXConnector
+
+
+ +
Throws: +
java.io.IOException +
java.lang.SecurityException
+
+
+
+ +

+doClose

+
+protected void doClose()
+                throws java.io.IOException
+
+
Description copied from class: AbstractJMXConnector
+
Template method to be implemented by subclasses to close this JMXConnector +

+

+
Specified by:
doClose in class AbstractJMXConnector
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+doGetMBeanServerConnection

+
+protected javax.management.MBeanServerConnection doGetMBeanServerConnection(javax.security.auth.Subject delegate)
+                                                                     throws java.io.IOException
+
+
Description copied from class: AbstractJMXConnector
+
Template method to be implemented by subclasses to return an MBeanServerConnection + for the given delegate subject. + This method should return an MBeanServerConnection that delegates method calls to a + JMXConnection (or an equivalent client side connection object). + The JMXConnection object to which calls are delegated can in turn be a chain of + objects that decorate the call performing some other operation; the final object in + the chain is the one that really communicates with the server side, and it is normally + called ClientInvoker. +

+

+
Specified by:
doGetMBeanServerConnection in class AbstractJMXConnector
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getConnectionId

+
+public java.lang.String getConnectionId()
+                                 throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnectorServer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnectorServer.html new file mode 100644 index 0000000..dac8674 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/LocalConnectorServer.html @@ -0,0 +1,384 @@ + + + + + + +LocalConnectorServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.local +
+Class LocalConnectorServer

+
+java.lang.Object
+  extended byjavax.management.NotificationBroadcasterSupport
+      extended byjavax.management.remote.JMXConnectorServer
+          extended bymx4j.tools.remote.AbstractJMXConnectorServer
+              extended bymx4j.tools.remote.local.LocalConnectorServer
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerMBean, javax.management.MBeanRegistration, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
+
public class LocalConnectorServer
extends AbstractJMXConnectorServer
+ +

+

+
Version:
+
$Revision: 1.8 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class javax.management.remote.JMXConnectorServer
AUTHENTICATOR
+  + + + + + + + + + + +
+Constructor Summary
LocalConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voiddoStart() + +
+          Template method implemented by subclasses to start this JMXConnectorServer
+protected  voiddoStop() + +
+          Template method implemented by subclasses to stop this JMXConnectorServer
+static mx4j.tools.remote.local.LocalConnectionManagerfind(javax.management.remote.JMXServiceURL url) + +
+           
+ javax.management.MBeanServergetMBeanServer() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.AbstractJMXConnectorServer
connectionClosed, connectionFailed, connectionOpened, getAddress, getAttributes, getEnvironment, getLogger, isActive, isStopped, setAddress, start, stop
+ + + + + + + +
Methods inherited from class javax.management.remote.JMXConnectorServer
getConnectionIds, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister, setMBeanServerForwarder, toJMXConnector
+ + + + + + + +
Methods inherited from class javax.management.NotificationBroadcasterSupport
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+LocalConnectorServer

+
+public LocalConnectorServer(javax.management.remote.JMXServiceURL url,
+                            java.util.Map environment,
+                            javax.management.MBeanServer server)
+
+
+ + + + + + + + +
+Method Detail
+ +

+find

+
+public static mx4j.tools.remote.local.LocalConnectionManager find(javax.management.remote.JMXServiceURL url)
+
+
+
+
+
+
+ +

+getMBeanServer

+
+public javax.management.MBeanServer getMBeanServer()
+
+
+
+
+
+
+ +

+doStart

+
+protected void doStart()
+                throws java.io.IOException
+
+
Description copied from class: AbstractJMXConnectorServer
+
Template method implemented by subclasses to start this JMXConnectorServer +

+

+
Specified by:
doStart in class AbstractJMXConnectorServer
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+doStop

+
+protected void doStop()
+               throws java.io.IOException
+
+
Description copied from class: AbstractJMXConnectorServer
+
Template method implemented by subclasses to stop this JMXConnectorServer +

+

+
Specified by:
doStop in class AbstractJMXConnectorServer
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnection.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnection.html new file mode 100644 index 0000000..7825029 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnection.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Interface mx4j.tools.remote.local.LocalConnection (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.remote.local.LocalConnection

+
+No usage of mx4j.tools.remote.local.LocalConnection +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnector.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnector.html new file mode 100644 index 0000000..8c15fa3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnector.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.local.LocalConnector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.local.LocalConnector

+
+No usage of mx4j.tools.remote.local.LocalConnector +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnectorServer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnectorServer.html new file mode 100644 index 0000000..e941ee5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/class-use/LocalConnectorServer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.local.LocalConnectorServer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.local.LocalConnectorServer

+
+No usage of mx4j.tools.remote.local.LocalConnectorServer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-frame.html new file mode 100644 index 0000000..4d54ea2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-frame.html @@ -0,0 +1,45 @@ + + + + + + +mx4j.tools.remote.local (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.local + + + + +
+Interfaces  + +
+LocalConnection
+ + + + + + +
+Classes  + +
+LocalConnector +
+LocalConnectorServer
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-summary.html new file mode 100644 index 0000000..e61cf9a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-summary.html @@ -0,0 +1,166 @@ + + + + + + +mx4j.tools.remote.local (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.local +

+ + + + + + + + + +
+Interface Summary
LocalConnection 
+  + +

+ + + + + + + + + + + + + +
+Class Summary
LocalConnector 
LocalConnectorServer 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-tree.html new file mode 100644 index 0000000..41b8e51 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-tree.html @@ -0,0 +1,163 @@ + + + + + + +mx4j.tools.remote.local Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.local +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.remote.AbstractJMXConnector (implements javax.management.remote.JMXConnector, java.io.Serializable) + +
    • class javax.management.NotificationBroadcasterSupport (implements javax.management.NotificationEmitter) +
        +
      • class javax.management.remote.JMXConnectorServer (implements javax.management.remote.JMXConnectorServerMBean, javax.management.MBeanRegistration) + +
      +
    +
+

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-use.html new file mode 100644 index 0000000..71ad6fc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/local/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.local (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.local

+
+No usage of mx4j.tools.remote.local +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-frame.html new file mode 100644 index 0000000..870c7f7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-frame.html @@ -0,0 +1,63 @@ + + + + + + +mx4j.tools.remote (MX4J API) + + + + + + + + + + + +mx4j.tools.remote + + + + +
+Interfaces  + +
+Connection +
+ConnectionManager +
+JMXConnection
+ + + + + + +
+Classes  + +
+AbstractConnection +
+AbstractConnectionManager +
+AbstractJMXConnector +
+AbstractJMXConnectorServer +
+AbstractServerInvoker +
+JMXConnectionHandler +
+JMXConnectionMBeanServerConnection +
+PasswordAuthenticator +
+SubjectInvoker
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-summary.html new file mode 100644 index 0000000..b52fcb1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-summary.html @@ -0,0 +1,210 @@ + + + + + + +mx4j.tools.remote (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote +

+ + + + + + + + + + + + + + + + + +
+Interface Summary
ConnectionRepresents a connection between a client and a server.
ConnectionManagerA ConnectionManager is a server-side object that acts as the factory for new connections and + manages the authentication details.
JMXConnection 
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
AbstractConnectionImplementation of the Connection interface, to be used on the server-side end of the connection.
AbstractConnectionManagerImplementation of the ConnectionManager interface that implements emission of connection notifications, + authentication, and proper closing of connections.
AbstractJMXConnectorAbstract implementation of the JMXConnector interface.
AbstractJMXConnectorServerExtends the implementation of JMXConnectorServer by implementing most + JMXConnectorServer methods following the JSR 160 specification and delegating + implementation specific operations using the template method pattern.
AbstractServerInvokerThis class implements partially the JMXConnection interface to forward the calls + to an MBeanServerConnection object (hence the name 'invoker').
JMXConnectionHandlerThis handler manages the operations related to the connection itself, such as + JMXConnectionHandler.close(), AbstractConnection.getConnectionId().
JMXConnectionMBeanServerConnectionAbstract implementation of an adapter that converts MBeanServerConnection calls + to JMXConnection calls.
PasswordAuthenticatorImplementation of the JMXAuthenticator interface to be used on server side + to secure access to JMXConnectorServers.
SubjectInvoker 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-tree.html new file mode 100644 index 0000000..3fb068b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-tree.html @@ -0,0 +1,166 @@ + + + + + + +mx4j.tools.remote Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-use.html new file mode 100644 index 0000000..93495f0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/package-use.html @@ -0,0 +1,390 @@ + + + + + + +Uses of Package mx4j.tools.remote (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages that use mx4j.tools.remote
mx4j.tools.remote  
mx4j.tools.remote.caucho  
mx4j.tools.remote.caucho.burlap  
mx4j.tools.remote.caucho.hessian  
mx4j.tools.remote.http  
mx4j.tools.remote.local  
mx4j.tools.remote.soap  
+  +

+ + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.tools.remote used by mx4j.tools.remote
AbstractConnection + +
+          Implementation of the Connection interface, to be used on the server-side end of the connection.
AbstractJMXConnectorServer + +
+          Extends the implementation of JMXConnectorServer by implementing most + JMXConnectorServer methods following the JSR 160 specification and delegating + implementation specific operations using the template method pattern.
Connection + +
+          Represents a connection between a client and a server.
ConnectionManager + +
+          A ConnectionManager is a server-side object that acts as the factory for new connections and + manages the authentication details.
JMXConnection + +
+           
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote used by mx4j.tools.remote.caucho
JMXConnection + +
+           
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote used by mx4j.tools.remote.caucho.burlap
JMXConnection + +
+           
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote used by mx4j.tools.remote.caucho.hessian
JMXConnection + +
+           
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.tools.remote used by mx4j.tools.remote.http
AbstractConnection + +
+          Implementation of the Connection interface, to be used on the server-side end of the connection.
AbstractConnectionManager + +
+          Implementation of the ConnectionManager interface that implements emission of connection notifications, + authentication, and proper closing of connections.
AbstractJMXConnector + +
+          Abstract implementation of the JMXConnector interface.
AbstractJMXConnectorServer + +
+          Extends the implementation of JMXConnectorServer by implementing most + JMXConnectorServer methods following the JSR 160 specification and delegating + implementation specific operations using the template method pattern.
AbstractServerInvoker + +
+          This class implements partially the JMXConnection interface to forward the calls + to an MBeanServerConnection object (hence the name 'invoker').
Connection + +
+          Represents a connection between a client and a server.
ConnectionManager + +
+          A ConnectionManager is a server-side object that acts as the factory for new connections and + manages the authentication details.
JMXConnection + +
+           
JMXConnectionHandler + +
+          This handler manages the operations related to the connection itself, such as + JMXConnectionHandler.close(), AbstractConnection.getConnectionId().
JMXConnectionMBeanServerConnection + +
+          Abstract implementation of an adapter that converts MBeanServerConnection calls + to JMXConnection calls.
SubjectInvoker + +
+           
+  +

+ + + + + + + + + + + + + + +
+Classes in mx4j.tools.remote used by mx4j.tools.remote.local
AbstractJMXConnector + +
+          Abstract implementation of the JMXConnector interface.
AbstractJMXConnectorServer + +
+          Extends the implementation of JMXConnectorServer by implementing most + JMXConnectorServer methods following the JSR 160 specification and delegating + implementation specific operations using the template method pattern.
JMXConnection + +
+           
+  +

+ + + + + + + + + + + +
+Classes in mx4j.tools.remote used by mx4j.tools.remote.soap
AbstractJMXConnector + +
+          Abstract implementation of the JMXConnector interface.
JMXConnection + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ClientProvider.html new file mode 100644 index 0000000..d57c1cf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ClientProvider.html @@ -0,0 +1,267 @@ + + + + + + +ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.burlap +
+Class ClientProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.burlap.ClientProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorProvider
+
+
+
+
public class ClientProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorProvider
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProvider

+
+public ClientProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                            java.util.Map environment)
+                                                     throws java.io.IOException
+
+
+
Specified by:
newJMXConnector in interface javax.management.remote.JMXConnectorProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ServerProvider.html new file mode 100644 index 0000000..9675241 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ServerProvider.html @@ -0,0 +1,269 @@ + + + + + + +ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.burlap +
+Class ServerProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.burlap.ServerProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerProvider
+
+
+
+
public class ServerProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorServerProvider
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ServerProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerProvider

+
+public ServerProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnectorServer

+
+public javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                        java.util.Map environment,
+                                                                        javax.management.MBeanServer server)
+                                                                 throws java.io.IOException
+
+
+
Specified by:
newJMXConnectorServer in interface javax.management.remote.JMXConnectorServerProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/class-use/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/class-use/ClientProvider.html new file mode 100644 index 0000000..bbc6a2e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/class-use/ClientProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.burlap.ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.burlap.ClientProvider

+
+No usage of mx4j.tools.remote.provider.burlap.ClientProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/class-use/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/class-use/ServerProvider.html new file mode 100644 index 0000000..9816d83 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/class-use/ServerProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.burlap.ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.burlap.ServerProvider

+
+No usage of mx4j.tools.remote.provider.burlap.ServerProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-frame.html new file mode 100644 index 0000000..7e9c8bc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.tools.remote.provider.burlap (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.provider.burlap + + + + +
+Classes  + +
+ClientProvider +
+ServerProvider
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-summary.html new file mode 100644 index 0000000..052eb4b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.tools.remote.provider.burlap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.provider.burlap +

+ + + + + + + + + + + + + +
+Class Summary
ClientProvider 
ServerProvider 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-tree.html new file mode 100644 index 0000000..d69c683 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.tools.remote.provider.burlap Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.provider.burlap +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.remote.provider.burlap.ClientProvider (implements javax.management.remote.JMXConnectorProvider) +
    • class mx4j.tools.remote.provider.burlap.ServerProvider (implements javax.management.remote.JMXConnectorServerProvider) +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-use.html new file mode 100644 index 0000000..1d0d7ee --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.provider.burlap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.provider.burlap

+
+No usage of mx4j.tools.remote.provider.burlap +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/ClientProvider.html new file mode 100644 index 0000000..5d036c0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/ClientProvider.html @@ -0,0 +1,267 @@ + + + + + + +ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.burlap.ssl +
+Class ClientProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.burlap.ssl.ClientProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorProvider
+
+
+
+
public class ClientProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorProvider
+ +

+

+
Version:
+
$Revision: 1.2 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProvider

+
+public ClientProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                            java.util.Map environment)
+                                                     throws java.io.IOException
+
+
+
Specified by:
newJMXConnector in interface javax.management.remote.JMXConnectorProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/ServerProvider.html new file mode 100644 index 0000000..5ca7185 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/ServerProvider.html @@ -0,0 +1,269 @@ + + + + + + +ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.burlap.ssl +
+Class ServerProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.burlap.ssl.ServerProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerProvider
+
+
+
+
public class ServerProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorServerProvider
+ +

+

+
Version:
+
$Revision: 1.2 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ServerProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerProvider

+
+public ServerProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnectorServer

+
+public javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                        java.util.Map environment,
+                                                                        javax.management.MBeanServer server)
+                                                                 throws java.io.IOException
+
+
+
Specified by:
newJMXConnectorServer in interface javax.management.remote.JMXConnectorServerProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/class-use/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/class-use/ClientProvider.html new file mode 100644 index 0000000..742bd02 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/class-use/ClientProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.burlap.ssl.ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.burlap.ssl.ClientProvider

+
+No usage of mx4j.tools.remote.provider.burlap.ssl.ClientProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/class-use/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/class-use/ServerProvider.html new file mode 100644 index 0000000..0eb6780 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/class-use/ServerProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.burlap.ssl.ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.burlap.ssl.ServerProvider

+
+No usage of mx4j.tools.remote.provider.burlap.ssl.ServerProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-frame.html new file mode 100644 index 0000000..1004ec0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.tools.remote.provider.burlap.ssl (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.provider.burlap.ssl + + + + +
+Classes  + +
+ClientProvider +
+ServerProvider
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-summary.html new file mode 100644 index 0000000..0f1e4ed --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.tools.remote.provider.burlap.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.provider.burlap.ssl +

+ + + + + + + + + + + + + +
+Class Summary
ClientProvider 
ServerProvider 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-tree.html new file mode 100644 index 0000000..aeb81f5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.tools.remote.provider.burlap.ssl Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.provider.burlap.ssl +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.remote.provider.burlap.ssl.ClientProvider (implements javax.management.remote.JMXConnectorProvider) +
    • class mx4j.tools.remote.provider.burlap.ssl.ServerProvider (implements javax.management.remote.JMXConnectorServerProvider) +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-use.html new file mode 100644 index 0000000..a31f1ec --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/burlap/ssl/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.provider.burlap.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.provider.burlap.ssl

+
+No usage of mx4j.tools.remote.provider.burlap.ssl +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ClientProvider.html new file mode 100644 index 0000000..9e3e551 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ClientProvider.html @@ -0,0 +1,267 @@ + + + + + + +ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.hessian +
+Class ClientProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.hessian.ClientProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorProvider
+
+
+
+
public class ClientProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorProvider
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProvider

+
+public ClientProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                            java.util.Map environment)
+                                                     throws java.io.IOException
+
+
+
Specified by:
newJMXConnector in interface javax.management.remote.JMXConnectorProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ServerProvider.html new file mode 100644 index 0000000..4eab816 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ServerProvider.html @@ -0,0 +1,269 @@ + + + + + + +ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.hessian +
+Class ServerProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.hessian.ServerProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerProvider
+
+
+
+
public class ServerProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorServerProvider
+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ServerProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerProvider

+
+public ServerProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnectorServer

+
+public javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                        java.util.Map environment,
+                                                                        javax.management.MBeanServer server)
+                                                                 throws java.io.IOException
+
+
+
Specified by:
newJMXConnectorServer in interface javax.management.remote.JMXConnectorServerProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/class-use/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/class-use/ClientProvider.html new file mode 100644 index 0000000..b09776f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/class-use/ClientProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.hessian.ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.hessian.ClientProvider

+
+No usage of mx4j.tools.remote.provider.hessian.ClientProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/class-use/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/class-use/ServerProvider.html new file mode 100644 index 0000000..2336e33 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/class-use/ServerProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.hessian.ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.hessian.ServerProvider

+
+No usage of mx4j.tools.remote.provider.hessian.ServerProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-frame.html new file mode 100644 index 0000000..4b27db9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.tools.remote.provider.hessian (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.provider.hessian + + + + +
+Classes  + +
+ClientProvider +
+ServerProvider
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-summary.html new file mode 100644 index 0000000..424de58 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.tools.remote.provider.hessian (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.provider.hessian +

+ + + + + + + + + + + + + +
+Class Summary
ClientProvider 
ServerProvider 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-tree.html new file mode 100644 index 0000000..3dfa5e1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.tools.remote.provider.hessian Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.provider.hessian +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.remote.provider.hessian.ClientProvider (implements javax.management.remote.JMXConnectorProvider) +
    • class mx4j.tools.remote.provider.hessian.ServerProvider (implements javax.management.remote.JMXConnectorServerProvider) +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-use.html new file mode 100644 index 0000000..f88031a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.provider.hessian (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.provider.hessian

+
+No usage of mx4j.tools.remote.provider.hessian +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/ClientProvider.html new file mode 100644 index 0000000..7eeed3f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/ClientProvider.html @@ -0,0 +1,267 @@ + + + + + + +ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.hessian.ssl +
+Class ClientProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.hessian.ssl.ClientProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorProvider
+
+
+
+
public class ClientProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorProvider
+ +

+

+
Version:
+
$Revision: 1.2 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProvider

+
+public ClientProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                            java.util.Map environment)
+                                                     throws java.io.IOException
+
+
+
Specified by:
newJMXConnector in interface javax.management.remote.JMXConnectorProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/ServerProvider.html new file mode 100644 index 0000000..a1475b2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/ServerProvider.html @@ -0,0 +1,269 @@ + + + + + + +ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.hessian.ssl +
+Class ServerProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.hessian.ssl.ServerProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerProvider
+
+
+
+
public class ServerProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorServerProvider
+ +

+

+
Version:
+
$Revision: 1.2 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ServerProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerProvider

+
+public ServerProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnectorServer

+
+public javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                        java.util.Map environment,
+                                                                        javax.management.MBeanServer server)
+                                                                 throws java.io.IOException
+
+
+
Specified by:
newJMXConnectorServer in interface javax.management.remote.JMXConnectorServerProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/class-use/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/class-use/ClientProvider.html new file mode 100644 index 0000000..c89f618 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/class-use/ClientProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.hessian.ssl.ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.hessian.ssl.ClientProvider

+
+No usage of mx4j.tools.remote.provider.hessian.ssl.ClientProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/class-use/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/class-use/ServerProvider.html new file mode 100644 index 0000000..793cc24 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/class-use/ServerProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.hessian.ssl.ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.hessian.ssl.ServerProvider

+
+No usage of mx4j.tools.remote.provider.hessian.ssl.ServerProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-frame.html new file mode 100644 index 0000000..edcc61a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.tools.remote.provider.hessian.ssl (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.provider.hessian.ssl + + + + +
+Classes  + +
+ClientProvider +
+ServerProvider
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-summary.html new file mode 100644 index 0000000..750d00d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.tools.remote.provider.hessian.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.provider.hessian.ssl +

+ + + + + + + + + + + + + +
+Class Summary
ClientProvider 
ServerProvider 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-tree.html new file mode 100644 index 0000000..a9eac6b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.tools.remote.provider.hessian.ssl Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.provider.hessian.ssl +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.remote.provider.hessian.ssl.ClientProvider (implements javax.management.remote.JMXConnectorProvider) +
    • class mx4j.tools.remote.provider.hessian.ssl.ServerProvider (implements javax.management.remote.JMXConnectorServerProvider) +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-use.html new file mode 100644 index 0000000..fd3f92d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/hessian/ssl/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.provider.hessian.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.provider.hessian.ssl

+
+No usage of mx4j.tools.remote.provider.hessian.ssl +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/ClientProvider.html new file mode 100644 index 0000000..40e8917 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/ClientProvider.html @@ -0,0 +1,267 @@ + + + + + + +ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.local +
+Class ClientProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.local.ClientProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorProvider
+
+
+
+
public class ClientProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorProvider
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProvider

+
+public ClientProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                            java.util.Map environment)
+                                                     throws java.io.IOException
+
+
+
Specified by:
newJMXConnector in interface javax.management.remote.JMXConnectorProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/ServerProvider.html new file mode 100644 index 0000000..ae90de4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/ServerProvider.html @@ -0,0 +1,269 @@ + + + + + + +ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.local +
+Class ServerProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.local.ServerProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerProvider
+
+
+
+
public class ServerProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorServerProvider
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ServerProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerProvider

+
+public ServerProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnectorServer

+
+public javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                        java.util.Map environment,
+                                                                        javax.management.MBeanServer server)
+                                                                 throws java.io.IOException
+
+
+
Specified by:
newJMXConnectorServer in interface javax.management.remote.JMXConnectorServerProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/class-use/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/class-use/ClientProvider.html new file mode 100644 index 0000000..7861d82 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/class-use/ClientProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.local.ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.local.ClientProvider

+
+No usage of mx4j.tools.remote.provider.local.ClientProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/class-use/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/class-use/ServerProvider.html new file mode 100644 index 0000000..2d3c9b1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/class-use/ServerProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.local.ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.local.ServerProvider

+
+No usage of mx4j.tools.remote.provider.local.ServerProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-frame.html new file mode 100644 index 0000000..21c55fc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.tools.remote.provider.local (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.provider.local + + + + +
+Classes  + +
+ClientProvider +
+ServerProvider
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-summary.html new file mode 100644 index 0000000..6569b2c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.tools.remote.provider.local (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.provider.local +

+ + + + + + + + + + + + + +
+Class Summary
ClientProvider 
ServerProvider 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-tree.html new file mode 100644 index 0000000..266b34e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.tools.remote.provider.local Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.provider.local +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.remote.provider.local.ClientProvider (implements javax.management.remote.JMXConnectorProvider) +
    • class mx4j.tools.remote.provider.local.ServerProvider (implements javax.management.remote.JMXConnectorServerProvider) +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-use.html new file mode 100644 index 0000000..e3aff70 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/local/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.provider.local (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.provider.local

+
+No usage of mx4j.tools.remote.provider.local +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ClientProvider.html new file mode 100644 index 0000000..a73e9c6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ClientProvider.html @@ -0,0 +1,271 @@ + + + + + + +ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.soap +
+Class ClientProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.soap.ClientProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorProvider
+
+
+
+
public class ClientProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorProvider
+ +

+SOAP Connector Client Provider +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProvider

+
+public ClientProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                            java.util.Map environment)
+                                                     throws java.io.IOException
+
+
+
Specified by:
newJMXConnector in interface javax.management.remote.JMXConnectorProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ServerProvider.html new file mode 100644 index 0000000..6a2de95 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ServerProvider.html @@ -0,0 +1,273 @@ + + + + + + +ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.soap +
+Class ServerProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.soap.ServerProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerProvider
+
+
+
+
public class ServerProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorServerProvider
+ +

+SOAP Connector Server Provider +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ServerProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerProvider

+
+public ServerProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnectorServer

+
+public javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                        java.util.Map environment,
+                                                                        javax.management.MBeanServer server)
+                                                                 throws java.io.IOException
+
+
+
Specified by:
newJMXConnectorServer in interface javax.management.remote.JMXConnectorServerProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/class-use/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/class-use/ClientProvider.html new file mode 100644 index 0000000..ba52a6c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/class-use/ClientProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.soap.ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.soap.ClientProvider

+
+No usage of mx4j.tools.remote.provider.soap.ClientProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/class-use/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/class-use/ServerProvider.html new file mode 100644 index 0000000..93ebb7e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/class-use/ServerProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.soap.ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.soap.ServerProvider

+
+No usage of mx4j.tools.remote.provider.soap.ServerProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-frame.html new file mode 100644 index 0000000..881d8eb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.tools.remote.provider.soap (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.provider.soap + + + + +
+Classes  + +
+ClientProvider +
+ServerProvider
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-summary.html new file mode 100644 index 0000000..dcaf55a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.tools.remote.provider.soap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.provider.soap +

+ + + + + + + + + + + + + +
+Class Summary
ClientProviderSOAP Connector Client Provider
ServerProviderSOAP Connector Server Provider
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-tree.html new file mode 100644 index 0000000..c0ccbd2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.tools.remote.provider.soap Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.provider.soap +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.remote.provider.soap.ClientProvider (implements javax.management.remote.JMXConnectorProvider) +
    • class mx4j.tools.remote.provider.soap.ServerProvider (implements javax.management.remote.JMXConnectorServerProvider) +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-use.html new file mode 100644 index 0000000..caa894b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.provider.soap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.provider.soap

+
+No usage of mx4j.tools.remote.provider.soap +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/ClientProvider.html new file mode 100644 index 0000000..bf592f7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/ClientProvider.html @@ -0,0 +1,267 @@ + + + + + + +ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.soap.ssl +
+Class ClientProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.soap.ssl.ClientProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorProvider
+
+
+
+
public class ClientProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorProvider
+ +

+

+
Version:
+
$Revision: 1.2 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ClientProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectornewJMXConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ClientProvider

+
+public ClientProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnector

+
+public javax.management.remote.JMXConnector newJMXConnector(javax.management.remote.JMXServiceURL url,
+                                                            java.util.Map environment)
+                                                     throws java.io.IOException
+
+
+
Specified by:
newJMXConnector in interface javax.management.remote.JMXConnectorProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/ServerProvider.html new file mode 100644 index 0000000..35f1b86 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/ServerProvider.html @@ -0,0 +1,269 @@ + + + + + + +ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.provider.soap.ssl +
+Class ServerProvider

+
+java.lang.Object
+  extended bymx4j.tools.remote.provider.soap.ssl.ServerProvider
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnectorServerProvider
+
+
+
+
public class ServerProvider
extends java.lang.Object
implements javax.management.remote.JMXConnectorServerProvider
+ +

+

+
Version:
+
$Revision: 1.2 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ServerProvider() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ javax.management.remote.JMXConnectorServernewJMXConnectorServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.management.MBeanServer server) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ServerProvider

+
+public ServerProvider()
+
+
+ + + + + + + + +
+Method Detail
+ +

+newJMXConnectorServer

+
+public javax.management.remote.JMXConnectorServer newJMXConnectorServer(javax.management.remote.JMXServiceURL url,
+                                                                        java.util.Map environment,
+                                                                        javax.management.MBeanServer server)
+                                                                 throws java.io.IOException
+
+
+
Specified by:
newJMXConnectorServer in interface javax.management.remote.JMXConnectorServerProvider
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/class-use/ClientProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/class-use/ClientProvider.html new file mode 100644 index 0000000..39d6fc7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/class-use/ClientProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.soap.ssl.ClientProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.soap.ssl.ClientProvider

+
+No usage of mx4j.tools.remote.provider.soap.ssl.ClientProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/class-use/ServerProvider.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/class-use/ServerProvider.html new file mode 100644 index 0000000..aa8a1ed --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/class-use/ServerProvider.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.provider.soap.ssl.ServerProvider (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.provider.soap.ssl.ServerProvider

+
+No usage of mx4j.tools.remote.provider.soap.ssl.ServerProvider +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-frame.html new file mode 100644 index 0000000..8c16b4b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.tools.remote.provider.soap.ssl (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.provider.soap.ssl + + + + +
+Classes  + +
+ClientProvider +
+ServerProvider
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-summary.html new file mode 100644 index 0000000..773bef1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.tools.remote.provider.soap.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.provider.soap.ssl +

+ + + + + + + + + + + + + +
+Class Summary
ClientProvider 
ServerProvider 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-tree.html new file mode 100644 index 0000000..6b51e1d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.tools.remote.provider.soap.ssl Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.provider.soap.ssl +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.remote.provider.soap.ssl.ClientProvider (implements javax.management.remote.JMXConnectorProvider) +
    • class mx4j.tools.remote.provider.soap.ssl.ServerProvider (implements javax.management.remote.JMXConnectorServerProvider) +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-use.html new file mode 100644 index 0000000..56168e3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/provider/soap/ssl/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.provider.soap.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.provider.soap.ssl

+
+No usage of mx4j.tools.remote.provider.soap.ssl +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/RemoteMBeanProxy.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/RemoteMBeanProxy.html new file mode 100644 index 0000000..3857508 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/RemoteMBeanProxy.html @@ -0,0 +1,708 @@ + + + + + + +RemoteMBeanProxy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.proxy +
+Class RemoteMBeanProxy

+
+java.lang.Object
+  extended bymx4j.tools.remote.proxy.RemoteMBeanProxy
+
+
+
All Implemented Interfaces:
javax.management.DynamicMBean, javax.management.MBeanRegistration, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter
+
+
+
+
public class RemoteMBeanProxy
extends java.lang.Object
implements javax.management.DynamicMBean, javax.management.NotificationEmitter, javax.management.MBeanRegistration
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + +
+Constructor Summary
RemoteMBeanProxy(javax.management.ObjectName remoteObjectName, + javax.management.remote.JMXConnector connector, + java.util.Map environment, + javax.security.auth.Subject delegate) + +
+           
RemoteMBeanProxy(javax.management.ObjectName remoteObjectName, + javax.management.remote.JMXServiceURL url, + java.util.Map environment, + javax.security.auth.Subject delegate) + +
+           
RemoteMBeanProxy(javax.management.ObjectName remoteObjectName, + javax.management.MBeanServerConnection connection) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ java.lang.ObjectgetAttribute(java.lang.String attribute) + +
+           
+ javax.management.AttributeListgetAttributes(java.lang.String[] attributes) + +
+           
+protected  javax.management.remote.JMXConnectorgetJMXConnector() + +
+           
+ javax.management.MBeanInfogetMBeanInfo() + +
+           
+protected  javax.management.MBeanServerConnectiongetMBeanServerConnection() + +
+           
+ javax.management.MBeanNotificationInfo[]getNotificationInfo() + +
+           
+protected  javax.management.ObjectNamegetRemoteObjectName() + +
+           
+ java.lang.Objectinvoke(java.lang.String method, + java.lang.Object[] arguments, + java.lang.String[] params) + +
+           
+ voidpostDeregister() + +
+           
+ voidpostRegister(java.lang.Boolean registrationDone) + +
+           
+ voidpreDeregister() + +
+           
+ javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, + javax.management.ObjectName name) + +
+           
+ voidremoveNotificationListener(javax.management.NotificationListener listener) + +
+           
+ voidremoveNotificationListener(javax.management.NotificationListener listener, + javax.management.NotificationFilter filter, + java.lang.Object handback) + +
+           
+ voidsetAttribute(javax.management.Attribute attribute) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.AttributeList attributes) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RemoteMBeanProxy

+
+public RemoteMBeanProxy(javax.management.ObjectName remoteObjectName,
+                        javax.management.remote.JMXServiceURL url,
+                        java.util.Map environment,
+                        javax.security.auth.Subject delegate)
+                 throws java.io.IOException
+
+
+
+ +

+RemoteMBeanProxy

+
+public RemoteMBeanProxy(javax.management.ObjectName remoteObjectName,
+                        javax.management.remote.JMXConnector connector,
+                        java.util.Map environment,
+                        javax.security.auth.Subject delegate)
+                 throws java.io.IOException
+
+
+
+ +

+RemoteMBeanProxy

+
+public RemoteMBeanProxy(javax.management.ObjectName remoteObjectName,
+                        javax.management.MBeanServerConnection connection)
+
+
+ + + + + + + + +
+Method Detail
+ +

+preRegister

+
+public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
+                                               javax.management.ObjectName name)
+                                        throws java.lang.Exception
+
+
+
Specified by:
preRegister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postRegister

+
+public void postRegister(java.lang.Boolean registrationDone)
+
+
+
Specified by:
postRegister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+preDeregister

+
+public void preDeregister()
+                   throws java.lang.Exception
+
+
+
Specified by:
preDeregister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postDeregister

+
+public void postDeregister()
+
+
+
Specified by:
postDeregister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+getRemoteObjectName

+
+protected javax.management.ObjectName getRemoteObjectName()
+
+
+
+
+
+
+
+
+
+ +

+getMBeanServerConnection

+
+protected javax.management.MBeanServerConnection getMBeanServerConnection()
+
+
+
+
+
+
+
+
+
+ +

+getJMXConnector

+
+protected javax.management.remote.JMXConnector getJMXConnector()
+
+
+
+
+
+
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo()
+
+
+
Specified by:
getMBeanInfo in interface javax.management.DynamicMBean
+
+
+
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(java.lang.String attribute)
+                              throws javax.management.AttributeNotFoundException,
+                                     javax.management.MBeanException,
+                                     javax.management.ReflectionException
+
+
+
Specified by:
getAttribute in interface javax.management.DynamicMBean
+
+
+ +
Throws: +
javax.management.AttributeNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.Attribute attribute)
+                  throws javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException
+
+
+
Specified by:
setAttribute in interface javax.management.DynamicMBean
+
+
+ +
Throws: +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(java.lang.String[] attributes)
+
+
+
Specified by:
getAttributes in interface javax.management.DynamicMBean
+
+
+
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
+
+
+
Specified by:
setAttributes in interface javax.management.DynamicMBean
+
+
+
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(java.lang.String method,
+                               java.lang.Object[] arguments,
+                               java.lang.String[] params)
+                        throws javax.management.MBeanException,
+                               javax.management.ReflectionException
+
+
+
Specified by:
invoke in interface javax.management.DynamicMBean
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.ReflectionException
+
+
+
+ +

+getNotificationInfo

+
+public javax.management.MBeanNotificationInfo[] getNotificationInfo()
+
+
+
Specified by:
getNotificationInfo in interface javax.management.NotificationBroadcaster
+
+
+
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.NotificationListener listener,
+                                    javax.management.NotificationFilter filter,
+                                    java.lang.Object handback)
+                             throws java.lang.IllegalArgumentException
+
+
+
Specified by:
addNotificationListener in interface javax.management.NotificationBroadcaster
+
+
+ +
Throws: +
java.lang.IllegalArgumentException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.NotificationListener listener)
+                                throws javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.NotificationBroadcaster
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.NotificationListener listener,
+                                       javax.management.NotificationFilter filter,
+                                       java.lang.Object handback)
+                                throws javax.management.ListenerNotFoundException
+
+
+
Specified by:
removeNotificationListener in interface javax.management.NotificationEmitter
+
+
+ +
Throws: +
javax.management.ListenerNotFoundException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/RemoteMBeanProxyException.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/RemoteMBeanProxyException.html new file mode 100644 index 0000000..dd8c14d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/RemoteMBeanProxyException.html @@ -0,0 +1,316 @@ + + + + + + +RemoteMBeanProxyException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.proxy +
+Class RemoteMBeanProxyException

+
+java.lang.Object
+  extended byjava.lang.Throwable
+      extended byjava.lang.Exception
+          extended byjava.lang.RuntimeException
+              extended byjavax.management.JMRuntimeException
+                  extended bymx4j.tools.remote.proxy.RemoteMBeanProxyException
+
+
+
All Implemented Interfaces:
java.io.Serializable
+
+
+
+
public class RemoteMBeanProxyException
extends javax.management.JMRuntimeException
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Constructor Summary
RemoteMBeanProxyException() + +
+           
RemoteMBeanProxyException(java.lang.Exception exception) + +
+           
RemoteMBeanProxyException(java.lang.String message) + +
+           
RemoteMBeanProxyException(java.lang.String message, + java.lang.Exception exception) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.ThrowablegetCause() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Throwable
fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RemoteMBeanProxyException

+
+public RemoteMBeanProxyException()
+
+
+
+ +

+RemoteMBeanProxyException

+
+public RemoteMBeanProxyException(java.lang.String message)
+
+
+
+ +

+RemoteMBeanProxyException

+
+public RemoteMBeanProxyException(java.lang.Exception exception)
+
+
+
+ +

+RemoteMBeanProxyException

+
+public RemoteMBeanProxyException(java.lang.String message,
+                                 java.lang.Exception exception)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getCause

+
+public java.lang.Throwable getCause()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/class-use/RemoteMBeanProxy.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/class-use/RemoteMBeanProxy.html new file mode 100644 index 0000000..dfd49c9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/class-use/RemoteMBeanProxy.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.proxy.RemoteMBeanProxy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.proxy.RemoteMBeanProxy

+
+No usage of mx4j.tools.remote.proxy.RemoteMBeanProxy +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/class-use/RemoteMBeanProxyException.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/class-use/RemoteMBeanProxyException.html new file mode 100644 index 0000000..6f2522f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/class-use/RemoteMBeanProxyException.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.proxy.RemoteMBeanProxyException (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.proxy.RemoteMBeanProxyException

+
+No usage of mx4j.tools.remote.proxy.RemoteMBeanProxyException +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-frame.html new file mode 100644 index 0000000..bbcc4fb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-frame.html @@ -0,0 +1,43 @@ + + + + + + +mx4j.tools.remote.proxy (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.proxy + + + + +
+Classes  + +
+RemoteMBeanProxy
+ + + + + + +
+Exceptions  + +
+RemoteMBeanProxyException
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-summary.html new file mode 100644 index 0000000..2747e77 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-summary.html @@ -0,0 +1,162 @@ + + + + + + +mx4j.tools.remote.proxy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.proxy +

+ + + + + + + + + +
+Class Summary
RemoteMBeanProxy 
+  + +

+ + + + + + + + + +
+Exception Summary
RemoteMBeanProxyException 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-tree.html new file mode 100644 index 0000000..10cefc8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-tree.html @@ -0,0 +1,155 @@ + + + + + + +mx4j.tools.remote.proxy Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.proxy +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object
      +
    • class mx4j.tools.remote.proxy.RemoteMBeanProxy (implements javax.management.DynamicMBean, javax.management.MBeanRegistration, javax.management.NotificationEmitter) +
    • class java.lang.Throwable (implements java.io.Serializable) +
        +
      • class java.lang.Exception
          +
        • class java.lang.RuntimeException +
        +
      +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-use.html new file mode 100644 index 0000000..e405b80 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/proxy/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.proxy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.proxy

+
+No usage of mx4j.tools.remote.proxy +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/Resolver.html new file mode 100644 index 0000000..d48f0d7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/Resolver.html @@ -0,0 +1,339 @@ + + + + + + +Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.resolver.burlap +
+Class Resolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.tools.remote.http.HTTPResolver
+              extended bymx4j.tools.remote.resolver.burlap.Resolver
+
+
+
Direct Known Subclasses:
Resolver
+
+
+
+
public class Resolver
extends HTTPResolver
+ +

+

+
Version:
+
$Revision: 1.1 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.http.HTTPResolver
DEFAULT_WEB_CONTAINER_CLASS
+  + + + + + + + + + + +
+Constructor Summary
Resolver() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.StringgetServletClassName() + +
+           
+ java.lang.ObjectlookupClient(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Looks up a connection with the server side as specified in the given JMXServiceURL.
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPResolver
bindClient, bindServer, createServer, createWebContainer, deploy, destroyServer, getEndpoint, getEndpointProtocol, unbindServer, undeploy
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Resolver

+
+public Resolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+lookupClient

+
+public java.lang.Object lookupClient(javax.management.remote.JMXServiceURL url,
+                                     java.util.Map environment)
+                              throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Looks up a connection with the server side as specified in the given JMXServiceURL. + This method is used in implementations of JMXConnector.connect(). +

+

+
Specified by:
lookupClient in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.bindClient(java.lang.Object, java.util.Map)
+
+
+
+ +

+getServletClassName

+
+protected java.lang.String getServletClassName()
+
+
+
Specified by:
getServletClassName in class HTTPResolver
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/class-use/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/class-use/Resolver.html new file mode 100644 index 0000000..1ed93b0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/class-use/Resolver.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.resolver.burlap.Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.resolver.burlap.Resolver

+
+ + + + + + + + + +
+Packages that use Resolver
mx4j.tools.remote.resolver.burlap.ssl  
+  +

+ + + + + +
+Uses of Resolver in mx4j.tools.remote.resolver.burlap.ssl
+  +

+ + + + + + + + + +
Subclasses of Resolver in mx4j.tools.remote.resolver.burlap.ssl
+ classResolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-frame.html new file mode 100644 index 0000000..6acb8cc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.remote.resolver.burlap (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.resolver.burlap + + + + +
+Classes  + +
+Resolver
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-summary.html new file mode 100644 index 0000000..fe5d985 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.remote.resolver.burlap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.resolver.burlap +

+ + + + + + + + + +
+Class Summary
Resolver 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-tree.html new file mode 100644 index 0000000..0819d9a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +mx4j.tools.remote.resolver.burlap Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.resolver.burlap +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-use.html new file mode 100644 index 0000000..34cf054 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.tools.remote.resolver.burlap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.resolver.burlap

+
+ + + + + + + + + +
+Packages that use mx4j.tools.remote.resolver.burlap
mx4j.tools.remote.resolver.burlap.ssl  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote.resolver.burlap used by mx4j.tools.remote.resolver.burlap.ssl
Resolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/Resolver.html new file mode 100644 index 0000000..a2f1c87 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/Resolver.html @@ -0,0 +1,337 @@ + + + + + + +Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.resolver.burlap.ssl +
+Class Resolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.tools.remote.http.HTTPResolver
+              extended bymx4j.tools.remote.resolver.burlap.Resolver
+                  extended bymx4j.tools.remote.resolver.burlap.ssl.Resolver
+
+
+
+
public class Resolver
extends Resolver
+ +

+

+
Version:
+
$Revision: 1.1 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.http.HTTPResolver
DEFAULT_WEB_CONTAINER_CLASS
+  + + + + + + + + + + +
+Constructor Summary
Resolver() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.StringgetEndpointProtocol(java.util.Map environment) + +
+           
+protected  java.lang.StringgetServletClassName() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.resolver.burlap.Resolver
lookupClient
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPResolver
bindClient, bindServer, createServer, createWebContainer, deploy, destroyServer, getEndpoint, unbindServer, undeploy
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Resolver

+
+public Resolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getEndpointProtocol

+
+protected java.lang.String getEndpointProtocol(java.util.Map environment)
+
+
+
Overrides:
getEndpointProtocol in class HTTPResolver
+
+
+
+
+
+
+ +

+getServletClassName

+
+protected java.lang.String getServletClassName()
+
+
+
Overrides:
getServletClassName in class Resolver
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/class-use/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/class-use/Resolver.html new file mode 100644 index 0000000..70a70e6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/class-use/Resolver.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.resolver.burlap.ssl.Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.resolver.burlap.ssl.Resolver

+
+No usage of mx4j.tools.remote.resolver.burlap.ssl.Resolver +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-frame.html new file mode 100644 index 0000000..3cd0753 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.remote.resolver.burlap.ssl (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.resolver.burlap.ssl + + + + +
+Classes  + +
+Resolver
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-summary.html new file mode 100644 index 0000000..35bb81e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.remote.resolver.burlap.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.resolver.burlap.ssl +

+ + + + + + + + + +
+Class Summary
Resolver 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-tree.html new file mode 100644 index 0000000..5163ca7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-tree.html @@ -0,0 +1,153 @@ + + + + + + +mx4j.tools.remote.resolver.burlap.ssl Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.resolver.burlap.ssl +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-use.html new file mode 100644 index 0000000..e7a5fff --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/burlap/ssl/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.resolver.burlap.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.resolver.burlap.ssl

+
+No usage of mx4j.tools.remote.resolver.burlap.ssl +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/Resolver.html new file mode 100644 index 0000000..c65a1bf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/Resolver.html @@ -0,0 +1,339 @@ + + + + + + +Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.resolver.hessian +
+Class Resolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.tools.remote.http.HTTPResolver
+              extended bymx4j.tools.remote.resolver.hessian.Resolver
+
+
+
Direct Known Subclasses:
Resolver
+
+
+
+
public class Resolver
extends HTTPResolver
+ +

+

+
Version:
+
$Revision: 1.1 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.http.HTTPResolver
DEFAULT_WEB_CONTAINER_CLASS
+  + + + + + + + + + + +
+Constructor Summary
Resolver() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.StringgetServletClassName() + +
+           
+ java.lang.ObjectlookupClient(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Looks up a connection with the server side as specified in the given JMXServiceURL.
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPResolver
bindClient, bindServer, createServer, createWebContainer, deploy, destroyServer, getEndpoint, getEndpointProtocol, unbindServer, undeploy
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Resolver

+
+public Resolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+lookupClient

+
+public java.lang.Object lookupClient(javax.management.remote.JMXServiceURL url,
+                                     java.util.Map environment)
+                              throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Looks up a connection with the server side as specified in the given JMXServiceURL. + This method is used in implementations of JMXConnector.connect(). +

+

+
Specified by:
lookupClient in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.bindClient(java.lang.Object, java.util.Map)
+
+
+
+ +

+getServletClassName

+
+protected java.lang.String getServletClassName()
+
+
+
Specified by:
getServletClassName in class HTTPResolver
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/class-use/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/class-use/Resolver.html new file mode 100644 index 0000000..e004b4a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/class-use/Resolver.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.resolver.hessian.Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.resolver.hessian.Resolver

+
+ + + + + + + + + +
+Packages that use Resolver
mx4j.tools.remote.resolver.hessian.ssl  
+  +

+ + + + + +
+Uses of Resolver in mx4j.tools.remote.resolver.hessian.ssl
+  +

+ + + + + + + + + +
Subclasses of Resolver in mx4j.tools.remote.resolver.hessian.ssl
+ classResolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-frame.html new file mode 100644 index 0000000..d995468 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.remote.resolver.hessian (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.resolver.hessian + + + + +
+Classes  + +
+Resolver
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-summary.html new file mode 100644 index 0000000..5b3a16a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.remote.resolver.hessian (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.resolver.hessian +

+ + + + + + + + + +
+Class Summary
Resolver 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-tree.html new file mode 100644 index 0000000..bbe2dfb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +mx4j.tools.remote.resolver.hessian Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.resolver.hessian +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-use.html new file mode 100644 index 0000000..0b3b746 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.tools.remote.resolver.hessian (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.resolver.hessian

+
+ + + + + + + + + +
+Packages that use mx4j.tools.remote.resolver.hessian
mx4j.tools.remote.resolver.hessian.ssl  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote.resolver.hessian used by mx4j.tools.remote.resolver.hessian.ssl
Resolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/Resolver.html new file mode 100644 index 0000000..b7520b4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/Resolver.html @@ -0,0 +1,337 @@ + + + + + + +Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.resolver.hessian.ssl +
+Class Resolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.tools.remote.http.HTTPResolver
+              extended bymx4j.tools.remote.resolver.hessian.Resolver
+                  extended bymx4j.tools.remote.resolver.hessian.ssl.Resolver
+
+
+
+
public class Resolver
extends Resolver
+ +

+

+
Version:
+
$Revision: 1.1 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.http.HTTPResolver
DEFAULT_WEB_CONTAINER_CLASS
+  + + + + + + + + + + +
+Constructor Summary
Resolver() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.StringgetEndpointProtocol(java.util.Map environment) + +
+           
+protected  java.lang.StringgetServletClassName() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.resolver.hessian.Resolver
lookupClient
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPResolver
bindClient, bindServer, createServer, createWebContainer, deploy, destroyServer, getEndpoint, unbindServer, undeploy
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Resolver

+
+public Resolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getEndpointProtocol

+
+protected java.lang.String getEndpointProtocol(java.util.Map environment)
+
+
+
Overrides:
getEndpointProtocol in class HTTPResolver
+
+
+
+
+
+
+ +

+getServletClassName

+
+protected java.lang.String getServletClassName()
+
+
+
Overrides:
getServletClassName in class Resolver
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/class-use/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/class-use/Resolver.html new file mode 100644 index 0000000..34bd3a7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/class-use/Resolver.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.resolver.hessian.ssl.Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.resolver.hessian.ssl.Resolver

+
+No usage of mx4j.tools.remote.resolver.hessian.ssl.Resolver +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-frame.html new file mode 100644 index 0000000..5ccdff8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.remote.resolver.hessian.ssl (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.resolver.hessian.ssl + + + + +
+Classes  + +
+Resolver
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-summary.html new file mode 100644 index 0000000..f61aaf3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.remote.resolver.hessian.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.resolver.hessian.ssl +

+ + + + + + + + + +
+Class Summary
Resolver 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-tree.html new file mode 100644 index 0000000..c1fc308 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-tree.html @@ -0,0 +1,153 @@ + + + + + + +mx4j.tools.remote.resolver.hessian.ssl Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.resolver.hessian.ssl +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-use.html new file mode 100644 index 0000000..391ade5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/hessian/ssl/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.resolver.hessian.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.resolver.hessian.ssl

+
+No usage of mx4j.tools.remote.resolver.hessian.ssl +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/Resolver.html new file mode 100644 index 0000000..9134f10 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/Resolver.html @@ -0,0 +1,452 @@ + + + + + + +Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.resolver.local +
+Class Resolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.tools.remote.resolver.local.Resolver
+
+
+
+
public class Resolver
extends ConnectionResolver
+ +

+

+
Version:
+
$Revision: 1.1 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
Resolver() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.ObjectbindClient(java.lang.Object client, + java.util.Map environment) + +
+          Connects the client returned by lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side.
+ javax.management.remote.JMXServiceURLbindServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Binds the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL.
+ java.lang.ObjectcreateServer(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Creates an instance of the server as specified in the given JMXServiceURL.
+ voiddestroyServer(java.lang.Object server, + javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Destroys the server created by createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time
+ java.lang.ObjectlookupClient(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+          Looks up a connection with the server side as specified in the given JMXServiceURL.
+ voidunbindServer(java.lang.Object server, + javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+          Unbinds the server bound by bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map) from the place specified by the JMXServiceURL.
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Resolver

+
+public Resolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+createServer

+
+public java.lang.Object createServer(javax.management.remote.JMXServiceURL url,
+                                     java.util.Map environment)
+                              throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Creates an instance of the server as specified in the given JMXServiceURL. + It is only a factory method, it should just return a fresh instance of the server; + other methods are responsible to make it available to clients (for example exporting it). + This method is used in implementations of JMXConnectorServerMBean.start(). +

+

+
Specified by:
createServer in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map), +ConnectionResolver.destroyServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+bindServer

+
+public javax.management.remote.JMXServiceURL bindServer(java.lang.Object server,
+                                                        javax.management.remote.JMXServiceURL url,
+                                                        java.util.Map environment)
+                                                 throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Binds the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map) to a place specified by the JMXServiceURL. +

+

+
Specified by:
bindServer in class ConnectionResolver
+
+
+ +
Returns:
a new JMXServiceURL that specifies where the server has been bound to. +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.unbindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+unbindServer

+
+public void unbindServer(java.lang.Object server,
+                         javax.management.remote.JMXServiceURL address,
+                         java.util.Map environment)
+                  throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Unbinds the server bound by ConnectionResolver.bindServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map) from the place specified by the JMXServiceURL. +

+

+
Specified by:
unbindServer in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.destroyServer(java.lang.Object, javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+destroyServer

+
+public void destroyServer(java.lang.Object server,
+                          javax.management.remote.JMXServiceURL url,
+                          java.util.Map environment)
+                   throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Destroys the server created by ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map), by cleaning up resources it may have requested + at creation time +

+

+
Specified by:
destroyServer in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.createServer(javax.management.remote.JMXServiceURL, java.util.Map)
+
+
+
+ +

+lookupClient

+
+public java.lang.Object lookupClient(javax.management.remote.JMXServiceURL url,
+                                     java.util.Map environment)
+                              throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Looks up a connection with the server side as specified in the given JMXServiceURL. + This method is used in implementations of JMXConnector.connect(). +

+

+
Specified by:
lookupClient in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.bindClient(java.lang.Object, java.util.Map)
+
+
+
+ +

+bindClient

+
+public java.lang.Object bindClient(java.lang.Object client,
+                                   java.util.Map environment)
+                            throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Connects the client returned by ConnectionResolver.lookupClient(javax.management.remote.JMXServiceURL, java.util.Map) to the server side. +

+

+
Specified by:
bindClient in class ConnectionResolver
+
+
+ +
Returns:
An object of the same type as the client passed in; normally the client object itself +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/class-use/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/class-use/Resolver.html new file mode 100644 index 0000000..116f3b6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/class-use/Resolver.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.resolver.local.Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.resolver.local.Resolver

+
+No usage of mx4j.tools.remote.resolver.local.Resolver +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-frame.html new file mode 100644 index 0000000..98034dd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.remote.resolver.local (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.resolver.local + + + + +
+Classes  + +
+Resolver
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-summary.html new file mode 100644 index 0000000..ba63527 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.remote.resolver.local (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.resolver.local +

+ + + + + + + + + +
+Class Summary
Resolver 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-tree.html new file mode 100644 index 0000000..cbf04f9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-tree.html @@ -0,0 +1,149 @@ + + + + + + +mx4j.tools.remote.resolver.local Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.resolver.local +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-use.html new file mode 100644 index 0000000..865c8f1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/local/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.resolver.local (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.resolver.local

+
+No usage of mx4j.tools.remote.resolver.local +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/Resolver.html new file mode 100644 index 0000000..9d5f8d2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/Resolver.html @@ -0,0 +1,393 @@ + + + + + + +Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.resolver.soap +
+Class Resolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.tools.remote.http.HTTPResolver
+              extended bymx4j.tools.remote.resolver.soap.Resolver
+
+
+
Direct Known Subclasses:
Resolver
+
+
+
+
public class Resolver
extends HTTPResolver
+ +

+

+
Version:
+
$Revision: 1.1 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.http.HTTPResolver
DEFAULT_WEB_CONTAINER_CLASS
+  + + + + + + + + + + +
+Constructor Summary
Resolver() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voiddeploy(javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+           
+protected  java.lang.StringgetServletClassName() + +
+           
+ java.lang.ObjectlookupClient(javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+          Looks up a connection with the server side as specified in the given JMXServiceURL.
+protected  voidundeploy(javax.management.remote.JMXServiceURL address, + java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPResolver
bindClient, bindServer, createServer, createWebContainer, destroyServer, getEndpoint, getEndpointProtocol, unbindServer
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Resolver

+
+public Resolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+lookupClient

+
+public java.lang.Object lookupClient(javax.management.remote.JMXServiceURL address,
+                                     java.util.Map environment)
+                              throws java.io.IOException
+
+
Description copied from class: ConnectionResolver
+
Looks up a connection with the server side as specified in the given JMXServiceURL. + This method is used in implementations of JMXConnector.connect(). +

+

+
Specified by:
lookupClient in class ConnectionResolver
+
+
+ +
Throws: +
java.io.IOException
See Also:
ConnectionResolver.bindClient(java.lang.Object, java.util.Map)
+
+
+
+ +

+getServletClassName

+
+protected java.lang.String getServletClassName()
+
+
+
Specified by:
getServletClassName in class HTTPResolver
+
+
+
+
+
+
+ +

+deploy

+
+protected void deploy(javax.management.remote.JMXServiceURL address,
+                      java.util.Map environment)
+               throws java.io.IOException
+
+
+
Overrides:
deploy in class HTTPResolver
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+undeploy

+
+protected void undeploy(javax.management.remote.JMXServiceURL address,
+                        java.util.Map environment)
+                 throws java.io.IOException
+
+
+
Overrides:
undeploy in class HTTPResolver
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/class-use/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/class-use/Resolver.html new file mode 100644 index 0000000..1314c01 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/class-use/Resolver.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.resolver.soap.Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.resolver.soap.Resolver

+
+ + + + + + + + + +
+Packages that use Resolver
mx4j.tools.remote.resolver.soap.ssl  
+  +

+ + + + + +
+Uses of Resolver in mx4j.tools.remote.resolver.soap.ssl
+  +

+ + + + + + + + + +
Subclasses of Resolver in mx4j.tools.remote.resolver.soap.ssl
+ classResolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-frame.html new file mode 100644 index 0000000..b21e9e4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.remote.resolver.soap (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.resolver.soap + + + + +
+Classes  + +
+Resolver
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-summary.html new file mode 100644 index 0000000..a6f5159 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.remote.resolver.soap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.resolver.soap +

+ + + + + + + + + +
+Class Summary
Resolver 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-tree.html new file mode 100644 index 0000000..7c88b68 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +mx4j.tools.remote.resolver.soap Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.resolver.soap +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-use.html new file mode 100644 index 0000000..153cf17 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/package-use.html @@ -0,0 +1,162 @@ + + + + + + +Uses of Package mx4j.tools.remote.resolver.soap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.resolver.soap

+
+ + + + + + + + + +
+Packages that use mx4j.tools.remote.resolver.soap
mx4j.tools.remote.resolver.soap.ssl  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote.resolver.soap used by mx4j.tools.remote.resolver.soap.ssl
Resolver + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/Resolver.html new file mode 100644 index 0000000..bd17a84 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/Resolver.html @@ -0,0 +1,315 @@ + + + + + + +Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.resolver.soap.ssl +
+Class Resolver

+
+java.lang.Object
+  extended bymx4j.remote.ProviderHelper
+      extended bymx4j.remote.ConnectionResolver
+          extended bymx4j.tools.remote.http.HTTPResolver
+              extended bymx4j.tools.remote.resolver.soap.Resolver
+                  extended bymx4j.tools.remote.resolver.soap.ssl.Resolver
+
+
+
+
public class Resolver
extends Resolver
+ +

+

+
Version:
+
$Revision: 1.1 $
+
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.http.HTTPResolver
DEFAULT_WEB_CONTAINER_CLASS
+  + + + + + + + + + + +
+Constructor Summary
Resolver() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  java.lang.StringgetEndpointProtocol(java.util.Map environment) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.resolver.soap.Resolver
deploy, getServletClassName, lookupClient, undeploy
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPResolver
bindClient, bindServer, createServer, createWebContainer, destroyServer, getEndpoint, unbindServer
+ + + + + + + +
Methods inherited from class mx4j.remote.ConnectionResolver
newConnectionResolver
+ + + + + + + +
Methods inherited from class mx4j.remote.ProviderHelper
constructClassName, findSystemPackageList, getLogger, loadClass, normalizeProtocol
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Resolver

+
+public Resolver()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getEndpointProtocol

+
+protected java.lang.String getEndpointProtocol(java.util.Map environment)
+
+
+
Overrides:
getEndpointProtocol in class HTTPResolver
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/class-use/Resolver.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/class-use/Resolver.html new file mode 100644 index 0000000..a11ec6c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/class-use/Resolver.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.resolver.soap.ssl.Resolver (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.resolver.soap.ssl.Resolver

+
+No usage of mx4j.tools.remote.resolver.soap.ssl.Resolver +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-frame.html new file mode 100644 index 0000000..39ed8d0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +mx4j.tools.remote.resolver.soap.ssl (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.resolver.soap.ssl + + + + +
+Classes  + +
+Resolver
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-summary.html new file mode 100644 index 0000000..0a0bac0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +mx4j.tools.remote.resolver.soap.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.resolver.soap.ssl +

+ + + + + + + + + +
+Class Summary
Resolver 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-tree.html new file mode 100644 index 0000000..7bdb604 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-tree.html @@ -0,0 +1,153 @@ + + + + + + +mx4j.tools.remote.resolver.soap.ssl Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.resolver.soap.ssl +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-use.html new file mode 100644 index 0000000..83e21ba --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/resolver/soap/ssl/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.resolver.soap.ssl (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.resolver.soap.ssl

+
+No usage of mx4j.tools.remote.resolver.soap.ssl +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/SSLRMIClientSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/SSLRMIClientSocketFactory.html new file mode 100644 index 0000000..ac09f2e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/SSLRMIClientSocketFactory.html @@ -0,0 +1,311 @@ + + + + + + +SSLRMIClientSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.rmi +
+Class SSLRMIClientSocketFactory

+
+java.lang.Object
+  extended bymx4j.tools.remote.rmi.SSLRMIClientSocketFactory
+
+
+
All Implemented Interfaces:
java.rmi.server.RMIClientSocketFactory, java.io.Serializable
+
+
+
+
public class SSLRMIClientSocketFactory
extends java.lang.Object
implements java.rmi.server.RMIClientSocketFactory, java.io.Serializable
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SSLRMIClientSocketFactory() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.net.SocketcreateSocket(java.lang.String host, + int port) + +
+           
+ booleanequals(java.lang.Object obj) + +
+           
+ inthashCode() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SSLRMIClientSocketFactory

+
+public SSLRMIClientSocketFactory()
+
+
+ + + + + + + + +
+Method Detail
+ +

+createSocket

+
+public java.net.Socket createSocket(java.lang.String host,
+                                    int port)
+                             throws java.io.IOException
+
+
+
Specified by:
createSocket in interface java.rmi.server.RMIClientSocketFactory
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object obj)
+
+
+
+
+
+
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/SSLRMIServerSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/SSLRMIServerSocketFactory.html new file mode 100644 index 0000000..10f82bc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/SSLRMIServerSocketFactory.html @@ -0,0 +1,281 @@ + + + + + + +SSLRMIServerSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.rmi +
+Class SSLRMIServerSocketFactory

+
+java.lang.Object
+  extended bymx4j.tools.remote.rmi.SSLRMIServerSocketFactory
+
+
+
All Implemented Interfaces:
java.rmi.server.RMIServerSocketFactory
+
+
+
+
public class SSLRMIServerSocketFactory
extends java.lang.Object
implements java.rmi.server.RMIServerSocketFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + +
+Constructor Summary
SSLRMIServerSocketFactory(javax.net.ssl.SSLContext sslContext) + +
+           
SSLRMIServerSocketFactory(javax.net.ssl.SSLContext sslContext, + int backlog) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.net.ServerSocketcreateServerSocket(int port) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SSLRMIServerSocketFactory

+
+public SSLRMIServerSocketFactory(javax.net.ssl.SSLContext sslContext)
+
+
+
+ +

+SSLRMIServerSocketFactory

+
+public SSLRMIServerSocketFactory(javax.net.ssl.SSLContext sslContext,
+                                 int backlog)
+
+
+ + + + + + + + +
+Method Detail
+ +

+createServerSocket

+
+public java.net.ServerSocket createServerSocket(int port)
+                                         throws java.io.IOException
+
+
+
Specified by:
createServerSocket in interface java.rmi.server.RMIServerSocketFactory
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/class-use/SSLRMIClientSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/class-use/SSLRMIClientSocketFactory.html new file mode 100644 index 0000000..b517c93 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/class-use/SSLRMIClientSocketFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.rmi.SSLRMIClientSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.rmi.SSLRMIClientSocketFactory

+
+No usage of mx4j.tools.remote.rmi.SSLRMIClientSocketFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/class-use/SSLRMIServerSocketFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/class-use/SSLRMIServerSocketFactory.html new file mode 100644 index 0000000..09c8758 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/class-use/SSLRMIServerSocketFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.rmi.SSLRMIServerSocketFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.rmi.SSLRMIServerSocketFactory

+
+No usage of mx4j.tools.remote.rmi.SSLRMIServerSocketFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-frame.html new file mode 100644 index 0000000..995f73b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +mx4j.tools.remote.rmi (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.rmi + + + + +
+Classes  + +
+SSLRMIClientSocketFactory +
+SSLRMIServerSocketFactory
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-summary.html new file mode 100644 index 0000000..cfb0328 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-summary.html @@ -0,0 +1,152 @@ + + + + + + +mx4j.tools.remote.rmi (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.rmi +

+ + + + + + + + + + + + + +
+Class Summary
SSLRMIClientSocketFactory 
SSLRMIServerSocketFactory 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-tree.html new file mode 100644 index 0000000..b91ffef --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-tree.html @@ -0,0 +1,147 @@ + + + + + + +mx4j.tools.remote.rmi Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.rmi +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-use.html new file mode 100644 index 0000000..fe524ba --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/rmi/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.tools.remote.rmi (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.rmi

+
+No usage of mx4j.tools.remote.rmi +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/ConnectionIDRequestHandler.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/ConnectionIDRequestHandler.html new file mode 100644 index 0000000..261ecd8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/ConnectionIDRequestHandler.html @@ -0,0 +1,293 @@ + + + + + + +ConnectionIDRequestHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap +
+Class ConnectionIDRequestHandler

+
+java.lang.Object
+  extended byorg.apache.axis.handlers.BasicHandler
+      extended bymx4j.tools.remote.soap.ConnectionIDRequestHandler
+
+
+
All Implemented Interfaces:
org.apache.axis.Handler, java.io.Serializable
+
+
+
+
public class ConnectionIDRequestHandler
extends org.apache.axis.handlers.BasicHandler
+ +

+This class is used in the Axis deployment descriptor, and parses the SOAP header + (on server-side) that contains the connection ID sent by the client. +

+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.handlers.BasicHandler
log, makeLockable, name, options
+  + + + + + + + + + + +
+Constructor Summary
ConnectionIDRequestHandler() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ voidinvoke(org.apache.axis.MessageContext context) + +
+           
+ + + + + + + +
Methods inherited from class org.apache.axis.handlers.BasicHandler
canHandleBlock, cleanup, generateWSDL, getDeploymentData, getName, getOption, getOptions, getUnderstoodHeaders, init, initHashtable, onFault, setName, setOption, setOptionDefault, setOptions, setOptionsLockable
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ConnectionIDRequestHandler

+
+public ConnectionIDRequestHandler()
+
+
+ + + + + + + + +
+Method Detail
+ +

+invoke

+
+public void invoke(org.apache.axis.MessageContext context)
+            throws org.apache.axis.AxisFault
+
+
+ +
Throws: +
org.apache.axis.AxisFault
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPClientInvoker.html new file mode 100644 index 0000000..fb9d082 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPClientInvoker.html @@ -0,0 +1,1081 @@ + + + + + + +SOAPClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap +
+Class SOAPClientInvoker

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.SOAPClientInvoker
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
+
public class SOAPClientInvoker
extends java.lang.Object
implements HTTPConnection
+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SOAPClientInvoker(java.lang.String endpoint, + org.apache.axis.client.Service service) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.IntegeraddNotificationListener(javax.management.ObjectName name, + java.lang.Object filter, + javax.security.auth.Subject delegate) + +
+           
+ voidclose() + +
+           
+ java.lang.Stringconnect(java.lang.Object credentials) + +
+          This method is called when a call initiated by JMXConnector.connect() + arrives on server side.
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + javax.management.ObjectName loaderName, + java.lang.Object args, + java.lang.String[] parameters, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancecreateMBean(java.lang.String className, + javax.management.ObjectName objectName, + java.lang.Object args, + java.lang.String[] parameters, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.remote.NotificationResultfetchNotifications(long clientSequenceNumber, + int maxNotifications, + long timeout) + +
+           
+ java.lang.ObjectgetAttribute(javax.management.ObjectName objectName, + java.lang.String attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListgetAttributes(javax.management.ObjectName objectName, + java.lang.String[] attributes, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.StringgetConnectionId() + +
+           
+ java.lang.StringgetDefaultDomain(javax.security.auth.Subject delegate) + +
+           
+ java.lang.String[]getDomains(javax.security.auth.Subject delegate) + +
+           
+ java.lang.IntegergetMBeanCount(javax.security.auth.Subject delegate) + +
+           
+ javax.management.MBeanInfogetMBeanInfo(javax.management.ObjectName objectName, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.ObjectInstancegetObjectInstance(javax.management.ObjectName objectName, + javax.security.auth.Subject delegate) + +
+           
+ java.lang.Objectinvoke(javax.management.ObjectName objectName, + java.lang.String methodName, + java.lang.Object args, + java.lang.String[] parameters, + javax.security.auth.Subject delegate) + +
+           
+ booleanisInstanceOf(javax.management.ObjectName objectName, + java.lang.String className, + javax.security.auth.Subject delegate) + +
+           
+ booleanisRegistered(javax.management.ObjectName objectName, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryMBeans(javax.management.ObjectName patternName, + java.lang.Object filter, + javax.security.auth.Subject delegate) + +
+           
+ java.util.SetqueryNames(javax.management.ObjectName patternName, + java.lang.Object filter, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + java.lang.Object filter, + java.lang.Object handback, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListener(javax.management.ObjectName name, + javax.management.ObjectName listener, + javax.security.auth.Subject delegate) + +
+           
+ voidremoveNotificationListeners(javax.management.ObjectName observed, + java.lang.Integer[] ids, + javax.security.auth.Subject delegate) + +
+           
+ voidsetAttribute(javax.management.ObjectName objectName, + java.lang.Object attribute, + javax.security.auth.Subject delegate) + +
+           
+ javax.management.AttributeListsetAttributes(javax.management.ObjectName objectName, + java.lang.Object attributes, + javax.security.auth.Subject delegate) + +
+           
+ voidunregisterMBean(javax.management.ObjectName objectName, + javax.security.auth.Subject delegate) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SOAPClientInvoker

+
+public SOAPClientInvoker(java.lang.String endpoint,
+                         org.apache.axis.client.Service service)
+
+
+ + + + + + + + +
+Method Detail
+ +

+connect

+
+public java.lang.String connect(java.lang.Object credentials)
+                         throws java.io.IOException,
+                                java.lang.SecurityException
+
+
Description copied from interface: HTTPConnection
+
This method is called when a call initiated by JMXConnector.connect() + arrives on server side. For HTTP connections, the socket is handled by the web container, but + the remote procedure call that arrives along with the HTTP request is parsed and then (normally) + forwarded to a JavaBean (that will implement this interface). + Implementations of this method will normally call ConnectionManager.connect(java.lang.Object). +

+

+
Specified by:
connect in interface HTTPConnection
+
+
+
Parameters:
credentials - The credential for authentication +
Returns:
The connection id for the newly created connection +
Throws: +
java.lang.SecurityException - If the authentication fails +
java.io.IOException - If a communication problem occurs
+
+
+
+ +

+close

+
+public void close()
+           throws java.io.IOException
+
+
+
Specified by:
close in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getConnectionId

+
+public java.lang.String getConnectionId()
+                                 throws java.io.IOException
+
+
+
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public java.lang.Integer addNotificationListener(javax.management.ObjectName name,
+                                                 java.lang.Object filter,
+                                                 javax.security.auth.Subject delegate)
+                                          throws javax.management.InstanceNotFoundException,
+                                                 java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListeners

+
+public void removeNotificationListeners(javax.management.ObjectName observed,
+                                        java.lang.Integer[] ids,
+                                        javax.security.auth.Subject delegate)
+                                 throws javax.management.InstanceNotFoundException,
+                                        javax.management.ListenerNotFoundException,
+                                        java.io.IOException
+
+
+
Specified by:
removeNotificationListeners in interface HTTPConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+fetchNotifications

+
+public javax.management.remote.NotificationResult fetchNotifications(long clientSequenceNumber,
+                                                                     int maxNotifications,
+                                                                     long timeout)
+                                                              throws java.io.IOException
+
+
+
Specified by:
fetchNotifications in interface HTTPConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+addNotificationListener

+
+public void addNotificationListener(javax.management.ObjectName name,
+                                    javax.management.ObjectName listener,
+                                    java.lang.Object filter,
+                                    java.lang.Object handback,
+                                    javax.security.auth.Subject delegate)
+                             throws javax.management.InstanceNotFoundException,
+                                    java.io.IOException
+
+
+
Specified by:
addNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+removeNotificationListener

+
+public void removeNotificationListener(javax.management.ObjectName name,
+                                       javax.management.ObjectName listener,
+                                       java.lang.Object filter,
+                                       java.lang.Object handback,
+                                       javax.security.auth.Subject delegate)
+                                throws javax.management.InstanceNotFoundException,
+                                       javax.management.ListenerNotFoundException,
+                                       java.io.IOException
+
+
+
Specified by:
removeNotificationListener in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ListenerNotFoundException +
java.io.IOException
+
+
+
+ +

+getMBeanInfo

+
+public javax.management.MBeanInfo getMBeanInfo(javax.management.ObjectName objectName,
+                                               javax.security.auth.Subject delegate)
+                                        throws javax.management.InstanceNotFoundException,
+                                               javax.management.IntrospectionException,
+                                               javax.management.ReflectionException,
+                                               java.io.IOException
+
+
+
Specified by:
getMBeanInfo in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.IntrospectionException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+isInstanceOf

+
+public boolean isInstanceOf(javax.management.ObjectName objectName,
+                            java.lang.String className,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            java.io.IOException
+
+
+
Specified by:
isInstanceOf in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+getDomains

+
+public java.lang.String[] getDomains(javax.security.auth.Subject delegate)
+                              throws java.io.IOException
+
+
+
Specified by:
getDomains in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getDefaultDomain

+
+public java.lang.String getDefaultDomain(javax.security.auth.Subject delegate)
+                                  throws java.io.IOException
+
+
+
Specified by:
getDefaultDomain in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   java.lang.Object args,
+                                                   java.lang.String[] parameters,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
java.io.IOException
+
+
+
+ +

+createMBean

+
+public javax.management.ObjectInstance createMBean(java.lang.String className,
+                                                   javax.management.ObjectName objectName,
+                                                   javax.management.ObjectName loaderName,
+                                                   java.lang.Object args,
+                                                   java.lang.String[] parameters,
+                                                   javax.security.auth.Subject delegate)
+                                            throws javax.management.ReflectionException,
+                                                   javax.management.InstanceAlreadyExistsException,
+                                                   javax.management.MBeanRegistrationException,
+                                                   javax.management.MBeanException,
+                                                   javax.management.NotCompliantMBeanException,
+                                                   javax.management.InstanceNotFoundException,
+                                                   java.io.IOException
+
+
+
Specified by:
createMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.ReflectionException +
javax.management.InstanceAlreadyExistsException +
javax.management.MBeanRegistrationException +
javax.management.MBeanException +
javax.management.NotCompliantMBeanException +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+unregisterMBean

+
+public void unregisterMBean(javax.management.ObjectName objectName,
+                            javax.security.auth.Subject delegate)
+                     throws javax.management.InstanceNotFoundException,
+                            javax.management.MBeanRegistrationException,
+                            java.io.IOException
+
+
+
Specified by:
unregisterMBean in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanRegistrationException +
java.io.IOException
+
+
+
+ +

+getAttribute

+
+public java.lang.Object getAttribute(javax.management.ObjectName objectName,
+                                     java.lang.String attribute,
+                                     javax.security.auth.Subject delegate)
+                              throws javax.management.MBeanException,
+                                     javax.management.AttributeNotFoundException,
+                                     javax.management.InstanceNotFoundException,
+                                     javax.management.ReflectionException,
+                                     java.io.IOException
+
+
+
Specified by:
getAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.MBeanException +
javax.management.AttributeNotFoundException +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttribute

+
+public void setAttribute(javax.management.ObjectName objectName,
+                         java.lang.Object attribute,
+                         javax.security.auth.Subject delegate)
+                  throws javax.management.InstanceNotFoundException,
+                         javax.management.AttributeNotFoundException,
+                         javax.management.InvalidAttributeValueException,
+                         javax.management.MBeanException,
+                         javax.management.ReflectionException,
+                         java.io.IOException
+
+
+
Specified by:
setAttribute in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.AttributeNotFoundException +
javax.management.InvalidAttributeValueException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getAttributes

+
+public javax.management.AttributeList getAttributes(javax.management.ObjectName objectName,
+                                                    java.lang.String[] attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
getAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+setAttributes

+
+public javax.management.AttributeList setAttributes(javax.management.ObjectName objectName,
+                                                    java.lang.Object attributes,
+                                                    javax.security.auth.Subject delegate)
+                                             throws javax.management.InstanceNotFoundException,
+                                                    javax.management.ReflectionException,
+                                                    java.io.IOException
+
+
+
Specified by:
setAttributes in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+invoke

+
+public java.lang.Object invoke(javax.management.ObjectName objectName,
+                               java.lang.String methodName,
+                               java.lang.Object args,
+                               java.lang.String[] parameters,
+                               javax.security.auth.Subject delegate)
+                        throws javax.management.InstanceNotFoundException,
+                               javax.management.MBeanException,
+                               javax.management.ReflectionException,
+                               java.io.IOException
+
+
+
Specified by:
invoke in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
javax.management.MBeanException +
javax.management.ReflectionException +
java.io.IOException
+
+
+
+ +

+getMBeanCount

+
+public java.lang.Integer getMBeanCount(javax.security.auth.Subject delegate)
+                                throws java.io.IOException
+
+
+
Specified by:
getMBeanCount in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+isRegistered

+
+public boolean isRegistered(javax.management.ObjectName objectName,
+                            javax.security.auth.Subject delegate)
+                     throws java.io.IOException
+
+
+
Specified by:
isRegistered in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+getObjectInstance

+
+public javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName objectName,
+                                                         javax.security.auth.Subject delegate)
+                                                  throws javax.management.InstanceNotFoundException,
+                                                         java.io.IOException
+
+
+
Specified by:
getObjectInstance in interface JMXConnection
+
+
+ +
Throws: +
javax.management.InstanceNotFoundException +
java.io.IOException
+
+
+
+ +

+queryMBeans

+
+public java.util.Set queryMBeans(javax.management.ObjectName patternName,
+                                 java.lang.Object filter,
+                                 javax.security.auth.Subject delegate)
+                          throws java.io.IOException
+
+
+
Specified by:
queryMBeans in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+queryNames

+
+public java.util.Set queryNames(javax.management.ObjectName patternName,
+                                java.lang.Object filter,
+                                javax.security.auth.Subject delegate)
+                         throws java.io.IOException
+
+
+
Specified by:
queryNames in interface JMXConnection
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPConnector.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPConnector.html new file mode 100644 index 0000000..ed3879a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPConnector.html @@ -0,0 +1,315 @@ + + + + + + +SOAPConnector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap +
+Class SOAPConnector

+
+java.lang.Object
+  extended bymx4j.tools.remote.AbstractJMXConnector
+      extended bymx4j.tools.remote.http.HTTPConnector
+          extended bymx4j.tools.remote.soap.SOAPConnector
+
+
+
All Implemented Interfaces:
javax.management.remote.JMXConnector, java.io.Serializable
+
+
+
+
public class SOAPConnector
extends HTTPConnector
+ +

+

+
Version:
+
$Revision: 1.20 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface javax.management.remote.JMXConnector
CREDENTIALS
+  + + + + + + + + + + +
+Constructor Summary
SOAPConnector(javax.management.remote.JMXServiceURL url, + java.util.Map environment) + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  javax.management.MBeanServerConnectiondoGetMBeanServerConnection(javax.security.auth.Subject delegate) + +
+          Template method to be implemented by subclasses to return an MBeanServerConnection + for the given delegate subject.
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPConnector
createHeartBeat, createRemoteNotificationClientHandler, doClose, doConnect, getConnectionId, getHTTPConnection, getRemoteNotificationClientHandler
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.AbstractJMXConnector
addConnectionNotificationListener, close, connect, connect, createConnectionNotificationEmitter, getAddress, getConnectionNotificationEmitter, getMBeanServerConnection, getMBeanServerConnection, isClosed, isConnected, removeConnectionNotificationListener, removeConnectionNotificationListener, sendConnectionNotificationClosed
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SOAPConnector

+
+public SOAPConnector(javax.management.remote.JMXServiceURL url,
+                     java.util.Map environment)
+              throws java.io.IOException
+
+
+ + + + + + + + +
+Method Detail
+ +

+doGetMBeanServerConnection

+
+protected javax.management.MBeanServerConnection doGetMBeanServerConnection(javax.security.auth.Subject delegate)
+                                                                     throws java.io.IOException
+
+
Description copied from class: AbstractJMXConnector
+
Template method to be implemented by subclasses to return an MBeanServerConnection + for the given delegate subject. + This method should return an MBeanServerConnection that delegates method calls to a + JMXConnection (or an equivalent client side connection object). + The JMXConnection object to which calls are delegated can in turn be a chain of + objects that decorate the call performing some other operation; the final object in + the chain is the one that really communicates with the server side, and it is normally + called ClientInvoker. +

+

+
Overrides:
doGetMBeanServerConnection in class HTTPConnector
+
+
+ +
Throws: +
java.io.IOException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPService.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPService.html new file mode 100644 index 0000000..f61546d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SOAPService.html @@ -0,0 +1,326 @@ + + + + + + +SOAPService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap +
+Class SOAPService

+
+java.lang.Object
+  extended bymx4j.tools.remote.http.HTTPService
+      extended bymx4j.tools.remote.soap.SOAPService
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
Direct Known Subclasses:
SSLSOAPService
+
+
+
+
public class SOAPService
extends HTTPService
+ +

+The server-side service (the WebService actually) where remote calls end up + after being parsed by Axis. + This is, in Axis jargon, the 'pivot' of the invocation chain. + It is used in the Axis deployment descriptor, and as such must be a public class. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SOAPService() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.StringfindConnectionId() + +
+           
+protected  java.lang.StringfindRequestURL() + +
+           
+protected  java.lang.StringgetProtocol() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPService
addConnection, addNotificationListener, addNotificationListener, close, connect, createMBean, createMBean, fetchNotifications, findConnection, findJMXServiceURL, getAttribute, getAttributes, getConnectionId, getDefaultDomain, getDomains, getLogger, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeConnection, removeNotificationListener, removeNotificationListener, removeNotificationListeners, setAttribute, setAttributes, unregisterMBean
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SOAPService

+
+public SOAPService()
+
+
+ + + + + + + + +
+Method Detail
+ +

+findRequestURL

+
+protected java.lang.String findRequestURL()
+
+
+
Specified by:
findRequestURL in class HTTPService
+
+
+
+
+
+
+ +

+getProtocol

+
+protected java.lang.String getProtocol()
+
+
+
Specified by:
getProtocol in class HTTPService
+
+
+
+
+
+
+ +

+findConnectionId

+
+protected java.lang.String findConnectionId()
+
+
+
Specified by:
findConnectionId in class HTTPService
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SSLSOAPService.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SSLSOAPService.html new file mode 100644 index 0000000..63a7e3e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/SSLSOAPService.html @@ -0,0 +1,287 @@ + + + + + + +SSLSOAPService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap +
+Class SSLSOAPService

+
+java.lang.Object
+  extended bymx4j.tools.remote.http.HTTPService
+      extended bymx4j.tools.remote.soap.SOAPService
+          extended bymx4j.tools.remote.soap.SSLSOAPService
+
+
+
All Implemented Interfaces:
HTTPConnection, JMXConnection
+
+
+
+
public class SSLSOAPService
extends SOAPService
+ +

+This 'pivot' is the one to be used when the invocation is uses the + https protocol +

+ +

+

+
Version:
+
$Revision: 1.1 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
SSLSOAPService() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+protected  java.lang.StringgetProtocol() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.SOAPService
findConnectionId, findRequestURL
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.http.HTTPService
addConnection, addNotificationListener, addNotificationListener, close, connect, createMBean, createMBean, fetchNotifications, findConnection, findJMXServiceURL, getAttribute, getAttributes, getConnectionId, getDefaultDomain, getDomains, getLogger, getMBeanCount, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, isRegistered, queryMBeans, queryNames, removeConnection, removeNotificationListener, removeNotificationListener, removeNotificationListeners, setAttribute, setAttributes, unregisterMBean
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SSLSOAPService

+
+public SSLSOAPService()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getProtocol

+
+protected java.lang.String getProtocol()
+
+
+
Overrides:
getProtocol in class SOAPService
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeDeser.html new file mode 100644 index 0000000..aeb4a29 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeDeser.html @@ -0,0 +1,357 @@ + + + + + + +AttributeDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AttributeDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.AttributeDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class AttributeDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.7 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
AttributeDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AttributeDeser

+
+public AttributeDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeDeserFactory.html new file mode 100644 index 0000000..da3d04e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +AttributeDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AttributeDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.AttributeDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class AttributeDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.7 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
AttributeDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AttributeDeserFactory

+
+public AttributeDeserFactory(java.lang.Class javaType,
+                             javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListDeser.html new file mode 100644 index 0000000..bfea17f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListDeser.html @@ -0,0 +1,357 @@ + + + + + + +AttributeListDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AttributeListDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.AttributeListDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class AttributeListDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
AttributeListDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AttributeListDeser

+
+public AttributeListDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListDeserFactory.html new file mode 100644 index 0000000..60b0b39 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +AttributeListDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AttributeListDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.AttributeListDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class AttributeListDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
AttributeListDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AttributeListDeserFactory

+
+public AttributeListDeserFactory(java.lang.Class javaType,
+                                 javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListSer.html new file mode 100644 index 0000000..f391676 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListSer.html @@ -0,0 +1,321 @@ + + + + + + +AttributeListSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AttributeListSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.AttributeListSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class AttributeListSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
AttributeListSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AttributeListSer

+
+public AttributeListSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListSerFactory.html new file mode 100644 index 0000000..f29896b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeListSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +AttributeListSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AttributeListSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.AttributeListSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class AttributeListSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
AttributeListSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AttributeListSerFactory

+
+public AttributeListSerFactory(java.lang.Class javaType,
+                               javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeSer.html new file mode 100644 index 0000000..923705a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeSer.html @@ -0,0 +1,321 @@ + + + + + + +AttributeSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AttributeSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.AttributeSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class AttributeSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.8 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
AttributeSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AttributeSer

+
+public AttributeSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeSerFactory.html new file mode 100644 index 0000000..cecd5b5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AttributeSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +AttributeSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AttributeSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.AttributeSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class AttributeSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
AttributeSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AttributeSerFactory

+
+public AttributeSerFactory(java.lang.Class javaType,
+                           javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AxisDeserializer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AxisDeserializer.html new file mode 100644 index 0000000..0585808 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AxisDeserializer.html @@ -0,0 +1,473 @@ + + + + + + +AxisDeserializer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AxisDeserializer

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
Direct Known Subclasses:
AttributeDeser, AttributeListDeser, MBeanAttributeInfoDeser, MBeanConstructorInfoDeser, MBeanInfoDeser, MBeanNotificationInfoDeser, MBeanOperationInfoDeser, MBeanParameterInfoDeser, MBeanServerNotificationFilterDeser, NotificationDeser, NotificationFilterSupportDeser, NotificationResultDeser, ObjectInstanceDeser, ObjectNameDeser, PrincipalDeser, RelationTypeSupportDeser, RoleDeser, RoleInfoDeser, RoleListDeser, RoleResultDeser, RoleUnresolvedListDeser, SetDeser, SubjectDeser, TargetedNotificationDeser
+
+
+
+
public abstract class AxisDeserializer
extends org.apache.axis.encoding.DeserializerImpl
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
AxisDeserializer() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected abstract  java.lang.ObjectcreateObject() + +
+           
+protected  LoggergetLogger() + +
+           
+ voidonEndElement(java.lang.String namespace, + java.lang.String localName, + org.apache.axis.encoding.DeserializationContext context) + +
+           
+protected abstract  voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ org.apache.axis.message.SOAPHandleronStartChild(java.lang.String namespace, + java.lang.String localName, + java.lang.String prefix, + org.xml.sax.Attributes attributes, + org.apache.axis.encoding.DeserializationContext context) + +
+           
+ voidonStartElement(java.lang.String namespace, + java.lang.String localName, + java.lang.String prefix, + org.xml.sax.Attributes attributes, + org.apache.axis.encoding.DeserializationContext context) + +
+           
+ voidsetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+AxisDeserializer

+
+public AxisDeserializer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getLogger

+
+protected Logger getLogger()
+
+
+
+
+
+
+ +

+onStartElement

+
+public void onStartElement(java.lang.String namespace,
+                           java.lang.String localName,
+                           java.lang.String prefix,
+                           org.xml.sax.Attributes attributes,
+                           org.apache.axis.encoding.DeserializationContext context)
+                    throws org.xml.sax.SAXException
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+onStartChild

+
+public org.apache.axis.message.SOAPHandler onStartChild(java.lang.String namespace,
+                                                        java.lang.String localName,
+                                                        java.lang.String prefix,
+                                                        org.xml.sax.Attributes attributes,
+                                                        org.apache.axis.encoding.DeserializationContext context)
+                                                 throws org.xml.sax.SAXException
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+setChildValue

+
+public void setChildValue(java.lang.Object value,
+                          java.lang.Object hint)
+                   throws org.xml.sax.SAXException
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+onSetChildValue

+
+protected abstract void onSetChildValue(java.lang.Object value,
+                                        java.lang.Object hint)
+                                 throws org.xml.sax.SAXException
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+onEndElement

+
+public void onEndElement(java.lang.String namespace,
+                         java.lang.String localName,
+                         org.apache.axis.encoding.DeserializationContext context)
+                  throws org.xml.sax.SAXException
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected abstract java.lang.Object createObject()
+                                          throws org.xml.sax.SAXException
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AxisSerializer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AxisSerializer.html new file mode 100644 index 0000000..0cc257a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/AxisSerializer.html @@ -0,0 +1,386 @@ + + + + + + +AxisSerializer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class AxisSerializer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
Direct Known Subclasses:
AttributeListSer, AttributeSer, MBeanAttributeInfoSer, MBeanConstructorInfoSer, MBeanInfoSer, MBeanNotificationInfoSer, MBeanOperationInfoSer, MBeanParameterInfoSer, NotificationFilterSupportSer, NotificationResultSer, NotificationSer, ObjectInstanceSer, ObjectNameSer, PrincipalSer, RelationTypeSupportSer, RoleInfoSer, RoleListSer, RoleResultSer, RoleSer, RoleUnresolvedListSer, SetSer, SubjectSer, TargetedNotificationSer
+
+
+
+
public abstract class AxisSerializer
extends java.lang.Object
implements org.apache.axis.encoding.Serializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+protected static java.lang.StringSCHEMA_ALL + +
+           
+protected static java.lang.StringSCHEMA_COMPLEX_TYPE + +
+           
+protected static java.lang.StringSCHEMA_ELEMENT + +
+           
+protected static java.lang.StringSCHEMA_SEQUENCE + +
+           
+  + + + + + + + + + + +
+Constructor Summary
AxisSerializer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetMechanismType() + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface org.apache.axis.encoding.Serializer
serialize
+  +

+ + + + + + + + +
+Field Detail
+ +

+SCHEMA_COMPLEX_TYPE

+
+protected static final java.lang.String SCHEMA_COMPLEX_TYPE
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SCHEMA_ALL

+
+protected static final java.lang.String SCHEMA_ALL
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SCHEMA_ELEMENT

+
+protected static final java.lang.String SCHEMA_ELEMENT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SCHEMA_SEQUENCE

+
+protected static final java.lang.String SCHEMA_SEQUENCE
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+AxisSerializer

+
+public AxisSerializer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+getMechanismType

+
+public java.lang.String getMechanismType()
+
+
+
Specified by:
getMechanismType in interface javax.xml.rpc.encoding.Serializer
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoDeser.html new file mode 100644 index 0000000..9da6d75 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoDeser.html @@ -0,0 +1,357 @@ + + + + + + +MBeanAttributeInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanAttributeInfoDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class MBeanAttributeInfoDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
MBeanAttributeInfoDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanAttributeInfoDeser

+
+public MBeanAttributeInfoDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoDeserFactory.html new file mode 100644 index 0000000..9d4f972 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanAttributeInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanAttributeInfoDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class MBeanAttributeInfoDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanAttributeInfoDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanAttributeInfoDeserFactory

+
+public MBeanAttributeInfoDeserFactory(java.lang.Class javaType,
+                                      javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoSer.html new file mode 100644 index 0000000..20aaf79 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoSer.html @@ -0,0 +1,321 @@ + + + + + + +MBeanAttributeInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanAttributeInfoSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class MBeanAttributeInfoSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
MBeanAttributeInfoSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanAttributeInfoSer

+
+public MBeanAttributeInfoSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoSerFactory.html new file mode 100644 index 0000000..7c62b04 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanAttributeInfoSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanAttributeInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanAttributeInfoSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class MBeanAttributeInfoSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanAttributeInfoSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanAttributeInfoSerFactory

+
+public MBeanAttributeInfoSerFactory(java.lang.Class javaType,
+                                    javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoDeser.html new file mode 100644 index 0000000..749ed38 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoDeser.html @@ -0,0 +1,357 @@ + + + + + + +MBeanConstructorInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanConstructorInfoDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class MBeanConstructorInfoDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
MBeanConstructorInfoDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanConstructorInfoDeser

+
+public MBeanConstructorInfoDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoDeserFactory.html new file mode 100644 index 0000000..c074408 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanConstructorInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanConstructorInfoDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class MBeanConstructorInfoDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanConstructorInfoDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanConstructorInfoDeserFactory

+
+public MBeanConstructorInfoDeserFactory(java.lang.Class javaType,
+                                        javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoSer.html new file mode 100644 index 0000000..84e9e06 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoSer.html @@ -0,0 +1,321 @@ + + + + + + +MBeanConstructorInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanConstructorInfoSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class MBeanConstructorInfoSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
MBeanConstructorInfoSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanConstructorInfoSer

+
+public MBeanConstructorInfoSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoSerFactory.html new file mode 100644 index 0000000..095aa2b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanConstructorInfoSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanConstructorInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanConstructorInfoSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class MBeanConstructorInfoSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanConstructorInfoSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanConstructorInfoSerFactory

+
+public MBeanConstructorInfoSerFactory(java.lang.Class javaType,
+                                      javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoDeser.html new file mode 100644 index 0000000..e606e0f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoDeser.html @@ -0,0 +1,357 @@ + + + + + + +MBeanInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanInfoDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.MBeanInfoDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class MBeanInfoDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
MBeanInfoDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanInfoDeser

+
+public MBeanInfoDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoDeserFactory.html new file mode 100644 index 0000000..cc96034 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanInfoDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanInfoDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class MBeanInfoDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanInfoDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanInfoDeserFactory

+
+public MBeanInfoDeserFactory(java.lang.Class javaType,
+                             javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoSer.html new file mode 100644 index 0000000..75e79c3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoSer.html @@ -0,0 +1,321 @@ + + + + + + +MBeanInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanInfoSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.MBeanInfoSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class MBeanInfoSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
MBeanInfoSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanInfoSer

+
+public MBeanInfoSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoSerFactory.html new file mode 100644 index 0000000..8b25219 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanInfoSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanInfoSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanInfoSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class MBeanInfoSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanInfoSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanInfoSerFactory

+
+public MBeanInfoSerFactory(java.lang.Class javaType,
+                           javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoDeser.html new file mode 100644 index 0000000..e42d560 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoDeser.html @@ -0,0 +1,357 @@ + + + + + + +MBeanNotificationInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanNotificationInfoDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class MBeanNotificationInfoDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
MBeanNotificationInfoDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanNotificationInfoDeser

+
+public MBeanNotificationInfoDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoDeserFactory.html new file mode 100644 index 0000000..5cada5c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanNotificationInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanNotificationInfoDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class MBeanNotificationInfoDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanNotificationInfoDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanNotificationInfoDeserFactory

+
+public MBeanNotificationInfoDeserFactory(java.lang.Class javaType,
+                                         javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoSer.html new file mode 100644 index 0000000..7ef54ab --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoSer.html @@ -0,0 +1,321 @@ + + + + + + +MBeanNotificationInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanNotificationInfoSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class MBeanNotificationInfoSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
MBeanNotificationInfoSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanNotificationInfoSer

+
+public MBeanNotificationInfoSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoSerFactory.html new file mode 100644 index 0000000..063cc66 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanNotificationInfoSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanNotificationInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanNotificationInfoSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class MBeanNotificationInfoSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanNotificationInfoSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanNotificationInfoSerFactory

+
+public MBeanNotificationInfoSerFactory(java.lang.Class javaType,
+                                       javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoDeser.html new file mode 100644 index 0000000..f4b6a3b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoDeser.html @@ -0,0 +1,357 @@ + + + + + + +MBeanOperationInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanOperationInfoDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class MBeanOperationInfoDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
MBeanOperationInfoDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanOperationInfoDeser

+
+public MBeanOperationInfoDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoDeserFactory.html new file mode 100644 index 0000000..669020d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanOperationInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanOperationInfoDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class MBeanOperationInfoDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanOperationInfoDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanOperationInfoDeserFactory

+
+public MBeanOperationInfoDeserFactory(java.lang.Class javaType,
+                                      javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoSer.html new file mode 100644 index 0000000..3c5c5be --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoSer.html @@ -0,0 +1,321 @@ + + + + + + +MBeanOperationInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanOperationInfoSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class MBeanOperationInfoSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
MBeanOperationInfoSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanOperationInfoSer

+
+public MBeanOperationInfoSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoSerFactory.html new file mode 100644 index 0000000..cc34c8d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanOperationInfoSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanOperationInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanOperationInfoSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class MBeanOperationInfoSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanOperationInfoSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanOperationInfoSerFactory

+
+public MBeanOperationInfoSerFactory(java.lang.Class javaType,
+                                    javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoDeser.html new file mode 100644 index 0000000..6566329 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoDeser.html @@ -0,0 +1,357 @@ + + + + + + +MBeanParameterInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanParameterInfoDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class MBeanParameterInfoDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
MBeanParameterInfoDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanParameterInfoDeser

+
+public MBeanParameterInfoDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoDeserFactory.html new file mode 100644 index 0000000..49c6359 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanParameterInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanParameterInfoDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class MBeanParameterInfoDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanParameterInfoDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanParameterInfoDeserFactory

+
+public MBeanParameterInfoDeserFactory(java.lang.Class javaType,
+                                      javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoSer.html new file mode 100644 index 0000000..f4d3217 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoSer.html @@ -0,0 +1,321 @@ + + + + + + +MBeanParameterInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanParameterInfoSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class MBeanParameterInfoSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
MBeanParameterInfoSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanParameterInfoSer

+
+public MBeanParameterInfoSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoSerFactory.html new file mode 100644 index 0000000..ad084dd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanParameterInfoSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanParameterInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanParameterInfoSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class MBeanParameterInfoSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanParameterInfoSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanParameterInfoSerFactory

+
+public MBeanParameterInfoSerFactory(java.lang.Class javaType,
+                                    javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationDeser.html new file mode 100644 index 0000000..27370b5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationDeser.html @@ -0,0 +1,367 @@ + + + + + + +MBeanServerNotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanServerNotificationDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.NotificationDeser
+                      extended bymx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class MBeanServerNotificationDeser
extends NotificationDeser
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
MBeanServerNotificationDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.NotificationDeser
getMessage, getSequenceNumber, getSource, getTimeStamp, getType, getUserData
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanServerNotificationDeser

+
+public MBeanServerNotificationDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Overrides:
onSetChildValue in class NotificationDeser
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Overrides:
createObject in class NotificationDeser
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationDeserFactory.html new file mode 100644 index 0000000..9373719 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanServerNotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanServerNotificationDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class MBeanServerNotificationDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanServerNotificationDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanServerNotificationDeserFactory

+
+public MBeanServerNotificationDeserFactory(java.lang.Class javaType,
+                                           javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterDeser.html new file mode 100644 index 0000000..6219650 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterDeser.html @@ -0,0 +1,357 @@ + + + + + + +MBeanServerNotificationFilterDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanServerNotificationFilterDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class MBeanServerNotificationFilterDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
MBeanServerNotificationFilterDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+protected  voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanServerNotificationFilterDeser

+
+public MBeanServerNotificationFilterDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+protected void onSetChildValue(java.lang.Object value,
+                               java.lang.Object hint)
+                        throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterDeserFactory.html new file mode 100644 index 0000000..1133085 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanServerNotificationFilterDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanServerNotificationFilterDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class MBeanServerNotificationFilterDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanServerNotificationFilterDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanServerNotificationFilterDeserFactory

+
+public MBeanServerNotificationFilterDeserFactory(java.lang.Class javaType,
+                                                 javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterSer.html new file mode 100644 index 0000000..43daeac --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterSer.html @@ -0,0 +1,330 @@ + + + + + + +MBeanServerNotificationFilterSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanServerNotificationFilterSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class MBeanServerNotificationFilterSer
extends NotificationFilterSupportSer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
MBeanServerNotificationFilterSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidonSerialize(org.apache.axis.encoding.SerializationContext context, + javax.management.NotificationFilterSupport filter) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer
serialize
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanServerNotificationFilterSer

+
+public MBeanServerNotificationFilterSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSerialize

+
+protected void onSerialize(org.apache.axis.encoding.SerializationContext context,
+                           javax.management.NotificationFilterSupport filter)
+                    throws java.io.IOException
+
+
+
Overrides:
onSerialize in class NotificationFilterSupportSer
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class NotificationFilterSupportSer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterSerFactory.html new file mode 100644 index 0000000..637a060 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationFilterSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanServerNotificationFilterSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanServerNotificationFilterSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class MBeanServerNotificationFilterSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanServerNotificationFilterSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanServerNotificationFilterSerFactory

+
+public MBeanServerNotificationFilterSerFactory(java.lang.Class javaType,
+                                               javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationSer.html new file mode 100644 index 0000000..b384bfd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationSer.html @@ -0,0 +1,330 @@ + + + + + + +MBeanServerNotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanServerNotificationSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.NotificationSer
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class MBeanServerNotificationSer
extends NotificationSer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
MBeanServerNotificationSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidonSerialize(org.apache.axis.encoding.SerializationContext context, + javax.management.Notification notification) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.NotificationSer
serialize
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanServerNotificationSer

+
+public MBeanServerNotificationSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSerialize

+
+protected void onSerialize(org.apache.axis.encoding.SerializationContext context,
+                           javax.management.Notification notification)
+                    throws java.io.IOException
+
+
+
Overrides:
onSerialize in class NotificationSer
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class NotificationSer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationSerFactory.html new file mode 100644 index 0000000..e993073 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MBeanServerNotificationSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +MBeanServerNotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MBeanServerNotificationSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class MBeanServerNotificationSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MBeanServerNotificationSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MBeanServerNotificationSerFactory

+
+public MBeanServerNotificationSerFactory(java.lang.Class javaType,
+                                         javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationDeser.html new file mode 100644 index 0000000..b3a3951 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationDeser.html @@ -0,0 +1,367 @@ + + + + + + +MonitorNotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MonitorNotificationDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.NotificationDeser
+                      extended bymx4j.tools.remote.soap.axis.ser.MonitorNotificationDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class MonitorNotificationDeser
extends NotificationDeser
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
MonitorNotificationDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.NotificationDeser
getMessage, getSequenceNumber, getSource, getTimeStamp, getType, getUserData
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MonitorNotificationDeser

+
+public MonitorNotificationDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Overrides:
onSetChildValue in class NotificationDeser
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Overrides:
createObject in class NotificationDeser
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationDeserFactory.html new file mode 100644 index 0000000..dde941c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +MonitorNotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MonitorNotificationDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MonitorNotificationDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class MonitorNotificationDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MonitorNotificationDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MonitorNotificationDeserFactory

+
+public MonitorNotificationDeserFactory(java.lang.Class javaType,
+                                       javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationSer.html new file mode 100644 index 0000000..108015d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationSer.html @@ -0,0 +1,330 @@ + + + + + + +MonitorNotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MonitorNotificationSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.NotificationSer
+          extended bymx4j.tools.remote.soap.axis.ser.MonitorNotificationSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class MonitorNotificationSer
extends NotificationSer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
MonitorNotificationSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidonSerialize(org.apache.axis.encoding.SerializationContext context, + javax.management.Notification notification) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.NotificationSer
serialize
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MonitorNotificationSer

+
+public MonitorNotificationSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSerialize

+
+protected void onSerialize(org.apache.axis.encoding.SerializationContext context,
+                           javax.management.Notification notification)
+                    throws java.io.IOException
+
+
+
Overrides:
onSerialize in class NotificationSer
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class NotificationSer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationSerFactory.html new file mode 100644 index 0000000..07ed671 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/MonitorNotificationSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +MonitorNotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class MonitorNotificationSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.MonitorNotificationSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class MonitorNotificationSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
MonitorNotificationSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MonitorNotificationSerFactory

+
+public MonitorNotificationSerFactory(java.lang.Class javaType,
+                                     javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationDeser.html new file mode 100644 index 0000000..52bb43c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationDeser.html @@ -0,0 +1,474 @@ + + + + + + +NotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.NotificationDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
Direct Known Subclasses:
MBeanServerNotificationDeser, MonitorNotificationDeser, TimerNotificationDeser
+
+
+
+
public class NotificationDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
NotificationDeser() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+protected  java.lang.StringgetMessage() + +
+           
+protected  longgetSequenceNumber() + +
+           
+protected  java.lang.ObjectgetSource() + +
+           
+protected  longgetTimeStamp() + +
+           
+protected  java.lang.StringgetType() + +
+           
+protected  java.lang.ObjectgetUserData() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationDeser

+
+public NotificationDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+getType

+
+protected java.lang.String getType()
+
+
+
+
+
+
+ +

+getSource

+
+protected java.lang.Object getSource()
+
+
+
+
+
+
+ +

+getSequenceNumber

+
+protected long getSequenceNumber()
+
+
+
+
+
+
+ +

+getTimeStamp

+
+protected long getTimeStamp()
+
+
+
+
+
+
+ +

+getMessage

+
+protected java.lang.String getMessage()
+
+
+
+
+
+
+ +

+getUserData

+
+protected java.lang.Object getUserData()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationDeserFactory.html new file mode 100644 index 0000000..60e24fa --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +NotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.NotificationDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class NotificationDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
NotificationDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationDeserFactory

+
+public NotificationDeserFactory(java.lang.Class javaType,
+                                javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportDeser.html new file mode 100644 index 0000000..a2fe58f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportDeser.html @@ -0,0 +1,357 @@ + + + + + + +NotificationFilterSupportDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationFilterSupportDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class NotificationFilterSupportDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
NotificationFilterSupportDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+protected  voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationFilterSupportDeser

+
+public NotificationFilterSupportDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+protected void onSetChildValue(java.lang.Object value,
+                               java.lang.Object hint)
+                        throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportDeserFactory.html new file mode 100644 index 0000000..2889a51 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +NotificationFilterSupportDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationFilterSupportDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class NotificationFilterSupportDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
NotificationFilterSupportDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationFilterSupportDeserFactory

+
+public NotificationFilterSupportDeserFactory(java.lang.Class javaType,
+                                             javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportSer.html new file mode 100644 index 0000000..52fd08b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportSer.html @@ -0,0 +1,348 @@ + + + + + + +NotificationFilterSupportSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationFilterSupportSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
Direct Known Subclasses:
MBeanServerNotificationFilterSer
+
+
+
+
public class NotificationFilterSupportSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
NotificationFilterSupportSer() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidonSerialize(org.apache.axis.encoding.SerializationContext context, + javax.management.NotificationFilterSupport filter) + +
+           
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationFilterSupportSer

+
+public NotificationFilterSupportSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+onSerialize

+
+protected void onSerialize(org.apache.axis.encoding.SerializationContext context,
+                           javax.management.NotificationFilterSupport filter)
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportSerFactory.html new file mode 100644 index 0000000..5dad110 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationFilterSupportSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +NotificationFilterSupportSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationFilterSupportSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class NotificationFilterSupportSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
NotificationFilterSupportSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationFilterSupportSerFactory

+
+public NotificationFilterSupportSerFactory(java.lang.Class javaType,
+                                           javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultDeser.html new file mode 100644 index 0000000..f1a6d71 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultDeser.html @@ -0,0 +1,357 @@ + + + + + + +NotificationResultDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationResultDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.NotificationResultDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class NotificationResultDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
NotificationResultDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationResultDeser

+
+public NotificationResultDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultDeserFactory.html new file mode 100644 index 0000000..a6e5bf3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +NotificationResultDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationResultDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.NotificationResultDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class NotificationResultDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
NotificationResultDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationResultDeserFactory

+
+public NotificationResultDeserFactory(java.lang.Class javaType,
+                                      javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultSer.html new file mode 100644 index 0000000..5d057e1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultSer.html @@ -0,0 +1,321 @@ + + + + + + +NotificationResultSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationResultSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.NotificationResultSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class NotificationResultSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
NotificationResultSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationResultSer

+
+public NotificationResultSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultSerFactory.html new file mode 100644 index 0000000..7312d44 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationResultSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +NotificationResultSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationResultSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.NotificationResultSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class NotificationResultSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
NotificationResultSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationResultSerFactory

+
+public NotificationResultSerFactory(java.lang.Class javaType,
+                                    javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationSer.html new file mode 100644 index 0000000..fa6b510 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationSer.html @@ -0,0 +1,348 @@ + + + + + + +NotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.NotificationSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
Direct Known Subclasses:
MBeanServerNotificationSer, MonitorNotificationSer, TimerNotificationSer
+
+
+
+
public class NotificationSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
NotificationSer() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidonSerialize(org.apache.axis.encoding.SerializationContext context, + javax.management.Notification notification) + +
+           
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationSer

+
+public NotificationSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+onSerialize

+
+protected void onSerialize(org.apache.axis.encoding.SerializationContext context,
+                           javax.management.Notification notification)
+                    throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationSerFactory.html new file mode 100644 index 0000000..106507f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/NotificationSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +NotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class NotificationSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.NotificationSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class NotificationSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
NotificationSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+NotificationSerFactory

+
+public NotificationSerFactory(java.lang.Class javaType,
+                              javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceDeser.html new file mode 100644 index 0000000..d6fd5a3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceDeser.html @@ -0,0 +1,357 @@ + + + + + + +ObjectInstanceDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class ObjectInstanceDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.ObjectInstanceDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class ObjectInstanceDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
ObjectInstanceDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+protected  voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ObjectInstanceDeser

+
+public ObjectInstanceDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+protected void onSetChildValue(java.lang.Object value,
+                               java.lang.Object hint)
+                        throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceDeserFactory.html new file mode 100644 index 0000000..ff644af --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +ObjectInstanceDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class ObjectInstanceDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.ObjectInstanceDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class ObjectInstanceDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
ObjectInstanceDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ObjectInstanceDeserFactory

+
+public ObjectInstanceDeserFactory(java.lang.Class javaType,
+                                  javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceSer.html new file mode 100644 index 0000000..3261ba5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceSer.html @@ -0,0 +1,321 @@ + + + + + + +ObjectInstanceSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class ObjectInstanceSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.ObjectInstanceSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class ObjectInstanceSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
ObjectInstanceSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ObjectInstanceSer

+
+public ObjectInstanceSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceSerFactory.html new file mode 100644 index 0000000..3288035 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectInstanceSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +ObjectInstanceSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class ObjectInstanceSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.ObjectInstanceSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class ObjectInstanceSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
ObjectInstanceSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ObjectInstanceSerFactory

+
+public ObjectInstanceSerFactory(java.lang.Class javaType,
+                                javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameDeser.html new file mode 100644 index 0000000..30c7452 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameDeser.html @@ -0,0 +1,357 @@ + + + + + + +ObjectNameDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class ObjectNameDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.ObjectNameDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class ObjectNameDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
ObjectNameDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ObjectNameDeser

+
+public ObjectNameDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameDeserFactory.html new file mode 100644 index 0000000..628a02e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +ObjectNameDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class ObjectNameDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.ObjectNameDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class ObjectNameDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
ObjectNameDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ObjectNameDeserFactory

+
+public ObjectNameDeserFactory(java.lang.Class javaType,
+                              javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameSer.html new file mode 100644 index 0000000..9f9f808 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameSer.html @@ -0,0 +1,321 @@ + + + + + + +ObjectNameSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class ObjectNameSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.ObjectNameSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class ObjectNameSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
ObjectNameSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ObjectNameSer

+
+public ObjectNameSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameSerFactory.html new file mode 100644 index 0000000..99da570 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/ObjectNameSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +ObjectNameSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class ObjectNameSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.ObjectNameSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class ObjectNameSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
ObjectNameSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ObjectNameSerFactory

+
+public ObjectNameSerFactory(java.lang.Class javaType,
+                            javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalDeser.html new file mode 100644 index 0000000..cc92c88 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalDeser.html @@ -0,0 +1,357 @@ + + + + + + +PrincipalDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class PrincipalDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.PrincipalDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class PrincipalDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
PrincipalDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+PrincipalDeser

+
+public PrincipalDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalDeserFactory.html new file mode 100644 index 0000000..36109bf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +PrincipalDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class PrincipalDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.PrincipalDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class PrincipalDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
PrincipalDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+PrincipalDeserFactory

+
+public PrincipalDeserFactory(java.lang.Class javaType,
+                             javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalSer.html new file mode 100644 index 0000000..e372e7c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalSer.html @@ -0,0 +1,321 @@ + + + + + + +PrincipalSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class PrincipalSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.PrincipalSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class PrincipalSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
PrincipalSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+PrincipalSer

+
+public PrincipalSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalSerFactory.html new file mode 100644 index 0000000..31b3e83 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/PrincipalSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +PrincipalSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class PrincipalSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.PrincipalSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class PrincipalSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
PrincipalSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+PrincipalSerFactory

+
+public PrincipalSerFactory(java.lang.Class javaType,
+                           javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportDeser.html new file mode 100644 index 0000000..d46a41a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportDeser.html @@ -0,0 +1,357 @@ + + + + + + +RelationTypeSupportDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RelationTypeSupportDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class RelationTypeSupportDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
RelationTypeSupportDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RelationTypeSupportDeser

+
+public RelationTypeSupportDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportDeserFactory.html new file mode 100644 index 0000000..8b9b384 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +RelationTypeSupportDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RelationTypeSupportDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class RelationTypeSupportDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RelationTypeSupportDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RelationTypeSupportDeserFactory

+
+public RelationTypeSupportDeserFactory(java.lang.Class javaType,
+                                       javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportSer.html new file mode 100644 index 0000000..04fb54a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportSer.html @@ -0,0 +1,321 @@ + + + + + + +RelationTypeSupportSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RelationTypeSupportSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.RelationTypeSupportSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class RelationTypeSupportSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
RelationTypeSupportSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RelationTypeSupportSer

+
+public RelationTypeSupportSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportSerFactory.html new file mode 100644 index 0000000..b3f91a0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RelationTypeSupportSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +RelationTypeSupportSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RelationTypeSupportSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RelationTypeSupportSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class RelationTypeSupportSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RelationTypeSupportSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RelationTypeSupportSerFactory

+
+public RelationTypeSupportSerFactory(java.lang.Class javaType,
+                                     javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleDeser.html new file mode 100644 index 0000000..7c907cc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleDeser.html @@ -0,0 +1,360 @@ + + + + + + +RoleDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.RoleDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
Direct Known Subclasses:
RoleUnresolvedDeser
+
+
+
+
public class RoleDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
RoleDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleDeser

+
+public RoleDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleDeserFactory.html new file mode 100644 index 0000000..283a0fe --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class RoleDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleDeserFactory

+
+public RoleDeserFactory(java.lang.Class javaType,
+                        javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoDeser.html new file mode 100644 index 0000000..a3cf68d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoDeser.html @@ -0,0 +1,357 @@ + + + + + + +RoleInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleInfoDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.RoleInfoDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class RoleInfoDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
RoleInfoDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleInfoDeser

+
+public RoleInfoDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoDeserFactory.html new file mode 100644 index 0000000..7d0746c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleInfoDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleInfoDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class RoleInfoDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleInfoDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleInfoDeserFactory

+
+public RoleInfoDeserFactory(java.lang.Class javaType,
+                            javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoSer.html new file mode 100644 index 0000000..4cfac12 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoSer.html @@ -0,0 +1,321 @@ + + + + + + +RoleInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleInfoSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.RoleInfoSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class RoleInfoSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
RoleInfoSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleInfoSer

+
+public RoleInfoSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoSerFactory.html new file mode 100644 index 0000000..cbd9c56 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleInfoSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleInfoSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleInfoSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class RoleInfoSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleInfoSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleInfoSerFactory

+
+public RoleInfoSerFactory(java.lang.Class javaType,
+                          javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListDeser.html new file mode 100644 index 0000000..8d5822c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListDeser.html @@ -0,0 +1,357 @@ + + + + + + +RoleListDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleListDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.RoleListDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class RoleListDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
RoleListDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleListDeser

+
+public RoleListDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListDeserFactory.html new file mode 100644 index 0000000..4ee2cea --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleListDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleListDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleListDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class RoleListDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleListDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleListDeserFactory

+
+public RoleListDeserFactory(java.lang.Class javaType,
+                            javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListSer.html new file mode 100644 index 0000000..f10571e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListSer.html @@ -0,0 +1,321 @@ + + + + + + +RoleListSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleListSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.RoleListSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class RoleListSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
RoleListSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleListSer

+
+public RoleListSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListSerFactory.html new file mode 100644 index 0000000..9df794e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleListSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleListSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleListSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleListSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class RoleListSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleListSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleListSerFactory

+
+public RoleListSerFactory(java.lang.Class javaType,
+                          javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultDeser.html new file mode 100644 index 0000000..43a04c7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultDeser.html @@ -0,0 +1,357 @@ + + + + + + +RoleResultDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleResultDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.RoleResultDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class RoleResultDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
RoleResultDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+protected  voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleResultDeser

+
+public RoleResultDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+protected void onSetChildValue(java.lang.Object value,
+                               java.lang.Object hint)
+                        throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultDeserFactory.html new file mode 100644 index 0000000..9fe7d51 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleResultDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleResultDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleResultDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class RoleResultDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleResultDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleResultDeserFactory

+
+public RoleResultDeserFactory(java.lang.Class javaType,
+                              javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultSer.html new file mode 100644 index 0000000..e276eef --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultSer.html @@ -0,0 +1,363 @@ + + + + + + +RoleResultSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleResultSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.RoleResultSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class RoleResultSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + + +
+Field Summary
+protected static javax.xml.namespace.QNameROLE_LIST_QNAME + +
+           
+protected static javax.xml.namespace.QNameROLE_UNRESOLVED_LIST_QNAME + +
+           
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
RoleResultSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+ROLE_LIST_QNAME

+
+protected static final javax.xml.namespace.QName ROLE_LIST_QNAME
+
+
+
+
+
+ +

+ROLE_UNRESOLVED_LIST_QNAME

+
+protected static final javax.xml.namespace.QName ROLE_UNRESOLVED_LIST_QNAME
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+RoleResultSer

+
+public RoleResultSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultSerFactory.html new file mode 100644 index 0000000..1d9c83c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleResultSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleResultSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleResultSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleResultSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class RoleResultSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleResultSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleResultSerFactory

+
+public RoleResultSerFactory(java.lang.Class javaType,
+                            javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleSer.html new file mode 100644 index 0000000..57fd7c0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleSer.html @@ -0,0 +1,366 @@ + + + + + + +RoleSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.RoleSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
Direct Known Subclasses:
RoleUnresolvedSer
+
+
+
+
public class RoleSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + + + + + + + + +
+Field Summary
+protected static javax.xml.namespace.QNameROLE_NAME_QNAME + +
+           
+protected static javax.xml.namespace.QNameROLE_VALUE_QNAME + +
+           
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
RoleSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+ROLE_NAME_QNAME

+
+protected static final javax.xml.namespace.QName ROLE_NAME_QNAME
+
+
+
+
+
+ +

+ROLE_VALUE_QNAME

+
+protected static final javax.xml.namespace.QName ROLE_VALUE_QNAME
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+RoleSer

+
+public RoleSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleSerFactory.html new file mode 100644 index 0000000..05e0bcd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class RoleSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleSerFactory

+
+public RoleSerFactory(java.lang.Class javaType,
+                      javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedDeser.html new file mode 100644 index 0000000..c431cee --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedDeser.html @@ -0,0 +1,358 @@ + + + + + + +RoleUnresolvedDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleUnresolvedDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.RoleDeser
+                      extended bymx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class RoleUnresolvedDeser
extends RoleDeser
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
RoleUnresolvedDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleUnresolvedDeser

+
+public RoleUnresolvedDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Overrides:
onSetChildValue in class RoleDeser
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Overrides:
createObject in class RoleDeser
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedDeserFactory.html new file mode 100644 index 0000000..5929e08 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleUnresolvedDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleUnresolvedDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class RoleUnresolvedDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleUnresolvedDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleUnresolvedDeserFactory

+
+public RoleUnresolvedDeserFactory(java.lang.Class javaType,
+                                  javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListDeser.html new file mode 100644 index 0000000..3b88c2f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListDeser.html @@ -0,0 +1,357 @@ + + + + + + +RoleUnresolvedListDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleUnresolvedListDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class RoleUnresolvedListDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
RoleUnresolvedListDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleUnresolvedListDeser

+
+public RoleUnresolvedListDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListDeserFactory.html new file mode 100644 index 0000000..4d11abc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleUnresolvedListDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleUnresolvedListDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class RoleUnresolvedListDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleUnresolvedListDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleUnresolvedListDeserFactory

+
+public RoleUnresolvedListDeserFactory(java.lang.Class javaType,
+                                      javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListSer.html new file mode 100644 index 0000000..ce43a71 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListSer.html @@ -0,0 +1,321 @@ + + + + + + +RoleUnresolvedListSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleUnresolvedListSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class RoleUnresolvedListSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
RoleUnresolvedListSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleUnresolvedListSer

+
+public RoleUnresolvedListSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListSerFactory.html new file mode 100644 index 0000000..e807b28 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedListSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleUnresolvedListSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleUnresolvedListSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class RoleUnresolvedListSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleUnresolvedListSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleUnresolvedListSerFactory

+
+public RoleUnresolvedListSerFactory(java.lang.Class javaType,
+                                    javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedSer.html new file mode 100644 index 0000000..bee00bf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedSer.html @@ -0,0 +1,334 @@ + + + + + + +RoleUnresolvedSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleUnresolvedSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.RoleSer
+          extended bymx4j.tools.remote.soap.axis.ser.RoleUnresolvedSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class RoleUnresolvedSer
extends RoleSer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.RoleSer
ROLE_NAME_QNAME, ROLE_VALUE_QNAME
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
RoleUnresolvedSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleUnresolvedSer

+
+public RoleUnresolvedSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+
Specified by:
serialize in interface org.apache.axis.encoding.Serializer
Overrides:
serialize in class RoleSer
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class RoleSer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedSerFactory.html new file mode 100644 index 0000000..8960ff5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/RoleUnresolvedSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +RoleUnresolvedSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class RoleUnresolvedSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.RoleUnresolvedSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class RoleUnresolvedSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
RoleUnresolvedSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+RoleUnresolvedSerFactory

+
+public RoleUnresolvedSerFactory(java.lang.Class javaType,
+                                javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetDeser.html new file mode 100644 index 0000000..8ff9b35 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetDeser.html @@ -0,0 +1,357 @@ + + + + + + +SetDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class SetDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.SetDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class SetDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
SetDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SetDeser

+
+public SetDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetDeserFactory.html new file mode 100644 index 0000000..4711027 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +SetDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class SetDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.SetDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class SetDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
SetDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SetDeserFactory

+
+public SetDeserFactory(java.lang.Class javaType,
+                       javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetSer.html new file mode 100644 index 0000000..e7704a3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetSer.html @@ -0,0 +1,321 @@ + + + + + + +SetSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class SetSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.SetSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class SetSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.5 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
SetSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class javaType, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SetSer

+
+public SetSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class javaType,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetSerFactory.html new file mode 100644 index 0000000..48ddd11 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SetSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +SetSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class SetSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.SetSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class SetSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
SetSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SetSerFactory

+
+public SetSerFactory(java.lang.Class javaType,
+                     javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectDeser.html new file mode 100644 index 0000000..e67d3f4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectDeser.html @@ -0,0 +1,357 @@ + + + + + + +SubjectDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class SubjectDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.SubjectDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class SubjectDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
SubjectDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SubjectDeser

+
+public SubjectDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectDeserFactory.html new file mode 100644 index 0000000..82e42fb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +SubjectDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class SubjectDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.SubjectDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class SubjectDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
SubjectDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SubjectDeserFactory

+
+public SubjectDeserFactory(java.lang.Class javaType,
+                           javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectSer.html new file mode 100644 index 0000000..092607b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectSer.html @@ -0,0 +1,321 @@ + + + + + + +SubjectSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class SubjectSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.SubjectSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class SubjectSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
SubjectSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SubjectSer

+
+public SubjectSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectSerFactory.html new file mode 100644 index 0000000..e647fa0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/SubjectSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +SubjectSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class SubjectSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.SubjectSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class SubjectSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
SubjectSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+SubjectSerFactory

+
+public SubjectSerFactory(java.lang.Class javaType,
+                         javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationDeser.html new file mode 100644 index 0000000..ad7183a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationDeser.html @@ -0,0 +1,357 @@ + + + + + + +TargetedNotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class TargetedNotificationDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.TargetedNotificationDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class TargetedNotificationDeser
extends AxisDeserializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
TargetedNotificationDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TargetedNotificationDeser

+
+public TargetedNotificationDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Specified by:
onSetChildValue in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Specified by:
createObject in class AxisDeserializer
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationDeserFactory.html new file mode 100644 index 0000000..dce8af6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +TargetedNotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class TargetedNotificationDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.TargetedNotificationDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class TargetedNotificationDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
TargetedNotificationDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TargetedNotificationDeserFactory

+
+public TargetedNotificationDeserFactory(java.lang.Class javaType,
+                                        javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationSer.html new file mode 100644 index 0000000..cec9c78 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationSer.html @@ -0,0 +1,321 @@ + + + + + + +TargetedNotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class TargetedNotificationSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.TargetedNotificationSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class TargetedNotificationSer
extends AxisSerializer
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
TargetedNotificationSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ voidserialize(javax.xml.namespace.QName name, + org.xml.sax.Attributes attributes, + java.lang.Object value, + org.apache.axis.encoding.SerializationContext context) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TargetedNotificationSer

+
+public TargetedNotificationSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+serialize

+
+public void serialize(javax.xml.namespace.QName name,
+                      org.xml.sax.Attributes attributes,
+                      java.lang.Object value,
+                      org.apache.axis.encoding.SerializationContext context)
+               throws java.io.IOException
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class AxisSerializer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationSerFactory.html new file mode 100644 index 0000000..fd819d9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TargetedNotificationSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +TargetedNotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class TargetedNotificationSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.TargetedNotificationSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class TargetedNotificationSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
TargetedNotificationSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TargetedNotificationSerFactory

+
+public TargetedNotificationSerFactory(java.lang.Class javaType,
+                                      javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationDeser.html new file mode 100644 index 0000000..8be69bc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationDeser.html @@ -0,0 +1,367 @@ + + + + + + +TimerNotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class TimerNotificationDeser

+
+java.lang.Object
+  extended byorg.xml.sax.helpers.DefaultHandler
+      extended byorg.apache.axis.message.SOAPHandler
+          extended byorg.apache.axis.encoding.DeserializerImpl
+              extended bymx4j.tools.remote.soap.axis.ser.AxisDeserializer
+                  extended bymx4j.tools.remote.soap.axis.ser.NotificationDeser
+                      extended bymx4j.tools.remote.soap.axis.ser.TimerNotificationDeser
+
+
+
All Implemented Interfaces:
org.apache.axis.encoding.Callback, org.xml.sax.ContentHandler, org.apache.axis.encoding.Deserializer, javax.xml.rpc.encoding.Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable
+
+
+
+
public class TimerNotificationDeser
extends NotificationDeser
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
+ + + + + + + +
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
+  + + + + + + + + + + +
+Constructor Summary
TimerNotificationDeser() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  java.lang.ObjectcreateObject() + +
+           
+ voidonSetChildValue(java.lang.Object value, + java.lang.Object hint) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.NotificationDeser
getMessage, getSequenceNumber, getSource, getTimeStamp, getType, getUserData
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisDeserializer
getLogger, onEndElement, onStartChild, onStartElement, setChildValue
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement, valueComplete
+ + + + + + + +
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
+ + + + + + + +
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TimerNotificationDeser

+
+public TimerNotificationDeser()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSetChildValue

+
+public void onSetChildValue(java.lang.Object value,
+                            java.lang.Object hint)
+                     throws org.xml.sax.SAXException
+
+
+
Overrides:
onSetChildValue in class NotificationDeser
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+
+ +

+createObject

+
+protected java.lang.Object createObject()
+                                 throws org.xml.sax.SAXException
+
+
+
Overrides:
createObject in class NotificationDeser
+
+
+ +
Throws: +
org.xml.sax.SAXException
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationDeserFactory.html new file mode 100644 index 0000000..e638344 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationDeserFactory.html @@ -0,0 +1,274 @@ + + + + + + +TimerNotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class TimerNotificationDeserFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseDeserializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.TimerNotificationDeserFactory
+
+
+
All Implemented Interfaces:
javax.xml.rpc.encoding.DeserializerFactory, org.apache.axis.encoding.DeserializerFactory, java.io.Serializable
+
+
+
+
public class TimerNotificationDeserFactory
extends org.apache.axis.encoding.ser.BaseDeserializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
deserClass, deserClassConstructor, getDeserializer, javaType, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
TimerNotificationDeserFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseDeserializerFactory
createFactory, getDeserClassConstructor, getDeserializerAs, getGeneralPurpose, getGetDeserializer, getSpecialized, getSupportedMechanismTypes
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TimerNotificationDeserFactory

+
+public TimerNotificationDeserFactory(java.lang.Class javaType,
+                                     javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationSer.html new file mode 100644 index 0000000..16d1000 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationSer.html @@ -0,0 +1,330 @@ + + + + + + +TimerNotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class TimerNotificationSer

+
+java.lang.Object
+  extended bymx4j.tools.remote.soap.axis.ser.AxisSerializer
+      extended bymx4j.tools.remote.soap.axis.ser.NotificationSer
+          extended bymx4j.tools.remote.soap.axis.ser.TimerNotificationSer
+
+
+
All Implemented Interfaces:
java.io.Serializable, org.apache.axis.encoding.Serializer, javax.xml.rpc.encoding.Serializer
+
+
+
+
public class TimerNotificationSer
extends NotificationSer
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
SCHEMA_ALL, SCHEMA_COMPLEX_TYPE, SCHEMA_ELEMENT, SCHEMA_SEQUENCE
+  + + + + + + + + + + +
+Constructor Summary
TimerNotificationSer() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidonSerialize(org.apache.axis.encoding.SerializationContext context, + javax.management.Notification notification) + +
+           
+ org.w3c.dom.ElementwriteSchema(java.lang.Class aClass, + org.apache.axis.wsdl.fromJava.Types types) + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.NotificationSer
serialize
+ + + + + + + +
Methods inherited from class mx4j.tools.remote.soap.axis.ser.AxisSerializer
getMechanismType
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TimerNotificationSer

+
+public TimerNotificationSer()
+
+
+ + + + + + + + +
+Method Detail
+ +

+onSerialize

+
+protected void onSerialize(org.apache.axis.encoding.SerializationContext context,
+                           javax.management.Notification notification)
+                    throws java.io.IOException
+
+
+
Overrides:
onSerialize in class NotificationSer
+
+
+ +
Throws: +
java.io.IOException
+
+
+
+ +

+writeSchema

+
+public org.w3c.dom.Element writeSchema(java.lang.Class aClass,
+                                       org.apache.axis.wsdl.fromJava.Types types)
+                                throws java.lang.Exception
+
+
+
Specified by:
writeSchema in interface org.apache.axis.encoding.Serializer
Overrides:
writeSchema in class NotificationSer
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationSerFactory.html new file mode 100644 index 0000000..b9d2bb5 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/TimerNotificationSerFactory.html @@ -0,0 +1,274 @@ + + + + + + +TimerNotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.remote.soap.axis.ser +
+Class TimerNotificationSerFactory

+
+java.lang.Object
+  extended byorg.apache.axis.encoding.ser.BaseFactory
+      extended byorg.apache.axis.encoding.ser.BaseSerializerFactory
+          extended bymx4j.tools.remote.soap.axis.ser.TimerNotificationSerFactory
+
+
+
All Implemented Interfaces:
java.io.Serializable, javax.xml.rpc.encoding.SerializerFactory, org.apache.axis.encoding.SerializerFactory
+
+
+
+
public class TimerNotificationSerFactory
extends org.apache.axis.encoding.ser.BaseSerializerFactory
+ +

+

+
Version:
+
$Revision: 1.3 $
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
getSerializer, javaType, ser, serClass, serClassConstructor, xmlType
+ + + + + + + +
Fields inherited from class org.apache.axis.encoding.ser.BaseFactory
methodCache
+  + + + + + + + + + + +
+Constructor Summary
TimerNotificationSerFactory(java.lang.Class javaType, + javax.xml.namespace.QName xmlType) + +
+           
+  + + + + + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseSerializerFactory
createFactory, getGeneralPurpose, getGetSerializer, getJavaType, getSerClassConstructor, getSerializerAs, getSerializerAsInternal, getSpecialized, getSupportedMechanismTypes, getXMLType
+ + + + + + + +
Methods inherited from class org.apache.axis.encoding.ser.BaseFactory
getMethod
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TimerNotificationSerFactory

+
+public TimerNotificationSerFactory(java.lang.Class javaType,
+                                   javax.xml.namespace.QName xmlType)
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeDeser.html new file mode 100644 index 0000000..90041b9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AttributeDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AttributeDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.AttributeDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeDeserFactory.html new file mode 100644 index 0000000..55cd790 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AttributeDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AttributeDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.AttributeDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListDeser.html new file mode 100644 index 0000000..6542a29 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AttributeListDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AttributeListDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.AttributeListDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListDeserFactory.html new file mode 100644 index 0000000..056ff4c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AttributeListDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AttributeListDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.AttributeListDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListSer.html new file mode 100644 index 0000000..db67192 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AttributeListSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AttributeListSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.AttributeListSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListSerFactory.html new file mode 100644 index 0000000..049c312 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeListSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AttributeListSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AttributeListSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.AttributeListSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeSer.html new file mode 100644 index 0000000..cfeb267 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AttributeSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AttributeSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.AttributeSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeSerFactory.html new file mode 100644 index 0000000..201766b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AttributeSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AttributeSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AttributeSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.AttributeSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AxisDeserializer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AxisDeserializer.html new file mode 100644 index 0000000..39defdb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AxisDeserializer.html @@ -0,0 +1,388 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AxisDeserializer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AxisDeserializer

+
+ + + + + + + + + +
+Packages that use AxisDeserializer
mx4j.tools.remote.soap.axis.ser  
+  +

+ + + + + +
+Uses of AxisDeserializer in mx4j.tools.remote.soap.axis.ser
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of AxisDeserializer in mx4j.tools.remote.soap.axis.ser
+ classAttributeDeser + +
+           
+ classAttributeListDeser + +
+           
+ classMBeanAttributeInfoDeser + +
+           
+ classMBeanConstructorInfoDeser + +
+           
+ classMBeanInfoDeser + +
+           
+ classMBeanNotificationInfoDeser + +
+           
+ classMBeanOperationInfoDeser + +
+           
+ classMBeanParameterInfoDeser + +
+           
+ classMBeanServerNotificationDeser + +
+           
+ classMBeanServerNotificationFilterDeser + +
+           
+ classMonitorNotificationDeser + +
+           
+ classNotificationDeser + +
+           
+ classNotificationFilterSupportDeser + +
+           
+ classNotificationResultDeser + +
+           
+ classObjectInstanceDeser + +
+           
+ classObjectNameDeser + +
+           
+ classPrincipalDeser + +
+           
+ classRelationTypeSupportDeser + +
+           
+ classRoleDeser + +
+           
+ classRoleInfoDeser + +
+           
+ classRoleListDeser + +
+           
+ classRoleResultDeser + +
+           
+ classRoleUnresolvedDeser + +
+           
+ classRoleUnresolvedListDeser + +
+           
+ classSetDeser + +
+           
+ classSubjectDeser + +
+           
+ classTargetedNotificationDeser + +
+           
+ classTimerNotificationDeser + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AxisSerializer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AxisSerializer.html new file mode 100644 index 0000000..8047fcd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/AxisSerializer.html @@ -0,0 +1,388 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.AxisSerializer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.AxisSerializer

+
+ + + + + + + + + +
+Packages that use AxisSerializer
mx4j.tools.remote.soap.axis.ser  
+  +

+ + + + + +
+Uses of AxisSerializer in mx4j.tools.remote.soap.axis.ser
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses of AxisSerializer in mx4j.tools.remote.soap.axis.ser
+ classAttributeListSer + +
+           
+ classAttributeSer + +
+           
+ classMBeanAttributeInfoSer + +
+           
+ classMBeanConstructorInfoSer + +
+           
+ classMBeanInfoSer + +
+           
+ classMBeanNotificationInfoSer + +
+           
+ classMBeanOperationInfoSer + +
+           
+ classMBeanParameterInfoSer + +
+           
+ classMBeanServerNotificationFilterSer + +
+           
+ classMBeanServerNotificationSer + +
+           
+ classMonitorNotificationSer + +
+           
+ classNotificationFilterSupportSer + +
+           
+ classNotificationResultSer + +
+           
+ classNotificationSer + +
+           
+ classObjectInstanceSer + +
+           
+ classObjectNameSer + +
+           
+ classPrincipalSer + +
+           
+ classRelationTypeSupportSer + +
+           
+ classRoleInfoSer + +
+           
+ classRoleListSer + +
+           
+ classRoleResultSer + +
+           
+ classRoleSer + +
+           
+ classRoleUnresolvedListSer + +
+           
+ classRoleUnresolvedSer + +
+           
+ classSetSer + +
+           
+ classSubjectSer + +
+           
+ classTargetedNotificationSer + +
+           
+ classTimerNotificationSer + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoDeser.html new file mode 100644 index 0000000..ed6cd93 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoDeserFactory.html new file mode 100644 index 0000000..3b2eeea --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoSer.html new file mode 100644 index 0000000..a3ae7a6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoSerFactory.html new file mode 100644 index 0000000..94e30f0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanAttributeInfoSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoDeser.html new file mode 100644 index 0000000..a157aaf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoDeserFactory.html new file mode 100644 index 0000000..4a4cbe9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoSer.html new file mode 100644 index 0000000..9f6f9cc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoSerFactory.html new file mode 100644 index 0000000..4a95ac7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanConstructorInfoSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoDeser.html new file mode 100644 index 0000000..509b765 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanInfoDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanInfoDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoDeserFactory.html new file mode 100644 index 0000000..f5ee186 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanInfoDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanInfoDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoSer.html new file mode 100644 index 0000000..ab9156b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanInfoSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanInfoSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoSerFactory.html new file mode 100644 index 0000000..cfff280 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanInfoSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanInfoSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanInfoSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoDeser.html new file mode 100644 index 0000000..7727fc3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoDeserFactory.html new file mode 100644 index 0000000..7bfe334 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoSer.html new file mode 100644 index 0000000..a7b9faf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoSerFactory.html new file mode 100644 index 0000000..f3e81ba --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanNotificationInfoSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoDeser.html new file mode 100644 index 0000000..89f9517 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoDeserFactory.html new file mode 100644 index 0000000..804530e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoSer.html new file mode 100644 index 0000000..c39de2b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoSerFactory.html new file mode 100644 index 0000000..f06907c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanOperationInfoSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoDeser.html new file mode 100644 index 0000000..e177ec4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoDeserFactory.html new file mode 100644 index 0000000..feb1d45 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoSer.html new file mode 100644 index 0000000..681ef3a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoSerFactory.html new file mode 100644 index 0000000..739effd --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanParameterInfoSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationDeser.html new file mode 100644 index 0000000..ec80e69 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationDeserFactory.html new file mode 100644 index 0000000..3b3b13f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterDeser.html new file mode 100644 index 0000000..55c504b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterDeserFactory.html new file mode 100644 index 0000000..e5f18ff --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterSer.html new file mode 100644 index 0000000..c0419b9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterSerFactory.html new file mode 100644 index 0000000..4df4c3e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationFilterSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationSer.html new file mode 100644 index 0000000..7bd05f8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationSerFactory.html new file mode 100644 index 0000000..f684ba6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MBeanServerNotificationSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationDeser.html new file mode 100644 index 0000000..94710c7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationDeserFactory.html new file mode 100644 index 0000000..d04c141 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationSer.html new file mode 100644 index 0000000..4e2f74f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MonitorNotificationSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.MonitorNotificationSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationSerFactory.html new file mode 100644 index 0000000..05a8463 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/MonitorNotificationSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.MonitorNotificationSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.MonitorNotificationSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationDeser.html new file mode 100644 index 0000000..c2eb788 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationDeser.html @@ -0,0 +1,188 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationDeser

+
+ + + + + + + + + +
+Packages that use NotificationDeser
mx4j.tools.remote.soap.axis.ser  
+  +

+ + + + + +
+Uses of NotificationDeser in mx4j.tools.remote.soap.axis.ser
+  +

+ + + + + + + + + + + + + + + + + +
Subclasses of NotificationDeser in mx4j.tools.remote.soap.axis.ser
+ classMBeanServerNotificationDeser + +
+           
+ classMonitorNotificationDeser + +
+           
+ classTimerNotificationDeser + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationDeserFactory.html new file mode 100644 index 0000000..1bc96d3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.NotificationDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportDeser.html new file mode 100644 index 0000000..5cb09db --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportDeserFactory.html new file mode 100644 index 0000000..e0459c6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportSer.html new file mode 100644 index 0000000..d29fd90 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportSer.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer

+
+ + + + + + + + + +
+Packages that use NotificationFilterSupportSer
mx4j.tools.remote.soap.axis.ser  
+  +

+ + + + + +
+Uses of NotificationFilterSupportSer in mx4j.tools.remote.soap.axis.ser
+  +

+ + + + + + + + + +
Subclasses of NotificationFilterSupportSer in mx4j.tools.remote.soap.axis.ser
+ classMBeanServerNotificationFilterSer + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportSerFactory.html new file mode 100644 index 0000000..55ad1c9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationFilterSupportSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultDeser.html new file mode 100644 index 0000000..2334f1c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationResultDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationResultDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.NotificationResultDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultDeserFactory.html new file mode 100644 index 0000000..59047e0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationResultDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationResultDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.NotificationResultDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultSer.html new file mode 100644 index 0000000..34f8f33 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationResultSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationResultSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.NotificationResultSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultSerFactory.html new file mode 100644 index 0000000..c17aab0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationResultSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationResultSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationResultSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.NotificationResultSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationSer.html new file mode 100644 index 0000000..cbe009e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationSer.html @@ -0,0 +1,188 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationSer

+
+ + + + + + + + + +
+Packages that use NotificationSer
mx4j.tools.remote.soap.axis.ser  
+  +

+ + + + + +
+Uses of NotificationSer in mx4j.tools.remote.soap.axis.ser
+  +

+ + + + + + + + + + + + + + + + + +
Subclasses of NotificationSer in mx4j.tools.remote.soap.axis.ser
+ classMBeanServerNotificationSer + +
+           
+ classMonitorNotificationSer + +
+           
+ classTimerNotificationSer + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationSerFactory.html new file mode 100644 index 0000000..45f18c2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/NotificationSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.NotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.NotificationSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.NotificationSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceDeser.html new file mode 100644 index 0000000..1b5e616 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceDeserFactory.html new file mode 100644 index 0000000..796a235 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceSer.html new file mode 100644 index 0000000..0bf2fba --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.ObjectInstanceSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.ObjectInstanceSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceSerFactory.html new file mode 100644 index 0000000..1a46074 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectInstanceSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.ObjectInstanceSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.ObjectInstanceSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameDeser.html new file mode 100644 index 0000000..832dcd9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.ObjectNameDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.ObjectNameDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.ObjectNameDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameDeserFactory.html new file mode 100644 index 0000000..f367e30 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.ObjectNameDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.ObjectNameDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.ObjectNameDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameSer.html new file mode 100644 index 0000000..7570d45 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.ObjectNameSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.ObjectNameSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.ObjectNameSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameSerFactory.html new file mode 100644 index 0000000..1deece6 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/ObjectNameSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.ObjectNameSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.ObjectNameSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.ObjectNameSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalDeser.html new file mode 100644 index 0000000..5e79059 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.PrincipalDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.PrincipalDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.PrincipalDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalDeserFactory.html new file mode 100644 index 0000000..5131044 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.PrincipalDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.PrincipalDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.PrincipalDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalSer.html new file mode 100644 index 0000000..6df11d0 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.PrincipalSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.PrincipalSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.PrincipalSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalSerFactory.html new file mode 100644 index 0000000..a4a4f90 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/PrincipalSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.PrincipalSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.PrincipalSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.PrincipalSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportDeser.html new file mode 100644 index 0000000..4c1ef8a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportDeserFactory.html new file mode 100644 index 0000000..3699d45 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportSer.html new file mode 100644 index 0000000..cba6532 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportSerFactory.html new file mode 100644 index 0000000..b0b5cde --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RelationTypeSupportSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleDeser.html new file mode 100644 index 0000000..9c63d6d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleDeser.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleDeser

+
+ + + + + + + + + +
+Packages that use RoleDeser
mx4j.tools.remote.soap.axis.ser  
+  +

+ + + + + +
+Uses of RoleDeser in mx4j.tools.remote.soap.axis.ser
+  +

+ + + + + + + + + +
Subclasses of RoleDeser in mx4j.tools.remote.soap.axis.ser
+ classRoleUnresolvedDeser + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleDeserFactory.html new file mode 100644 index 0000000..4963a58 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoDeser.html new file mode 100644 index 0000000..df81601 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleInfoDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleInfoDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleInfoDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoDeserFactory.html new file mode 100644 index 0000000..bd57c63 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleInfoDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleInfoDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleInfoDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoSer.html new file mode 100644 index 0000000..442d2e2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleInfoSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleInfoSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleInfoSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoSerFactory.html new file mode 100644 index 0000000..0dbe9e9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleInfoSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleInfoSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleInfoSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleInfoSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListDeser.html new file mode 100644 index 0000000..7e97fac --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleListDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleListDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleListDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListDeserFactory.html new file mode 100644 index 0000000..c07c62e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleListDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleListDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleListDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListSer.html new file mode 100644 index 0000000..134e823 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleListSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleListSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleListSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListSerFactory.html new file mode 100644 index 0000000..3bd5394 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleListSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleListSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleListSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleListSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultDeser.html new file mode 100644 index 0000000..36faaec --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleResultDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleResultDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleResultDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultDeserFactory.html new file mode 100644 index 0000000..5ae0989 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleResultDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleResultDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleResultDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultSer.html new file mode 100644 index 0000000..e6e0337 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleResultSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleResultSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleResultSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultSerFactory.html new file mode 100644 index 0000000..f2e5ea3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleResultSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleResultSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleResultSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleResultSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleSer.html new file mode 100644 index 0000000..da6946e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleSer.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleSer

+
+ + + + + + + + + +
+Packages that use RoleSer
mx4j.tools.remote.soap.axis.ser  
+  +

+ + + + + +
+Uses of RoleSer in mx4j.tools.remote.soap.axis.ser
+  +

+ + + + + + + + + +
Subclasses of RoleSer in mx4j.tools.remote.soap.axis.ser
+ classRoleUnresolvedSer + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleSerFactory.html new file mode 100644 index 0000000..7e80360 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedDeser.html new file mode 100644 index 0000000..737ffc1 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedDeserFactory.html new file mode 100644 index 0000000..48670fc --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListDeser.html new file mode 100644 index 0000000..0517e66 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListDeserFactory.html new file mode 100644 index 0000000..33e7d3c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListSer.html new file mode 100644 index 0000000..cecfd7d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListSerFactory.html new file mode 100644 index 0000000..26f4d0e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedListSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedSer.html new file mode 100644 index 0000000..8a0581d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedSerFactory.html new file mode 100644 index 0000000..8cff460 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/RoleUnresolvedSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetDeser.html new file mode 100644 index 0000000..54369d4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.SetDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.SetDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.SetDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetDeserFactory.html new file mode 100644 index 0000000..b40b8ff --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.SetDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.SetDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.SetDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetSer.html new file mode 100644 index 0000000..1a54453 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.SetSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.SetSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.SetSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetSerFactory.html new file mode 100644 index 0000000..91ae599 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SetSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.SetSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.SetSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.SetSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectDeser.html new file mode 100644 index 0000000..4ff52ca --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.SubjectDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.SubjectDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.SubjectDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectDeserFactory.html new file mode 100644 index 0000000..d3a4a5c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.SubjectDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.SubjectDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.SubjectDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectSer.html new file mode 100644 index 0000000..e220b02 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.SubjectSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.SubjectSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.SubjectSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectSerFactory.html new file mode 100644 index 0000000..abceea3 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/SubjectSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.SubjectSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.SubjectSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.SubjectSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationDeser.html new file mode 100644 index 0000000..f0a923a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationDeserFactory.html new file mode 100644 index 0000000..bcb7c24 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationSer.html new file mode 100644 index 0000000..216558d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.TargetedNotificationSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.TargetedNotificationSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationSerFactory.html new file mode 100644 index 0000000..57943df --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TargetedNotificationSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.TargetedNotificationSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.TargetedNotificationSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationDeser.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationDeser.html new file mode 100644 index 0000000..9600084 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationDeser.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.TimerNotificationDeser

+
+No usage of mx4j.tools.remote.soap.axis.ser.TimerNotificationDeser +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationDeserFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationDeserFactory.html new file mode 100644 index 0000000..147590e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationDeserFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeserFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.TimerNotificationDeserFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.TimerNotificationDeserFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationSer.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationSer.html new file mode 100644 index 0000000..460445a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationSer.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.TimerNotificationSer (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.TimerNotificationSer

+
+No usage of mx4j.tools.remote.soap.axis.ser.TimerNotificationSer +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationSerFactory.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationSerFactory.html new file mode 100644 index 0000000..bc0328d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/class-use/TimerNotificationSerFactory.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.axis.ser.TimerNotificationSerFactory (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.axis.ser.TimerNotificationSerFactory

+
+No usage of mx4j.tools.remote.soap.axis.ser.TimerNotificationSerFactory +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-frame.html new file mode 100644 index 0000000..521aabf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-frame.html @@ -0,0 +1,258 @@ + + + + + + +mx4j.tools.remote.soap.axis.ser (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.soap.axis.ser + + + + +
+Classes  + +
+AttributeDeser +
+AttributeDeserFactory +
+AttributeListDeser +
+AttributeListDeserFactory +
+AttributeListSer +
+AttributeListSerFactory +
+AttributeSer +
+AttributeSerFactory +
+AxisDeserializer +
+AxisSerializer +
+MBeanAttributeInfoDeser +
+MBeanAttributeInfoDeserFactory +
+MBeanAttributeInfoSer +
+MBeanAttributeInfoSerFactory +
+MBeanConstructorInfoDeser +
+MBeanConstructorInfoDeserFactory +
+MBeanConstructorInfoSer +
+MBeanConstructorInfoSerFactory +
+MBeanInfoDeser +
+MBeanInfoDeserFactory +
+MBeanInfoSer +
+MBeanInfoSerFactory +
+MBeanNotificationInfoDeser +
+MBeanNotificationInfoDeserFactory +
+MBeanNotificationInfoSer +
+MBeanNotificationInfoSerFactory +
+MBeanOperationInfoDeser +
+MBeanOperationInfoDeserFactory +
+MBeanOperationInfoSer +
+MBeanOperationInfoSerFactory +
+MBeanParameterInfoDeser +
+MBeanParameterInfoDeserFactory +
+MBeanParameterInfoSer +
+MBeanParameterInfoSerFactory +
+MBeanServerNotificationDeser +
+MBeanServerNotificationDeserFactory +
+MBeanServerNotificationFilterDeser +
+MBeanServerNotificationFilterDeserFactory +
+MBeanServerNotificationFilterSer +
+MBeanServerNotificationFilterSerFactory +
+MBeanServerNotificationSer +
+MBeanServerNotificationSerFactory +
+MonitorNotificationDeser +
+MonitorNotificationDeserFactory +
+MonitorNotificationSer +
+MonitorNotificationSerFactory +
+NotificationDeser +
+NotificationDeserFactory +
+NotificationFilterSupportDeser +
+NotificationFilterSupportDeserFactory +
+NotificationFilterSupportSer +
+NotificationFilterSupportSerFactory +
+NotificationResultDeser +
+NotificationResultDeserFactory +
+NotificationResultSer +
+NotificationResultSerFactory +
+NotificationSer +
+NotificationSerFactory +
+ObjectInstanceDeser +
+ObjectInstanceDeserFactory +
+ObjectInstanceSer +
+ObjectInstanceSerFactory +
+ObjectNameDeser +
+ObjectNameDeserFactory +
+ObjectNameSer +
+ObjectNameSerFactory +
+PrincipalDeser +
+PrincipalDeserFactory +
+PrincipalSer +
+PrincipalSerFactory +
+RelationTypeSupportDeser +
+RelationTypeSupportDeserFactory +
+RelationTypeSupportSer +
+RelationTypeSupportSerFactory +
+RoleDeser +
+RoleDeserFactory +
+RoleInfoDeser +
+RoleInfoDeserFactory +
+RoleInfoSer +
+RoleInfoSerFactory +
+RoleListDeser +
+RoleListDeserFactory +
+RoleListSer +
+RoleListSerFactory +
+RoleResultDeser +
+RoleResultDeserFactory +
+RoleResultSer +
+RoleResultSerFactory +
+RoleSer +
+RoleSerFactory +
+RoleUnresolvedDeser +
+RoleUnresolvedDeserFactory +
+RoleUnresolvedListDeser +
+RoleUnresolvedListDeserFactory +
+RoleUnresolvedListSer +
+RoleUnresolvedListSerFactory +
+RoleUnresolvedSer +
+RoleUnresolvedSerFactory +
+SetDeser +
+SetDeserFactory +
+SetSer +
+SetSerFactory +
+SubjectDeser +
+SubjectDeserFactory +
+SubjectSer +
+SubjectSerFactory +
+TargetedNotificationDeser +
+TargetedNotificationDeserFactory +
+TargetedNotificationSer +
+TargetedNotificationSerFactory +
+TimerNotificationDeser +
+TimerNotificationDeserFactory +
+TimerNotificationSer +
+TimerNotificationSerFactory
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-summary.html new file mode 100644 index 0000000..bbe881d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-summary.html @@ -0,0 +1,600 @@ + + + + + + +mx4j.tools.remote.soap.axis.ser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.soap.axis.ser +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
AttributeDeser 
AttributeDeserFactory 
AttributeListDeser 
AttributeListDeserFactory 
AttributeListSer 
AttributeListSerFactory 
AttributeSer 
AttributeSerFactory 
AxisDeserializer 
AxisSerializer 
MBeanAttributeInfoDeser 
MBeanAttributeInfoDeserFactory 
MBeanAttributeInfoSer 
MBeanAttributeInfoSerFactory 
MBeanConstructorInfoDeser 
MBeanConstructorInfoDeserFactory 
MBeanConstructorInfoSer 
MBeanConstructorInfoSerFactory 
MBeanInfoDeser 
MBeanInfoDeserFactory 
MBeanInfoSer 
MBeanInfoSerFactory 
MBeanNotificationInfoDeser 
MBeanNotificationInfoDeserFactory 
MBeanNotificationInfoSer 
MBeanNotificationInfoSerFactory 
MBeanOperationInfoDeser 
MBeanOperationInfoDeserFactory 
MBeanOperationInfoSer 
MBeanOperationInfoSerFactory 
MBeanParameterInfoDeser 
MBeanParameterInfoDeserFactory 
MBeanParameterInfoSer 
MBeanParameterInfoSerFactory 
MBeanServerNotificationDeser 
MBeanServerNotificationDeserFactory 
MBeanServerNotificationFilterDeser 
MBeanServerNotificationFilterDeserFactory 
MBeanServerNotificationFilterSer 
MBeanServerNotificationFilterSerFactory 
MBeanServerNotificationSer 
MBeanServerNotificationSerFactory 
MonitorNotificationDeser 
MonitorNotificationDeserFactory 
MonitorNotificationSer 
MonitorNotificationSerFactory 
NotificationDeser 
NotificationDeserFactory 
NotificationFilterSupportDeser 
NotificationFilterSupportDeserFactory 
NotificationFilterSupportSer 
NotificationFilterSupportSerFactory 
NotificationResultDeser 
NotificationResultDeserFactory 
NotificationResultSer 
NotificationResultSerFactory 
NotificationSer 
NotificationSerFactory 
ObjectInstanceDeser 
ObjectInstanceDeserFactory 
ObjectInstanceSer 
ObjectInstanceSerFactory 
ObjectNameDeser 
ObjectNameDeserFactory 
ObjectNameSer 
ObjectNameSerFactory 
PrincipalDeser 
PrincipalDeserFactory 
PrincipalSer 
PrincipalSerFactory 
RelationTypeSupportDeser 
RelationTypeSupportDeserFactory 
RelationTypeSupportSer 
RelationTypeSupportSerFactory 
RoleDeser 
RoleDeserFactory 
RoleInfoDeser 
RoleInfoDeserFactory 
RoleInfoSer 
RoleInfoSerFactory 
RoleListDeser 
RoleListDeserFactory 
RoleListSer 
RoleListSerFactory 
RoleResultDeser 
RoleResultDeserFactory 
RoleResultSer 
RoleResultSerFactory 
RoleSer 
RoleSerFactory 
RoleUnresolvedDeser 
RoleUnresolvedDeserFactory 
RoleUnresolvedListDeser 
RoleUnresolvedListDeserFactory 
RoleUnresolvedListSer 
RoleUnresolvedListSerFactory 
RoleUnresolvedSer 
RoleUnresolvedSerFactory 
SetDeser 
SetDeserFactory 
SetSer 
SetSerFactory 
SubjectDeser 
SubjectDeserFactory 
SubjectSer 
SubjectSerFactory 
TargetedNotificationDeser 
TargetedNotificationDeserFactory 
TargetedNotificationSer 
TargetedNotificationSerFactory 
TimerNotificationDeser 
TimerNotificationDeserFactory 
TimerNotificationSer 
TimerNotificationSerFactory 
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-tree.html new file mode 100644 index 0000000..882e6f2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-tree.html @@ -0,0 +1,176 @@ + + + + + + +mx4j.tools.remote.soap.axis.ser Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.soap.axis.ser +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-use.html new file mode 100644 index 0000000..09b262d --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/axis/ser/package-use.html @@ -0,0 +1,198 @@ + + + + + + +Uses of Package mx4j.tools.remote.soap.axis.ser (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.soap.axis.ser

+
+ + + + + + + + + +
+Packages that use mx4j.tools.remote.soap.axis.ser
mx4j.tools.remote.soap.axis.ser  
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.tools.remote.soap.axis.ser used by mx4j.tools.remote.soap.axis.ser
AxisDeserializer + +
+           
AxisSerializer + +
+           
NotificationDeser + +
+           
NotificationFilterSupportSer + +
+           
NotificationSer + +
+           
RoleDeser + +
+           
RoleSer + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/ConnectionIDRequestHandler.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/ConnectionIDRequestHandler.html new file mode 100644 index 0000000..47af0b9 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/ConnectionIDRequestHandler.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.ConnectionIDRequestHandler (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.ConnectionIDRequestHandler

+
+No usage of mx4j.tools.remote.soap.ConnectionIDRequestHandler +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPClientInvoker.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPClientInvoker.html new file mode 100644 index 0000000..8e65977 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPClientInvoker.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.SOAPClientInvoker (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.SOAPClientInvoker

+
+No usage of mx4j.tools.remote.soap.SOAPClientInvoker +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPConnector.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPConnector.html new file mode 100644 index 0000000..525b95c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPConnector.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.SOAPConnector (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.SOAPConnector

+
+No usage of mx4j.tools.remote.soap.SOAPConnector +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPService.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPService.html new file mode 100644 index 0000000..2c9e59a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SOAPService.html @@ -0,0 +1,173 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.SOAPService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.SOAPService

+
+ + + + + + + + + +
+Packages that use SOAPService
mx4j.tools.remote.soap  
+  +

+ + + + + +
+Uses of SOAPService in mx4j.tools.remote.soap
+  +

+ + + + + + + + + +
Subclasses of SOAPService in mx4j.tools.remote.soap
+ classSSLSOAPService + +
+          This 'pivot' is the one to be used when the invocation is uses the + https protocol
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SSLSOAPService.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SSLSOAPService.html new file mode 100644 index 0000000..b271d33 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/class-use/SSLSOAPService.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.remote.soap.SSLSOAPService (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.remote.soap.SSLSOAPService

+
+No usage of mx4j.tools.remote.soap.SSLSOAPService +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-frame.html new file mode 100644 index 0000000..9153f2f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-frame.html @@ -0,0 +1,40 @@ + + + + + + +mx4j.tools.remote.soap (MX4J API) + + + + + + + + + + + +mx4j.tools.remote.soap + + + + +
+Classes  + +
+ConnectionIDRequestHandler +
+SOAPClientInvoker +
+SOAPConnector +
+SOAPService +
+SSLSOAPService
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-summary.html new file mode 100644 index 0000000..cf7244f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-summary.html @@ -0,0 +1,167 @@ + + + + + + +mx4j.tools.remote.soap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.remote.soap +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
ConnectionIDRequestHandlerThis class is used in the Axis deployment descriptor, and parses the SOAP header + (on server-side) that contains the connection ID sent by the client.
SOAPClientInvoker 
SOAPConnector 
SOAPServiceThe server-side service (the WebService actually) where remote calls end up + after being parsed by Axis.
SSLSOAPServiceThis 'pivot' is the one to be used when the invocation is uses the + https protocol
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-tree.html new file mode 100644 index 0000000..71aca26 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-tree.html @@ -0,0 +1,159 @@ + + + + + + +mx4j.tools.remote.soap Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.remote.soap +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-use.html new file mode 100644 index 0000000..a97dd25 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/remote/soap/package-use.html @@ -0,0 +1,163 @@ + + + + + + +Uses of Package mx4j.tools.remote.soap (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.remote.soap

+
+ + + + + + + + + +
+Packages that use mx4j.tools.remote.soap
mx4j.tools.remote.soap  
+  +

+ + + + + + + + +
+Classes in mx4j.tools.remote.soap used by mx4j.tools.remote.soap
SOAPService + +
+          The server-side service (the WebService actually) where remote calls end up + after being parsed by Axis.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/AbstractStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/AbstractStatisticsRecorder.html new file mode 100644 index 0000000..aa1c590 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/AbstractStatisticsRecorder.html @@ -0,0 +1,891 @@ + + + + + + +AbstractStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class AbstractStatisticsRecorder

+
+java.lang.Object
+  extended bymx4j.tools.stats.AbstractStatisticsRecorder
+
+
+
All Implemented Interfaces:
javax.management.MBeanRegistration, StatisticsRecorderMBean
+
+
+
Direct Known Subclasses:
ObserverStatisticsRecorder, ValueStatisticsRecorder
+
+
+
+
public abstract class AbstractStatisticsRecorder
extends java.lang.Object
implements StatisticsRecorderMBean, javax.management.MBeanRegistration
+ +

+Class AbstractStatisticsRecorder. Abstract Parent of the Stats collector + classes. It implements some basic services +

+ +

+

+
Version:
+
$Revision: 1.6 $
+
See Also:
StatisticsRecorderMBean
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  doubleaverageValue + +
+           
+protected  longcount + +
+           
+protected  java.util.SortedMapentries + +
+           
+protected  booleanisActive + +
+           
+protected  booleanisDouble + +
+           
+protected  intmaxEntries + +
+           
+protected  doublemaximumValue + +
+           
+protected  doubleminimumValue + +
+           
+protected  java.util.DaterecordingStart + +
+           
+protected  javax.management.MBeanServerserver + +
+           
+  + + + + + + + + + + +
+Constructor Summary
AbstractStatisticsRecorder() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voidaddEntry(java.util.Date key, + java.lang.Number value) + +
+          Adds an entry to the collection.
+protected  voiddoStart() + +
+          Subclasses may override this to offer a custom startup procedure
+protected  voiddoStop() + +
+          Subclasses may override this to offer a custom stop procedure
+ java.lang.NumbergetAverage() + +
+          Returns the Average Value
+ java.util.SortedMapgetEntries() + +
+          Returs a sorted map of the recorded values indexed by PointTime
+protected  LoggergetLogger() + +
+           
+ java.lang.NumbergetMax() + +
+          Returns the Maximum Value
+ intgetMaxEntries() + +
+          Returns how many entries may be recorded.
+ java.lang.NumbergetMin() + +
+          Returns the Minimum Value
+ java.util.DategetRecordingStart() + +
+          Returns the date when it started recording
+ booleanisActive() + +
+          Indicates whether the MBean is recording values
+ voidpostDeregister() + +
+           
+ voidpostRegister(java.lang.Boolean registrationDone) + +
+           
+ voidpreDeregister() + +
+           
+ javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, + javax.management.ObjectName name) + +
+           
+ voidsetMaxEntries(int maxEntries) + +
+          Sets the maximum entries stored in this recorder
+ voidstart() + +
+          Starts recording a variable
+ voidstop() + +
+          Stops recording a variable
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+isActive

+
+protected boolean isActive
+
+
+
+
+
+ +

+server

+
+protected javax.management.MBeanServer server
+
+
+
+
+
+ +

+maxEntries

+
+protected int maxEntries
+
+
+
+
+
+ +

+entries

+
+protected java.util.SortedMap entries
+
+
+
+
+
+ +

+recordingStart

+
+protected java.util.Date recordingStart
+
+
+
+
+
+ +

+isDouble

+
+protected boolean isDouble
+
+
+
+
+
+ +

+minimumValue

+
+protected double minimumValue
+
+
+
+
+
+ +

+maximumValue

+
+protected double maximumValue
+
+
+
+
+
+ +

+averageValue

+
+protected double averageValue
+
+
+
+
+
+ +

+count

+
+protected long count
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+AbstractStatisticsRecorder

+
+public AbstractStatisticsRecorder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getLogger

+
+protected Logger getLogger()
+
+
+
+
+
+
+
+
+
+ +

+start

+
+public void start()
+
+
Description copied from interface: StatisticsRecorderMBean
+
Starts recording a variable +

+

+
Specified by:
start in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+stop

+
+public void stop()
+
+
Description copied from interface: StatisticsRecorderMBean
+
Stops recording a variable +

+

+
Specified by:
stop in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getAverage

+
+public java.lang.Number getAverage()
+
+
Description copied from interface: StatisticsRecorderMBean
+
Returns the Average Value +

+

+
Specified by:
getAverage in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getMin

+
+public java.lang.Number getMin()
+
+
Description copied from interface: StatisticsRecorderMBean
+
Returns the Minimum Value +

+

+
Specified by:
getMin in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getMax

+
+public java.lang.Number getMax()
+
+
Description copied from interface: StatisticsRecorderMBean
+
Returns the Maximum Value +

+

+
Specified by:
getMax in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+isActive

+
+public boolean isActive()
+
+
Description copied from interface: StatisticsRecorderMBean
+
Indicates whether the MBean is recording values +

+

+
Specified by:
isActive in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getMaxEntries

+
+public int getMaxEntries()
+
+
Description copied from interface: StatisticsRecorderMBean
+
Returns how many entries may be recorded. When the maximum amount is + reached the default behaviour is to forget the oldest one +

+

+
Specified by:
getMaxEntries in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+setMaxEntries

+
+public void setMaxEntries(int maxEntries)
+
+
Description copied from interface: StatisticsRecorderMBean
+
Sets the maximum entries stored in this recorder +

+

+
Specified by:
setMaxEntries in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getEntries

+
+public java.util.SortedMap getEntries()
+
+
Description copied from interface: StatisticsRecorderMBean
+
Returs a sorted map of the recorded values indexed by PointTime +

+

+
Specified by:
getEntries in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getRecordingStart

+
+public java.util.Date getRecordingStart()
+
+
Description copied from interface: StatisticsRecorderMBean
+
Returns the date when it started recording +

+

+
Specified by:
getRecordingStart in interface StatisticsRecorderMBean
+
+
+
+
+
+
+ +

+preRegister

+
+public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
+                                               javax.management.ObjectName name)
+                                        throws java.lang.Exception
+
+
+
Specified by:
preRegister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postRegister

+
+public void postRegister(java.lang.Boolean registrationDone)
+
+
+
Specified by:
postRegister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+preDeregister

+
+public void preDeregister()
+                   throws java.lang.Exception
+
+
+
Specified by:
preDeregister in interface javax.management.MBeanRegistration
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+postDeregister

+
+public void postDeregister()
+
+
+
Specified by:
postDeregister in interface javax.management.MBeanRegistration
+
+
+
+
+
+
+ +

+doStart

+
+protected void doStart()
+                throws java.lang.Exception
+
+
Subclasses may override this to offer a custom startup procedure +

+

+
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+doStop

+
+protected void doStop()
+               throws java.lang.Exception
+
+
Subclasses may override this to offer a custom stop procedure +

+

+
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+addEntry

+
+protected void addEntry(java.util.Date key,
+                        java.lang.Number value)
+
+
Adds an entry to the collection. It also reduces the size if too big + and updates the statics +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/NotificationStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/NotificationStatisticsRecorder.html new file mode 100644 index 0000000..bea3134 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/NotificationStatisticsRecorder.html @@ -0,0 +1,420 @@ + + + + + + +NotificationStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class NotificationStatisticsRecorder

+
+java.lang.Object
+  extended bymx4j.tools.stats.AbstractStatisticsRecorder
+      extended bymx4j.tools.stats.ObserverStatisticsRecorder
+          extended bymx4j.tools.stats.NotificationStatisticsRecorder
+
+
+
All Implemented Interfaces:
java.util.EventListener, javax.management.MBeanRegistration, javax.management.NotificationListener, ObserverStatisticsRecorderMBean, StatisticsRecorderMBean
+
+
+
+
public class NotificationStatisticsRecorder
extends ObserverStatisticsRecorder
implements javax.management.NotificationListener
+ +

+NotificationStatisticsRecorder records statistics of an attribute + based on notifications emitted when it changes. The observed MBean has to + emit notifications when the value change +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + +
+Field Summary
+protected  booleanregistered + +
+           
+ + + + + + + +
Fields inherited from class mx4j.tools.stats.ObserverStatisticsRecorder
observedAttribute, observedName
+ + + + + + + +
Fields inherited from class mx4j.tools.stats.AbstractStatisticsRecorder
averageValue, count, entries, isActive, isDouble, maxEntries, maximumValue, minimumValue, recordingStart, server
+  + + + + + + + + + + +
+Constructor Summary
NotificationStatisticsRecorder() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidhandleNotification(javax.management.Notification notification, + java.lang.Object object) + +
+           
+protected  voidstartObserving() + +
+           
+protected  voidstopObserving() + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.stats.ObserverStatisticsRecorder
doStart, doStop, getObservedAttribute, getObservedObject, setObservedAttribute, setObservedObject
+ + + + + + + +
Methods inherited from class mx4j.tools.stats.AbstractStatisticsRecorder
addEntry, getAverage, getEntries, getLogger, getMax, getMaxEntries, getMin, getRecordingStart, isActive, postDeregister, postRegister, preDeregister, preRegister, setMaxEntries, start, stop
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.tools.stats.StatisticsRecorderMBean
getAverage, getEntries, getMax, getMaxEntries, getMin, getRecordingStart, isActive, setMaxEntries, start, stop
+  +

+ + + + + + + + +
+Field Detail
+ +

+registered

+
+protected boolean registered
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+NotificationStatisticsRecorder

+
+public NotificationStatisticsRecorder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+startObserving

+
+protected void startObserving()
+                       throws java.lang.Exception
+
+
+
Specified by:
startObserving in class ObserverStatisticsRecorder
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+stopObserving

+
+protected void stopObserving()
+                      throws java.lang.Exception
+
+
+
Specified by:
stopObserving in class ObserverStatisticsRecorder
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+handleNotification

+
+public void handleNotification(javax.management.Notification notification,
+                               java.lang.Object object)
+
+
+
Specified by:
handleNotification in interface javax.management.NotificationListener
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorder.html new file mode 100644 index 0000000..278b1ae --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorder.html @@ -0,0 +1,526 @@ + + + + + + +ObserverStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class ObserverStatisticsRecorder

+
+java.lang.Object
+  extended bymx4j.tools.stats.AbstractStatisticsRecorder
+      extended bymx4j.tools.stats.ObserverStatisticsRecorder
+
+
+
All Implemented Interfaces:
javax.management.MBeanRegistration, ObserverStatisticsRecorderMBean, StatisticsRecorderMBean
+
+
+
Direct Known Subclasses:
NotificationStatisticsRecorder, TimedStatisticsRecorder
+
+
+
+
public abstract class ObserverStatisticsRecorder
extends AbstractStatisticsRecorder
implements ObserverStatisticsRecorderMBean
+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  java.lang.StringobservedAttribute + +
+           
+protected  javax.management.ObjectNameobservedName + +
+           
+ + + + + + + +
Fields inherited from class mx4j.tools.stats.AbstractStatisticsRecorder
averageValue, count, entries, isActive, isDouble, maxEntries, maximumValue, minimumValue, recordingStart, server
+  + + + + + + + + + + +
+Constructor Summary
ObserverStatisticsRecorder() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+protected  voiddoStart() + +
+          Subclasses may override this to offer a custom startup procedure
+protected  voiddoStop() + +
+          Subclasses may override this to offer a custom stop procedure
+ java.lang.StringgetObservedAttribute() + +
+          Returns the observed Attribute
+ javax.management.ObjectNamegetObservedObject() + +
+          Returns the observed ObjectName
+ voidsetObservedAttribute(java.lang.String attribute) + +
+          Sets the Attribute to be observed
+ voidsetObservedObject(javax.management.ObjectName object) + +
+          Sets the ObjectName to be observed
+protected abstract  voidstartObserving() + +
+           
+protected abstract  voidstopObserving() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.stats.AbstractStatisticsRecorder
addEntry, getAverage, getEntries, getLogger, getMax, getMaxEntries, getMin, getRecordingStart, isActive, postDeregister, postRegister, preDeregister, preRegister, setMaxEntries, start, stop
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.tools.stats.StatisticsRecorderMBean
getAverage, getEntries, getMax, getMaxEntries, getMin, getRecordingStart, isActive, setMaxEntries, start, stop
+  +

+ + + + + + + + +
+Field Detail
+ +

+observedName

+
+protected javax.management.ObjectName observedName
+
+
+
+
+
+ +

+observedAttribute

+
+protected java.lang.String observedAttribute
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+ObserverStatisticsRecorder

+
+public ObserverStatisticsRecorder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setObservedObject

+
+public void setObservedObject(javax.management.ObjectName object)
+
+
Description copied from interface: ObserverStatisticsRecorderMBean
+
Sets the ObjectName to be observed +

+

+
Specified by:
setObservedObject in interface ObserverStatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getObservedObject

+
+public javax.management.ObjectName getObservedObject()
+
+
Description copied from interface: ObserverStatisticsRecorderMBean
+
Returns the observed ObjectName +

+

+
Specified by:
getObservedObject in interface ObserverStatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getObservedAttribute

+
+public java.lang.String getObservedAttribute()
+
+
Description copied from interface: ObserverStatisticsRecorderMBean
+
Returns the observed Attribute +

+

+
Specified by:
getObservedAttribute in interface ObserverStatisticsRecorderMBean
+
+
+
+
+
+
+ +

+setObservedAttribute

+
+public void setObservedAttribute(java.lang.String attribute)
+
+
Description copied from interface: ObserverStatisticsRecorderMBean
+
Sets the Attribute to be observed +

+

+
Specified by:
setObservedAttribute in interface ObserverStatisticsRecorderMBean
+
+
+
+
+
+
+ +

+doStart

+
+protected void doStart()
+                throws java.lang.Exception
+
+
Description copied from class: AbstractStatisticsRecorder
+
Subclasses may override this to offer a custom startup procedure +

+

+
Overrides:
doStart in class AbstractStatisticsRecorder
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+startObserving

+
+protected abstract void startObserving()
+                                throws java.lang.Exception
+
+
+
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+stopObserving

+
+protected abstract void stopObserving()
+                               throws java.lang.Exception
+
+
+
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+doStop

+
+protected void doStop()
+               throws java.lang.Exception
+
+
Description copied from class: AbstractStatisticsRecorder
+
Subclasses may override this to offer a custom stop procedure +

+

+
Overrides:
doStop in class AbstractStatisticsRecorder
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorderMBean.html new file mode 100644 index 0000000..4eb1981 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorderMBean.html @@ -0,0 +1,315 @@ + + + + + + +ObserverStatisticsRecorderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Interface ObserverStatisticsRecorderMBean

+
+
All Superinterfaces:
StatisticsRecorderMBean
+
+
+
All Known Subinterfaces:
TimedStatisticsRecorderMBean
+
+
+
All Known Implementing Classes:
ObserverStatisticsRecorder, TimedStatisticsRecorder
+
+
+
+
public interface ObserverStatisticsRecorderMBean
extends StatisticsRecorderMBean
+ +

+Management interface for ObserverStatisticsRecorder MBeans. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetObservedAttribute() + +
+          Returns the observed Attribute
+ javax.management.ObjectNamegetObservedObject() + +
+          Returns the observed ObjectName
+ voidsetObservedAttribute(java.lang.String attribute) + +
+          Sets the Attribute to be observed
+ voidsetObservedObject(javax.management.ObjectName object) + +
+          Sets the ObjectName to be observed
+ + + + + + + +
Methods inherited from interface mx4j.tools.stats.StatisticsRecorderMBean
getAverage, getEntries, getMax, getMaxEntries, getMin, getRecordingStart, isActive, setMaxEntries, start, stop
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setObservedObject

+
+public void setObservedObject(javax.management.ObjectName object)
+
+
Sets the ObjectName to be observed +

+

+
+
+
+
+
+
+
+ +

+getObservedObject

+
+public javax.management.ObjectName getObservedObject()
+
+
Returns the observed ObjectName +

+

+
+
+
+
+
+
+
+ +

+getObservedAttribute

+
+public java.lang.String getObservedAttribute()
+
+
Returns the observed Attribute +

+

+
+
+
+
+
+
+
+ +

+setObservedAttribute

+
+public void setObservedAttribute(java.lang.String attribute)
+
+
Sets the Attribute to be observed +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorderMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorderMBeanDescription.html new file mode 100644 index 0000000..486e70e --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ObserverStatisticsRecorderMBeanDescription.html @@ -0,0 +1,293 @@ + + + + + + +ObserverStatisticsRecorderMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class ObserverStatisticsRecorderMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.stats.StatisticsRecorderMBeanDescription
+          extended bymx4j.tools.stats.ObserverStatisticsRecorderMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
Direct Known Subclasses:
TimedStatisticsRecorderMBeanDescription
+
+
+
+
public class ObserverStatisticsRecorderMBeanDescription
extends StatisticsRecorderMBeanDescription
+ +

+Management interface descriptions for the ObserverStatisticsRecorder MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ObserverStatisticsRecorderMBeanDescription() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ + + + + + + +
Methods inherited from class mx4j.tools.stats.StatisticsRecorderMBeanDescription
getOperationDescription
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName, getMBeanDescription, getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ObserverStatisticsRecorderMBeanDescription

+
+public ObserverStatisticsRecorderMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class StatisticsRecorderMBeanDescription
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/PointTime.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/PointTime.html new file mode 100644 index 0000000..2e45501 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/PointTime.html @@ -0,0 +1,338 @@ + + + + + + +PointTime (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class PointTime

+
+java.lang.Object
+  extended bymx4j.tools.stats.PointTime
+
+
+
All Implemented Interfaces:
java.lang.Comparable
+
+
+
+
public class PointTime
extends java.lang.Object
implements java.lang.Comparable
+ +

+Class PointTime encapsulates the time and order of a value. We want to + index the recorded time but in the event of a repeated time, it will + have another index which should be unique. The class is Comparable + and the order is given first by the date and if those are equals by + the index +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
PointTime(java.util.Date date, + long index) + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intcompareTo(java.lang.Object o) + +
+           
+ booleanequals(java.lang.Object o) + +
+           
+ java.util.DategetDate() + +
+           
+ longgetIndex() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+PointTime

+
+public PointTime(java.util.Date date,
+                 long index)
+
+
+ + + + + + + + +
+Method Detail
+ +

+getDate

+
+public java.util.Date getDate()
+
+
+
+
+
+
+
+
+
+ +

+getIndex

+
+public long getIndex()
+
+
+
+
+
+
+
+
+
+ +

+compareTo

+
+public int compareTo(java.lang.Object o)
+
+
+
Specified by:
compareTo in interface java.lang.Comparable
+
+
+
+
+
+
+ +

+equals

+
+public boolean equals(java.lang.Object o)
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/StatisticsRecorderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/StatisticsRecorderMBean.html new file mode 100644 index 0000000..9691796 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/StatisticsRecorderMBean.html @@ -0,0 +1,422 @@ + + + + + + +StatisticsRecorderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Interface StatisticsRecorderMBean

+
+
All Known Subinterfaces:
ObserverStatisticsRecorderMBean, TimedStatisticsRecorderMBean, ValueStatisticsRecorderMBean
+
+
+
All Known Implementing Classes:
AbstractStatisticsRecorder, ObserverStatisticsRecorder, TimedStatisticsRecorder, ValueStatisticsRecorder
+
+
+
+
public interface StatisticsRecorderMBean
+ +

+Management interface to be implemented by recorder MBeans. + RecorderMBeans store a value and also keep statistics about the given value. + Different implementations can determine how to acquire and calculate the value. +

+ The MBean doesn't starts automatically. It has to wait for a start() call +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
PointTime
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.NumbergetAverage() + +
+          Returns the Average Value
+ java.util.SortedMapgetEntries() + +
+          Returs a sorted map of the recorded values indexed by PointTime
+ java.lang.NumbergetMax() + +
+          Returns the Maximum Value
+ intgetMaxEntries() + +
+          Returns how many entries may be recorded.
+ java.lang.NumbergetMin() + +
+          Returns the Minimum Value
+ java.util.DategetRecordingStart() + +
+          Returns the date when it started recording
+ booleanisActive() + +
+          Indicates whether the MBean is recording values
+ voidsetMaxEntries(int maxEntries) + +
+          Sets the maximum entries stored in this recorder
+ voidstart() + +
+          Starts recording a variable
+ voidstop() + +
+          Stops recording a variable
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+getMax

+
+public java.lang.Number getMax()
+
+
Returns the Maximum Value +

+

+
+
+
+
+ +

+getAverage

+
+public java.lang.Number getAverage()
+
+
Returns the Average Value +

+

+
+
+
+
+ +

+getMin

+
+public java.lang.Number getMin()
+
+
Returns the Minimum Value +

+

+
+
+
+
+ +

+getMaxEntries

+
+public int getMaxEntries()
+
+
Returns how many entries may be recorded. When the maximum amount is + reached the default behaviour is to forget the oldest one +

+

+
+
+
+
+ +

+setMaxEntries

+
+public void setMaxEntries(int maxEntries)
+
+
Sets the maximum entries stored in this recorder +

+

+
+
+
+
+ +

+getRecordingStart

+
+public java.util.Date getRecordingStart()
+
+
Returns the date when it started recording +

+

+
+
+
+
+ +

+getEntries

+
+public java.util.SortedMap getEntries()
+
+
Returs a sorted map of the recorded values indexed by PointTime +

+

+
+
+
+
+ +

+isActive

+
+public boolean isActive()
+
+
Indicates whether the MBean is recording values +

+

+
+
+
+
+ +

+start

+
+public void start()
+
+
Starts recording a variable +

+

+
+
+
+
+ +

+stop

+
+public void stop()
+
+
Stops recording a variable +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/StatisticsRecorderMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/StatisticsRecorderMBeanDescription.html new file mode 100644 index 0000000..32320bf --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/StatisticsRecorderMBeanDescription.html @@ -0,0 +1,309 @@ + + + + + + +StatisticsRecorderMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class StatisticsRecorderMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.stats.StatisticsRecorderMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
Direct Known Subclasses:
ObserverStatisticsRecorderMBeanDescription, ValueStatisticsRecorderMBeanDescription
+
+
+
+
public class StatisticsRecorderMBeanDescription
extends MBeanDescriptionAdapter
+ +

+Descriptions of the StatisticsRecorderMBean interface +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
See Also:
PointTime
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
StatisticsRecorderMBeanDescription() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ java.lang.StringgetOperationDescription(java.lang.reflect.Method operation) + +
+          Should return the description for the specified operation.
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName, getMBeanDescription, getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+StatisticsRecorderMBeanDescription

+
+public StatisticsRecorderMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+
+ +

+getOperationDescription

+
+public java.lang.String getOperationDescription(java.lang.reflect.Method operation)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified operation. + For example: "Binds the given object to the given name" +

+

+
Specified by:
getOperationDescription in interface MBeanDescription
Overrides:
getOperationDescription in class MBeanDescriptionAdapter
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorder.html new file mode 100644 index 0000000..738a331 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorder.html @@ -0,0 +1,508 @@ + + + + + + +TimedStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class TimedStatisticsRecorder

+
+java.lang.Object
+  extended bymx4j.tools.stats.AbstractStatisticsRecorder
+      extended bymx4j.tools.stats.ObserverStatisticsRecorder
+          extended bymx4j.tools.stats.TimedStatisticsRecorder
+
+
+
All Implemented Interfaces:
javax.management.MBeanRegistration, ObserverStatisticsRecorderMBean, StatisticsRecorderMBean, TimedStatisticsRecorderMBean
+
+
+
+
public class TimedStatisticsRecorder
extends ObserverStatisticsRecorder
implements TimedStatisticsRecorderMBean
+ +

+TimedStatisticsRecorder records statistics of an attribute + with a timer polling the value every certain interval +

+ +

+

+
Version:
+
$Revision: 1.4 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+protected  longgranularity + +
+           
+protected  booleanregistered + +
+           
+protected  mx4j.tools.stats.TimedStatisticsRecorder.CollectTasktask + +
+           
+protected static java.util.Timertimer + +
+           
+ + + + + + + +
Fields inherited from class mx4j.tools.stats.ObserverStatisticsRecorder
observedAttribute, observedName
+ + + + + + + +
Fields inherited from class mx4j.tools.stats.AbstractStatisticsRecorder
averageValue, count, entries, isActive, isDouble, maxEntries, maximumValue, minimumValue, recordingStart, server
+  + + + + + + + + + + +
+Constructor Summary
TimedStatisticsRecorder() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ longgetGranularity() + +
+          Returns how often the MBean will poll the variable value
+ voidsetGranularity(long granularity) + +
+          Sets how often the MBean will poll the variable value
+protected  voidstartObserving() + +
+           
+protected  voidstopObserving() + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.stats.ObserverStatisticsRecorder
doStart, doStop, getObservedAttribute, getObservedObject, setObservedAttribute, setObservedObject
+ + + + + + + +
Methods inherited from class mx4j.tools.stats.AbstractStatisticsRecorder
addEntry, getAverage, getEntries, getLogger, getMax, getMaxEntries, getMin, getRecordingStart, isActive, postDeregister, postRegister, preDeregister, preRegister, setMaxEntries, start, stop
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.tools.stats.ObserverStatisticsRecorderMBean
getObservedAttribute, getObservedObject, setObservedAttribute, setObservedObject
+ + + + + + + +
Methods inherited from interface mx4j.tools.stats.StatisticsRecorderMBean
getAverage, getEntries, getMax, getMaxEntries, getMin, getRecordingStart, isActive, setMaxEntries, start, stop
+  +

+ + + + + + + + +
+Field Detail
+ +

+registered

+
+protected boolean registered
+
+
+
+
+
+ +

+timer

+
+protected static java.util.Timer timer
+
+
+
+
+
+ +

+task

+
+protected mx4j.tools.stats.TimedStatisticsRecorder.CollectTask task
+
+
+
+
+
+ +

+granularity

+
+protected long granularity
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+TimedStatisticsRecorder

+
+public TimedStatisticsRecorder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setGranularity

+
+public void setGranularity(long granularity)
+
+
Description copied from interface: TimedStatisticsRecorderMBean
+
Sets how often the MBean will poll the variable value +

+

+
Specified by:
setGranularity in interface TimedStatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getGranularity

+
+public long getGranularity()
+
+
Description copied from interface: TimedStatisticsRecorderMBean
+
Returns how often the MBean will poll the variable value +

+

+
Specified by:
getGranularity in interface TimedStatisticsRecorderMBean
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+
+
+
+
+ +

+startObserving

+
+protected void startObserving()
+                       throws java.lang.Exception
+
+
+
Specified by:
startObserving in class ObserverStatisticsRecorder
+
+
+ +
Throws: +
java.lang.Exception
+
+
+
+ +

+stopObserving

+
+protected void stopObserving()
+                      throws java.lang.Exception
+
+
+
Specified by:
stopObserving in class ObserverStatisticsRecorder
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorderMBean.html new file mode 100644 index 0000000..998feee --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorderMBean.html @@ -0,0 +1,273 @@ + + + + + + +TimedStatisticsRecorderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Interface TimedStatisticsRecorderMBean

+
+
All Superinterfaces:
ObserverStatisticsRecorderMBean, StatisticsRecorderMBean
+
+
+
All Known Implementing Classes:
TimedStatisticsRecorder
+
+
+
+
public interface TimedStatisticsRecorderMBean
extends ObserverStatisticsRecorderMBean
+ +

+Management interface for TimedStatisticsRecorder MBeans. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ longgetGranularity() + +
+          Returns how often the MBean will poll the variable value
+ voidsetGranularity(long granularity) + +
+          Sets how often the MBean will poll the variable value
+ + + + + + + +
Methods inherited from interface mx4j.tools.stats.ObserverStatisticsRecorderMBean
getObservedAttribute, getObservedObject, setObservedAttribute, setObservedObject
+ + + + + + + +
Methods inherited from interface mx4j.tools.stats.StatisticsRecorderMBean
getAverage, getEntries, getMax, getMaxEntries, getMin, getRecordingStart, isActive, setMaxEntries, start, stop
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setGranularity

+
+public void setGranularity(long granularity)
+
+
Sets how often the MBean will poll the variable value +

+

+
+
+
+
+
+
+
+ +

+getGranularity

+
+public long getGranularity()
+
+
Returns how often the MBean will poll the variable value +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorderMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorderMBeanDescription.html new file mode 100644 index 0000000..29f6ca4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/TimedStatisticsRecorderMBeanDescription.html @@ -0,0 +1,291 @@ + + + + + + +TimedStatisticsRecorderMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class TimedStatisticsRecorderMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.stats.StatisticsRecorderMBeanDescription
+          extended bymx4j.tools.stats.ObserverStatisticsRecorderMBeanDescription
+              extended bymx4j.tools.stats.TimedStatisticsRecorderMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class TimedStatisticsRecorderMBeanDescription
extends ObserverStatisticsRecorderMBeanDescription
+ +

+Management interface description for TimedStatisticsRecorder MBeans. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
TimedStatisticsRecorderMBeanDescription() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ + + + + + + +
Methods inherited from class mx4j.tools.stats.StatisticsRecorderMBeanDescription
getOperationDescription
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName, getMBeanDescription, getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+TimedStatisticsRecorderMBeanDescription

+
+public TimedStatisticsRecorderMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class ObserverStatisticsRecorderMBeanDescription
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorder.html new file mode 100644 index 0000000..81eb73a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorder.html @@ -0,0 +1,386 @@ + + + + + + +ValueStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class ValueStatisticsRecorder

+
+java.lang.Object
+  extended bymx4j.tools.stats.AbstractStatisticsRecorder
+      extended bymx4j.tools.stats.ValueStatisticsRecorder
+
+
+
All Implemented Interfaces:
javax.management.MBeanRegistration, StatisticsRecorderMBean, ValueStatisticsRecorderMBean
+
+
+
+
public class ValueStatisticsRecorder
extends AbstractStatisticsRecorder
implements ValueStatisticsRecorderMBean
+ +

+ValueStatisticsRecorder records statistics of an attribute + based on changes on the variable value. If you want to use you have to explictly + set the variable value. +

+ Example usage: +

+ ObjectName name = new ObjectName("Domain:name=value");
+ server.createMBean("mx4j.tools.stats.ValueStatisticsRecorder", name, null);
+ server.invoke(name, "start", null, null);
+ // Every time the value is set the statistics are updated
+ server.setAttribute(name, "Attribute", new Double(10));
+ 
+

+ +

+

+
Version:
+
$Revision: 1.5 $
+
+
+ +

+ + + + + + + + + + + + + + +
+Field Summary
+protected  java.lang.Numbervalue + +
+           
+ + + + + + + +
Fields inherited from class mx4j.tools.stats.AbstractStatisticsRecorder
averageValue, count, entries, isActive, isDouble, maxEntries, maximumValue, minimumValue, recordingStart, server
+  + + + + + + + + + + +
+Constructor Summary
ValueStatisticsRecorder() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.NumbergetValue() + +
+          Returns the recorded value
+ voidsetValue(java.lang.Number value) + +
+          Sets the value to be recorded
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class mx4j.tools.stats.AbstractStatisticsRecorder
addEntry, doStart, doStop, getAverage, getEntries, getLogger, getMax, getMaxEntries, getMin, getRecordingStart, isActive, postDeregister, postRegister, preDeregister, preRegister, setMaxEntries, start, stop
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+ + + + + + + +
Methods inherited from interface mx4j.tools.stats.StatisticsRecorderMBean
getAverage, getEntries, getMax, getMaxEntries, getMin, getRecordingStart, isActive, setMaxEntries, start, stop
+  +

+ + + + + + + + +
+Field Detail
+ +

+value

+
+protected java.lang.Number value
+
+
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+ValueStatisticsRecorder

+
+public ValueStatisticsRecorder()
+
+
+ + + + + + + + +
+Method Detail
+ +

+setValue

+
+public void setValue(java.lang.Number value)
+
+
Description copied from interface: ValueStatisticsRecorderMBean
+
Sets the value to be recorded +

+

+
Specified by:
setValue in interface ValueStatisticsRecorderMBean
+
+
+
+
+
+
+ +

+getValue

+
+public java.lang.Number getValue()
+
+
Description copied from interface: ValueStatisticsRecorderMBean
+
Returns the recorded value +

+

+
Specified by:
getValue in interface ValueStatisticsRecorderMBean
+
+
+
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorderMBean.html new file mode 100644 index 0000000..c135513 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorderMBean.html @@ -0,0 +1,264 @@ + + + + + + +ValueStatisticsRecorderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Interface ValueStatisticsRecorderMBean

+
+
All Superinterfaces:
StatisticsRecorderMBean
+
+
+
All Known Implementing Classes:
ValueStatisticsRecorder
+
+
+
+
public interface ValueStatisticsRecorderMBean
extends StatisticsRecorderMBean
+ +

+Management interface for the ValueStatisticsRecorder MBean. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.NumbergetValue() + +
+          Returns the recorded value
+ voidsetValue(java.lang.Number value) + +
+          Sets the value to be recorded
+ + + + + + + +
Methods inherited from interface mx4j.tools.stats.StatisticsRecorderMBean
getAverage, getEntries, getMax, getMaxEntries, getMin, getRecordingStart, isActive, setMaxEntries, start, stop
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+setValue

+
+public void setValue(java.lang.Number value)
+
+
Sets the value to be recorded +

+

+
+
+
+
+
+
+
+ +

+getValue

+
+public java.lang.Number getValue()
+
+
Returns the recorded value +

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorderMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorderMBeanDescription.html new file mode 100644 index 0000000..7cb591f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/ValueStatisticsRecorderMBeanDescription.html @@ -0,0 +1,290 @@ + + + + + + +ValueStatisticsRecorderMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.tools.stats +
+Class ValueStatisticsRecorderMBeanDescription

+
+java.lang.Object
+  extended bymx4j.MBeanDescriptionAdapter
+      extended bymx4j.tools.stats.StatisticsRecorderMBeanDescription
+          extended bymx4j.tools.stats.ValueStatisticsRecorderMBeanDescription
+
+
+
All Implemented Interfaces:
MBeanDescription
+
+
+
+
public class ValueStatisticsRecorderMBeanDescription
extends StatisticsRecorderMBeanDescription
+ +

+MBean description. * @see StatisticsMBean +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
ValueStatisticsRecorderMBeanDescription() + +
+           
+  + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAttributeDescription(java.lang.String attribute) + +
+          Should return the description for the specified attribute.
+ + + + + + + +
Methods inherited from class mx4j.tools.stats.StatisticsRecorderMBeanDescription
getOperationDescription
+ + + + + + + +
Methods inherited from class mx4j.MBeanDescriptionAdapter
getConstructorDescription, getConstructorParameterDescription, getConstructorParameterName, getMBeanDescription, getOperationParameterDescription, getOperationParameterName
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+ValueStatisticsRecorderMBeanDescription

+
+public ValueStatisticsRecorderMBeanDescription()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getAttributeDescription

+
+public java.lang.String getAttributeDescription(java.lang.String attribute)
+
+
Description copied from interface: MBeanDescription
+
Should return the description for the specified attribute. + For example: "The port on which the rmiregistry will wait on for client requests" +

+

+
Specified by:
getAttributeDescription in interface MBeanDescription
Overrides:
getAttributeDescription in class StatisticsRecorderMBeanDescription
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/AbstractStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/AbstractStatisticsRecorder.html new file mode 100644 index 0000000..b903d59 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/AbstractStatisticsRecorder.html @@ -0,0 +1,199 @@ + + + + + + +Uses of Class mx4j.tools.stats.AbstractStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.AbstractStatisticsRecorder

+
+ + + + + + + + + +
+Packages that use AbstractStatisticsRecorder
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of AbstractStatisticsRecorder in mx4j.tools.stats
+  +

+ + + + + + + + + + + + + + + + + + + + + +
Subclasses of AbstractStatisticsRecorder in mx4j.tools.stats
+ classNotificationStatisticsRecorder + +
+          NotificationStatisticsRecorder records statistics of an attribute + based on notifications emitted when it changes.
+ classObserverStatisticsRecorder + +
+           
+ classTimedStatisticsRecorder + +
+          TimedStatisticsRecorder records statistics of an attribute + with a timer polling the value every certain interval
+ classValueStatisticsRecorder + +
+          ValueStatisticsRecorder records statistics of an attribute + based on changes on the variable value.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/NotificationStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/NotificationStatisticsRecorder.html new file mode 100644 index 0000000..a9917d2 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/NotificationStatisticsRecorder.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.stats.NotificationStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.NotificationStatisticsRecorder

+
+No usage of mx4j.tools.stats.NotificationStatisticsRecorder +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorder.html new file mode 100644 index 0000000..2b3016f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorder.html @@ -0,0 +1,182 @@ + + + + + + +Uses of Class mx4j.tools.stats.ObserverStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.ObserverStatisticsRecorder

+
+ + + + + + + + + +
+Packages that use ObserverStatisticsRecorder
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of ObserverStatisticsRecorder in mx4j.tools.stats
+  +

+ + + + + + + + + + + + + +
Subclasses of ObserverStatisticsRecorder in mx4j.tools.stats
+ classNotificationStatisticsRecorder + +
+          NotificationStatisticsRecorder records statistics of an attribute + based on notifications emitted when it changes.
+ classTimedStatisticsRecorder + +
+          TimedStatisticsRecorder records statistics of an attribute + with a timer polling the value every certain interval
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorderMBean.html new file mode 100644 index 0000000..e135e99 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorderMBean.html @@ -0,0 +1,206 @@ + + + + + + +Uses of Interface mx4j.tools.stats.ObserverStatisticsRecorderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.stats.ObserverStatisticsRecorderMBean

+
+ + + + + + + + + +
+Packages that use ObserverStatisticsRecorderMBean
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of ObserverStatisticsRecorderMBean in mx4j.tools.stats
+  +

+ + + + + + + + + +
Subinterfaces of ObserverStatisticsRecorderMBean in mx4j.tools.stats
+ interfaceTimedStatisticsRecorderMBean + +
+          Management interface for TimedStatisticsRecorder MBeans.
+  +

+ + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.stats that implement ObserverStatisticsRecorderMBean
+ classNotificationStatisticsRecorder + +
+          NotificationStatisticsRecorder records statistics of an attribute + based on notifications emitted when it changes.
+ classObserverStatisticsRecorder + +
+           
+ classTimedStatisticsRecorder + +
+          TimedStatisticsRecorder records statistics of an attribute + with a timer polling the value every certain interval
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorderMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorderMBeanDescription.html new file mode 100644 index 0000000..f685766 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ObserverStatisticsRecorderMBeanDescription.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class mx4j.tools.stats.ObserverStatisticsRecorderMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.ObserverStatisticsRecorderMBeanDescription

+
+ + + + + + + + + +
+Packages that use ObserverStatisticsRecorderMBeanDescription
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of ObserverStatisticsRecorderMBeanDescription in mx4j.tools.stats
+  +

+ + + + + + + + + +
Subclasses of ObserverStatisticsRecorderMBeanDescription in mx4j.tools.stats
+ classTimedStatisticsRecorderMBeanDescription + +
+          Management interface description for TimedStatisticsRecorder MBeans.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/PointTime.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/PointTime.html new file mode 100644 index 0000000..63244cb --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/PointTime.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.stats.PointTime (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.PointTime

+
+No usage of mx4j.tools.stats.PointTime +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/StatisticsRecorderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/StatisticsRecorderMBean.html new file mode 100644 index 0000000..e22c894 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/StatisticsRecorderMBean.html @@ -0,0 +1,239 @@ + + + + + + +Uses of Interface mx4j.tools.stats.StatisticsRecorderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.stats.StatisticsRecorderMBean

+
+ + + + + + + + + +
+Packages that use StatisticsRecorderMBean
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of StatisticsRecorderMBean in mx4j.tools.stats
+  +

+ + + + + + + + + + + + + + + + + +
Subinterfaces of StatisticsRecorderMBean in mx4j.tools.stats
+ interfaceObserverStatisticsRecorderMBean + +
+          Management interface for ObserverStatisticsRecorder MBeans.
+ interfaceTimedStatisticsRecorderMBean + +
+          Management interface for TimedStatisticsRecorder MBeans.
+ interfaceValueStatisticsRecorderMBean + +
+          Management interface for the ValueStatisticsRecorder MBean.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in mx4j.tools.stats that implement StatisticsRecorderMBean
+ classAbstractStatisticsRecorder + +
+          Class AbstractStatisticsRecorder.
+ classNotificationStatisticsRecorder + +
+          NotificationStatisticsRecorder records statistics of an attribute + based on notifications emitted when it changes.
+ classObserverStatisticsRecorder + +
+           
+ classTimedStatisticsRecorder + +
+          TimedStatisticsRecorder records statistics of an attribute + with a timer polling the value every certain interval
+ classValueStatisticsRecorder + +
+          ValueStatisticsRecorder records statistics of an attribute + based on changes on the variable value.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/StatisticsRecorderMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/StatisticsRecorderMBeanDescription.html new file mode 100644 index 0000000..c3fec33 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/StatisticsRecorderMBeanDescription.html @@ -0,0 +1,188 @@ + + + + + + +Uses of Class mx4j.tools.stats.StatisticsRecorderMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.StatisticsRecorderMBeanDescription

+
+ + + + + + + + + +
+Packages that use StatisticsRecorderMBeanDescription
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of StatisticsRecorderMBeanDescription in mx4j.tools.stats
+  +

+ + + + + + + + + + + + + + + + + +
Subclasses of StatisticsRecorderMBeanDescription in mx4j.tools.stats
+ classObserverStatisticsRecorderMBeanDescription + +
+          Management interface descriptions for the ObserverStatisticsRecorder MBean.
+ classTimedStatisticsRecorderMBeanDescription + +
+          Management interface description for TimedStatisticsRecorder MBeans.
+ classValueStatisticsRecorderMBeanDescription + +
+          MBean description.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorder.html new file mode 100644 index 0000000..d2e7c41 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorder.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.stats.TimedStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.TimedStatisticsRecorder

+
+No usage of mx4j.tools.stats.TimedStatisticsRecorder +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorderMBean.html new file mode 100644 index 0000000..7c30593 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorderMBean.html @@ -0,0 +1,173 @@ + + + + + + +Uses of Interface mx4j.tools.stats.TimedStatisticsRecorderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.stats.TimedStatisticsRecorderMBean

+
+ + + + + + + + + +
+Packages that use TimedStatisticsRecorderMBean
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of TimedStatisticsRecorderMBean in mx4j.tools.stats
+  +

+ + + + + + + + + +
Classes in mx4j.tools.stats that implement TimedStatisticsRecorderMBean
+ classTimedStatisticsRecorder + +
+          TimedStatisticsRecorder records statistics of an attribute + with a timer polling the value every certain interval
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorderMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorderMBeanDescription.html new file mode 100644 index 0000000..dc7b89c --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/TimedStatisticsRecorderMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.stats.TimedStatisticsRecorderMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.TimedStatisticsRecorderMBeanDescription

+
+No usage of mx4j.tools.stats.TimedStatisticsRecorderMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorder.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorder.html new file mode 100644 index 0000000..586037b --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorder.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.stats.ValueStatisticsRecorder (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.ValueStatisticsRecorder

+
+No usage of mx4j.tools.stats.ValueStatisticsRecorder +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorderMBean.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorderMBean.html new file mode 100644 index 0000000..40972d8 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorderMBean.html @@ -0,0 +1,173 @@ + + + + + + +Uses of Interface mx4j.tools.stats.ValueStatisticsRecorderMBean (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
mx4j.tools.stats.ValueStatisticsRecorderMBean

+
+ + + + + + + + + +
+Packages that use ValueStatisticsRecorderMBean
mx4j.tools.stats  
+  +

+ + + + + +
+Uses of ValueStatisticsRecorderMBean in mx4j.tools.stats
+  +

+ + + + + + + + + +
Classes in mx4j.tools.stats that implement ValueStatisticsRecorderMBean
+ classValueStatisticsRecorder + +
+          ValueStatisticsRecorder records statistics of an attribute + based on changes on the variable value.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorderMBeanDescription.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorderMBeanDescription.html new file mode 100644 index 0000000..d0e9d21 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/class-use/ValueStatisticsRecorderMBeanDescription.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.tools.stats.ValueStatisticsRecorderMBeanDescription (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.tools.stats.ValueStatisticsRecorderMBeanDescription

+
+No usage of mx4j.tools.stats.ValueStatisticsRecorderMBeanDescription +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-frame.html new file mode 100644 index 0000000..5b929ab --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-frame.html @@ -0,0 +1,67 @@ + + + + + + +mx4j.tools.stats (MX4J API) + + + + + + + + + + + +mx4j.tools.stats + + + + +
+Interfaces  + +
+ObserverStatisticsRecorderMBean +
+StatisticsRecorderMBean +
+TimedStatisticsRecorderMBean +
+ValueStatisticsRecorderMBean
+ + + + + + +
+Classes  + +
+AbstractStatisticsRecorder +
+NotificationStatisticsRecorder +
+ObserverStatisticsRecorder +
+ObserverStatisticsRecorderMBeanDescription +
+PointTime +
+StatisticsRecorderMBeanDescription +
+TimedStatisticsRecorder +
+TimedStatisticsRecorderMBeanDescription +
+ValueStatisticsRecorder +
+ValueStatisticsRecorderMBeanDescription
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-summary.html new file mode 100644 index 0000000..d492e61 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-summary.html @@ -0,0 +1,213 @@ + + + + + + +mx4j.tools.stats (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.tools.stats +

+ + + + + + + + + + + + + + + + + + + + + +
+Interface Summary
ObserverStatisticsRecorderMBeanManagement interface for ObserverStatisticsRecorder MBeans.
StatisticsRecorderMBeanManagement interface to be implemented by recorder MBeans.
TimedStatisticsRecorderMBeanManagement interface for TimedStatisticsRecorder MBeans.
ValueStatisticsRecorderMBeanManagement interface for the ValueStatisticsRecorder MBean.
+  + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class Summary
AbstractStatisticsRecorderClass AbstractStatisticsRecorder.
NotificationStatisticsRecorderNotificationStatisticsRecorder records statistics of an attribute + based on notifications emitted when it changes.
ObserverStatisticsRecorder 
ObserverStatisticsRecorderMBeanDescriptionManagement interface descriptions for the ObserverStatisticsRecorder MBean.
PointTimeClass PointTime encapsulates the time and order of a value.
StatisticsRecorderMBeanDescriptionDescriptions of the StatisticsRecorderMBean interface
TimedStatisticsRecorderTimedStatisticsRecorder records statistics of an attribute + with a timer polling the value every certain interval
TimedStatisticsRecorderMBeanDescriptionManagement interface description for TimedStatisticsRecorder MBeans.
ValueStatisticsRecorderValueStatisticsRecorder records statistics of an attribute + based on changes on the variable value.
ValueStatisticsRecorderMBeanDescriptionMBean description.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-tree.html new file mode 100644 index 0000000..faf045f --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-tree.html @@ -0,0 +1,171 @@ + + + + + + +mx4j.tools.stats Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.tools.stats +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-use.html b/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-use.html new file mode 100644 index 0000000..5fef2da --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/tools/stats/package-use.html @@ -0,0 +1,204 @@ + + + + + + +Uses of Package mx4j.tools.stats (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.tools.stats

+
+ + + + + + + + + +
+Packages that use mx4j.tools.stats
mx4j.tools.stats  
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Classes in mx4j.tools.stats used by mx4j.tools.stats
AbstractStatisticsRecorder + +
+          Class AbstractStatisticsRecorder.
ObserverStatisticsRecorder + +
+           
ObserverStatisticsRecorderMBean + +
+          Management interface for ObserverStatisticsRecorder MBeans.
ObserverStatisticsRecorderMBeanDescription + +
+          Management interface descriptions for the ObserverStatisticsRecorder MBean.
StatisticsRecorderMBean + +
+          Management interface to be implemented by recorder MBeans.
StatisticsRecorderMBeanDescription + +
+          Descriptions of the StatisticsRecorderMBean interface
TimedStatisticsRecorderMBean + +
+          Management interface for TimedStatisticsRecorder MBeans.
ValueStatisticsRecorderMBean + +
+          Management interface for the ValueStatisticsRecorder MBean.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/Base64Codec.html b/mx4j-3.0.2/docs/api/mx4j/util/Base64Codec.html new file mode 100644 index 0000000..a08491a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/Base64Codec.html @@ -0,0 +1,273 @@ + + + + + + +Base64Codec (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.util +
+Class Base64Codec

+
+java.lang.Object
+  extended bymx4j.util.Base64Codec
+
+
+
+
public class Base64Codec
extends java.lang.Object
+ +

+This class is copy/paste of Jakarta's Commons-Codec v1.1 org.apache.commons.codec.binary.Base64 + implementation. + It is reproduced here because we don't want to require a new jar just to perform Base64 code/decoding. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static byte[]decodeBase64(byte[] base64Data) + +
+           
+static byte[]encodeBase64(byte[] binaryData) + +
+           
+static booleanisArrayByteBase64(byte[] arrayOctect) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + + + + +
+Method Detail
+ +

+isArrayByteBase64

+
+public static boolean isArrayByteBase64(byte[] arrayOctect)
+
+
+
+
+
+
+ +

+encodeBase64

+
+public static byte[] encodeBase64(byte[] binaryData)
+
+
+
+
+
+
+ +

+decodeBase64

+
+public static byte[] decodeBase64(byte[] base64Data)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/MethodTernaryTree.html b/mx4j-3.0.2/docs/api/mx4j/util/MethodTernaryTree.html new file mode 100644 index 0000000..8a32183 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/MethodTernaryTree.html @@ -0,0 +1,319 @@ + + + + + + +MethodTernaryTree (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.util +
+Class MethodTernaryTree

+
+java.lang.Object
+  extended bymx4j.util.MethodTernaryTree
+
+
+
+
public class MethodTernaryTree
extends java.lang.Object
+ +

+Specialized ternary tree for method metadata information.

+ In JMX methods are referred to with the method name and the String[] representing the signature. + One can decide to cache method information using as key a concatenation of method name + signature, + but the cost of concatenation is very high, while hashmap access is fast. + Ternary trees avoid string concatenation, and result to be 10x faster than concatenation + hashmap. + However, the signature of a standard TernaryTree would be Object get(Object[] key) and + void put(Object[] key, Object value). Unfortunately normalizing method name + signature + into a single array is also very expensive.
+ This version leaves method name and signature separated to have the fastest access possible to + method information. + See here for further information + on TernaryTrees. +

+ +

+

+
Version:
+
$Revision: 1.3 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
MethodTernaryTree() + +
+           
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.Objectget(java.lang.String methodName, + java.lang.String[] signature) + +
+          Returns the method information given the method name and its signature.
+ voidput(java.lang.String methodName, + java.lang.String[] signature, + java.lang.Object information) + +
+          Inserts in this TernaryTree the given method information, using as key the method name and its signature
+protected  intsplitFunction(java.lang.Object obj) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+MethodTernaryTree

+
+public MethodTernaryTree()
+
+
+ + + + + + + + +
+Method Detail
+ +

+get

+
+public java.lang.Object get(java.lang.String methodName,
+                            java.lang.String[] signature)
+
+
Returns the method information given the method name and its signature. +

+

+
See Also:
put(java.lang.String, java.lang.String[], java.lang.Object)
+
+
+
+ +

+put

+
+public void put(java.lang.String methodName,
+                java.lang.String[] signature,
+                java.lang.Object information)
+
+
Inserts in this TernaryTree the given method information, using as key the method name and its signature +

+

+
See Also:
get(java.lang.String, java.lang.String[])
+
+
+
+ +

+splitFunction

+
+protected int splitFunction(java.lang.Object obj)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/Utils.html b/mx4j-3.0.2/docs/api/mx4j/util/Utils.html new file mode 100644 index 0000000..1d8a817 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/Utils.html @@ -0,0 +1,461 @@ + + + + + + +Utils (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +mx4j.util +
+Class Utils

+
+java.lang.Object
+  extended bymx4j.util.Utils
+
+
+
+
public class Utils
extends java.lang.Object
+ +

+Several utility functions for the JMX implementation +

+ +

+

+
Version:
+
$Revision: 1.18 $
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Constructor Summary
Utils() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+static char[]arrayCopy(char[] chars) + +
+           
+static booleanarrayEquals(byte[] arr1, + byte[] arr2) + +
+           
+static booleanarrayEquals(java.lang.Object[] arr1, + java.lang.Object[] arr2) + +
+           
+static intarrayHashCode(byte[] arr) + +
+           
+static intarrayHashCode(java.lang.Object[] arr) + +
+           
+static booleanisAttributeGetter(java.lang.reflect.Method m) + +
+          Returns true is the given method is a JMX attribute getter method
+static booleanisAttributeSetter(java.lang.reflect.Method m) + +
+          Returns true if the method is a JMX attribute setter method
+static java.lang.ClassloadClass(java.lang.ClassLoader loader, + java.lang.String name) + +
+          This methods load a class given the classloader and the name of the class, and work for + extended names of primitive types.
+static java.lang.Class[]loadClasses(java.lang.ClassLoader loader, + java.lang.String[] names) + +
+          Returns the classes whose names are specified by the names argument, loaded with the + specified classloader.
+static booleanwildcardMatch(java.lang.String pattern, + java.lang.String string) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+Utils

+
+public Utils()
+
+
+ + + + + + + + +
+Method Detail
+ +

+loadClass

+
+public static java.lang.Class loadClass(java.lang.ClassLoader loader,
+                                        java.lang.String name)
+                                 throws java.lang.ClassNotFoundException
+
+
This methods load a class given the classloader and the name of the class, and work for + extended names of primitive types.

+ If you try to do ClassLoader.loadClass("boolean") it barfs it cannot find the class, + so this method cope with this problem. +

+

+ +
Throws: +
java.lang.ClassNotFoundException
+
+
+
+ +

+loadClasses

+
+public static java.lang.Class[] loadClasses(java.lang.ClassLoader loader,
+                                            java.lang.String[] names)
+                                     throws java.lang.ClassNotFoundException
+
+
Returns the classes whose names are specified by the names argument, loaded with the + specified classloader. +

+

+ +
Throws: +
java.lang.ClassNotFoundException
+
+
+
+ +

+isAttributeGetter

+
+public static boolean isAttributeGetter(java.lang.reflect.Method m)
+
+
Returns true is the given method is a JMX attribute getter method +

+

+
+
+
+
+ +

+isAttributeSetter

+
+public static boolean isAttributeSetter(java.lang.reflect.Method m)
+
+
Returns true if the method is a JMX attribute setter method +

+

+
+
+
+
+ +

+wildcardMatch

+
+public static boolean wildcardMatch(java.lang.String pattern,
+                                    java.lang.String string)
+
+
+
+
+
+
+ +

+arrayEquals

+
+public static boolean arrayEquals(java.lang.Object[] arr1,
+                                  java.lang.Object[] arr2)
+
+
+
+
+
+
+ +

+arrayEquals

+
+public static boolean arrayEquals(byte[] arr1,
+                                  byte[] arr2)
+
+
+
+
+
+
+ +

+arrayHashCode

+
+public static int arrayHashCode(java.lang.Object[] arr)
+
+
+
+
+
+
+ +

+arrayHashCode

+
+public static int arrayHashCode(byte[] arr)
+
+
+
+
+
+
+ +

+arrayCopy

+
+public static char[] arrayCopy(char[] chars)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/class-use/Base64Codec.html b/mx4j-3.0.2/docs/api/mx4j/util/class-use/Base64Codec.html new file mode 100644 index 0000000..151304a --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/class-use/Base64Codec.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.util.Base64Codec (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.util.Base64Codec

+
+No usage of mx4j.util.Base64Codec +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/class-use/MethodTernaryTree.html b/mx4j-3.0.2/docs/api/mx4j/util/class-use/MethodTernaryTree.html new file mode 100644 index 0000000..22a5064 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/class-use/MethodTernaryTree.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.util.MethodTernaryTree (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.util.MethodTernaryTree

+
+No usage of mx4j.util.MethodTernaryTree +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/class-use/Utils.html b/mx4j-3.0.2/docs/api/mx4j/util/class-use/Utils.html new file mode 100644 index 0000000..1df78ec --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/class-use/Utils.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class mx4j.util.Utils (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
mx4j.util.Utils

+
+No usage of mx4j.util.Utils +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/package-frame.html b/mx4j-3.0.2/docs/api/mx4j/util/package-frame.html new file mode 100644 index 0000000..2cff509 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/package-frame.html @@ -0,0 +1,36 @@ + + + + + + +mx4j.util (MX4J API) + + + + + + + + + + + +mx4j.util + + + + +
+Classes  + +
+Base64Codec +
+MethodTernaryTree +
+Utils
+ + + + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/package-summary.html b/mx4j-3.0.2/docs/api/mx4j/util/package-summary.html new file mode 100644 index 0000000..0105746 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/package-summary.html @@ -0,0 +1,157 @@ + + + + + + +mx4j.util (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package mx4j.util +

+ + + + + + + + + + + + + + + + + +
+Class Summary
Base64CodecThis class is copy/paste of Jakarta's Commons-Codec v1.1 org.apache.commons.codec.binary.Base64 + implementation.
MethodTernaryTreeSpecialized ternary tree for method metadata information.
UtilsSeveral utility functions for the JMX implementation
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/package-tree.html b/mx4j-3.0.2/docs/api/mx4j/util/package-tree.html new file mode 100644 index 0000000..5ebde48 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/package-tree.html @@ -0,0 +1,145 @@ + + + + + + +mx4j.util Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package mx4j.util +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/mx4j/util/package-use.html b/mx4j-3.0.2/docs/api/mx4j/util/package-use.html new file mode 100644 index 0000000..dbb3a28 --- /dev/null +++ b/mx4j-3.0.2/docs/api/mx4j/util/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package mx4j.util (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
mx4j.util

+
+No usage of mx4j.util +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/overview-frame.html b/mx4j-3.0.2/docs/api/overview-frame.html new file mode 100644 index 0000000..13c0960 --- /dev/null +++ b/mx4j-3.0.2/docs/api/overview-frame.html @@ -0,0 +1,140 @@ + + + + + + +Overview (MX4J API) + + + + + + + + + + + + + + + +
+
+ + + + + +
All Classes +

+ +Packages +
+mx4j +
+mx4j.loading +
+mx4j.log +
+mx4j.monitor +
+mx4j.persist +
+mx4j.remote +
+mx4j.remote.provider.iiop +
+mx4j.remote.provider.rmi +
+mx4j.remote.resolver.iiop +
+mx4j.remote.resolver.rmi +
+mx4j.remote.rmi +
+mx4j.server +
+mx4j.server.interceptor +
+mx4j.timer +
+mx4j.tools.adaptor +
+mx4j.tools.adaptor.http +
+mx4j.tools.adaptor.ssl +
+mx4j.tools.config +
+mx4j.tools.i18n +
+mx4j.tools.jython +
+mx4j.tools.mail +
+mx4j.tools.naming +
+mx4j.tools.remote +
+mx4j.tools.remote.caucho +
+mx4j.tools.remote.caucho.burlap +
+mx4j.tools.remote.caucho.hessian +
+mx4j.tools.remote.caucho.serialization +
+mx4j.tools.remote.http +
+mx4j.tools.remote.http.jetty +
+mx4j.tools.remote.local +
+mx4j.tools.remote.provider.burlap +
+mx4j.tools.remote.provider.burlap.ssl +
+mx4j.tools.remote.provider.hessian +
+mx4j.tools.remote.provider.hessian.ssl +
+mx4j.tools.remote.provider.local +
+mx4j.tools.remote.provider.soap +
+mx4j.tools.remote.provider.soap.ssl +
+mx4j.tools.remote.proxy +
+mx4j.tools.remote.resolver.burlap +
+mx4j.tools.remote.resolver.burlap.ssl +
+mx4j.tools.remote.resolver.hessian +
+mx4j.tools.remote.resolver.hessian.ssl +
+mx4j.tools.remote.resolver.local +
+mx4j.tools.remote.resolver.soap +
+mx4j.tools.remote.resolver.soap.ssl +
+mx4j.tools.remote.rmi +
+mx4j.tools.remote.soap +
+mx4j.tools.remote.soap.axis.ser +
+mx4j.tools.stats +
+mx4j.util +
+

+ +

+  + + diff --git a/mx4j-3.0.2/docs/api/overview-summary.html b/mx4j-3.0.2/docs/api/overview-summary.html new file mode 100644 index 0000000..ca4e1a4 --- /dev/null +++ b/mx4j-3.0.2/docs/api/overview-summary.html @@ -0,0 +1,340 @@ + + + + + + +Overview (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +


+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+MX4J classes
mx4j 
mx4j.loading 
mx4j.log 
mx4j.monitor 
mx4j.persist 
mx4j.remote 
mx4j.remote.provider.iiop 
mx4j.remote.provider.rmi 
mx4j.remote.resolver.iiop 
mx4j.remote.resolver.rmi 
mx4j.remote.rmi 
mx4j.server 
mx4j.server.interceptor 
mx4j.timer 
mx4j.tools.adaptor 
mx4j.tools.adaptor.http 
mx4j.tools.adaptor.ssl 
mx4j.tools.config 
mx4j.tools.i18n 
mx4j.tools.jython 
mx4j.tools.mail 
mx4j.tools.naming 
mx4j.tools.remote 
mx4j.tools.remote.caucho 
mx4j.tools.remote.caucho.burlap 
mx4j.tools.remote.caucho.hessian 
mx4j.tools.remote.caucho.serialization 
mx4j.tools.remote.http 
mx4j.tools.remote.http.jetty 
mx4j.tools.remote.local 
mx4j.tools.remote.provider.burlap 
mx4j.tools.remote.provider.burlap.ssl 
mx4j.tools.remote.provider.hessian 
mx4j.tools.remote.provider.hessian.ssl 
mx4j.tools.remote.provider.local 
mx4j.tools.remote.provider.soap 
mx4j.tools.remote.provider.soap.ssl 
mx4j.tools.remote.proxy 
mx4j.tools.remote.resolver.burlap 
mx4j.tools.remote.resolver.burlap.ssl 
mx4j.tools.remote.resolver.hessian 
mx4j.tools.remote.resolver.hessian.ssl 
mx4j.tools.remote.resolver.local 
mx4j.tools.remote.resolver.soap 
mx4j.tools.remote.resolver.soap.ssl 
mx4j.tools.remote.rmi 
mx4j.tools.remote.soap 
mx4j.tools.remote.soap.axis.ser 
mx4j.tools.stats 
mx4j.util 
+ +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/overview-tree.html b/mx4j-3.0.2/docs/api/overview-tree.html new file mode 100644 index 0000000..c1c7b70 --- /dev/null +++ b/mx4j-3.0.2/docs/api/overview-tree.html @@ -0,0 +1,421 @@ + + + + + + +Class Hierarchy (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For All Packages

+
+
+
Package Hierarchies:
mx4j, mx4j.loading, mx4j.log, mx4j.monitor, mx4j.persist, mx4j.remote, mx4j.remote.provider.iiop, mx4j.remote.provider.rmi, mx4j.remote.resolver.iiop, mx4j.remote.resolver.rmi, mx4j.remote.rmi, mx4j.server, mx4j.server.interceptor, mx4j.timer, mx4j.tools.adaptor, mx4j.tools.adaptor.http, mx4j.tools.adaptor.ssl, mx4j.tools.config, mx4j.tools.i18n, mx4j.tools.jython, mx4j.tools.mail, mx4j.tools.naming, mx4j.tools.remote, mx4j.tools.remote.caucho, mx4j.tools.remote.caucho.burlap, mx4j.tools.remote.caucho.hessian, mx4j.tools.remote.caucho.serialization, mx4j.tools.remote.http, mx4j.tools.remote.http.jetty, mx4j.tools.remote.local, mx4j.tools.remote.provider.burlap, mx4j.tools.remote.provider.burlap.ssl, mx4j.tools.remote.provider.hessian, mx4j.tools.remote.provider.hessian.ssl, mx4j.tools.remote.provider.local, mx4j.tools.remote.provider.soap, mx4j.tools.remote.provider.soap.ssl, mx4j.tools.remote.proxy, mx4j.tools.remote.resolver.burlap, mx4j.tools.remote.resolver.burlap.ssl, mx4j.tools.remote.resolver.hessian, mx4j.tools.remote.resolver.hessian.ssl, mx4j.tools.remote.resolver.local, mx4j.tools.remote.resolver.soap, mx4j.tools.remote.resolver.soap.ssl, mx4j.tools.remote.rmi, mx4j.tools.remote.soap, mx4j.tools.remote.soap.axis.ser, mx4j.tools.stats, mx4j.util
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/package-list b/mx4j-3.0.2/docs/api/package-list new file mode 100644 index 0000000..d39997e --- /dev/null +++ b/mx4j-3.0.2/docs/api/package-list @@ -0,0 +1,50 @@ +mx4j +mx4j.loading +mx4j.log +mx4j.monitor +mx4j.persist +mx4j.remote +mx4j.remote.provider.iiop +mx4j.remote.provider.rmi +mx4j.remote.resolver.iiop +mx4j.remote.resolver.rmi +mx4j.remote.rmi +mx4j.server +mx4j.server.interceptor +mx4j.timer +mx4j.tools.adaptor +mx4j.tools.adaptor.http +mx4j.tools.adaptor.ssl +mx4j.tools.config +mx4j.tools.i18n +mx4j.tools.jython +mx4j.tools.mail +mx4j.tools.naming +mx4j.tools.remote +mx4j.tools.remote.caucho +mx4j.tools.remote.caucho.burlap +mx4j.tools.remote.caucho.hessian +mx4j.tools.remote.caucho.serialization +mx4j.tools.remote.http +mx4j.tools.remote.http.jetty +mx4j.tools.remote.local +mx4j.tools.remote.provider.burlap +mx4j.tools.remote.provider.burlap.ssl +mx4j.tools.remote.provider.hessian +mx4j.tools.remote.provider.hessian.ssl +mx4j.tools.remote.provider.local +mx4j.tools.remote.provider.soap +mx4j.tools.remote.provider.soap.ssl +mx4j.tools.remote.proxy +mx4j.tools.remote.resolver.burlap +mx4j.tools.remote.resolver.burlap.ssl +mx4j.tools.remote.resolver.hessian +mx4j.tools.remote.resolver.hessian.ssl +mx4j.tools.remote.resolver.local +mx4j.tools.remote.resolver.soap +mx4j.tools.remote.resolver.soap.ssl +mx4j.tools.remote.rmi +mx4j.tools.remote.soap +mx4j.tools.remote.soap.axis.ser +mx4j.tools.stats +mx4j.util diff --git a/mx4j-3.0.2/docs/api/packages.html b/mx4j-3.0.2/docs/api/packages.html new file mode 100644 index 0000000..dd6bba7 --- /dev/null +++ b/mx4j-3.0.2/docs/api/packages.html @@ -0,0 +1,37 @@ + + + + + + + (MX4J API) + + + + + + + + + + + +
+ +
+ +
+
+The front page has been relocated.Please see: +
+          Frame version +
+          Non-frame version.
+ + + diff --git a/mx4j-3.0.2/docs/api/resources/inherit.gif b/mx4j-3.0.2/docs/api/resources/inherit.gif new file mode 100644 index 0000000000000000000000000000000000000000..c814867a13deb0ca7ea2156c6ca1d5a03372af7e GIT binary patch literal 57 zcmZ?wbhEHbIIT!9-C*e{wE9>Kx3D)-;0v)C; KYxQGgum%9JOA&7X literal 0 HcmV?d00001 diff --git a/mx4j-3.0.2/docs/api/serialized-form.html b/mx4j-3.0.2/docs/api/serialized-form.html new file mode 100644 index 0000000..c87f8bf --- /dev/null +++ b/mx4j-3.0.2/docs/api/serialized-form.html @@ -0,0 +1,2793 @@ + + + + + + +Serialized Form (MX4J API) + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Serialized Form

+
+
+ + + + + +
+Package mx4j
+ +

+ + + + + +
+Class mx4j.ImplementationException extends java.lang.RuntimeException implements Serializable
+ +

+ +

+


+ + + + + +
+Package mx4j.loading
+ +

+ + + + + +
+Class mx4j.loading.MLetParseException extends java.lang.Exception implements Serializable
+ +

+ +

+


+ + + + + +
+Package mx4j.monitor
+ +

+ + + + + +
+Class mx4j.monitor.MX4JMonitorNotification extends javax.management.Notification implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+observedObject

+
+javax.management.ObjectName observedObject
+
+
+
+
+
+ +

+observedAttribute

+
+java.lang.String observedAttribute
+
+
+
+
+
+ +

+derivedGauge

+
+java.lang.Object derivedGauge
+
+
+
+
+
+ +

+trigger

+
+java.lang.Object trigger
+
+
+
+
+ +

+


+ + + + + +
+Package mx4j.tools.adaptor.http
+ +

+ + + + + +
+Class mx4j.tools.adaptor.http.HttpException extends java.io.IOException implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+code

+
+int code
+
+
Error code +

+

+
+
+ +

+


+ + + + + +
+Package mx4j.tools.config
+ +

+ + + + + +
+Class mx4j.tools.config.ConfigurationException extends java.lang.Exception implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+cause

+
+java.lang.Throwable cause
+
+
+
+
+ +

+


+ + + + + +
+Package mx4j.tools.remote
+ +

+ + + + + +
+Class mx4j.tools.remote.AbstractJMXConnector extends java.lang.Object implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+address

+
+javax.management.remote.JMXServiceURL address
+
+
 
+
+
+ +

+


+ + + + + +
+Package mx4j.tools.remote.caucho
+ +

+ + + + + +
+Class mx4j.tools.remote.caucho.CauchoServlet extends javax.servlet.http.HttpServlet implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+methods

+
+java.util.Map methods
+
+
+
+
+ +

+


+ + + + + +
+Package mx4j.tools.remote.caucho.burlap
+ +

+ + + + + +
+Class mx4j.tools.remote.caucho.burlap.BurlapServlet extends CauchoServlet implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+service

+
+CauchoService service
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.caucho.burlap.SSLBurlapServlet extends BurlapServlet implements Serializable
+ +

+ +

+


+ + + + + +
+Package mx4j.tools.remote.caucho.hessian
+ +

+ + + + + +
+Class mx4j.tools.remote.caucho.hessian.HessianServlet extends CauchoServlet implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+service

+
+CauchoService service
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.caucho.hessian.SSLHessianServlet extends HessianServlet implements Serializable
+ +

+ +

+


+ + + + + +
+Package mx4j.tools.remote.http
+ +

+ + + + + +
+Class mx4j.tools.remote.http.HTTPConnector extends AbstractJMXConnector implements Serializable
+ +

+ +

+


+ + + + + +
+Package mx4j.tools.remote.local
+ +

+ + + + + +
+Class mx4j.tools.remote.local.LocalConnector extends AbstractJMXConnector implements Serializable
+ +

+ +

+


+ + + + + +
+Package mx4j.tools.remote.proxy
+ +

+ + + + + +
+Class mx4j.tools.remote.proxy.RemoteMBeanProxyException extends javax.management.JMRuntimeException implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+exception

+
+java.lang.Exception exception
+
+
+
+
+ +

+


+ + + + + +
+Package mx4j.tools.remote.rmi
+ +

+ + + + + +
+Class mx4j.tools.remote.rmi.SSLRMIClientSocketFactory extends java.lang.Object implements Serializable
+ +

+ +

+


+ + + + + +
+Package mx4j.tools.remote.soap
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.ConnectionIDRequestHandler extends org.apache.axis.handlers.BasicHandler implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.SOAPConnector extends HTTPConnector implements Serializable
+ +

+ +

+


+ + + + + +
+Package mx4j.tools.remote.soap.axis.ser
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AttributeDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+attributeName

+
+java.lang.String attributeName
+
+
+
+
+
+ +

+attributeValue

+
+java.lang.Object attributeValue
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AttributeDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AttributeListDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+attributes

+
+javax.management.AttributeList attributes
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AttributeListDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AttributeListSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AttributeListSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AttributeSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AttributeSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AxisDeserializer extends org.apache.axis.encoding.DeserializerImpl implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.AxisSerializer extends java.lang.Object implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+name

+
+java.lang.String name
+
+
+
+
+
+ +

+className

+
+java.lang.String className
+
+
+
+
+
+ +

+description

+
+java.lang.String description
+
+
+
+
+
+ +

+isReadable

+
+boolean isReadable
+
+
+
+
+
+ +

+isWritable

+
+boolean isWritable
+
+
+
+
+
+ +

+isIs

+
+boolean isIs
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanAttributeInfoSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+name

+
+java.lang.String name
+
+
+
+
+
+ +

+description

+
+java.lang.String description
+
+
+
+
+
+ +

+signature

+
+javax.management.MBeanParameterInfo[] signature
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanConstructorInfoSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+className

+
+java.lang.String className
+
+
+
+
+
+ +

+description

+
+java.lang.String description
+
+
+
+
+
+ +

+attributes

+
+javax.management.MBeanAttributeInfo[] attributes
+
+
+
+
+
+ +

+constructors

+
+javax.management.MBeanConstructorInfo[] constructors
+
+
+
+
+
+ +

+operations

+
+javax.management.MBeanOperationInfo[] operations
+
+
+
+
+
+ +

+notifications

+
+javax.management.MBeanNotificationInfo[] notifications
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanInfoDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanInfoSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanInfoSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+name

+
+java.lang.String name
+
+
+
+
+
+ +

+description

+
+java.lang.String description
+
+
+
+
+
+ +

+notificationTypes

+
+java.lang.String[] notificationTypes
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanNotificationInfoSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+name

+
+java.lang.String name
+
+
+
+
+
+ +

+description

+
+java.lang.String description
+
+
+
+
+
+ +

+signature

+
+javax.management.MBeanParameterInfo[] signature
+
+
+
+
+
+ +

+className

+
+java.lang.String className
+
+
+
+
+
+ +

+impact

+
+int impact
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanOperationInfoSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+name

+
+java.lang.String name
+
+
+
+
+
+ +

+className

+
+java.lang.String className
+
+
+
+
+
+ +

+description

+
+java.lang.String description
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanParameterInfoSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeser extends NotificationDeser implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+mbeanName

+
+javax.management.ObjectName mbeanName
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+filter

+
+javax.management.relation.MBeanServerNotificationFilter filter
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSer extends NotificationFilterSupportSer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationFilterSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSer extends NotificationSer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MBeanServerNotificationSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeser extends NotificationDeser implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+monitoredName

+
+javax.management.ObjectName monitoredName
+
+
+
+
+
+ +

+monitoredAttribute

+
+java.lang.String monitoredAttribute
+
+
+
+
+
+ +

+gaugeValue

+
+java.lang.Object gaugeValue
+
+
+
+
+
+ +

+triggerValue

+
+java.lang.Object triggerValue
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MonitorNotificationDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSer extends NotificationSer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.MonitorNotificationSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+type

+
+java.lang.String type
+
+
+
+
+
+ +

+source

+
+java.lang.Object source
+
+
+
+
+
+ +

+sequenceNumber

+
+long sequenceNumber
+
+
+
+
+
+ +

+timeStamp

+
+long timeStamp
+
+
+
+
+
+ +

+message

+
+java.lang.String message
+
+
+
+
+
+ +

+userData

+
+java.lang.Object userData
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+filter

+
+javax.management.NotificationFilterSupport filter
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationFilterSupportSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationResultDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+earliestSequenceNumber

+
+long earliestSequenceNumber
+
+
+
+
+
+ +

+nextSequenceNumber

+
+long nextSequenceNumber
+
+
+
+
+
+ +

+targetedNotifications

+
+javax.management.remote.TargetedNotification[] targetedNotifications
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationResultDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationResultSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationResultSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.NotificationSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+objectName

+
+javax.management.ObjectName objectName
+
+
+
+
+
+ +

+className

+
+java.lang.String className
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.ObjectInstanceDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.ObjectInstanceSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.ObjectNameDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+canonicalName

+
+java.lang.String canonicalName
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.ObjectNameDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.ObjectNameSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.ObjectNameSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.PrincipalDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+className

+
+java.lang.String className
+
+
+
+
+
+ +

+name

+
+java.lang.String name
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.PrincipalDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.PrincipalSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.PrincipalSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+relationName

+
+java.lang.String relationName
+
+
+
+
+
+ +

+roleInfos

+
+java.util.List roleInfos
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RelationTypeSupportSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+roleName

+
+java.lang.String roleName
+
+
+
+
+
+ +

+roleValue

+
+java.util.List roleValue
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleInfoDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+name

+
+java.lang.String name
+
+
+
+
+
+ +

+description

+
+java.lang.String description
+
+
+
+
+
+ +

+refMBeanClassName

+
+java.lang.String refMBeanClassName
+
+
+
+
+
+ +

+readable

+
+boolean readable
+
+
+
+
+
+ +

+writeable

+
+boolean writeable
+
+
+
+
+
+ +

+minDegree

+
+int minDegree
+
+
+
+
+
+ +

+maxDegree

+
+int maxDegree
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleInfoDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleInfoSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleInfoSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleListDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+roles

+
+javax.management.relation.RoleList roles
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleListDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleListSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleListSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleResultDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+roleList

+
+javax.management.relation.RoleList roleList
+
+
+
+
+
+ +

+roleUnresolvedList

+
+javax.management.relation.RoleUnresolvedList roleUnresolvedList
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleResultDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleResultSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleResultSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeser extends RoleDeser implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+problemType

+
+int problemType
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+roles

+
+javax.management.relation.RoleUnresolvedList roles
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedListSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSer extends RoleSer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.RoleUnresolvedSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.SetDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+set

+
+java.util.Set set
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.SetDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.SetSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.SetSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.SubjectDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+readOnly

+
+boolean readOnly
+
+
+
+
+
+ +

+principals

+
+java.util.Set principals
+
+
+
+
+
+ +

+publicCredentials

+
+java.util.Set publicCredentials
+
+
+
+
+
+ +

+privateCredentials

+
+java.util.Set privateCredentials
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.SubjectDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.SubjectSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.SubjectSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeser extends AxisDeserializer implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+notification

+
+javax.management.Notification notification
+
+
+
+
+
+ +

+listenerID

+
+java.lang.Integer listenerID
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.TargetedNotificationDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSer extends AxisSerializer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.TargetedNotificationSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeser extends NotificationDeser implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+notificationID

+
+java.lang.Integer notificationID
+
+
+
+
+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.TimerNotificationDeserFactory extends org.apache.axis.encoding.ser.BaseDeserializerFactory implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.TimerNotificationSer extends NotificationSer implements Serializable
+ +

+ +

+ + + + + +
+Class mx4j.tools.remote.soap.axis.ser.TimerNotificationSerFactory extends org.apache.axis.encoding.ser.BaseSerializerFactory implements Serializable
+ +

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.
+ + diff --git a/mx4j-3.0.2/docs/api/stylesheet.css b/mx4j-3.0.2/docs/api/stylesheet.css new file mode 100644 index 0000000..6d31fdb --- /dev/null +++ b/mx4j-3.0.2/docs/api/stylesheet.css @@ -0,0 +1,29 @@ +/* Javadoc style sheet */ + +/* Define colors, fonts and other style attributes here to override the defaults */ + +/* Page background color */ +body { background-color: #FFFFFF } + +/* Headings */ +h1 { font-size: 145% } + +/* Table colors */ +.TableHeadingColor { background: #CCCCFF } /* Dark mauve */ +.TableSubHeadingColor { background: #EEEEFF } /* Light mauve */ +.TableRowColor { background: #FFFFFF } /* White */ + +/* Font used in left-hand frame lists */ +.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif } +.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif } +.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif } + +/* Navigation bar fonts and colors */ +.NavBarCell1 { background-color:#EEEEFF;} /* Light mauve */ +.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;} + +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} + diff --git a/mx4j-3.0.2/docs/ch01.html b/mx4j-3.0.2/docs/ch01.html new file mode 100644 index 0000000..3289034 --- /dev/null +++ b/mx4j-3.0.2/docs/ch01.html @@ -0,0 +1,61 @@ +Chapter 1. MX4J and JMX Overview

Chapter 1. MX4J and JMX Overview

Overview

MX4J

+ MX4J is an open source implementation of the JMX + TM technology. +
+ JMX stands for + Java + TM Management Extensions + , + and it's an optional package for the J2SE + TM platform that is now + included in J2SE 5.0. +

+ The Java Management Extension specification is a Java Specification Request (see + JSR 003) currently in maintenance release 1.2. +
+ A new JSR has been issued to address connectivity to a remote JMX Agent, + JSR 160, which has released version 1.0 on + October 2003. +

+ MX4J implements both JSR 3 and JSR 160. +

What is JMX ?

+ JMX defines the architecture, the patterns, the API and the services to build manageable Java applications. +
+ But what do this really mean ? +

For what can you use JMX ?

+ By means of JMX, components of an application have a standard way of exposing some of their functionality + for management. A JMX Agent enables manageability of these functionalities from local or remote, allowing + a system administrator to manage the components of the application. +

+ Managing a component means having the possibility to stop and restart it, to remove it from the application or + to add it to an application, to change its configuration files, + to ask it to do some operation (such as downloading information from an URL the system administrator passes in), + and so on, depending on the management interface that this component expose. +

+ Many application servers such as Tomcat, JBoss, IONA, BEA WebLogic have their architecture based on JMX. +

+ Every JMX Agent comes with a set of predefined services, defined by the JMX specification. +
+ A service is a manageable component that can be used by, embedded in or extended by an application. +
+ Every JMX implementation can provide additional services, and normally each additional service can be used or + deployed in a different JMX implementation without requiring any additional operation, thus achieving + extreme portability of applications and application components. +

MX4J's JMX implementation

+ MX4J's implementation of the JMX specification is stable and reliable, passing every night an extended + suite of tests + following the + XP principles. +

+ The MX4J implementation runs in J2SE version 1.3 or superior. +

+ It provides some non-standard but + useful extension that can be used at wish, or not used if maximum portability is a primary goal. +

+ The MX4J implementation provides also useful services and tools, and several examples to guide users + in the use of JMX to build their applications. + Some example of tools, extensions and utilities are: +

  • HTTP adaptor (also over SSL)
  • ConfigurationLoader to read MBean configuration from XML
  • AbstractDynamicMBean to ease DynamicMBean development
  • Utility MBeans for: +
    • RMIRegistry
    • TNameServ
    • Statistics
    • EMail
    • Remote MBean Proxying
  • Automatic generation of management interfaces for standard MBean via + XDoclet
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch01s06.html b/mx4j-3.0.2/docs/ch01s06.html new file mode 100644 index 0000000..d0b8149 --- /dev/null +++ b/mx4j-3.0.2/docs/ch01s06.html @@ -0,0 +1,63 @@ +License

License

+ MX4J is released under an Apache-style license. In practice this means + that you can do almost anything you want with the code, including its + use in commercial software. +
+ The actual text of the license is included below: +

+

+
+         The MX4J License, Version 1.0
+
+         Copyright (c) 2001-2004 by the MX4J contributors.  All rights reserved.
+
+         Redistribution and use in source and binary forms, with or without
+         modification, are permitted provided that the following conditions
+         are met:
+
+         1. Redistributions of source code must retain the above copyright
+            notice, this list of conditions and the following disclaimer.
+
+         2. Redistributions in binary form must reproduce the above copyright
+            notice, this list of conditions and the following disclaimer in
+            the documentation and/or other materials provided with the
+            distribution.
+
+         3. The end-user documentation included with the redistribution,
+            if any, must include the following acknowledgment:
+               "This product includes software developed by the
+                MX4J project (http://mx4j.sourceforge.net)."
+            Alternately, this acknowledgment may appear in the software itself,
+            if and wherever such third-party acknowledgments normally appear.
+
+         4. The name "MX4J" must not be used to endorse or promote
+            products derived from this software without prior written
+            permission.
+            For written permission, please contact
+            biorn_steedom [at] users [dot] sourceforge [dot] net
+
+         5. Products derived from this software may not be called "MX4J",
+            nor may "MX4J" appear in their name, without prior written
+            permission of Simone Bordet.
+
+         THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+         WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+         OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+         DISCLAIMED.  IN NO EVENT SHALL THE MX4J CONTRIBUTORS
+         BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+         SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+         LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+         USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+         ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+         OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+         OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+         SUCH DAMAGE.
+         ====================================================================
+
+         This software consists of voluntary contributions made by many
+         individuals on behalf of the MX4J project.  For more information on
+         MX4J, please see
+         the MX4J website.
+
+      
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch02.html b/mx4j-3.0.2/docs/ch02.html new file mode 100644 index 0000000..096492b --- /dev/null +++ b/mx4j-3.0.2/docs/ch02.html @@ -0,0 +1,98 @@ +Chapter 2. JMX 1.2 Explained

Chapter 2. JMX 1.2 Explained

+ javax.management.ObjectName changes +

The + getInstance() methods +

+ JMX 1.2 introduced four overloaded static version of the + getInstance() method: +
+
+ + public static ObjectName getInstance(String name) + +
+ + public static ObjectName getInstance(ObjectName name) + +
+ + public static ObjectName getInstance(String name, Hashtable properties) + +
+ + public static ObjectName getInstance(String domain, String key, String value) + +

+ The first version is the preferred way to create ObjectNames, and should be used instead of using the + new Java keyword. +
+ Creating a new ObjectName from a string is expensive because require parsing of the string. +
+ JMX implementations may use caching techniques to speed up creation of ObjectNames from strings. + MX4J does this optimization both in this method and in the ObjectName's constructor; it is likely that other + implementations perform the optimization in getInstance(), but not in the ObjectName's constructor, so choosing + to use getInstance() ensure coherent behaviors. +

+ The second version is mostly used to convert ObjectName subclasses to plain ObjectName. +
+ This is useful in a secure environment where evil ObjectName subclasses can try to bypass security checks + done when + javax.management.MBeanPermissions are checked to see if access to + the MBean with the given ObjectName is allowed or not. +

+ The third and the fourth version are just a replacement for the usage of the + new Java keyword, + and offer mostly syntactic sugar to your code. +

The + quote() and + unquote() methods +

+ JMX 1.2 introduced a way to "quote" the value of ObjectName's properties that is, to allow special + characters to be present in the properties values of an ObjectName. +

+ A simple example of this feature is to specify an LDAP name as an ObjectName property value. +
+ Since the comma is a reserved character that separates ObjectName properties, it would have been + impossible to specify an LDAP name as an ObjectName property. +

+ Let's suppose to have a distinguished name of 'uid=guest,ou=project,o=company', and to build an + ObjectName with a property called 'dname' whose value is the distinguished name. +
+ Without quoting, the ObjectName is: +

:dname=uid=guest,ou=project,o=company

+ which leads to an invalid ObjectName. +

+ Using quoting, instead, it becomes: +

:dname="uid=guest,ou=project,o=company"

+ which leads to a valid ObjectName. +

+ It is possible also to "unquote" the property value to obtain the original string. +

+ The ObjectName class has no knowledge if a value should be quoted or not, so it is responsibility + of the developer to quote and unquote property values. +
+ It is a good practice to do so in those cases where the property value is chosen by users, for example + by inputting it in a web form or in a swing gui. +

Refer to the javadoc of the ObjectName class for further information.

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch02s04.html b/mx4j-3.0.2/docs/ch02s04.html new file mode 100644 index 0000000..f58c121 --- /dev/null +++ b/mx4j-3.0.2/docs/ch02s04.html @@ -0,0 +1,34 @@ +Support for remote API

Support for remote API

Overview

+ JMX 1.2 defined all changes to the JMX specification needed to support remote API. +
+ Imagine a situation where a client needs to contact a remote MBeanServer, to invoke operations on it and + to receive the result of such invocations. +
+ In order for this situation to be possible, the JMX specification needed several changes such as + specifying the serialVersionUID of serializable classes that can be exchanged between the client and + the remote MBeanServer (for example + javax.management.MBeanInfo), specifying + details of MBeanServer's classloading to support classloading from remote locations, and the possibility + for the client to invoke operations on an MBeanServer-like interface that supports remote invocation + (for example that throws IOException if the connection with the remote MBeanServer is broken). +

The + javax.management.MBeanServer class inherits from + javax.management.MBeanServerConnection +

+ The MBeanServer interface cannot be used directly by clients that need to contact a remote MBeanServer. +
+ The reason is that this interface does not list, in its method's throws clause, + java.io.IOException as a possible exception being thrown. + Furthermore, the MBeanServer interface has some method (like registerMBean(), deserialize(), + getClassLoader(), etc.) that have no meaning in the remote case. +

+ The + javax.management.MBeanServerConnection interface has been defined as the + portion of the MBeanServer interface that can be used by client to contact a remote MBeanServer, and + is MBeanServer's parent interface. +
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch02s07.html b/mx4j-3.0.2/docs/ch02s07.html new file mode 100644 index 0000000..9b65292 --- /dev/null +++ b/mx4j-3.0.2/docs/ch02s07.html @@ -0,0 +1,255 @@ +The + javax.management.MBeanServerBuilder class +

The + javax.management.MBeanServerBuilder class +

Introduction

+ JMX 1.2 introduced the possibility to replace, at runtime, the MBeanServer implementation by specifying + a full qualified name of a + javax.management.MBeanServerBuilder subclass with the + system property "javax.management.builder.initial". +
+ When creating a new + MBeanServer instance, the + MBeanServerFactory + checks (every time) for the value of that system property; if it is not null, loads (using the context classloader), + instantiates, and delegates the + MBeanServerBuilder subclass to create + MBeanServer instances. +

+ Since now the creation of + MBeanServer instances can be delegated to a custom + MBeanServerBuilder, it is possible to achieve two things: +

  • Use Sun's JMX reference implementation (JMXRI) but telling it to use MX4J's + MBeanServer implementation +
  • "Wrap" the + MBeanServer implementation and "decorate" it with added functionality. +
+

How to use MX4J's + MBeanServer implementation with Sun's JMX Reference Implementation. +

+ This is very simple to achieve: +

+

Example 2.1.

+               
+java -cp jmxri.jar;mx4j-impl.jar -Djavax.management.builder.initial=mx4j.server.MX4JMBeanServerBuilder <MyClass>
+               
+            
+

+ Note how the classpath specifies + first the JMXRI jar and + then the MX4J + implementation jar. +

How to "decorate" + MBeanServer methods. +

+ A custom + MBeanServerBuilder allows you to specify how to create an + MBeanServer. +
+ Any JMX implementation has already in place a mechanism that uses a default + MBeanServerBuilder + to create instances of the default + MBeanServer implementation. +
+ In order to be able to "decorate" an + MBeanServer it is sufficient to specify a custom + MBeanServerBuilder that "decorates" the default one; then the implementation of the custom + MBeanServerBuilder will "decorate" the default + MBeanServer. +

+ However, implementing a "decorating" + MBeanServerBuilder requires a bit of precision. +
+ We will explain how to do this in detail in the following, using as example the MX4J implementation. +

+ Using the + MBeanServerBuilder to "decorate" an + MBeanServer + requires to write two classes: +

  • a custom + MBeanServerBuilder
  • a decorating + MBeanServer
+
+ Although it's possible to start from scratch, the MX4J API gives you two base classes to start from: +
  • mx4j.server.ChainedMBeanServerBuilder
  • mx4j.server.ChainedMBeanServer
+

+ Let's suppose we want to decorate the default + MBeanServer by adding logging statements + whenever a + MBeanServer method is called. +
+ First, we write the "decorating" + MBeanServer: +

+

Example 2.2. A "decorating" + MBeanServer that logs method calls. +

+               
+public class LoggingMBeanServer extends ChainedMBeanServer
+{
+   // Overridden just to make it public
+   public void setMBeanServer(MBeanServer server)
+   {
+      super.setMBeanServer(server);
+   }
+
+   public Object getAttribute(ObjectName objectName, String attribute)
+      throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
+   {
+      Object value = super.getAttribute(objectName, attribute);
+      System.out.println("[LOGGER] getAttribute() returned: " + value);
+      return value;
+   }
+
+   // And so on for all other MBeanServer methods.
+}
+            
+            
+

+ The class + ChainedMBeanServer simply forwards the calls to a nested + MBeanServer. + ChainedMBeanServer thus allows to create a "chain" of + MBeanServers + that are called in succession, one after the other, from the outermost to the innermost. +

+ Second, we write the "decorating" + MBeanServerBuilder: +

+

Example 2.3. A "decorating" + MBeanServerBuilder +

+               
+public class LoggingBuilder extends ChainedMBeanServerBuilder
+{
+   public LoggingBuilder()
+   {
+      super(new mx4j.server.MX4JMBeanServerBuilder());
+   }
+
+   public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate)
+   {
+      LoggingMBeanServer extern = new LoggingMBeanServer();
+      MBeanServer nested = getMBeanServerBuilder().newMBeanServer(defaultDomain, outer == null ? extern : outer, delegate);
+      extern.setMBeanServer(nested);
+      return extern;
+   }
+}
+            
+            
+

+ As for the + ChainedMBeanServer class, also + ChainedMBeanServerBuilder + simply forwards the calls to a nested + MBeanServerBuilder. + Also here, + ChainedMBeanServerBuilder allows to create a "chain" of + MBeanServerBuilders + that are called in succession, one after the other, from the outermost to the innermost. +

+ The + MBeanServerBuilder chain works in parallel with the + MBeanServer + chain in this way: +

+

Example 2.4. The + MBeanServerBuilder and + MBeanServer chains +

+               
+MBeanServerFactory  -- calls -->   LoggingBuilder     -- calls -->  MX4JMBeanServerBuilder
+                                         |                                   |
+                                      creates                             creates
+                                         |                                   |
+                                         V                                   V
+       Application  -- calls -->  LoggingMBeanServer  -- calls -->     MX4JMBeanServer
+            
+            
+

+ Note the + LoggingBuilder constructor: there is where the + MBeanServerBuilder chain is created. +
+ The + LoggingBuilder specifies a chain of only two rings, the + LoggingBuilder + itself, and MX4J's default + MBeanServerBuilder, + MX4JMBeanServerBuilder. +
+ This chain is hardcoded in the builder, meaning that if you want to change it at runtime you cannot: either you + change and recompile the custom builder, or you use another custom builder. +

+ Note also the usage of the ternary operator (condition ? this : that) in the nested + + newMBeanServer() + call: checking for nullity of the "outer" argument is + of fundamental importance for the builder to be "chainable". If this check is not made, then + LoggingBuilder cannot be reused as a ring of a longer chain if, in future, we modify it + to accept as parameter to the constructor other builders (i.e. other "rings"). +

+ It is of course possible to use different builders from different vendors, simply by creating a custom builder + that "chains" all the other in the desired sequence: +

+

Example 2.5. A "decorating" + MBeanServerBuilder +

+               
+public class ComplexBuilder extends ChainedMBeanServerBuilder
+{
+   public LoggingBuilder()
+   {
+      super(new com.sun.jmx.bar.BarBuilder(new com.ibm.jmx.foo.FooBuilder(new mx4j.server.MX4JMBeanServerBuilder())));
+   }
+}
+            
+            
+

+ Just remember that + MX4JMBeanServerBuilder is a "terminal" builder and must + always be the last in the chain. +
+ Other vendors are expected to provide an API for their custom builders very similar to + ChainedMBeanServerBuilder (which is mostly being able to take a + javax.management.MBeanServerBuilder as argument to a constructor). +

More complex + MBeanServer "decorations". +

+ We saw above that is possible to "decorate" + MBeanServers by decorating the + default mechanism of the + MBeanServerBuilder already in place in any JMX implementation. +
+ We saw that to a chain of builders corresponded a chain of servers. +
+ However, it's possible that a builder specifies more than one ring for the server chain, in the following way: +

+

Example 2.6. A More complex + MBeanServerBuilder and + MBeanServer chains +

+               
+MBeanServerFactory --calls-->  LoggingBuilder    --calls-->          PerformanceBuilder    --calls-->    MX4JMBeanServerBuilder
+                                     |                                        |                                     |
+                                  creates                                  creates                               creates
+                                     |                                   /         \                                |
+                                     V                                  V           V                               V
+       Application --calls--> LoggingMBeanServer --calls--> TimingServer --calls--> CountingServer --calls--> MX4JMBeanServer
+            
+            
+

+ An example of such chains is present in the MX4J testsuite, in the test class that tests the + MBeanServerBuilder functionality. +

Possible usages of MBeanServer "decorators"

+ A (non complete) list of possible "decorators" for + MBeanServer + may include functionality such as: +

  • Logging the invocation
  • Measuring the invocation time
  • Counting the number of invocations
  • Load-balancing the invocations among server nodes
  • Cascading the invocations to child servers
  • Notifying a message to someone for a particular invocation
  • ...
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch02s13.html b/mx4j-3.0.2/docs/ch02s13.html new file mode 100644 index 0000000..8f545d7 --- /dev/null +++ b/mx4j-3.0.2/docs/ch02s13.html @@ -0,0 +1,192 @@ +The + javax.management.MBeanServerInvocationHandler class +

The + javax.management.MBeanServerInvocationHandler class +

Introduction

+ MX4J version 1.x provided a custom implementation of a JDK 1.3's dynamic proxy to ease invocation + of methods on a MBean via the MBeanServer, the + mx4j.util.StandardMBeanProxy class. +
+ MX4J 1.x provided also a class for invocation of methods on remote MBeans, namely + mx4j.connector.RemoteStandardMBeanProxy + based on MX4J's custom remote implementation. +
+ In MX4J 1.x these classes were separated since JMX 1.1 did not specify a super-interface for MBeanServer + that could be used also remotely. +

+ In JMX 1.2, the + javax.management.MBeanServer interface inherits from the + javax.management.MBeanServerConnection interface. +
+ The MBeanServerConnection interface has basically the same methods of MBeanServer except those that + does not have sense remotely (like deserialize() and registerMBean()), and adds + java.io.IOException in the throws clause + of each method, thus making it the "remote" view of a remote MBeanServer. +

+ As of JMX 1.2, both + mx4j.util.StandardMBeanProxy and + mx4j.connector.RemoteStandardMBeanProxy are obsolete since they have been + replaced by one single class, the standard + javax.management.MBeanServerInvocationHandler class, that takes advantage of + the improved class hierarchy of the + javax.management.MBeanServer interface + to unify the functionalities that were provided before by the two MX4J classes. +

+ In the following section will be explained how to port old MX4J 1.x code to the new JMX 1.2 code. +

MBeanServerInvocationHandler usage

+ The JMX API to call an MBean via MBeanServer is very tedious: involves a reflection-like syntax and + a complex exception handling. +
+ The reflection-like syntax is sometimes an advantage, but it suffers of lack of static type checkings + made by the compiler. +
+ The exception handling is complex since it involves unwrapping of + javax.management.MBeanExceptions and rethrowing of the original exception thrown + by the MBean method, very much like + java.lang.reflect.InvocationTargetException + requires. +

+ Fortunately, JDK 1.3 provides + dynamic proxies via the + java.lang.reflect.Proxy class. +
+ By means of dynamic proxies, is it possible to write a proxy that hides the complexity of JMX + invocations and provides static type checking and trasparent exception handling. +
+ Compare the two code examples below and note how the second example is cleaner. +

+

Example 2.7. Standard JMX invocation

+               
+// The ObjectName of the delegate MBean
+ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=delegate");
+
+MBeanServer server = ...;
+
+// The MBeanServer ID
+String id = null;
+try
+{
+   id = server.getAttribute(delegateName, "MBeanServerId");
+}
+catch (MBeanException x)
+{
+   // The getMBeanServerId() method threw an exception ?!?
+}
+catch(AttributeNotFoundException x)
+{
+   // Uh ? Not a compliant JMX implementation ?
+}
+catch (InstanceNotFoundException x)
+{
+   // Uh ? Not a compliant JMX implementation ?
+}
+catch (ReflectionException x)
+{
+  // Uh ? What happened here ?
+}
+               
+            
+

+

Example 2.8. JMX invocation with MBeanServerInvocationHandler

+               
+// The ObjectName of the delegate MBean
+ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=delegate");
+
+MBeanServer server = ...;
+
+Object proxy = MBeanServerInvocationHandler.newProxyInstance(server, delegateName, MBeanServerDelegateMBean.class, true);
+MBeanServerDelegateMBean delegateMBean = (MBeanServerDelegateMBean)proxy;
+
+// The MBeanServer ID
+String id = delegateMBean.getMBeanServerId();
+               
+            
+

+ Usage of the + javax.management.MBeanServerInvocationHandler class is straightforward + for standard MBeans, since they already comply a management interface that is also a Java interface. + This interface can be used directly + as argument for the creation of the proxy (the third parameter of the + MBeanServerInvocationHandler.newProxyInstance() call). +
+ However, usage of MBeanServerInvocationHandler is not limited to standard MBeans, but also to dynamic MBeans + can use it, provided that the management interface they comply to does not change during proxy's life. + It is not necessary that the dynamic MBean implements a Java interface: it is + enough that the Java interface provided to the MBeanServerInvocationHandler is a (sub)set of the + management interface exposed by the dynamic MBean. +

+ The MBeanServerInvocationHandler class can also be used for remote MBeans, in conjuction with the + JSR 160 API, like shown in the following code snippet: +

+

Example 2.9. Remote JMX invocation with MBeanServerInvocationHandler

+               
+// The address of the connector server
+JMXServiceURL address = ...;
+
+// Create the JMXCconnectorServer
+JMXConnector cntor = JMXConnectorFactory.connect(address);
+
+// Obtain a "stub" for the remote MBeanServer
+MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
+
+// The ObjectName of a remote delegate MBean
+ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=delegate");
+
+Object proxy = MBeanServerInvocationHandler.newProxyInstance(mbsc, delegateName, MBeanServerDelegateMBean.class, true);
+MBeanServerDelegateMBean delegateMBean = (MBeanServerDelegateMBean)proxy;
+
+// The MBeanServer ID
+String id = delegateMBean.getMBeanServerId();
+               
+            
+

+ Refer to the javadocs of the + javax.management.MBeanServerInvocationHandler class + for further details. +

Porting examples for + mx4j.util.StandardMBeanProxy +

+ The MX4J 1.x API of + mx4j.util.StandardMBeanProxy is very similar to + javax.management.MBeanServerInvocationHandler's. +
+ Below are shown two code snippets that compare the old MX4J 1.x API with the new standard one. +
+ Note how only the line marked with (*) changes from the old version to the new one. +

+

Example 2.10. Old MX4J 1.x proxy API

+               
+// The ObjectName of the delegate MBean
+ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=delegate");
+
+MBeanServer server = ...;
+
+Object proxy = StandardMBeanProxy.create(MBeanServerDelegateMBean.class, server, delegateName);  (*)
+MBeanServerDelegateMBean delegateMBean = (MBeanServerDelegateMBean)proxy;
+
+// The MBeanServer ID
+String id = delegateMBean.getMBeanServerId();
+               
+            
+

+

Example 2.11. Standard JMX 1.2 proxy API

+               
+// The ObjectName of the delegate MBean
+ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=delegate");
+
+MBeanServer server = ...;
+
+Object proxy = MBeanServerInvocationHandler.newProxyInstance(server, delegateName, MBeanServerDelegateMBean.class, true);
+MBeanServerDelegateMBean delegateMBean = (MBeanServerDelegateMBean)proxy;
+
+// The MBeanServer ID
+String id = delegateMBean.getMBeanServerId();
+               
+            
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch03.html b/mx4j-3.0.2/docs/ch03.html new file mode 100644 index 0000000..5ebd347 --- /dev/null +++ b/mx4j-3.0.2/docs/ch03.html @@ -0,0 +1,49 @@ +Chapter 3. JSR 160 (JMX Remoting) Explained

Chapter 3. JSR 160 (JMX Remoting) Explained

What is JSR 160 ?

Introduction

+ The Java Management Extension (JMX) API is defined and under maintenance release of the Java Specification + Request (JSR) number 3. +
+ JMX defines the API for management of Java applications, and those API are local to the application: remote + clients that would like to connect to a JMX-enabled remote application and manage or monitor it using JMX + could not do it in a standard way. +
+ The MX4J project, the JMX reference implementation itself, and other JMX implementations provide custom + connectors, mostly RMI-based and HTTP-based, but those are not interoperable. +
+

+ To fill this gap, + JSR 160 extends JSR 3 by providing a standard + API to connect to remote JMX-enabled applications. +
+ Currently, JSR 160 has defined a mandatory connector based on RMI (that supports both RMI/JRMP and RMI/IIOP), + and an optional one based on sockets and Java serialization (JMXMP). +

+ JSR 160 thus provides a standard way to connect to remote JMX-enabled applications using RMI; it is possible + to use MX4J JSR 160 implementation on client side, and have a JMX Remote Reference Implementation on server + side, or viceversa. + This allows the creation of Management Consoles based on Swing, for example, that will be able to interoperate + no matter which JMX implementation is used. +

MX4J's JSR 160 implementation

+ MX4J implements JSR 160. This means that MX4J ships the standard JSR 160 API, located in package + javax.management.remote, and the mandatory providers defined by the specification, + namely the + rmi and + iiop providers, located in package + javax.management.remote.rmi. +
+ MX4J does not implement yet the optional + jmxmp provider defined by the JSR 160 specification. +
+ MX4J provides other four providers, not specified by the JSR 160 specification. This means that they will work + only if MX4J runs at both client and server side. These four providers are the + soap, + local, + hessian and + burlap providers. +

+ To sum up, MX4J allows you to specify JMXServiceURLs (see next section) of the following kind: +

  • service:jmx:rmi://host
  • service:jmx:iiop://host
  • service:jmx:soap://host
  • service:jmx:local://host
  • service:jmx:hessian://host
  • service:jmx:burlap://host
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch03s04.html b/mx4j-3.0.2/docs/ch03s04.html new file mode 100644 index 0000000..4869a04 --- /dev/null +++ b/mx4j-3.0.2/docs/ch03s04.html @@ -0,0 +1,280 @@ +How to use JSR 160

How to use JSR 160

Introduction

+ Using JSR 160 is very simple; the API is standard, so it does not matter if you use MX4J's JSR 160 + implementation or Sun's JSR 160 reference implementation. +
+ You can checkout the JSR 160 examples shipped with MX4J to understand how to use the JSR 160 API. +

JMXServiceURLs

+ JSR 160 connector servers are identified by a JMXServiceURL, represented by the class + javax.management.remote.JMXServiceURL. +
+ A JMXServiceURL is a string of the form: +

+ service:jmx: + <protocol>://[[[ + <host>]: + <port>]/ + <path>] +

+ where + protocol is a short string that represent the protocol such as "rmi", "iiop", "jmxmp" + or "soap", while + host, + port and + path are optional. +

+ A JMXServiceURL can be seen as the "address" of a JMXConnectorServer, and it is the mean by which + a JMXConnector can connect to a JMXConnectorServer. +

+ However, a JMXServiceURL is not sufficient to express the many possibile configurations of a + JMXConnectorServer (for example, it would be difficult to use a JMXServiceURL to specify - for the + RMIConnectorServer - the RMIClientSocketFactory and the RMIServerSocketFactory). +
+ For this reason JMXConnectorServers and JMXConnector make use of + java.util.Maps to + specify environment properties that a JMXConnectorServer or a JMXConnector may use to setup properly. +

Creating a JMXConnectorServer

+ A JMXConnectorServer is attached to an MBeanServer. +
+ This can be achieved by explicitely passing the MBeanServer to the JMXConnectorServer at the moment of + creation, or by registering the JMXConnectorServer - an MBean itself - inside the target MBeanServer. +

+ Once a JMXConnectorServer is attached to an MBeanServer, it is not yet ready to accept incoming calls + from clients: it must be + started. +
+ After a JMXConnectorServer has been started successfully, it is ready to accept incoming calls from clients. +
+ Symmetrically, a JMXConnectorServer must be + stopped in order to stop accepting incoming + calls from clients. After a JMXConnectorServer has been stopped, it cannot be restarted, and should be + tossed away. +

+ The preferred way to create a JMXConnectorServer is by using the + javax.management.remote.JMXConnectorServerFactory class: +

+

Example 3.1. Creating and starting a standalone JMXConnectorServer

+               
+// The address of the connector server
+JMXServiceURL address = new JMXServiceURL("service:jmx:rmi://host");
+
+// The environment map, null in this case
+Map environment = null;
+
+// The MBeanServer to which the JMXConnectorServer will be attached to
+MBeanServer server = MBeanServerFactory.createMBeanServer();
+
+// Create the JMXCconnectorServer
+JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(address, environment, server);
+
+// Start the JMXConnectorServer
+cntorServer.start();
+               
+            
+

+ The example above creates a JMXConnectorServer attached to a freshly created MBeanServer. +
+ The JMXConnectorServer - itself an MBean - is however not registered in the MBeanServer. +

+ The following code creates a JMXConnectorServer and registers it in a MBeanServer. +

+

Example 3.2. Creating and starting an MBean JMXConnectorServer

+               
+// The address of the connector
+JMXServiceURL address = new JMXServiceURL("service:jmx:rmi://host");
+
+// The environment map, null in this case
+Map environment = null;
+
+JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(address, environment, null);
+
+// The MBeanServer to which the JMXConnectorServer will be registered in
+MBeanServer server = MBeanServerFactory.createMBeanServer();
+
+// Register the JMXConnectorServer in the MBeanServer
+ObjectName cntorServerName = ObjectName.getInstance("connectors:protocol=rmi");
+server.registerMBean(cntorServer, cntorServerName);
+
+// Start the JMXConnectorServer
+cntorServer.start();
+
+// An alternative way to start the JMXConnectorServer via the MBeanServer
+server.invoke(cntorServerName, "start", null, null);
+
+// Yet another way to start the JMXConnectorServer via the MBeanServer
+Object proxy = MBeanServerInvocationHandler.newProxyInstance(server, cntorServerName, JMXConnectorServerMBean.class, true);
+JMXConnectorServerMBean cntorServerMBean = (JMXConnectorServerMBean)proxy;
+cntorServerMBean.start();
+               
+            
+

+ Once a JMXConnectorServer is connected to an MBeanServer and once it has been started, it is possible to + create a JMXConnector on a client host and connect it to the JMXConnectorServer. +
+ We already saw that the mean used by a JMXConnector to connect to a JMXConnectorServer is a JMXServiceURL. +

Creating a JMXConnector

+ If a JMXConnectorServer is the server-side component that allows to interact with a MBeanServer, + a JMXConnector is the client-side component that allows client code to contact a remote MBeanServer. +
+ A JMXConnector handles the details of registering notification listeners and receiving notifications from the + remote MBeanServer, as well as providing a way to authenticate to the JMXConnectorServer, and eventually + execute operations on behalf of a given + javax.security.auth.Subject. +
+ Finally the JMXConnector allows client code to obtain an implementation of the + javax.management.MBeanServerConnection interface that allows to interact with the + remote MBeanServer as if it is local. +

+ The preferred way to create a JMXConnector is to use the + javax.management.remote.JMXConnectorFactory class: +

+

Example 3.3. Connecting a JMXConnector

+               
+// The address of the connector server
+JMXServiceURL address = ...;
+
+// The environment map, null in this case
+Map environment = null;
+
+// Create the JMXCconnectorServer
+JMXConnector cntor = JMXConnectorFactory.connect(address, environment);
+
+// Obtain a "stub" for the remote MBeanServer
+MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
+
+// Call the remote MBeanServer
+String domain = mbsc.getDefaultDomain();
+               
+            
+

+ JMXConnectors can be instantiated, but connected at a later time. +
+ Below is a code snippet that shows how to instantiate a JMXConnector and then connect it + to the JMXConnectorServer. +
+ Note the use of two different environment Maps: one is used to specify creation parameters, the other + to specify connection parameters. +

+

Example 3.4. Creating and connecting a JMXConnector

+               
+// The address of the connector server
+JMXServiceURL address = ...;
+
+// The creation environment map, null in this case
+Map creationEnvironment = null;
+
+// Create the JMXCconnectorServer
+JMXConnector cntor = JMXConnectorFactory.newJMXConnector(address, creationEnvironment);
+
+// The connection environment map, null in this case
+// May contain - for example - user's credentials
+Map connectionEnvironment = null;
+
+// Connect
+cntor.connect(connectionEnvironment);
+
+// Obtain a "stub" for the remote MBeanServer
+MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
+
+// Call the remote MBeanServer
+String domain = mbsc.getDefaultDomain();
+               
+            
+

Remote Notifications

+ JSR 160 connectors are able to receive notifications emitted by a remote MBean. +
+ The details of the mechanism of how remote notifications are delivered depends on the protocol + used by the connector; however, few general principles are explained below. +

+ To receive notifications, a client must register a listener by means of the + javax.management.MBeanServerConnection.addNotificationListener(...) method. +
+ There are two overloaded versions of this method: one that takes an ObjectName as listener, and one that + takes a NotificationListener as listener. +

+ In the first case, the listener is remote (an MBean in the remote MBeanServer) and thus both the filter + and the handback object are sent over the wire to the server (and of course both must be serializable). +

+ The more interesting case is the second, where the listener is local to the client code. +
+ In this case the listener that receives notifications emitted by a remote MBean always + remains local to the client code that registered it. The NotificationListener object is never sent across + the wire. +
+ NotificationListener objects are usually implemented with anonymous inner classes + (that most of the times are not serializables), and client code should not make any particular attention + on how to implement NotificationListeners that receive remote Notifications: anonymous inner classes are + a good choice. +

+ On the other end, if the remote MBean sends custom subclasses of the Notification class, it must ensure that + the custom Notification objects are + serializable. +
+ The meaning of + serializable depends on the protocol used; in case of RMI, it is the + usual meaning of "Java serializable" (that is, it can be written to a + java.io.ObjectOutputStream). +

+ NotificationFilters may or may not be sent over the wire, depending on the protocol used by the JMXConnector. +
+ It is a good choice to use the standard JMX NotificationFilters such as + javax.management.NotificationFilterSupport, + javax.management.AttributeChangeNotificationFilter and + javax.management.relation.MBeanServerNotificationFilter to perform filtering of + Notifications: these classes are serializable, and known to the server side. +
+ If you want to write your custom NotificationFilter, write it in such a way that will work no matter if it is + run on client side or on server side, and be sure its class is known to the server side (for more + details about server side classloading, refer to the JSR 160 specification). +

+ The handback object always remains on client side. +

+ In the MX4J implementation, notifications are requested by the client to the server, and use a notification + buffer as explained in the JSR 160 specification. +
+ Since it's the client that initiates the notification request, the mechanism can be seen as a polling + mechanism. However, if the server does not have notifications to send to the client, it does not return + an empty result, but instead holds the call for a configurable timeout until a notification is emitted + or the timeout elapses. +
+ This allows to reduce the network traffic (since there is no continuous polling from the client to the + server) and still have a fast reactivity to notification emitted by the server. +
+ Refer to the javadocs of the + + mx4j.remote.RemoteNotificationClientHandler + and of the + + mx4j.remote.RemoteNotificationServerHandler + for further details. +

+ Take also a look at the examples bundled with the MX4J distribution for code snippets on registering + listeners to remote MBeans. +
+ Below, a quick example of how to register a listener to a remote MBean: +

+

Example 3.5. Registering a NotificationListener to a remote MBean

+               
+// The address of the connector server
+JMXServiceURL address = ...;
+
+// The JMXConnector
+JMXConnector connector = JMXConnectorFactory.connect(address);
+
+// The MBeanServerConnection "stub"
+MBeanServerConnection mbsc = connector.getMBeanServerConnection();
+
+// The MBeanServerDelegate emits notifications about registration/unregistration of MBeans
+ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate");
+
+NotificationListener listener = new NotificationListener()
+{
+   public void handleNotification(Notification notification, Object handback)
+   {
+      // Do something
+   }
+};
+
+mbsc.addNotificationListener(delegateName, listener, null, null);
+               
+            
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch03s10.html b/mx4j-3.0.2/docs/ch03s10.html new file mode 100644 index 0000000..579ba2e --- /dev/null +++ b/mx4j-3.0.2/docs/ch03s10.html @@ -0,0 +1,291 @@ +JSR 160 Security

JSR 160 Security

Requiring user authentication to connect to a JMXConnectorServer

+ JSR 160 provides a pluggable authentication mechanism based on the + javax.management.remote.JMXAuthenticator interface. +
+ The JMXAuthenticator interface has only one method that takes credentials from the client and returns a + javax.security.auth.Subject: +
+
+ + public Subject authenticate(Object credentials) throws SecurityException + +
+

+ An implementation of that interface may read username / password pairs from a file, and compare them + with the supplied credentials (for example a String[2] where String[0] contains the username and String[1] + contains the password). +

+ MX4J provides a default implementation of the JMXAuthenticator interface, namely the + mx4j.tools.remote.PasswordAuthenticator class. Refer to the PasswordAuthenticator + javadoc for details. +
+ It is possible to specify a file or a resource containing username/password pairs (where + passwords can be in clear text or obfuscated via a digest algorithm) to the PasswordAuthenticator, that + will then check correctness of the credentials passed by the client against this file or resource. +

+ It is worth noting that JMXConnectorServers that offer a strong security (an example of a JMXConnectorServer + that offers strong security is the - optional - + javax.management.remote.jmxmp.JMXMPConnectorServer, + whose security is based on + SASL) may choose not to + base their security system on JMXAuthenticator. +

+ The JMXAuthenticator implementation must be provided to the JMXConnectorServer via the environment map: +

+

Example 3.6. Using JMXAuthenticator in a JMXConnectorServer

+               
+// The address of the connector server
+JMXServiceURL address = ...;
+
+// The JMXAuthenticator implementation
+JMXAuthenticator authenticator = ...;
+
+// The environment map
+Map environment = new HashMap();
+environment.put(JMXConnectorServer.AUTHENTICATOR, authenticator);
+
+// The MBeanServer to which the JMXConnectorServer will be attached to
+MBeanServer server = MBeanServerFactory.createMBeanServer();
+
+// Create the JMXCconnectorServer
+JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(address, environment, server);
+
+// Start the JMXConnectorServer
+cntorServer.start();
+               
+            
+

+ Once the JMXConnectorServer is setup correctly, it is possible to connect only by providing correct credentials + from a JMXConnector. +
+ The credentials must be serializable because they are provided by the JMXConnector and will be sent to the + JMXConnectorServer to authenticate a Subject. +
+ If the credentials provided are not correct, a SecurityException is raised. +

+

Example 3.7. Passing credentials using a JMXConnector

+               
+// The address of the connector server
+JMXServiceURL address = ...;
+
+// Create the JMXCconnectorServer
+JMXConnector cntor = JMXConnectorFactory.newJMXConnector(address, null);
+
+// The credentials
+Object credentials = ...;
+
+// The connection environment map
+Map environment = new HashMap();
+environment.put(JMXConnector.CREDENTIALS, credentials);
+
+// Connect and invoke an operation on the remote MBeanServer
+try
+{
+   cntor.connect(environment);
+}
+catch (SecurityException x)
+{
+   // Uh-oh ! Bad credentials !
+   throw x;
+}
+
+// Obtain a stub for the remote MBeanServer
+MBeanServerConnection mbsc = cntor.getMBeanServerConnection();
+
+// Call the remote MBeanServer
+ObjectName delegate = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate");
+String id = mbsc.getAttribute(delegate, "MBeanServerId");
+               
+            
+

+ Once correct credentials are provided the server side, the JMXAuthenticator can authenticate a Subject. +
+ When you invoke operations on the MBeanServerConnection object obtained from the JMXConnector, the invocation + end up on the server side, and over there the operation will be executed on behalf of the authenticated Subject. +

+ If a SecurityManager is in place, you can specify different permissions for different authenticated subjects, + fine tuning the security policy as you want. +
+ You can for example grant all permissions to an "admin" principal, while granting only read access to MBean + attributes to a "guest" principal. +

+ If a SecurityManager is not in place, then using a JMXAuthenticator only allows you to deny access to non + authenticated users: a simple way to restrict the access to the JMXConnectorServer. +

Running under SecurityManager and Subject Delegation

+ Running a JMXConnectorServer under a SecurityManager allows to fine tune access to it from remote clients. +

+ If you just want to restrict access to the JMXConnectorServer to authenticated users, but allow an + authenticated user to perform any operation on the JMXConnectorServer and its underlying MBeanServer, + then it is enough to provide a JMXAuthenticator while creating the JMXConnectorServer, + as explained in the section above. +

+ If instead, you want to be able to grant different permissions to different users, then you have to + run the JMXConnectorServer under a SecurityManager and grant different permissions to different users. +
+ For example, you may want the "admin" user to be able to perform any operation on the remote MBeanServer, + and the "guest" user to be able to perform only read operations, and not write operations. +

+ To show how to achieve this fine tuning, we will refer to example classes bundled with the MX4J distribution, + namely + mx4j.examples.remote.security.Client and + mx4j.examples.remote.security.Server, and show how to setup the policy files in JDK 1.4 + and JDK 1.3. +
+ By default it will shown the sequence of operations for JDK 1.4, and differences with JDK 1.3 will be + highlighted. +

+ We will assume that the JMX implementation (mx4j.jar), the JMX Remote implementation (mx4j-remote.jar) + and the MX4J examples (mx4j-examples.jar) are present in a directory called $WORK/lib, and that the + example is started from the $WORK directory. +
+ For JDK 1.3 you will also need jaas.jar in the $WORK/lib directory. +

+ As first step, let's take a look at + mx4j.examples.remote.security.Server. +
+ It first creates a "users.properties" file with the "admin" and "guest" users under $WORK. + This step is of course omitted in a real environment, where the "users.properties" file is provided + externally. +
+ Then it starts the NamingService and the JMXConnectorServer over RMI/JRMP, specifying a JMXAuthenticator + that reads user names and passwords from the "users.properties" file. +

+ Let's create now a policy file under $WORK, server.policy: +

+

Example 3.8. The server.policy file

+               
+grant codebase "file:${user.dir}/lib/mx4j-remote.jar"
+{
+   permission java.security.AllPermission;
+};
+grant codebase "file:${user.dir}/lib/mx4j.jar"
+{
+   permission java.security.AllPermission;
+};
+grant codebase "file:${user.dir}/lib/mx4j-tools.jar"
+{
+   permission java.security.AllPermission;
+};
+
+/* Uncomment for JDK 1.3
+grant codebase "file:${user.dir}/lib/jaas.jar"
+{
+   permission java.security.AllPermission;
+};
+*/
+
+grant codebase "file:${user.dir}/lib/mx4j-examples.jar"
+{
+   permission java.security.AllPermission;
+};
+               
+            
+

+ Notice how we grant AllPermission to the MX4J jars that implement JMX and JMX Remote, + and to the MX4J Tools jar (and to JAAS jar for JDK 1.3). +
+ You can consider those jars as libraries, and you trust that the MX4J implementation, as well as the JAAS + implementation, won't harm your system. +

+ Different is the motivation behind granting AllPermission to the MX4J Examples jar, which is the one that + containes + mx4j.examples.remote.security.Server. +
+ For this example we grant AllPermission because we trust the Server class not to perform any security + sensitive operation beyond starting the JMXConnectorServer and reading the "users.properties" file, + but you may want to restrict the set of operations performed by the classes that start the + JMXConnectorServer. +
+ With the above server.policy file, you can successfully start the + mx4j.examples.remote.security.Server class, in this way: +

+

Example 3.9. Starting the secured server

+               
+$WORK>java -Djava.security.manager
+           -Djava.security.policy==server.policy
+           -Djava.security.auth.policy=jaas.server.policy    --> Only for JDK 1.3
+           -classpath lib/mx4j-examples.jar;                 \
+                      lib/mx4j.jar;                          \
+                      lib/mx4j-remote.jar                    \
+                      lib/jaas.jar                           --> Only for JDK 1.3
+           mx4j.examples.remote.security.Server
+               
+            
+

+ Note the double equals sign '=' after the property "java.security.policy": see the documentation guide + about policy files for the JDK for further information about the meaning of this double equals sign. +

+ It is time now to grant permissions for the operations a remote client that is connecting + may want to do. +
+ Since we specified a JMXAuthenticator, only authenticated users can connect to the JMXConnectorServer. +
+ Furthermore, since we run under a SecurityManager, authenticated users may only perform the operations + granted to the corrispondent principal in the policy file. +

+ For JDK 1.3, these permissions must be specified in a separate file, named here "jaas.policy.file", + referenced by the "java.security.auth.policy" system property at startup time (see above). +
+ For JDK 1.4, these permissions can be added to the "server.policy" file. +

+

Example 3.10. The principal-specific permissions

+               
+grant
+{
+   // Required by MX4J implementation
+   permission javax.security.auth.AuthPermission "doAsPrivileged";
+
+   // Required to all clients to connect to the server
+   permission java.net.SocketPermission "localhost:1024-", "listen,resolve";
+   permission java.net.SocketPermission "*", "accept,resolve";
+};
+
+grant principal javax.management.remote.JMXPrincipal "admin"
+{
+   permission java.security.AllPermission;
+};
+
+grant principal javax.management.remote.JMXPrincipal "guest"
+{
+   permission javax.management.MBeanPermission "*", "queryNames";
+   permission javax.management.remote.SubjectDelegationPermission "javax.management.remote.JMXPrincipal.*";
+};
+               
+            
+

+ First of all, note that there is no specification of the codebase. +
+ It is not possible to specify the codebase for permissions you want to grant to a JSR 160 connector + server, you have to omit it. +

+ Second, note that there are three grant blocks: one that specifies permissions common to all principals, + one that specifies permissions for the "admin" principal, and one that specifies permissions for the + "guest" principal. +

+ The common block allows anyone to connect to the server side, as specified by the two SocketPermissions. +

+ The "admin" principal has AllPermission, while the "guest" principal can only call the + javax.management.MBeanServerConnection.queryNames() method. +

+ In the same exact way, you can specify many principal blocks, one per principal, with a different set + of permission for each one; this allows to fine tune the permissions granted to each principal + that connects to the server side. +

+ Lastly, note the SubjectDelegationPermission. This permission is needed when you have, on client, a + JAAS Subject and you want to perform, on server side, operations on behalf of that Subject. +
+ For example, it is possible that on a client there are many users that want to interact with the + server side, and that all users have been granted the same set of permissions. +
+ In this case is more efficient to establish only one connection with the server side, with an + authenticated user (in the example above, "guest"), and then use that connection with many + delegate users, by using + javax.management.remote.JMXConnector.getMBeanServerConnection(Subject delegate). +
+ In the example above, the authenticated principal "guest" allows any delegate principal (of class + javax.management.remote.JMXPrincipal) to perform + operations in its behalf, since it grants a SubjectDelegationPermission with a name of + "javax.management.remote.JMXPrincipal.*" (refer to the JMX Remote javadocs for explanation of the + syntax of SubjectDelegationPermission). +
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch03s13.html b/mx4j-3.0.2/docs/ch03s13.html new file mode 100644 index 0000000..73f1bed --- /dev/null +++ b/mx4j-3.0.2/docs/ch03s13.html @@ -0,0 +1,79 @@ +Advanced JSR 160

Advanced JSR 160

Intercepting calls between the JSR 160 JMXConnectorServer and the MBeanServer

+ JSR 160 offers a standard way of intercepting calls between the JMXConnectorServer + and the target MBeanServer. +
+ Such interception can be useful for logging, for granting access in a dynamic way (for example + based on the value of the arguments for a certain call to an MBean - this cannot be + achieved via the standard security policy files), for caching of values, and whatever else + you may find useful. +

+ In the examples bundled with the MX4J distribution, there is an example of how to setup + such an interception, and here we will show in brief how to do it. Refer to the example's + javadocs for further information. +

+ First of all, you need to implement the interceptor. In the past, these interceptor were all + implementation-dependent, but JSR 160 standardized the interface to achieve this: + javax.management.remote.MBeanServerForwarder. + Below you can find a simple (incomplete) example of how to track the Subject of the current + invocation. +

+

Example 3.11. Simple subject interceptor skeleton

+               
+public class SubjectTrackingMBeanServer implements MBeanServerForwarder
+{
+   private MBeanServer server;
+
+   public synchronized MBeanServer getMBeanServer()
+   {
+      return server;
+   }
+
+   public synchronized void setMBeanServer(MBeanServer server) throws IllegalArgumentException
+   {
+      if (server == null) throw new IllegalArgumentException("Cannot forward to a null MBeanServer");
+      this.server = server;
+   }
+
+   private void trackSubject()
+   {
+      Subject subject = Subject.getSubject(AccessController.getContext());
+      System.out.println("Subject = " + subject);
+   }
+
+   public void addNotificationListener(ObjectName observed, NotificationListener listener, NotificationFilter filter, Object handback)
+           throws InstanceNotFoundException
+   {
+      trackSubject();
+      getMBeanServer().addNotificationListener(observed, listener, filter, handback);
+   }
+
+   ...
+
+}
+               
+            
+

+ It is very simple to add this interceptors to a JMXConnectorServer, to intercept calls + directed to the target MBeanServer. It is important to do this before the JMXConnectorServer + is started, because if done afterwards it will have no effect (interception will not take place). +

+

Example 3.12. Setting up the interception on the JMXConnectorServer

+               
+MBeanServer server = ...;
+File passwords = ...;
+
+Map environment = new HashMap();
+JMXAuthenticator authenticator = new PasswordAuthenticator(passwords);
+environment.put(JMXConnectorServer.AUTHENTICATOR, authenticator);
+
+JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, environment, server);
+
+// Here we setup the interception
+SubjectTrackingMBeanServer interceptor = new SubjectTrackingMBeanServer();
+cntorServer.setMBeanServerForwarder(interceptor);
+
+// Start the connector server
+cntorServer.start();
+               
+            
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch03s15.html b/mx4j-3.0.2/docs/ch03s15.html new file mode 100644 index 0000000..4d83e70 --- /dev/null +++ b/mx4j-3.0.2/docs/ch03s15.html @@ -0,0 +1,171 @@ +Standard JSR 160 JMXConnectors and JMXConnectorServers

Standard JSR 160 JMXConnectors and JMXConnectorServers

Overview of RMIConnector and RMIConnectorServer

+ JSR 160 compliance requires implementation of a JMXConnector and JMXConnectorServer that + use Java's Remote Method Invocation (RMI) to communicate. +
+ The RMI connector and connector server are meant to work both over JRMP (Java Remote + Method Protocol, RMI's native protocol) and over IIOP (Internet Inter ORB Protocol, CORBA's + native protocol), and MX4J implements both fully. +

+ Java's RMI works so that the RMI client needs to have a + stub object. + A normal java method call on the stub is routed to the network and ends up on the RMI server + making possible to perform remote calls as if they were standard local calls. +
+ The stub takes care the details of invoking the server side such as arguments and return + value marshalling, exception throwing and so on. +
+ The stub class is normally present in the client's + classpath (since the stub is part of the JSR 160 classes), but the stub object is normally + downloaded from a naming server such as the + rmiregistry. + The RMI client only needs to know the naming path under which the stub object has been bound to + by the RMI server. +

Connecting to the RMIConnectorServer

+ A JSR 160 RMIConnector needs to be able to retrieve the stub object in order to contact + a remote JSR 160 RMIConnectorServer. +
+ JSR 160 gives two possibilities to retrieve the RMI stub object to be able to contact the + RMIConnectorServer. +

+ The first way to contact an RMIConnectorServer is make the stub object part of + the RMIConnectorServer's address, represented by a JMXServiceURL. + The JSR 160 specification refers to this possibility as the "encoded form". +
+ In case of JRMP, the stub is serialized and its bytes are Base64 encoded and attached to + the JMXServiceURL, so that passing the JMXServiceURL to clients, they have all information + needed to contact the server side (no naming server is needed). +
+ The JMXServiceURL path, in this case, starts with + /stub/. +
+ In case of IIOP, the IOR is attached to the JMXServiceURL (and again no naming server is + needed). +
+ The JMXServiceURL path, in this case, starts with + /ior/. +
+ Simply passing an encoded form JMXServiceURL to a JMXConnector is enough to allow it + to contact the corrispondent JMXConnectorServer: the JMXConnector will take care of + decoding the stub. +

+

Example 3.13. Examples of encoded form JMXServiceURLs

+               
+// JRMP encoded form
+service:jmx:rmi://localhost/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjE2LjE5Mi4xMjAuMTI5AAANcQAAAAAAAAAIAOgIQgAAAPlXjcJugAEAeA==
+
+// IIOP encoded form
+service:jmx:iiop://localhost/ior/IOR:000000000000003b524d493a6a617661782e6d616e6167656d656e742e72656d6f74652e726d692e524d495365727665723a303030303030303030303030303030300000000000010000000000000068000102000000000f31362e3139322e3132302e31323900000d93000000000019afabcb0000000002578f08b80000000800000000000000000a0000000000000100000001000000200000000000010001000000020501000100010020000101090000000100010100
+               
+            
+

+ The second way to contact an RMIConnectorServer is to specify a path in the JMXServiceURL + that indicates the location of a naming server and the JNDI path where the stub object + can be found. +
+ The JSR 160 specification refers to this possibility as the "JNDI form". +
+ In this case the JMXServiceURL path starts with + /jndi/. +

+ Working with JNDI requires to specify some information about the naming server and the configuration + of JNDI itself. These information can be passed to the RMIConnector in several ways; these ways are + very similar to the the ways JNDI requires to specify parameters and present no surprise to JNDI users. +

+ For example, the URL 'rmi://namingHost:1099/jndiPath' (not to be confused with a JMXServiceURL) says that + a naming server on the host 'namingHost' is listening on port 1099, that the naming server is an + rmiregistry (indicated by the 'rmi' scheme) and that under the '/jndiPath' path something has been registered. +
+ Similarly, the URL 'iiop://namingHost:900/jndiPath' says that + a naming server on the host 'namingHost' is listening on port 900, that the naming server is a + COS naming service (indicated by the 'iiop' scheme) and that under the '/jndiPath' path something + has been registered. +

+ It is straightforward then to specify a JMXServiceURL that uses the JNDI URL form: +

+

Example 3.14. Examples of JNDI URL form JMXServiceURLs

+               
+// JNDI URL form for JRMP
+service:jmx:rmi://rmiHost/jndi/rmi://namingHost:1099/jndiPath
+
+// JNDI URL form for IIOP
+service:jmx:iiop://rmiHost/jndi/iiop://namingHost:900/jndiPath
+               
+            
+

+ Alternatively, JNDI properties can be specified in the usual ways they are specified for JNDI, + namely specifying system properties, a 'jndi.properties' file in the classpath or via an environment Map + passed to the + JMXConnector.connect(Map environment) method or to the + JMXConnectorFactory.connect(JMXServiceURL url, Map environment) method. +
+ Since JNDI properties are specified separately, the JMXServiceURL path can be specified + using the JNDI short form, where only the JNDI path is specified in the JMXServiceURL: +

+

Example 3.15. Examples of JNDI short form JMXServiceURLs

+               
+// JNDI short form for JRMP
+service:jmx:rmi://rmiHost/jndi/jndiPath
+
+// JNDI short form for IIOP
+service:jmx:iiop://rmiHost/jndi/jndiPath
+
+// Code example that uses the JNDI short form specifying JNDI properties via environment Map
+// The JNDI environment
+Map environment = new HashMap();
+environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
+environment.put(Context.PROVIDER_URL, "rmi://namingHost:1099");
+// The JNDI short form JMXServiceURL
+JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://rmiHost/jndi/jndiPath");
+// Connect to the server side
+JMXConnector connector = JMXConnectorFactory.connect(url, environment);
+               
+            
+

ORB properties for JMXConnector and JMXConnectorServer over IIOP

+ When working with IIOP, there may be the need to pass some information in order to + correctly create the ORB. +
+ In plain Java code, these properties are passed via system properties or via environment Map. + Similarly, when using the JSR 160 API, ORB properties can be specified as system properties + or via the environment Map + passed to the + JMXConnector.connect(Map environment) method or to the + JMXConnectorFactory.connect(JMXServiceURL url, Map environment) method. +

RMI socket factories (over SSL) for the RMIConnectorServer over JRMP

+ JSR 160 specifies two constants to specify the + java.rmi.server.RMIClientSocketFactory + and + java.rmi.server.RMIServerSocketFactory instances that the + RMIConnectorServer should use to export itself to the RMI runtime. +
+ These constants are + javax.management.remote.rmi.RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE and + javax.management.remote.rmi.RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE. +

+ The MX4J implementation provides already an implementation of the + java.rmi.server.RMIClientSocketFactory + and + java.rmi.server.RMIServerSocketFactory interfaces that can be used to + encrypt the communication between the RMIConnector and the RMIConnectorServer using SSL, namely the + mx4j.tools.remote.rmi.SSLRMIClientSocketFactory and + mx4j.tools.remote.rmi.SSLRMIServerSocketFactory. +
+ These classes only work with JDK 1.4 or superior. +

+

Example 3.16. How to specify the RMI socket factories

+               
+SSLContext ssl = ...;
+RMIServerSocketFactory ssf = new SSLRMIServerSocketFactory(ssl);
+RMIClientSocketFactory csf = new SSLRMIClientSocketFactory();
+
+Map env = new HashMap();
+env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE, ssf);
+env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE, csf);
+
+MBeanServer server = ...;
+
+JMXServiceURL url = new JMXServiceURL("rmi", "localhost", 0);
+cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, env, server);
+cntorServer.start();
+                
+            
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch03s20.html b/mx4j-3.0.2/docs/ch03s20.html new file mode 100644 index 0000000..efb9019 --- /dev/null +++ b/mx4j-3.0.2/docs/ch03s20.html @@ -0,0 +1,151 @@ +MX4J's JSR 160 JMXConnectors and JMXConnectorServers

MX4J's JSR 160 JMXConnectors and JMXConnectorServers

The SOAP JSR 160 connector

+ Thanks to the fact that JSR 160 allows complete pluggability of the communication protocol between + JMXConnector and JMXConnectorServer, it is possible to add easily new protocol providers. +
+ However, since these protocol providers are not defined by the JSR 160 specification, they are likely + to be not interoperable between different JSR 160 implementations. +
+ This means that - for example - it is safe to have the JSR 160 Sun Reference Implementation on server side + and MX4J on client side, or viceversa, only when the the protocol used is RMI or IIOP. +
+ MX4J implements a JSR 160 JMXConnector and JMXConnectorServer that use + SOAP to communicate. The SOAP toolkit used by MX4J is + Axis 1.1. +
+ When the SOAP protocol is used, other JSR 160 implementations will fail because + they don't implement the SOAP provider, or they don't implement it in a interoperable way with MX4J. +
+ By placing MX4J on both client and server side, you can leverage the functionalities offered by MX4J: + in this case you can use SOAP to communicate from client to server and viceversa. +

+ Refer to the examples shipped with the MX4J distribution, + mx4j.examples.tools.remote.soap.Server and + mx4j.examples.tools.remote.soap.Client to follow the instructions below. +

+ Starting successfully a SOAPConnectorServer requires Axis 1.1 and a servlet 2.3 compliant web container. + In this example the web container will be the + Jetty web + container. +
+ Starting a standalone SOAPConnectorServer will perform several operations: +

  • Start a Jetty server on the port specified by the JMXServiceURL
  • Deploy to Jetty the Axis servlet, and mapping it to the path specified by the JMXServiceURL
  • Deploy to Axis the webservice that represent the remote MBeanServer
+

+ On server side, the SOAPConnectorServer ignores the host part of the JMXServiceURL, since + it starts the web container on the local host. +
+ It is therefore recommended to start the SOAPConnectorServer passing null as host name, + to allow the real host name to be retrieved and used (as stated by the JMXServiceURL specification). + Also, it is recommended that URL path of the JMXServiceURL not be the empty string. +

+ On client side, differently from the rmi, iiop and local providers, the host part of the JMXServiceURL + is not ignored; it is used to connect to the server side. +
+ It is very important that the host name of the JMXServiceURL on the server and the host name + of the JMXServiceURL on the client be exactly the same. If they differ (for example one is the + IP address and the other is the host name), then a message saying that the SOAPConnectorServer + cannot be found will be displayed. +

+ It is possible to start several SOAPConnectorServers in the same JVM, with the constraint that + they must all have different URL path in their JMXServiceURLs. + In this case only one instance of Jetty will be used (and multiple servlet-mappings mapped to + the same Axis servlet). +

+

Example 3.17. Starting the SOAPConnectorServer

+               
+// Use null as host
+JMXServiceURL url = new JMXServiceURL("soap", null, 8080, "/jmxconnector");
+
+MBeanServer server = ...;
+
+JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
+
+// This method call will:
+// 1. Start Jetty on port 8080
+// 2. Deploy to Jetty the Axis servlet with servlet-mapping /jmxconnector/*
+// 3. Deploy to Axis the web service that represent the remote MBeanServer
+cntorServer.start();
+               
+            
+

+

Example 3.18. Connecting to the SOAPConnectorServer

+               
+// Remember to specify the host name if not in-VM
+JMXServiceURL url = new JMXServiceURL("soap", null, 8080, "/jmxconnector");
+
+// Connect !
+JMXConnector cntor = JMXConnectorFactory.connect(url);
+
+// Invoke some operation
+MBeanServerConnection connection = cntor.getMBeanServerConnection();
+Integer count = connection.getMBeanCount();
+               
+            
+

+ When you want to use a SOAPConnectorServer from within a running web application, it is possible + to tell to the SOAPConnectorServer not to start another web container, by passing the property + SOAPConnectorServer.USE_EXTERNAL_WEB_CONTAINER with the value + Boolean.TRUE to the environment map passed to + JMXConnectorServerFactory. +
+ In this case, the external web container must already have Axis deployed and mapped to a certain path. +
+ For example, the default installation of Axis maps the Axis servlet to the path /axis/services/*. +
+ The JMXServiceURL to use in this case should be: +

+ service:jmx:soap://host:8080/axis/services +

+ As further example, you can take a look at the index.jsp page inside the mx4j-soap.war bundled + with the MX4J distribution to see how a SOAPConnectorServer can be started from within a web + application. +

The HESSIAN and BURLAP JSR 160 connectors

+ MX4J implements other two JMXConnectors and JMXConnectorServers that use open source (Apache license) + Caucho protocols + Hessian and Burlap. +
+ Similarly to the SOAP JMXConnector and JMXConnectorServer, Hessian's and Burlap's + JMXConnector and JMXConnectorServer use HTTP as transport protocol. +

+ Starting successfully a [Hessian|Burlap]ConnectorServer requires the hessian/burlap library + (hessian-3.0.8.jar) and a servlet 2.3 compliant web container, like for example, the + Jetty web container. +
+ Starting a standalone [Hessian|Burlap]ConnectorServer will perform several operations: +

  • Start a Jetty server on the port specified by the JMXServiceURL
  • Deploy to Jetty an MX4J's customized [Hessian|Burlap] servlet, and mapping it to the path specified by the JMXServiceURL
+

+ Follow the advices given for the SOAPConnectorServer in choosing the JMXServiceURL on server side + and on client side. +

+

Example 3.19. Starting the HessianConnectorServer

+               
+// Use null as host
+JMXServiceURL url = new JMXServiceURL("hessian", null, 8080, "/hessian");
+
+MBeanServer server = ...;
+
+JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
+
+// This method call will:
+// 1. Start Jetty on port 8080
+// 2. Deploy to Jetty the MX4J's Hessian servlet with servlet-mapping /hessian/*
+cntorServer.start();
+               
+            
+

+

Example 3.20. Connecting to the HessianConnectorServer

+               
+// Remember to specify the host name if not in-VM
+JMXServiceURL url = new JMXServiceURL("hessian", null, 8080, "/hessian");
+
+// Connect !
+JMXConnector cntor = JMXConnectorFactory.connect(url);
+
+// Invoke some operation
+MBeanServerConnection connection = cntor.getMBeanServerConnection();
+Integer count = connection.getMBeanCount();
+               
+            
+

+ To use the Burlap protocol instead of the Hessian protocol, just replace the protocol (and optionally + the path), from 'hessian' to 'burlap'. +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch03s23.html b/mx4j-3.0.2/docs/ch03s23.html new file mode 100644 index 0000000..4c43159 --- /dev/null +++ b/mx4j-3.0.2/docs/ch03s23.html @@ -0,0 +1,130 @@ +Using HTTP-based connectors over HTTPS

Using HTTP-based connectors over HTTPS

+ The HTTP-based connectors, namely the soap, hessian and burlap connectors, can be run over the HTTPS + protocol. +

+ The configuration of the MX4J connector is quite simple, but requires understanding of how certificates + and security in general work in the Java platform. +
+ You can find more information on the security in the Java platform + here. +

+ HTTP-based MX4J connectors can be run over HTTPS by adding the string "+ssl" (without quotes) to + the protocol of the JMXServiceURL normally used to start the connector over the plain HTTP protocol. +
+ For example, the JMXServiceURL to start the SOAP connector server over plain HTTP would be something like +

+ service:jmx:soap://host:8080/jmxconnector +

+ while the JMXServiceURL to start the SOAP connector server over HTTPS would be something like +

+ service:jmx:soap+ssl://host:8443/jmxconnector +

+ However, this is not enough, since running a web container over HTTPS requires a detailed configuration + of the web container itself and of the keystore that contains the certificate with the public key for the + SSL protocol. +

Configuration of the web container

+ The configuration of the web container usually requires to specify a file path for the keystore, the + keystore and the key passwords, and of course the HTTPS port the web container will listen to, that + must match the port provided in the JMXServiceURL. +

+ This configuration is to be specified in the environment Map passed at the moment of the creation of the + JMXConnectorServer using the + mx4j.tools.remote.http.HTTPConnectorServer.WEB_CONTAINER_CONFIGURATION + constant as key, and a String that points to the file path of the configuration file as value. +
+ Below there is a sample configuration file for the default web container used by MX4J, + Jetty. +

+

Example 3.21. Example Jetty configuration file to run JMXConnectorServers over HTTPS

+               
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+
+<Configure class="org.mortbay.jetty.Server">
+  <Call name="addListener">
+    <Arg>
+      <New class="org.mortbay.http.SunJsseListener">
+        <Set name="Port">8443</Set>
+        <Set name="PoolName">P1</Set>
+        <Set name="MaxIdleTimeMs">30000</Set>
+        <Set name="lowResources">30</Set>
+        <Set name="LowResourcePersistTimeMs">2000</Set>
+        <Set name="Keystore"><SystemProperty name="jetty.home" default="."/>/mx4j.ks</Set>
+        <Set name="Password">mx4jmx4j</Set>
+        <Set name="KeyPassword">mx4jmx4j</Set>
+
+        <Set name="HttpHandler">
+          <New class="org.mortbay.http.handler.MsieSslHandler">
+            <Set name="UserAgentSubString">MSIE 5</Set>
+          </New>
+        </Set>
+      </New>
+    </Arg>
+  </Call>
+</Configure>
+               
+            
+

+ Note that the configuration specifies the keystore file path, the keystore and the key passwords. +
+ Jetty allows the passwords to be obfuscated; see the Jetty documentation for more details + here. +

Configuration of the keystore

+ The keystore must contain a valid certificate issued for the server host where the + web container (started by the HTTP-based JMXConnectorServer) will run on. +
+ This is normally specified in the common name part of the distinguished name of the certificate. +

+ Furthermore, the certificate must be trusted by the client. + This means that the certificate must be signed by + a well-known certification authority, and that the root certification authority must be present + in the trusted certificates of the Java platform on client side, normally stored in the + $JAVA_HOME/jre/lib/security/cacerts file. +

+ In the more common case of "experiments", or during development, you can create a self-signed + certificate using this command: +

+ $JAVA_HOME/bin/keytool -genkey -keyalg "RSA" -keystore mx4j.ks -storepass mx4jmx4j -dname "cn=myhost" +

+ Replace the keystore file path and password with your choices, and replace the common name value with + the host name the web container will run on. +

+ To avoid to import this certificate in the trusted certificates of the Java platform on client side, you must + specify the following system property (using either the -D syntax in the command line that starts the JVM, + or calling + System.setProperty in your program): +

+ javax.net.ssl.trustStore=mx4j.ks +

+ Replace the keystore file path with your choice. +

+ Needless to say we don't recommend to set these java properties in your programs, nor to share + the keystore between client and server. What should be done in real environments is to sign the + certificate with a trusted certification authority. +

Code examples

+ Refer to the examples bundled with the MX4J distribution, specifically the + mx4j.examples.tools.remote.hessian.ssl.* files. +

+

Example 3.22. Starting and connecting to the Hessian connector server over HTTPS

+               
+// Server side configuration; copy/paste the jetty configuration above into a file named
+// jetty.mx4j.xml and put it in the directory from where the JVM is launched
+Map serverEnv = new HashMap();
+serverEnv.put(HTTPConnectorServer.WEB_CONTAINER_CONFIGURATION, "jetty.mx4j.xml");
+
+// Note the null host: it will use the current host name, that must match the common name
+// present in the certificate contained in the keystore
+JMXServiceURL url = new JMXServiceURL("hessian+ssl", null, 8443, "/hessianjmx");
+
+JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, serverEnv, newMBeanServer());
+cntorServer.start();
+
+// Client side configuration; specify the trusted keystore with a system property.
+// NOT recommended for production environments.
+System.setProperty("javax.net.ssl.trustStore", "mx4j.ks");
+JMXConnector cntor = JMXConnectorFactory.connect(url);
+MBeanServerConnection cntion = cntor.getMBeanServerConnection();
+int count = cntion.getMBeanCount().intValue();
+               
+            
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch03s27.html b/mx4j-3.0.2/docs/ch03s27.html new file mode 100644 index 0000000..56df10f --- /dev/null +++ b/mx4j-3.0.2/docs/ch03s27.html @@ -0,0 +1,125 @@ +Porting old MX4J remoting code to JSR 160

Porting old MX4J remoting code to JSR 160

Introduction

+ MX4J version 1.x provided a custom implementation of a connector server and connector client based on + the RMI protocol. +
+ That old code is now obsolete due to the fact that MX4J implements JSR 160. In the following sections will + be explained how to port old MX4J 1.x remoting code to the standard JSR 160 API. +

Porting Examples

+ The following example will show old MX4J 1.x remoting code compared to JSR 160 code, + with respect to creating and starting a connector server over JRMP on server side. +

+

Example 3.23. Old MX4J 1.x remoting code, server side

+               
+(1)
+String jndiName = "jrmp";
+
+(2)
+mx4j.adaptor.rmi.jrmp.JRMPAdaptor adaptor = new mx4j.adaptor.rmi.jrmp.JRMPAdaptor();
+
+(3)
+adaptor.putJNDIProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
+adaptor.putJNDIProperty(Context.PROVIDER_URL, "rmi://localhost:1099");
+adaptor.setJNDIName(jndiName);
+
+(4)
+adaptor.start();
+               
+            
+

+

Example 3.24. JSR 160 remoting code, server side

+               
+(1)
+JMXServiceURL address = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jrmp");
+
+(3)
+Map environment = new HashMap();
+environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
+environment.put(Context.PROVIDER_URL, "rmi://localhost:1099");
+
+(2)
+JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnector(address, environment, null); (2)
+
+(4)
+cntorServer.start();
+               
+            
+

+ Note the following differences: +

  1. + How the JNDI name "jrmp" has been replaced by a JMXServiceURL with an URLPath of "/jndi/jrmp". +
  2. + How the instantiation of the adaptor has been replaced by usage of a factory. +
  3. + How the JNDI properties are passed via a Map. +
+

+ Note that in both cases the adaptor (connector server) must be started in order to be able to accept + incoming connections (4). +

+ Note also that both the JRMPAdaptor and the JMXConnectorServer are MBeans, and as such they can be + registered inside an MBeanServer (no differences here). +

+ The following example will show old MX4J 1.x remoting code compared to JSR 160 code, + with respect to creating and connecting a connector over JRMP on client side. +

+

Example 3.25. Old MX4J 1.x remoting code, client side

+               
+(1)
+String jndiName = "jrmp";
+
+(2)
+mx4j.connector.rmi.jrmp.JRMPConnector connector = new mx4j.connector.rmi.jrmp.JRMPConnector();
+
+(3)
+Hashtable environment = new Hashtable();
+environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
+environment.put(Context.PROVIDER_URL, "rmi://localhost:1099");
+
+(4)
+connector.connect(jndiName, environment);
+
+(5)
+mx4j.connector.RemoteMBeanServer server = connector.getRemoteMBeanServer();
+               
+            
+

+

Example 3.26. JSR 160 remoting code, client side

+               
+(1)
+JMXServiceURL address = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jrmp");
+
+(3)
+Map environment = new HashMap();
+environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
+environment.put(Context.PROVIDER_URL, "rmi://localhost:1099");
+
+(2)
+JMXConnector connector = JMXConnectorFactory.newJMXConnector(address, environment);
+
+(4)
+connector.connect(environment);
+
+(5)
+MBeanServerConnection server = connector.getMBeanServerConnection();
+               
+            
+

+ Again, note the following differences: +

  1. + How the JNDI name "jrmp" has been replaced by a JMXServiceURL with an URLPath of "/jndi/jrmp". +
  2. + How the instantiation of the connector has been replaced by usage of a factory. +
  3. + How the JNDI properties are passed via a Map. +
  4. + The different number of arguments passed to the connect() method. +
  5. + How the + mx4j.connector.RemoteMBeanServer class is replaced by the + javax.management.MBeanServerConnection class. +
+

+ Very similar changes apply when the old MX4J 1.x remoting code is using the + mx4j.adaptor.rmi.iiop.IIOPAdaptor and the + mx4j.connector.rmi.iiop.IIOPConnector. +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch03s30.html b/mx4j-3.0.2/docs/ch03s30.html new file mode 100644 index 0000000..2e47fb2 --- /dev/null +++ b/mx4j-3.0.2/docs/ch03s30.html @@ -0,0 +1,83 @@ +MX4J Remote Tools and Utilities

MX4J Remote Tools and Utilities

Remote MBean Proxying

+ Complex systems based on JMX are also, most of the times, distributed systems. +
+ Such systems are often made of + nodes, and each node is made of + components. +
+ When the underlying architecture is JMX, in each node there is one (possibly more) MBeanServer that manages + the components, and each component is an MBean. +

+ Sometimes there is the need to have one MBeanServer gathering information from many remote + MBeanServers. However, the information needed is only part of the information exposed by each remote + MBeanServer: you may want to collect only some information from each remote MBeanServer. +
+ For this purpose, it is useful to write an MBean that exposes this information, and register one instance + of this MBean per each remote MBeanServer. +

+ A client application may want to connect to the gathering MBeanServer to see the gathered + information, without having the hassle to connect to each individual remote MBeanServer and choose the + information MBean among the others. +

+ In short, the gathering MBeanServer acts as a proxy for certain MBeans hosted elsewhere: client applications + only need to contact the gathering MBeanServer to get the information they need. +

+ For this purpose MX4J provides a remote MBean proxy: an MBean you can register in the + gathering MBeanServer that acts as a proxy for a remote MBean hosted in a remote MBeanServer. +
+ Refer anyway to the javadocs of the + RemoteMBeanProxy class for further + information. +
+ Below there is an example where remote MBeanServers publish information about the downloads of + products, and a gathering MBeanServer proxies these information for easier access via the HTTPAdaptor. +

+

Example 3.27. Remote MBean proxying

+               
+// A remote MBeanServer
+// It exposes also a JMXConnectorServer at the address 'service:jmx:rmi://localhost/jndi/jmx1'
+MBeanServer remoteMBeanServer1 = ...;
+
+// A remote MBean
+Object remoteMBean1 = ...;
+ObjectName remoteMBeanName1 = ObjectName.getInstance("sytem.information:type=downloads,product=mx4j");
+remoteMBeanServer1.registerMBean(remoteMBean1, remoteMBeanName1);
+
+// Another remote MBeanServer
+// It exposes also a JMXConnectorServer at the address 'service:jmx:rmi://localhost/jndi/jmx2'
+MBeanServer remoteMBeanServer2 = ...;
+
+// A remote MBean
+Object remoteMBean2 = ...;
+ObjectName remoteMBeanName2 = ObjectName.getInstance("information.data:type=downloads,product=tomcat");
+remoteMBeanServer2.registerMBean(remoteMBean2, remoteMBeanName2);
+
+// The proxy for the MBean in the first MBeanServer
+JMXServiceURL url1 = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jmx1");
+RemoteMBeanProxy proxy1 = new RemoteMBeanProxy(remoteMBeanName1, url1);
+ObjectName proxyName1 = ObjectName.getInstance("system.download:product=mx4j");
+
+// The proxy for the MBean in the second MBeanServer
+JMXServiceURL url2 = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jmx2");
+RemoteMBeanProxy proxy2 = new RemoteMBeanProxy(remoteMBeanName2, url2);
+ObjectName proxyName2 = ObjectName.getInstance("system.download:product=tomcat");
+
+// The gathering MBeanServer
+// It exposes also a HTTPAdaptor on port 8082
+MBeanServer gatheringMBeanServer = ...;
+gatheringMBeanServer.registerMBean(proxy1, proxyName1);
+gatheringMBeanServer.registerMBean(proxy2, proxyName2);
+
+// Browsing on port 8082 you can see, on the gathering MBeanServer, the proxied MBeans.
+               
+            
+

+ The + mx4j.remote.RemoteMBeanProxy MBean is a transparent proxy for the remote MBean: + invoking a method on the proxy results in the method being invoked on the remote MBean; registering a local + NotificationListener on the proxy results in registration on the remote MBean, and thus + the local listener will receive notifications emitted by the remote MBean. +
+ For example, by proxying the remote MBeanServerDelegate MBean, you can receive locally notifications of + MBean registrations/unregistrations that happens in the remote MBeanServer. +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch04.html b/mx4j-3.0.2/docs/ch04.html new file mode 100644 index 0000000..bd1865b --- /dev/null +++ b/mx4j-3.0.2/docs/ch04.html @@ -0,0 +1,117 @@ +Chapter 4. MX4J Extensions and utilities

Chapter 4. MX4J Extensions and utilities

Extensions

+ MX4J provides some extension to the JMX specification, some transparent with respect to MBeans or applications portability + across JMX implementations, and some that instead ties your MBeans or applications to the MX4J implementation. +
+

Standard MBean descriptions

+ This extension is totally transparent with respect to MBeans portability across JMX implementations. +

+ When MBeans are coded as standard MBeans, the JMX Agent is responsible of the creation of the metadata + information for them. Conversely, when coded as dynamic MBeans, the programmer is responsible of the + creation of such metadata information exposed to the JMX Agent through the + public MBeanInfo + getMBeanInfo + + (); method of the + DynamicMBean interface. +

+ Although the JMX Agent can retrieve information about attributes, operations, constructors and notifications, + for standard MBeans it cannot retrieve user information such as attribute description, operation description + and parameter names and descriptions, and so on. +

+ These information are important for the user of a management application, that can immediately understand + what an operation parameter is for just reading the description associated with that parameter. Same happens + with attributes. +

+ MX4J offers the possibility of customize descriptions and parameter's names for attributes, operations, + constructors and notifications of standard MBeans. This customization is achieved by implementing a class + that follows some lexical patterns, in a way very similar to what happens to standard MBeans and the Java + interface that represent their management interface to the JMX Agent. +

+ The MBean programmer should write a class that has the same full qualified name of the MBean class, ends + with "MBeanDescription" and implement the + mx4j.MBeanDescription interface + or extends the + mx4j.MBeanDescriptionAdapter class. +

+ For example if you have an MBean whose class is + my.package.MyService, then you will + have a management interface defined by the + my.package.MyServiceMBean Java interface, + and you may add a class named + my.package.MyServiceMBeanDescription that implements + the + mx4j.MBeanDescription interface and that specifies descriptions and parameter's + names for the MBean (see example below). +

+ The whole mechanism of generating the management interface and the description for standard MBean can be + automated using XDoclet (see the section about XDoclet for further details). +

+ When the MyService MBean is used in another JMX implementation, that implementation will not care about the + MBeanDescription class, and thus will ignore the additional information you provided. Your MBean will + work normally, but the other implementation's MBeanServer will not be able to provide description information + to connectors and adaptors. +
+ That's why this extension is transparent: it will not cause your MBeans to stop working in another JMX implementation. +

+

Example 4.1. Specifying description for standard MBeans

+               
+      public interface MyServiceMBean
+      {
+         public void start();
+         public void setStatus(int status);
+      }
+
+      public class MyService implements MyServiceMBean
+      {
+         public MyService(String type) {...}
+         public void start() {...}
+         public void stop() {...}
+         public void setStatus(int status) {...}
+      }
+
+      public class MyServiceMBeanDescription extends MBeanDescriptionAdapter
+      {
+         public String getConstructorDescription(Constructor ctor)
+         {
+            // Only one constructor
+            return "Creates a new instance of my personal service";
+         }
+
+         public String getConstructorParameterName(Constructor ctor, int index)
+         {
+            // Constructor has only one parameter
+            return "type";
+         }
+
+         public String getConstructorParameterDescription(Constructor ctor, int index)
+         {
+            // Constructor has only one parameter
+            return "The type of the service. Valid values are 'VOLATILE' or 'PERMANENT'.";
+         }
+
+         public String getAttributeDescription(String attribute)
+         {
+            // There is only one attribue, 'Status'
+            return "The status of the service. Can be set to ON=1, OFF=0";
+         }
+
+         public String getOperationDescription(Method operation)
+         {
+            String name = operation.getName();
+            if (name.equals("start"))
+            {
+               return "Starts the service. After the service is started its status is ON";
+            }
+            else if (name.equals("stop"))
+            {
+               return "Stops the service. After the service is stopped its status is OFF";
+            }
+            else
+            {
+               return super.getOperationDescription(operation);
+            }
+         }
+      }
+            
+            
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch04s03.html b/mx4j-3.0.2/docs/ch04s03.html new file mode 100644 index 0000000..c0923ae --- /dev/null +++ b/mx4j-3.0.2/docs/ch04s03.html @@ -0,0 +1,206 @@ +Interacting with the MX4J implementation

Interacting with the MX4J implementation

+ The MX4J implementation exposes some internal functionality via a public API that can be used by MBeans and applications. +
+ However using these API ties the MBean or the application to the MX4J implementation, making them non-portable across + other JMX implementations. +

Internal logging redirection

+ MX4J has a flexible logging system that allows you to tune the logging priority and + to redirect MX4J internal logging to other logging + systems such as + Commons Logging or + Log4J. +

+ The MX4J logging system has six logging priorities; + from the lowest priority to the highest they are: +

  • trace
  • debug
  • info
  • warn
  • error
  • fatal
+ The default level is + warn, and it can be set to a different value just by setting the system + property "mx4j.log.priority" to one of the values above. +

+ For example, you can start the JVM with this command to have MX4J log at a + debug level: +

+ java -Dmx4j.log.priority=debug MyMainClass +

+ The fatal level is never used by MX4J. +

+ MX4J default logging is done on the console via + System.out, but can be redirected to other + logging systems using the MX4J logging API, or through the broadcaster MBean (see below). +

+ For example, let's assume you want to redirect MX4J logging to Log4J. Below is the code needed to do so: +

+

Example 4.2. Logging redirection to Log4J

+               
+import org.apache.log4j.PropertyConfigurator;
+import mx4j.log.*;
+
+public class Main
+{
+   public static void main(String[] args) throws Exception
+   {
+      // Configure Log4J
+      PropertyConfigurator.configureAndWatch("log4j.properties");
+      // Or use the XML version below
+      // DOMConfigurator.configureAndWatch("log4j.xml");
+
+      // Redirect MX4J logging to Log4J
+      Log.redirectTo(new Log4JLogger());
+
+      // Normal code here
+      MBeanServer server = MBeanServerFactory.createMBeanServer();
+      ...
+
+      // Reset redirection, log in the normal way (to console)
+      Log.redirectTo(null);
+   }
+}
+            
+            
+

+ It is also shown how to reset logging redirection to the standard one, that logs on the console. +

+ The prototype for the new Logger, in the example above + Log4JLogger, can be specified + either in the code or by setting the system property "mx4j.log.prototype" to the full qualified name of the + Logger subclass, for example: +

+ java -Dmx4j.log.prototype=mx4j.log.Log4JLogger MyMainClass +

+ In this case, using system properties, your MBean or application remains portable across JMX implementations. +

+ It is possible to redirect logging to the MX4J broadcaster MBean, that will send notifications + to registered listeners. The MBeanServer mechanism is used to emit these notifications, so that every listener + can register itself along with a filter, to exclude notifications in which it's not interested in. + The example below shows the code necessary to redirect the logging system to the broadcaster MBean: +

+

Example 4.3. Logging redirection to the broadcaster MBean

+               
+import mx4j.log.*;
+
+public class Main
+{
+   public static void main(String[] args) throws Exception
+   {
+      MBeanServer server = MBeanServerFactory.createMBeanServer();
+
+      // Register the broadcaster logger mbean
+      ObjectName name = new ObjectName("Logger:type=broadcaster");
+      server.createMBean("mx4j.log.LoggerBroadcaster", name, null);
+
+      // The filter: only errors are logged
+      NotificationFilter filter = new NotificationFilter()
+      {
+         public boolean isNotificationEnabled(Notification notification)
+         {
+            if (notification.getType().equals("mx4j.logger.error")) {return true;}
+            return false;
+         }
+      };
+
+      // The listener: logs on System.err instead of System.out
+      NotificationListener listener = new NotificationListener()
+      {
+         public void handleNotification(Notification notification, Object handback)
+         {
+            System.err.println("[MX4J ERROR]: " + notification);
+         }
+      };
+
+      // Register the listener along with the filter
+      server.addNotificationListener(name, listener, filter, null);
+
+      // Starts the redirector
+      LoggerBroadcasterMBean redirector = (LoggerBroadcasterMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, LoggerBroadcasterMBean.class, true);
+      redirector.start();
+
+      ...
+
+      // Stops the redirector
+      redirector.stop();
+   }
+}
+            
+            
+

+ It is also shown how to reset logging redirection to the standard one, that logs on the console. +

Log categories of the MX4J implementation

+ Various classes in the MX4J implementation log their activities. +
+ Each class logs with a certain category, that organizes logging into a hierarchy of categories, following a + dotted scheme introduced by + Log4J. +
+ The categories are simply the full qualified names of the classes that log their activities. +

MBeanServerInterceptor configuration

+ The MX4J implementation allows client code to add custom interceptors for the MBeanServer calls that may end up in a + call to an MBean instance. +

+ When the MX4J implementation of the MBeanServer is created, a configurator for the MBeanServer-to-MBean interceptor chain is + also created, along with a default set of interceptors (that cannot be removed by the client code). +
+ Each one of the default interceptors is also an MBean, so it can be monitored/managed as a normal MBean, and also the + configurator is an MBean, registered with ObjectName "JMImplementation:type=MBeanServerInterceptorConfigurator". +

+ The interceptor configurator exposes a management API that can be invoked as usual via the MBeanServer. +
+ The API allows client code to add and remove custom interceptors, even at runtime, to perform additional tasks + such as logging, performance timing, redirection and so on. +

+ Writing a custom interceptor is simple, and requires the client code to implement the interface + mx4j.server.interceptor.MBeanServerInterceptor or to extend the class + mx4j.server.interceptor.DefaultMBeanServerInterceptor. +

+ Once you have written your custom interceptor, you can add it to the interceptor chain using the API provided + by the + MBeanServerInterceptorConfigurator, via these methods: +

  • + addInterceptor(MBeanServerInterceptor interceptor) +
  • + registerInterceptor(MBeanServerInterceptor interceptor, ObjectName name) +
+

+ See the Javadoc API documentation relative to the class + mx4j.server.interceptor.MBeanServerInterceptorConfigurator and its management interface + for further details. +
+ Below you can find a simple example of how to use the + MBeanServerInterceptorConfigurator API. +

+

Example 4.4. Using the interceptor configurator API

+               
+public class Main
+{
+   public static void main(String[] args) throws Exception
+   {
+      // Create an MBeanServer instance
+      // This will also create and configure an instance of the
+      // MBeanServerInterceptorConfigurator MBean
+      MBeanServer server = MBeanServerFactory.createMBeanServer();
+
+      // The name under which the configurator is registered
+      ObjectName name = new ObjectName("JMImplementation:type=MBeanServerInterceptorConfigurator");
+
+      // Create a custom interceptor
+      GetMBeanInfoLoggerInterceptor custom = new GetMBeanInfoLoggerInterceptor();
+
+      // Install the custom interceptor
+      server.invoke(name, "addInterceptor", new Object[] {custom}, new String[] {MBeanServerInterceptor.class.getName()});
+
+      // Now every call to getMBeanInfo will be logged
+      MBeanInfo info = server.getMBeanInfo(name);
+   }
+
+   public static class GetMBeanInfoLoggerInterceptor extends DefaultMBeanServerInterceptor
+   {
+      public MBeanInfo getMBeanInfo(MBeanMetaData metadata)
+      {
+         // Use whatever logging system is better for you...
+         System.out.println("Call to getMBeanInfo !");
+         return super.getMBeanInfo(metadata);
+      }
+   }
+}
+            
+            
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch05.html b/mx4j-3.0.2/docs/ch05.html new file mode 100644 index 0000000..f25be7e --- /dev/null +++ b/mx4j-3.0.2/docs/ch05.html @@ -0,0 +1,413 @@ +Chapter 5. MX4J HTTP Adaptor

Chapter 5. MX4J HTTP Adaptor

HttpAdaptor

Introduction

+ The HttpAdaptor offers a basic way to interface with an MX4J agent. It contains a simple HTTP 1.0 server, + able to translate HTTP requests to JMX requests. Obviously it has some limitations, like not being able to + manipulate data which cannot be obtained from Strings. As an advantage HTTP traffic is usually enabled through firewalls + and you can use your browser as a client. +

+ The MX4J HttpAdaptor is built basically to serve XML data. Requests are made with normal http requests and they are + answered by constructing a XML tree containing the requested data. The request may also have variables which + may specify exactly the requested data. The XML tree can be later processed by defining a ProcessorMBean, which has the task to + take the XML tree and do something with it. The processor will also be responsible to serve requests not understood by + the server. In this way an appropriate processor can serve images and raw html. Currently there are two Processors defined: +

  • + DefaultProcessorMBean: It does not modify the XML tree limiting itself to publish the tree as text. Defining + the content-type as text/xml. This usually means that your browser will display the XML text. This processor won't server + any data besides the XML files. +

  • + XSLTProcessorMBean: This processor takes the XML tree and transforms it to HTML by means of XSLT. This requires that + you use some JAXP-compliant XSLT. It has been tested mainly with + Xalan XSLT processor. + The processor is also able to serve images and other files. +

+ +

+ As the processor is an MBean it means you can deploy and modify it on runtime. The HttpAdaptorMBean defines three methods to set the Processor. + If no processor is defined or an error is found, the DefaultProcessor will be used. +

Parameters and operations

+ The HttpAdaptor is an MBean defined by the interface HttpAdaptorMBean. It contains the following parameters. +

  • + Port: Defines the port in which the server will be listening to. By default is 8080. +

  • + Host: Defines the host name in which the server will be listening to. By default is localhost. This means that + you can't access the server from another computer. This is good for security reasons, forcing you to explicitly open the server to the outside. + You can also use 0.0.0.0 which will open the server to all local interfaces +

  • + Alive: Boolean property which tells whether the server is running or not. +

  • + AuthenticationMethod: Sets the authentication method. Valid values are none, basic, digest. Please refer to the security chapter +

  • + Processor: This sets the processor object to be used after the XML tree construction. If used the ProcessorName is set to null. +

  • + ProcessorName: This sets the MBean's ObjectName to be used as XML processor. If used then Processor is set to null. The MBean has to implement the + mx4j.tools.adaptor.http.ProcessorMBean interface +

  • + ProcessorNameString: The same as before but the object name is passed as a string +

  • + ProcessorClass: This will take a class name as string and instantiate a class object. The class has to implement the + mx4j.tools.adaptor.http.ProcessorMBean interface, and you have to set the ProcessorName or ProcessorNameString property +

  • + SocketFactory: Replaces the default socket factory with another, for example, the mx4j.tools.adaptor.http.ssl.SSLFactory +

  • + SocketFactoryName: Replaces the default socket factory with another using an ObjectName, the pointed mbean has to have an + public ServerSocket createServerSocket(int port, int backlog, String host) throws IOException method +

  • + SocketFactoryNameString: Same as previous but it takes a String object +

  • + StartDate: Date and Time when the Adaptor was started +

  • + RequestsCount: Total amount of requests served +

  • + Version: HttpAdaptor's version +

+

+ The HttpAdaptor accept the following operations +

  • + start(): Starts the HttpAdaptor, notice that the server does not start by itself +

  • + stop(): Stops the server +

  • + addCommandProcessor(String path,HttpCommandProcessor processor): It adds a command processor and assigns it to the path. + You can use this to create your own command processors which generate a customized XML tree. Notice that + if the path was assigned before this command will replace the previous definition +

  • + addCommandProcessor(String path,String classname): Same as previous but the processor object is + indicated with a classname, the operation will try to instantiate an object of the given class, check that implements + the + mx4j.tools.adaptor.http.HttpCommandProcessor interface, and assign it to the indicated path +

  • + void removeCommandProcessor(String path): Removes a command processor assigned to the give path +

+

Security

+ The HttpAdaptor is in no way guaranteed to be secure. However basic authentication and SSL support are available. +

Basic Authentication

+ The Basic Authentication method provides a weak form of protection. When it is set your browser should prompt you for a username + and password which are compared with the ones stored in the Adaptor. To add a username/password pair use the + addAuthorization method. + As mentioned before the basic authentication is weak since your username and password are sent with a weak encoding (Base64). However it can + be prefectly used in secured networks or via enabling SSL. +

SSL support

+ The HttpAdaptor can use SSL instead of normal sockets. For that is necessary three steps: +

  • Install JSSE:

    JSSE is necessary to run the Adaptor with SSL support. It is possible to use either JSSE version 1.0.2 available + here, + or JDK 1.4. JSSE comes with 3 jar files which should be added to your classpath: jsse.jar, jcert.jar and jnet.jar. Another alternative + is to put those files at your JAVA_HOME/lib/ext dir. In case you are using JDK 1.4 you don't need to do this +
+
  • Create server certificate:

    Use the keytool command to create a server certificate. For example

    + keytool -genkey -keystore certs -keyalg RSA +

    where certs is the keystore file name. + You will be prompted for a password for the keystore and the certificate distinguished name. + Notice that your browser will probably + complain about the vailidty of the key since it was signed by yourself.

    <strong>Note that if the key generation algorithm is not RSA but something else your browser may not accept it</strong>
+
  • Configure HttpAdaptor:

    Finally you should change the default socket factory for a SSL factory. To do that + you should use the SocketFactory attribute passing a + mx4j.tools.adaptor.http.ssl.SSLFactory object. The SSLFactory object should be previoulsy configured with + your keystore and key. +
+

+ After this you can start the HttpAdaptor as usual and point to https://host:port instead of http://host:port +

SSLFactory

The SSLFactory contains several parameters you need to configure to find the certificate keystore. They are in the SSLFactory Management interface

  • KeyStoreType: Sets the keystore type. If you used the keytool command this is JKS +
  • KeyStoreFileName: Filename of the certificate file +
  • KeyStorePassword: Keystore password +
  • KeyManagerAlgorithm: Keymanagers's algorithm, by default is SunX509 +
  • KeyManagerPassword: Keymanagers's password +
  • SSLProtocol: SSL's protocol, by default is SSLv3 +

Usage

+ To use the HttpAdaptor you should instantatiate the MBean and register it to the right server. Later you can set up the + desired parameters and invoke start to init the operation. Remember to add a JAXP-compliant parser such as xerces to the + CLASSPATH. If you want to use the XSLTAdaptor you should also add xalan.jar to the CLASSPATH. If you want to use SSL add + the JSSE jar files +

Example 5.1. Instantiating the HttpAdaptor

+import mx4j.tools.adaptor.http.HttpAdaptor;
+
+MBeanServer server = ...;
+HttpAdaptor adapter = new HttpAdaptor();
+ObjectName name = new ObjectName("Server:name=HttpAdaptor");
+server.registerMBean(adapter, name);
+adapter.setPort(XXX);
+adapter.setHost("XXX");
+adapter.start();
+
+or...
+server.createMBean("mx4j.tools.adaptor.http.HttpAdaptor", name, null);
+server.setAttribute(name, new Attribute("Port", new Integer(XXX)));
+server.setAttribute(name, new Attribute("Host", "XXX"));
+server.invoke(name, "start", null, null);
+         

+ If you wan to use a non-default Processor. You may instantiate and install it as follow +

Example 5.2. Installing a non-default Processor

+MBeanServer server = ...;
+ObjectName name = new ObjectName("Server:name=HttpAdaptor");
+ObjectName processorName = new ObjectName("Server:name=XSLTProcessor");
+server.createMBean("mx4j.tools.adaptor.http.HttpAdaptor", name, null);
+server.createMBean("mx4j.tools.adaptor.http.XSLTProcessor", processorName, null);
+server.setAttribute(name, new Attribute("ProcessorName", processorName));
+         
+

Available requests

+ The HttpAdaptor works by interpreting requests and executing some action. The Adaptor has a list of available requests + and they produce an XML ouput tree (Or an exception...). New request handlers can be added if necessary, creating + a + mx4j.tools.adaptor.http.HttpCommandProcessor implementation, and add it to the HttpAdaptor + using the addCommandProcessor and removeCommandProcessor. +

+ The following is a list of the currently available requests, and the results and parameters required. +

  • + http://host:port/serverbydomain Returns a list of the MBeans available in the server grouped by domain. The result tree is as follows: +

    +<Server>
    +	<Domain name="Http">
    +		<MBean classname="mx4j.tools.adaptor.http.HttpAdaptor" description="HttpAdaptor MBean" objectname="Http:name=HttpAdaptor"></MBean>
    +		<MBean classname="mx4j.tools.adaptor.http.XSLTProcessor" description="XSLT Processor" objectname="Http:name=XSLTProcessor"></MBean>
    +	</Domain>
    +	<Domain name="JMImplementation">
    +		<MBean classname="javax.management.MBeanServerDelegate" description="" objectname="JMImplementation:type=MBeanServerDelegate"></MBean>
    +	</Domain><Domain name="Test">
    +</Server>
    +                     
    +

    The request can accept the following parameters:

    +
    • instanceof: Filters the MBeans whether they + are instance of the class. For instance + + http://host:port/serverbydomain?instanceof=javax.management.timer.Timer + will produce a list of all timers +
    • querynames: Filters the MBeans by objectname for instance + + http://host:port/serverbydomain?querynames=*:* + will produce a list of all mbeans whether + http://host:port/serverbydomain?querynames=Test:* will only contain those MBeans in the Test domain +
    +

  • + http://host:port/server Returns a list of the MBeans available in the server. The result tree is as follows: +

    +<Server>
    +	<MBean objectname="Http:name=HttpAdaptor"></MBean>
    +	<MBean objectname="Http:name=XSLTProcessor"></MBean>
    +	<MBean objectname="JMImplementation:type=MBeanServerDelegate"></MBean>
    +</Server>
    +                     
    +

    The request can accept the following parameters:

    +
    • instanceof: Filters the MBeans whether they + are instance of the class. For instance + + http://host:port/serverbydomain?instanceof=javax.management.timer.Timer + will produce a list of all timers +
    +

  • + http://host:port/mbean?objectname=XXX Returns the description of the referred MBean. + It requires that the target objectname is passed on the request. The result tree for the request is as follows + http://host:port/mbean?objectname=Test:name=test1 +

    +<MBean classname="test.mx4j.tools.adaptor.http.HttpAdaptorXMLTest$TestClass" description="" objectname="Test:name=test1">
    +	<Attribute availability="RO" description="" isnull="false" name="Double" type="java.lang.Double" value="0.0"/>
    +	<Attribute availability="RW" description="" isnull="false" name="Str" type="java.lang.String" value="t1"/>
    +	<Attribute availability="RO" description="" isnull="false" name="True" type="boolean"  value="true"/>
    +	<Constructor description="" name="test.mx4j.tools.adaptor.http.HttpAdaptorXMLTest$TestClass">
    +		<Parameter description="" id="0" name="" type="java.lang.String"/>
    +	</Constructor>
    +	<Operation description="" impact="unknown" name="aMethod" return="java.lang.Boolean">
    +		<Parameter description="" id="0" name="" type="java.lang.String">
    +		</Parameter>
    +	</Operation>
    +	<Operation description="" impact="unknown" name="anotherMethod" return="void">
    +		<Parameter description="" id="0" name="" type="java.lang.String"></Parameter>
    +		<Parameter description="" id="1" name="" type="int"></Parameter>
    +	</Operation>
    +	<Notification description="test" name="name">
    +		<Type name="test1"></Type>
    +		<Type name="test2"></Type>
    +		</Notification>
    +</MBean>
    +                     
    +                  
    +

    The Attribute element may have an aggregation attribute for composite types array, collection and map

    +

    The request can accept the following extra parameters:

    +
    • attributes: if set to false as + + http://host:port/mbean?objectname=Test:name=test1&attributes=false + no attributes are included in the result tree +
    • operations: if set to false as + + http://host:port/mbean?objectname=Test:name=test1&operations=false + no operations are included in the result tree +
    • constructors: if set to false as + + http://host:port/mbean?objectname=Test:name=test1&constructors=false + no constructors are included in the result tree +
    • notifications: if set to false as + + http://host:port/mbean?objectname=Test:name=test1&notifications=false + no notifications are included in the result tree +
    +

  • + http://host:port/getattribute?objectname=XXX&attribute=XXX&format=ZZZ + Gets the value of an attribute. This is an operation intended to get certain types + of attributes in a usable format, in particular arrays. If format is omited or not understood + the default value is returned like: +

    +<MBean objectname="Test:name=test1">
    +	<Attribute classname="java.lang.String" isnull="false" name="Str" value="t1"/>" +
    +</MBean>"
    +                     
    + However if format=array and the attribute is actually an array the result is like +
    +<MBean objectname="Test:name=test3">
    +	<Attribute classname="[Ljava.lang.String;" isnull="false" name="StrArray">
    +		<Array componentclass="java.lang.String" length="3">
    +			<Element element="a" isnull="false" index="0"/>
    +			<Element element="b" isnull="false" index="1"/>
    +			<Element element="c" isnull="false" index="2"/>
    +		</Array>
    +	</Attribute>
    +</MBean>
    +                     
    + If format=collection and the attribute is a collection the result is like +
    +<MBean objectname="Test:name=test3">
    +	<Attribute classname="java.util.List" isnull="false" name="List">
    +		<Collection length="3">
    +			<Element elementclass="java.lang.String" element="a" index="0"/>
    +			<Element elementclass="java.lang.String" element="b" index="1"/>
    +			<Element elementclass="java.lang.String" element="c" index="2"/>
    +		</Collection>
    +	</Attribute>
    +</MBean>
    +                     
    + If format=map and the attribute is a map the result is like +
    +<MBean objectname="Test:name=test3">
    +	<Attribute classname="java.util.Map" isnull="false" name="Map">
    +		<Map length="3">
    +			<Element elementclass="java.lang.String" element="a" keyclass="java.lang.Integer" key="0"/>
    +			<Element elementclass="java.lang.String" element="b" keyclass="java.lang.Integer" key="1"/>
    +			<Element elementclass="java.lang.String" element="c" keyclass="java.lang.Integer" key="2"/>
    +		</Map>
    +	</Attribute>
    +</MBean>
    +                     
    +

    The request requires the following parameters:

    +
    • objectname: Target objectname +
    • attribute: Attribute's name +
    • format: Result format. The currently supported types are array, collection and map +
    +

  • + http://host:port/setattribute?objectname=XXX&attribute=XXX&value=XXX Sets the value of one attribute. This is an operation request + rather that a data request. All operation requests are returned as a MBeanOperation tree, which looks as follow +

    +<MBeanOperation>
    +	<Operation objectname="Test:name=test1" operation="setattribute" result="success"/>
    +</MBeanOperation>
    +                     
    + or if there was an error it looks like +
    +<MBeanOperation>
    +	<Operation errorMsg="Attribute Number not found" objectname="Test:name=test1" operation="setattribute" result="error"/>
    +</MBeanOperation>
    +                     
    +

    The request requires the following parameters:

    +
    • objectname: Target objectname +
    • attribute: Attribute's name +
    • value: Attribute's value +
    +

    + <strong>setattribute is deprecated in 1.1.1 and setattributes should be used instead </strong> +

    +

  • + http://host:port/setattributes?objectname=XXX&value_YYY=XXX&value_YYY2=XXX2&[set_XXX=Set | setall] Sets the value of many attributes. + This is an operation request. The result will be a list of the attributes set. +

    +<MBeanOperation>
    +	<Operation objectname="Test:name=test1" operation="setattribute">
    +		<Attribute attribute="YYY" value="XXX" result="success"/>
    +		<Attribute attribute="YYY2" value="XXX2" result="success"/>
    +	</Operation>
    +</MBeanOperation>
    +                     
    + or if there was an error it looks like +
    +<MBeanOperation>
    +	<Operation objectname="Test:name=test1" operation="setattribute">
    +		<Attribute attribute="YYY" errorMsg="Some error message" result="error"/>
    +		<Attribute attribute="YYY2" value="XXX2" result="success"/>
    +	</Operation>
    +</MBeanOperation>
    +                     
    +

    The request requires the following parameters:

    +
    • objectname: Target objectname +
    • value_XXX: Value for the atribute name XXX. The request can pass many parameters, but it depends on + the set_XXX parameters which values will be set +
    • [set_XXX=Set | setall]: Indicates which value is used. If setall is present it will set all attributes passed. + If only set_XXX is passed that will be set. +
    +

    + <strong>Notice that in case of one attribute failing the other will be set anyway</strong> +

    +

  • + http://host:port/invoke?objectname=XXX&operation=XXX&type0=XXX&value0=XXX... + Invokes an operation on the target MBean +

    +<MBeanOperation>
    +	<Operation objectname="Test:name=test1" operation="invoke" result="success" return="true"/>
    +</MBeanOperation>
    +                     
    +

    The following parameters are required:

    +
    • objectname: Target objectname +
    • operation: Name of the operation +
    +

    If you want to invoke an operation which takes parameters, add the following parameters:

    +
    • typeX: Type of the parameter number X. They are enumerated starting from 0 +
    • valueX: Value of the parameter number X. They are enumerated starting from 0 +
    +

  • + http://host:port/delete?objectname=XXX + Removed the target MBean +

    +<MBeanOperation>
    +	<Operation objectname="Test:name=test1" operation="delete" result="success"/>
    +</MBeanOperation>
    +                     
    +

    The following parameter is required:

    +
    • objectname: Target objectname +
    +

  • + http://host:port/create?class=XXX&objectname=XXX&type0=XXX&value0=XXX... + Creates a target MBean invoking the corresponding constructor +

    +<MBeanOperation>
    +	<Operation objectname="Test:name=test1" operation="invoke" result="success" return="true"/>
    +</MBeanOperation>
    +                     
    +

    The following parameters are required:

    +
    • classname: Target objectname +
    • objectname: Target objectname +
    +

    If you want to invoke create using a constructor which takes parameters, add the following parameters:

    +
    • typeX: Type of the parameter number X. They are enumerated starting from 0 +
    • valueX: Value of the parameter number X. They are enumerated starting from 0 +
    +

  • + http://host:port/constructors?classname=mx4j.tools.adaptor.http.HttpAdaptor + Queries the MBean server of the available constructors for a class name resulting on +

    +<Class classname="mx4j.tools.adaptor.http.HttpAdaptor">
    +	<Constructor name="mx4j.tools.adaptor.http.HttpAdaptor">
    +		<Parameters ...>
    +		</Parameters>
    +	</Constructor>
    +</Class>
    +                     
    +

    The following parameter is required:

    +
    • classname: Target classname +
    +

    In case the class is not found an exception will be sent as

    +
    +	<Exception classname="mx4j.tools.adaptor.http.HttpAdaptor" errorMsg="class XXX not found"/>
    +                                       
    +

  • + http://host:port/empty + The empty request returns an empty xmltree. Is basically used to create 'static' requests + made on pure xsl. The result tree is as +

    +<empty/>
    +                     
    +                  
    +

+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch05s10.html b/mx4j-3.0.2/docs/ch05s10.html new file mode 100644 index 0000000..787ae7f --- /dev/null +++ b/mx4j-3.0.2/docs/ch05s10.html @@ -0,0 +1,146 @@ +XSLTProcessor

XSLTProcessor

Introduction

+ The XSLTProcessor can be used to customize the output of the HttpAdaptor. + It basically takes the XML output of the HttpAdaptor and process it by using + XSL. This enables you to customize the look as you wish. Normally the processing + will produce HTML files you can display in a standard browser. +

+ The actual files to be used are specified via the File property. This points to dir + where the template files are. Optionally you can package all your files in a .jar + or .zip file and deliver that instead. +

+ The processor identifies which xsl template to use from the HTTP request. i.e. + if the request is mbean it will try to find a mbean.xsl file and use it to process + the resulting XML tree. You can modify this by passing a template variable. For instance. + http://host:port/mbean?objectname=Test:name=test1&template=testmbean + In that case the HttpAdaptor will build a mbean resulting tree but instead of being + processed using the mbean.xsl, it will use testmbean.xsl. +

+ An identity transformation file is included in the distribution and you can use it to get the original XML message. + For instancehttp://host:port/mbean?objectname=Test:name=test1&template=identity +

+ If you need to deliver extra files like images or raw HTML, you can add it to the + target filesystem. The processor knows a few MIME types which are classified according to + the extension. This includes: +

  • + GIF images: extension=".gif", MIME type: "image/gif" +

  • + PNG images: extension=".png", MIME type: "image/png" +

  • + JPG images: extension=".jpg", MIME type: "image/jpg" +

  • + HTML raw files: extension=".html,.html", MIME type: "text/html" +

  • + HTML raw files: extension=".css", MIME type: "text/css" +

  • + XML files: extension=".xml", MIME type: "text/xml" +

  • + XSL files: extension=".xsl", MIME type: "text/xsl" +

  • + etc... +

+

+ You can add extra MIME type with the addMimeType method. If a MIME type is not found + for a given extension a text/plain type is assigned +

Compatibility

+ For the XSLTProcessor to work you need a JAXP parser (Which you need for using the + raw HttpAdaptor too) and a TRaX (Transformation API for XML) library. In principle + anyone should work but there are differences between the different implementations + and versions. It follows some tested and working platforms: +

  • + Java SDK 1.4.0, using the bundled parser and transformation library +
  • + Java SDK 1.4.1, using the bundled parser and transformation library +
  • + Java SDK 1.4.0 + saxon 6.5.2, Working since MX4j version 1.1.1. Not + working with MX4J version 1.1 +
  • + Java SDK 1.4.0 + saxon 7.2, Working since MX4j version 1.1.1. +
  • + Java SDK 1.4.0 + jd.xslt 1.2.8, Working since MX4j version 1.1.1. +
+

+ Combinations reported not to work +

+
  • + Usage of xalan 2.0 and xerces 1.2.3 has been reported as not working +
+

Attributes

+ The XSLTProcessor has the following attributes and operations that you can use to customize + the operation. +

  • + File: Determines where to look for xsl files. If the + target file is a dir, it assumes that xsl files are located on the dir. Otherwise + if it points to a .jar or .zip files, it assumes that the files are located inside. + Pointing it to a file system is especially useful for testing. +

  • + PathInJar: Sets the dir in the jar file where xsl files reside +

  • + UseJar: Read-only. It tells whether the processor is reading from a jar file +

  • + UsePath: Read-only. It tells whether the processor is reading from a dir +

  • + UseCache: Indicates whether to cache the transformation objects. This + speeds-up the process. It is usually set to true, but you can set it to false for easier testing +

  • + Locale: It's the locale used for i18n pruposes. By default it is "en" +

  • + LocaleString: Sets the locale by using a String +

  • + addMimeType: Adds a mime type in the form of a addMimeType(".pdf", "application/pdf"). The XSLTProcessor + will use th given MIME type for files with the given extension +

+

+ For example you can set the attributes as follow: +

+	
+ObjectName processorName = new ObjectName("Server:name=XSLTProcessor");
+server.createMBean("mx4j.tools.adaptor.http.XSLTProcessor", processorName, null);
+
+// set it to use a dir
+server.setAttribute(processorName, new Attribute("File", "/home/tibu/devel/mx4j/src/core/mx4j/adaptor/http/xsl"));
+
+// set it to use a compressed file
+server.setAttribute(processorName, new Attribute("File", "/home/tibu/skins.jar"));
+
+// set the target dir
+server.setAttribute(processorName, new Attribute("PathInJar", "/mx4j/adaptor/http/xsl"));
+
+// set not to use cache
+server.setAttribute(processorName, new Attribute("UseCache", Boolean.FALSE));
+
+// set not to use cache
+server.setAttribute(processorName, new Attribute("LocaleString", "fi"));
+
+// adds a mime type
+server.invoke(processorName, "addMimeType", new Object[] {".pdf", "application/pdf"}, new String[] {"java.lang.String", "java.lang.String"});
+	
+				
+

XSL Development

+ If you want to develop your own GUI, please refer to the xsl sources of the + GUI delivered in the mx4j-tools.jar file +

+ An important element to help you in the development are implicit params passed to + the template. This includes all the request variables in the form of request.variable + params. For instance with the follwing request +

+ http://host.port/mbean?objectname=Test:name=test1&template=testmbean +

+

+ There will be two paramaters request.objectname and request.template +

+

+ Besides, there is alwyas a locale variable as request.locale. Notice that you can explicitly set the + locale in a request passing the locale varible like + http://host.port/mbean?objectname=Test:name=test1&template=testmbean&locale=de +

+

Internationalization

+ Since MX4J version 1.1.1 the XSLTProcessor supports internationalization. This is done + replacing the previously hardcoded strings with a call to the 'str' template on the + common.xsl. The 'str' template takes an id which points to the string actually displayed on + screen. An xml file contains the strings indexed by id. With the current distribution a + strings_en.xml file is shipped containing the standard english translation. +

+ If you want to create your own translation add or replace strings_XX.xml files by your + own translation on the jar file. The strings accept + a replacement of up to two parameters which are indicated wth brackets like {0} or {1} +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch06.html b/mx4j-3.0.2/docs/ch06.html new file mode 100644 index 0000000..ac4e4e5 --- /dev/null +++ b/mx4j-3.0.2/docs/ch06.html @@ -0,0 +1,224 @@ +Chapter 6. MX4J Tools

Chapter 6. MX4J Tools

XML Configuration Loader

Loading and starting MBeans using XML files

+ The javax.management.loading.MLet class provides a way to load + and instantiate MBeans from a configuration file called MLet file.
+ The MLet file has however a limited syntax, since it can only instantiate and register + MBeans into an MBeanServer: no method invocation is possible, no MBean's unregistration, + no possibility to use factories to create objects and so on. + Furthermore, the MLet file format is not XML. +

+ MX4J's mx4j.tools.config.ConfigurationLoader defines an XML configuration + file format where it is possible to specify creation of objects, their registration + into an MBeanServer, their unregistration, the invocation of methods, both via MBeanServer + (JMX invocations) and via normal Java invocation. +

+ Let's see a simple example that registers MX4J's HTTP adaptor into an MBeanServer.
+ First, we need a small class that creates the MBeanServer and the ConfigurationLoader: +

+

Example 6.1. Main class for configuration loading

+            
+public class Startup
+{
+   public static void main(final String[] args) throws Exception
+   {
+      // MX4J's logging redirection to Apache's Commons Logging
+//    mx4j.log.Log.redirectTo(new CommonsLogger());
+
+      // Create the MBeanServer
+      MBeanServer server = MBeanServerFactory.createMBeanServer();
+
+      // Create the ConfigurationLoader
+      ConfigurationLoader loader = new ConfigurationLoader();
+
+      // Register the configuration loader into the MBeanServer
+      ObjectName name = ObjectName.getInstance(":service=configuration");
+      server.registerMBean(loader, name);
+
+      // Tell the configuration loader the XML configuration file
+      Reader reader = new BufferedReader(new FileReader(args[0]));
+      loader.startup(reader);
+      reader.close();
+   }
+}
+            
+            
+

+ The class simply creates an MBeanServer, creates the ConfigurationLoader and tells + the configuration loader to read an XML file from the path passed as argument.
+ The XML file can be the following: +

+

Example 6.2. XML file for configuration of MX4J's HttpAdaptor

+            
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<configuration>
+   <startup>
+      <create classname="mx4j.tools.adaptor.http.HttpAdaptor" objectname="connectors:type=http" loadername="null">
+         <arg type="int">9090</arg>
+         <arg type="string">localhost</arg>
+      </create>
+      <create classname="mx4j.tools.adaptor.http.XSLTProcessor" objectname="connectors:type=http,processor=xslt" loadername="null"/>
+      <call objectname="connectors:type=http" attribute="ProcessorNameString">
+         <arg type="string">connectors:type=http,processor=xslt</arg>
+      </call>
+      <call objectname="connectors:type=http" operation="start"/>
+   </startup>
+
+   <shutdown>
+      <call objectname="connectors:type=http" operation="stop"/>
+   </shutdown>
+</configuration>
+            
+            
+

+ The first thing to notice is that the configuration file is splitted in 2 sections, namely + startup and shutdown. + We will see later how the shutdown section comes into play. +

+ Let's examine the startup section.
+ It contains the creation of the mx4j.tools.adaptor.http.HttpAdaptor + MBean (passing 2 arguments to its constructor) + and of the mx4j.tools.adaptor.http.XSLTProcessor MBean via the + create element.
+ These MBeans are registered in the MBeanServer that also manages the ConfigurationLoader MBean.
+ Both these 2 operations are possible also with the MLet file.
+ What is different is the possibility to set JMX attributes and invoke JMX operations on the + MBeans just registered. This is achieved with the call element: first the + XSLT processor is set onto the HTTP adaptor, then the HTTP adaptor itself is started. +

+ Let's see now a more complex example: how to register and start a JSR 160 connector server. +

+

Example 6.3. XML file for configuration of a JSR 160 connector server

+            
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<configuration>
+   <startup>
+      <create classname="mx4j.tools.naming.NamingService" objectname="naming:type=rmiregistry">
+         <arg type="int">1099</arg>
+      </create>
+      <call operation="start" objectname="naming:type=rmiregistry" />
+
+      <object objectid="rmi">
+         <call classname="javax.management.remote.JMXConnectorServerFactory" method="newJMXConnectorServer">
+            <arg type="javax.management.remote.JMXServiceURL">
+               <new classname="javax.management.remote.JMXServiceURL">
+                  <arg type="string">service:jmx:rmi://localhost/jndi/rmi://localhost:1099/jmx</arg>
+               </new>
+            </arg>
+            <arg type="java.util.Map" />
+            <arg type="javax.management.MBeanServer" />
+         </call>
+      </object>
+      <register objectname="connectors:type=rmi,protocol=jrmp">
+         <arg type="object" refobjectid="rmi" />
+      </register>
+      <call method="start" refobjectid="rmi" />
+   </startup>
+
+   <shutdown>
+      <call method="stop" refobjectid="rmi" />
+      <call operation="stop" objectname="naming:type=rmiregistry" />
+      <unregister objectname="connectors:type=rmi,protocol=jrmp" />
+      <unregister objectname="naming:type=rmiregistry" />
+   </shutdown>
+</configuration>
+            
+            
+

+ Note the usage of the object element. It is possible to assign an ID (in the example + is "rmi") to objects that gets created in the XML file, and refer to them afterwards using the + refobjectid attribute.
+ Note also the syntax to invoke the static call to the JMXConnectorServerFactory, + and the syntax to invoke non-JMX operations when calling "start" on the "rmi" object.
+ Objects can be created by using the new element, and constructor arguments specified + with the arg element. Note how null arguments are passed to the + JMXConnectorServerFactory (the second and third argument of type Map and MBeanServer). +

+ Let's now explain the meaning of the shutdown section.
+ If the startup section defines how the MBeans should be created, registered and + put into operation (for example by calling "start" operations on them), the shutdown section defines + how the MBeans should be stopped from operating and eventually unregistered. +

+ It remains the problem of how to make the configuration loader invoke the shutdown section. +

+ This is done by specifying a port as attribute of the configuration element; + the configuration loader will start a server socket on that port, so that from another JVM will be + possible to connect to that socket and invoke the shutdown command.
+ For security reasons, the server socket will listen on the loopback interface of the host, so that + only JVMs started on the same host can invoke the shutdown section. +

+ Below, an example of a class that invokes the shutdown section and a sample XML file that specifies + the port for the server socket. +

+

Example 6.4. Simple XML file that specifies the command port

+            
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<configuration port="9876">
+   <startup>
+      <create classname="mx4j.tools.naming.NamingService" objectname="naming:type=rmiregistry">
+         <arg type="int">1099</arg>
+      </create>
+      <call operation="start" objectname="naming:type=rmiregistry" />
+   </startup>
+
+   <shutdown>
+      <call operation="stop" objectname="naming:type=rmiregistry" />
+      <unregister objectname="naming:type=rmiregistry" />
+   </shutdown>
+</configuration>
+            
+            
+

+

Example 6.5. Simple Java class that invokes "shutdown" to execute the shutdown section

+            
+public class Shutdown
+{
+   public static void main(String[] args) throws Exception
+   {
+      Socket socket = new Socket("127.0.0.1", 9876);
+      socket.getOutputStream().write("shutdown".getBytes());
+      socket.close();
+   }
+}
+            
+            
+

+ The XML configuration DTD is the following: +

+

Example 6.6. XML configuration DTD

+            
+<!ELEMENT configuration (startup?, shutdown?)>
+<!ATTLIST configuration port CDATA #IMPLIED>
+
+<!ELEMENT startup (call*, create*, object*, register*)>
+
+<!ELEMENT shutdown (call*, unregister*)>
+
+<!ELEMENT call (arg*)>
+<!ATTLIST call classname CDATA #IMPLIED>
+<!ATTLIST call objectname CDATA #IMPLIED>
+<!ATTLIST call refobjectid CDATA #IMPLIED>
+<!ATTLIST call method CDATA #IMPLIED>
+<!ATTLIST call operation CDATA #IMPLIED>
+<!ATTLIST call attribute CDATA #IMPLIED>
+
+<!ELEMENT create (arg*)>
+<!ATTLIST create classname CDATA #REQUIRED>
+<!ATTLIST create objectname CDATA #IMPLIED>
+<!ATTLIST create loadername CDATA #IMPLIED>
+
+<!ELEMENT object (call | new)>
+<!ATTLIST object objectid CDATA #REQUIRED>
+
+<!ELEMENT new (arg*)>
+<!ATTLIST new classname CDATA #REQUIRED>
+
+<!ELEMENT register (arg*)>
+<!ATTLIST register objectname CDATA #IMPLIED>
+
+<!ELEMENT unregister EMPTY>
+<!ATTLIST unregister objectname CDATA #REQUIRED>
+
+<!ELEMENT arg (call | new | #PCDATA)>
+<!ATTLIST arg type CDATA #REQUIRED>
+            
+            
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch06s03.html b/mx4j-3.0.2/docs/ch06s03.html new file mode 100644 index 0000000..74809ca --- /dev/null +++ b/mx4j-3.0.2/docs/ch06s03.html @@ -0,0 +1,229 @@ +Dynamic MBeans

Dynamic MBeans

AbstractDynamicMBean base class for DynamicMBean implementation

+ Writing an MBean by implementing the + javax.management.DynamicMBean interface can be a heavy + and tedious task. +

+ MX4J provides the class + mx4j.AbstractDynamicMBean as a base class to implement a + dynamic MBean. +
This class handles most of the tedious work that must be done when implementing dynamic MBeans, + so that the MBean implementor has just to override few methods to provide the needed information required + to create the MBean. +

+ The methods of the + AbstractDynamicMBean class can be divided in 2 groups: the methods of the + DynamicMBean interface and the methods added by + AbstractDynamicMBean itself. +

+ AbstractDynamicMBean already implements all the methods of the + DynamicMBean + interface, and normally the MBean implementor does not have to override them. +
+ The methods belonging to the second group are normally overridden by the MBean implementor to provide the MBean metadata information, + and are the following: +

  • + createMBeanAttributeInfo + , if the MBeans has manageable attributes +
  • + createMBeanOperationInfo + , if the MBeans has manageable operations +
  • + createMBeanNotificationInfo + , if the MBeans has manageable notifications +
  • + createMBeanConstructorInfo + , if the MBeans has manageable constructors +
  • + getMBeanDescription +
+

+ A third group of methods belongs to the subclass of + AbstractDynamicMBean and are the implementation + methods, the ones that implement the functionality of the MBean itself (see below for an example). +

+

Example 6.7. Subclassing + AbstractDynamicMBean +

+               
+public class SimpleDynamic extends AbstractDynamicMBean
+{
+   /* Method of the second group that is overridden */
+   protected MBeanAttributeInfo[] createMBeanAttributeInfo()
+   {
+      return new MBeanAttributeInfo[]
+      {
+         new MBeanAttributeInfo("Name", String.class.getName(), "The name", true, true, false)
+      };
+   }
+
+   /* Method of the second group that is overridden */
+   protected String getMBeanDescription()
+   {
+      return "A simple DynamicMBean";
+   }
+
+   /* Method of the third group that implements the MBean functionality */
+   public String getName() { ... }
+
+   /* Method of the third group that implements the MBean functionality */
+   public void setName(String name) { ... }
+}
+            
+            
+

+ As you can see above, no methods from the + DynamicMBean interface needs to be implemented. + It is sufficient to override some (or all) of the methods of the second group, and provide the relative methods + of the third group. +

+ Normally the MBean implementor extends + AbstractDynamicMBean, but if the MBean already extends another + class it is sufficient to implement + DynamicMBean and delegate to a subclass of + AbstractDynamicMBean, having care of calling the + + setResource + + method (see example below). +

+

Example 6.8. Delegating to + AbstractDynamicMBean subclass +

+               
+public class ComposedDynamic extends MyBaseClass implements DynamicMBean
+{
+   /* Create an AbstractDynamicMBean subclass */
+   private AbstractDynamicMBean delegate = new AbstractDynamicMBean()
+   {
+      protected MBeanAttributeInfo[] createMBeanAttributeInfo()
+      {
+         return new MBeanAttributeInfo[]
+         {
+            new MBeanAttributeInfo("Status", int.class.getName(), "The status", true, true, false),
+            new MBeanAttributeInfo("Enabled", boolean.class.getName(), "The enable status", true, false, true)
+         };
+      }
+
+      protected MBeanOperationInfo[] createMBeanOperationInfo()
+      {
+         return new MBeanOperationInfo[]
+         {
+            new MBeanOperationInfo("enable", "Enables this MBean", new MBeanParameterInfo[0], Void.class.getName(), MBeanOperationInfo.ACTION),
+            new MBeanOperationInfo("disable", "Disables this MBean", new MBeanParameterInfo[0], Void.class.getName(), MBeanOperationInfo.ACTION)
+         };
+      }
+   };
+
+   private int status;
+   private boolean enabled;
+
+   public ComposedDynamicMBean()
+   {
+      // Set the actual resource
+      delegate.setResource(this);
+   }
+
+   /* Implement the methods of DynamicMBean interface to delegate to the AbstractDynamicMBean subclass */
+
+   public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException
+   {
+      return delegate.getAttribute(attribute);
+   }
+
+   // Do the same with all other methods of DynamicMBean interface
+   ...
+
+   /* Methods of the third group that implements MBean functionality */
+
+   public void setStatus(int status)
+   {
+      this.status = status;
+   }
+
+   public int getStatus()
+   {
+      return status;
+   }
+
+   public boolean isEnabled()
+   {
+      return this.enabled;
+   }
+
+   public void enable()
+   {
+      this.enabled = true;
+   }
+
+   public void disable()
+   {
+      this.enabled = false;
+   }
+}
+            
+            
+

+ AbstractDynamicMBean can also be used for non-invasive management: if you already have a component + but you don't want to change it to implement a management interface, you can set it as target of a subclass of + AbstractDynamicMBean and provide the suitable metadata information. +

+

Example 6.9. Subclassing + AbstractDynamicMBean +

+               
+public class NonInvasiveDynamic extends AbstractDynamicMBean
+{
+   /* Methods of the second group that are overridden */
+   protected MBeanOperationInfo[] createMBeanOperationInfo()
+   {
+      return new MBeanOperationInfo[]
+      {
+         new MBeanOperationInfo("start", "Starts this MBean", new MBeanParameterInfo[0], Void.class.getName(), MBeanOperationInfo.ACTION),
+         new MBeanOperationInfo("stop", "Stops this MBean", new MBeanParameterInfo[0], Void.class.getName(), MBeanOperationInfo.ACTION)
+      };
+   }
+
+   protected String getMBeanDescription()
+   {
+      return "A non invasive DynamicMBean that manages resource";
+   }
+
+   /* Constructor that takes the managed resource */
+   public NonInvasiveDynamic(ExternalService service)
+   {
+      // Set the actual resource that this MBean represents.
+      setresource(service);
+   }
+
+/* Old main, before JMX
+   public static void main(String[] args) throws Exception
+   {
+      // Create the service
+      ExternalService service = new ExternalService();
+
+      // Start the service
+      service.start();
+   }
+*/
+   public static void main(String[] args) throws Exception
+   {
+      // Create the service
+      ExternalService service = new ExternalService();
+
+      MBeanServer server = MBeanServerFactory.createMBeanServer();
+      NonInvasiveDynamic mbean = new NonInvasiveDynamic(service);
+      ObjectName name = new ObjectName("domain:key=value");
+      server.registerMBean(mbean, name);
+
+      // Now start the service via JMX:
+      // Few lines more, but now the service is manageable !
+      server.invoke(name, "start", null, null);
+   }
+}
+            
+            
+

+ The example above shows how simple can be to plug JMX into already existing architectures, and how it is possible, + in few lines of code, to make services manageable (and remotely manageable with JSR 160) without even impacting + already existing service's code. +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch06s05.html b/mx4j-3.0.2/docs/ch06s05.html new file mode 100644 index 0000000..c2a11a2 --- /dev/null +++ b/mx4j-3.0.2/docs/ch06s05.html @@ -0,0 +1,142 @@ +Naming MBeans

Naming MBeans

+ MX4J ships with two naming MBeans, the NamingService and the CosNamingService, that wrap as MBeans respectively + the rmiregistry and the tnameserv tools provided with the JDK. +

The NamingService MBean

+ The NamingService MBean allows you to start the + rmiregistry in the same JVM as other MBeans, such as the RMI MBean (see examples in the documentation), or the + RMI adaptor. +
+ The MBean's class is + mx4j.tools.naming.NamingService. +

+ The usage of the NamingService MBean does not require additional libraries, as all the needed classes are already + shipped with the JDK. +

Deployment

+ The NamingService MBean is easily deployed into a JMX Agent. The following code snippet shows how to deploy it into + a JMX Agent. +

+

Example 6.10. Deploying the NamingService MBean

+                  
+MBeanServer server = MBeanServerFactory.createMBeanServer();
+ObjectName naming = new ObjectName("Naming:type=registry");
+server.createMBean("mx4j.tools.naming.NamingService", naming, null);
+               
+               
+

+ To use the NamingService MBean as rmiregistry, it must be started; + the NamingService MBean can be started and stopped at wish, simply by invoking the + start() and + stop() methods of the management interface. +
+

+

Example 6.11. Starting and stopping the NamingService MBean

+                  
+Object proxy = MBeanServerInvocationHandler.newProxyInstance(server, naming, NamingServiceMBean.class, false);
+NamingServiceMBean mbean = (NamingServiceMBean)proxy;
+mbean.start();
+...
+mbean.stop();
+
+
+or using the MBeanServer:
+
+
+server.invoke(naming, "start", new Object[0], new String[0]);
+...
+server.invoke(naming, "stop", new Object[0], new String[0]);
+            
+               
+

+ It is also possible to specify the port on which the rmiregistry will run. Simply pass this parameter to + the constructor of the NamingService MBean. By default the rmiregistry runs on port 1099. +

+

Example 6.12. Changing the default port

+                  
+MBeanServer server = MBeanServerFactory.createMBeanServer();
+ObjectName naming = new ObjectName("Naming:type=registry");
+
+server.createMBean("mx4j.tools.naming.NamingService", naming, null, new Object[] {new Integer(2099)}, new String[] {"int"});
+
+
+or
+
+
+NamingService mbean = new NamingService(3099);
+server.registerMBean(mbean, naming);
+
+
+or via MLet file (specify the suitable codebase)
+
+
+<MLET CODE="mx4j.tools.naming.NamingService"
+      ARCHIVE="mx4j-tools.jar"
+      CODEBASE="../lib/">
+   <ARG TYPE="int" VALUE="4099">
+</MLET>
+               
+               
+

+ It is also possible to change the rmiregistry port at runtime. Just start the NamingService MBean, stop it after a while, + change the port it runs on, and restarting it, so that it will accept requests on the new port. +
+ Below you can see the steps needed to perform this change. +

+

Example 6.13. Changing the port at runtime

+                  
+MBeanServer server = MBeanServerFactory.createMBeanServer();
+ObjectName naming = new ObjectName("Naming:type=registry");
+server.createMBean("mx4j.tools.naming.NamingService", naming, null);
+Object proxy = MBeanServerInvocationHandler.newProxyInstance(server, naming, NamingServiceMBean.class, false);
+NamingServiceMBean mbean = (NamingServiceMBean)proxy;
+
+mbean.start();
+...
+mbean.stop();
+mbean.setPort(5099);
+mbean.start();
+            
+               
+

The CosNamingService MBean

+ The CosNamingService MBean is very similar to the NamingService MBean: it allows you to start + tnameserv in the same JVM as other MBeans. +
+ The MBean's class is + mx4j.tools.naming.CosNamingService. +

+ The usage of the CosNamingService MBean does not require additional libraries, as all the needed classes are already + shipped with the JDK. +

Deployment

+ The CosNamingService MBean is easily deployed into a JMX Agent, in a way very similar to the NamingService MBean. +

+ Exactly like the NamingService MBean, the CosNamingService MBean must be first registered in the MBeanServer and then + started using the management interface it exposes. +
+ There is the possibility to set the port on which the service will listen for incoming connections, exactly like the + NamingService MBean. +

+ One difference between the CosNamingService and the NamingService MBeans is that the latter provides and easy API + to be implemented, so that creating, starting and stopping it can be implemented easily by the MX4J team, + while the former does not. +

+ A consequence of this is that tnameserv is started using + + Runtime.exec() + + and stopped by killing the process created when starting the MBean. +

+ Since starting and stopping an external process may result in the + + start + + (); and + + stop + + (); returning + before the process is really started (or stopped), + it is recommended to sleep some time after start() and stop() in order to let + tnameserv to start and stop completely. +
+ A suggested value for this delay may be few seconds (1000-5000 milliseconds), but the value strongly depends on the + hardware and operative system. +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch06s10.html b/mx4j-3.0.2/docs/ch06s10.html new file mode 100644 index 0000000..49daa35 --- /dev/null +++ b/mx4j-3.0.2/docs/ch06s10.html @@ -0,0 +1,64 @@ +Mailer MBean

Mailer MBean

Introduction

+ The SMTP MBean is meant to be used to send emails from your JMX application. + The MBean's class is + mx4j.tools.mail.SMTP. +

+ You can use it in basically two ways: +

  • + Directly by calling the sendMail method +

  • + By listening notifications, for instance from a Timer or Monitor +

+

+ The usage of the MBean requires that you have JavaMail and the Java Activation Framework. + The MBean has been tested with JavaMail 1.2 and JAF 1.0.1. +

Configuration

+ The MBean has quite many attributes to work but as a minimum you should set up the + serverHost + and + To. After that you can start sending emails. +

+ If your server requires authentication, set the + LoginToServer attribute to true + and fill the + ServerUserName and + ServerPassword fields +

+ You can also set the source address by setting the + FromAddress field as well + as the + FromName field. The destination attributes can be set setting a comma separated + list of addresses by using the + To, + Cc and + Bcc attributes. + The addresses are not checked until a mail is actually sent, but in case some are not well formed, to those who are will be sent anyway +

+ To make the MBean to listen for notifications set the + ObservedObject field. The SMTPMBean + will register iteself as listener of that MBean and when a notification is received it will send the mail. + If you set the + NotificationName field, only notification names with that type will be + valid to send a mail. For instance "javax.management.monitor.string.differ" +

Keyword expanding

+ To make the content of the mail more customizable you can include keyword expansion + on the + Subject, and + Content field. The keywords + are special words set in between of $ signs. e.g. $date$. Those keywords will be replaced + before the mail is sent, so you can get text containing more information. + The recognized keywords are: +

  • + $date$ Expands to the current date formatted with locale format +

  • + $time$ Expands to the current time formatted with locale format +

  • + $datetime$ Expands to the current datetime formatted with locale format +

  • + $observed$ Expands to the observed MBean's ObjectName which triggered the mail +

  • + $notification$ Expands to the notification type which triggered the mail +

  • + $objectname$ Expands to the SMTPMBean's ObjectName +

+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch06s14.html b/mx4j-3.0.2/docs/ch06s14.html new file mode 100644 index 0000000..1fd7f10 --- /dev/null +++ b/mx4j-3.0.2/docs/ch06s14.html @@ -0,0 +1,74 @@ +Jython MBean

Jython MBean

Introduction

+ The JythonRunner MBean can be used to execute jython scripts. The main objective is + to use them for management tasks which are easiliy handled as scripts and that could be + modified and deployed at runtime. + The MBean's class is + mx4j.tools.jython.JythonRunner. +

+ You can use it in two ways: +

  • + By calling the runScript method +

  • + By listening notifications, for instance from a Timer or Monitor +

+

+ The usage of the MBean requires that you have jython installed. You can get a copy + at + http://www.jython.org. Jython is distributed + (as version 2.1) on a class file which is the installer and once execute will install the + jython distribution, e.g. at /usr/local/jython-2.1 or C:\Java\jython-2.1. Jython can be run in + two different ways depending on whether you want to use the jython standard library. + +

If you want to use the standard librarie, add the jython.jar as in the installation dir to the classpath. e.g. +

java -cp /usr/local/jython-2.1/jython.jar:mx4j-jmx.jar:mx4j-tools.jar

+ + In this way jython will be able to find the install dir and load the libraries from there. You can get the same effect by + passing a python.path variable as: +

java -Dpython.path=/usr/local/jython-2.1 -cp jython.jar:mx4j-jmx.jar:mx4j-tools.jar

+

+

If you don't need the standard libraries (and that can be the case for many JMX tasks, it is enough to have the jython.jar + in your system classpath

+

Configuration

+ The MBean has a few parameters which can be used to configure the MBean. This includes the + ObservedObjectName and Notification Name used to configure the MBean to listen for notifications. + The Script and ScriptFile parameters point to the content of the script. For simple scripts + you could just use the Script parameter. For morke comple scripts you are better of pointing to a file. + The ScriptFile is actually a URL and therefore can point to http locations +

Built-in functions

+ To ease the script constructions some variables, class and functions are readily + available to your script. The most important one is + server which point + to the current MBean server. The server variable IS a MBeanServer object and all methods + are valid. You can write scripts like: +

+            # write all the "test:name=test" mbean operations
+            [print operation for operation in server.getMBeanInfo(ObjectName("test:name=test")).operations]
+         
+ Aditionally all the javax.management.* class are imported making objects like ObjectName + or Attribute already available. +

+ There are also some utility functions and classes: +

  • + proxy The proxy class wraps a objectname making it easier + to access (It is equivalent to the MBeanServerInvocationHandler class). You can directly retrieve and modify attributes and invoke mathods. For instance: +

    +                     #
    +                     # Assume the MBean with ObjectName Test:name=jython has name and time attributes and a method start()
    +                     #
    +                     o = ObjectName("Test:name=jython")
    +                     p = proxy(o)
    +                     # you can access functions directly
    +                     print p.name
    +                     p.time = 12343
    +                     # also works with functions
    +                     p.start()
    +                  
    +

  • + mbeans(query) Returns a list of the mbeans in the server which + are in the query. The query is of the form "*:*". It can be omited and the function will + return all the mbeans +

  • + instances(classname, query) Returns a list of the mbeans in the server which + are instances of classname. The server accepts also an optional query method. +

+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch07.html b/mx4j-3.0.2/docs/ch07.html new file mode 100644 index 0000000..47c29b6 --- /dev/null +++ b/mx4j-3.0.2/docs/ch07.html @@ -0,0 +1,92 @@ +Chapter 7. MX4J Examples

Chapter 7. MX4J Examples

Services

The Relation Service example

Introduction

+ A full description of the RelationService, what it does and why it does it can be found in the + JMX Specifications. +

+ The example java source files can be found in the examples directory under services/relation, they include: +

  • RelationServiceExample (the main class) +
  • SimpleBooks
  • SimpleOwner
  • SimplePersonalLibrary (which extends the + javax.mangement.relation.RelationTypeSupport and provides the definitions of our roles) +
+

Simple use-case for the example

+

  • 1)Adding Books Use-Case: Main Success Scenario:
+ A user adds 1 book to his personal library, he already has 3, a check is done and it is determined that he is allowed 4 books, there are no problems and he can add the book. +
  • 2)Adding Books Use-Case: Alternate Scenarios:
+ Our user decides he would like to add another book, as he has defined the number of books to be minimum 1 and maximum 4, and he is now trying to add a fifth, he is not allowed to add the extra book.. +
  • 3)Removing Books Use-Case: Main Success Scenario:
+ A User decides to remove 3 old books from his personal-library. As he has defined the number of books he is allowed as to being between 1 and 4 there are no problems, the books are removed and he can no longer read or write to them, from the RelationService.. +
  • 4)Removing Books Use-Case: Alternate Scenario:
+ The book owner decides to remove all his books. The relation is invalidated and he can no longer access his records as they have been removed from the RelationService, including his role as Owner.. +

Code Usage

+ Before any relations can be defined the RelationService must be registered in the MBeanServer. +

Example 7.1. Creating the RelationService

+import javax.management.relation.RelationService;
+
+MBeanServer server = MBeanServerFactory.createMBeanServer();
+String className = "javax.management.relation.RelationService";
+ObjectName objectName = new ObjectName("Relations:name=RelationService");
+
+// The boolean value is to enable a purge of relations to determine invalid relations when an unregistration occurs of MBeans
+Object[] params = {new Boolean(true)};
+String[] signature = {"boolean"};
+server.createMBean(className, objectName, null, params, signature);
+               

+ Once we have the RelationService registered we can then create in the server our MBeans that will be playing the roles in our use-case scenarios. This being done we can proceed to adding our RelationType + SimplePersonalLibrary which must extend + javax.management.relation.RelationTypeSupport. This class is not registered in the MBeanServer, it is merely a simple way of providing the definitions of our Roles in the RelationService, an example of adding a RelationType in the RelationService follows: +

Example 7.2. Adding a RelationType

+// SimplePersonalLibrary is our RelationTypeSupport class
+String relationTypeName = "my_library";
+SimplePersonalLibrary library = new SimplePersonalLibrary(relationTypeName);
+
+Object[] params = {library};
+String[] signature = {"javax.management.relation.RelationType"};
+
+server.invoke(objectName, "addRelationType", params, signature);
+               

+ Our next step will be to start filling the roles we defined in our support class and adding the MBeans up to the maximum number we defined our SimplePersonalLibrary class. This means registering the MBeans first with MBeanServer. Once registered. we can add them within our Roles...

Example 7.3. Building Roles

+// building the owner Role
+ArrayList ownerList = new ArrayList();
+ownerList.add(ownerName1);  // can only add owner to an owner role cardinality defined as 1
+Role ownerRole = new Role("owner", ownerList);
+
+// building the book role
+ArrayList bookList = new ArrayList();
+// we can have between 1 and 4 books more than 4 invalidates out relation and less than 1 invalidates it
+bookList.add(bookName1);
+bookList.add(bookName2);
+bookList.add(bookName3);
+Role bookRole = new Role("books", bookList);
+
+// add our roles to the RoleList
+RoleList libraryList = new RoleList();
+libraryList.add(ownerRole);
+libraryList.add(bookRole);
+
+// now create the relation
+Object[] params = {personalLibraryId, libraryTypeName, libraryList};
+String[] signature = {"java.lang.String", "java.lang.String", "javax.management.relation.RoleList"};
+m_server.invoke(m_relationObjectName, "createRelation", params, signature);
+               

+ We are done a note about the alternate scenarios: Once Role cardinality has been invalidated the relation is removed from the RelationService and can no longer be accessed via the RelationService though any MBeans registered in the MBeanServer can still be accessed individually. +

Using Examples from the JMX Reference Implementation

+ The RelationService examples which can be downloaded from the + JMX website will run in the MX4J implementation. The few changes required are due to the fact that + MX4J implements the accessors of MBeans as + server.getAttribute(..) and + server.setAttribute(...) whereas the JMX implements all as method calls using + server.invoke(..) +

+ To be able to use the Examples from the JMX download. A list of the few changes required for the + RelationAgent follows: +

+

  • Remove: import com.sun.jdmk.Trace;
  • Remove: Trace.parseTraceProperties();
  • Change all calls for +
    • getAllRelationTypeNames
    • getRelationServiceName
    • getRelationId
    • getAllRelationIds
    • getReferencedMBeans Note: except where the call comes from an external relation(represented by a subclass of + javax.management.relation.RelationSupport or a type of + javax.management.relation.Relation
    • getRelationTypeName Note: same as above +
    • getAllRoles Note: same as above +
    • setRole Note: same as above +
    + from + server.invoke(...) to + server.getAttribute(....) , server.setAttribute(...) depending on whether it sets or gets.
+

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch07s07.html b/mx4j-3.0.2/docs/ch07s07.html new file mode 100644 index 0000000..1f46b00 --- /dev/null +++ b/mx4j-3.0.2/docs/ch07s07.html @@ -0,0 +1,201 @@ +MBeans

MBeans

RMI MBean example

Introduction

+ The purpose of this example is to give some guideline on how to expose RMI remote objects also as MBeans. +

+ This will give to server administrators the possibility to manage RMI remote objects in the JMX sense. This + means that may be possible to start, stop and restart the service implemented by the remote object; and also + checking if it is running, or ask to reload configurations files. +

The example classes

+ The example java source files can be found in the examples directory under mbeans/rmi, they include: +

  • Server (the class that starts the remote service) +
  • Client (the client class) +
  • MyRemoteService (the remote interface) +
  • MyRemoteServiceObjectMBean (the management interface) +
  • MyRemoteServiceObject (the MBean that implements the remote interface) +
+

Understanding the example

+ The remote object is, at the same time an MBean and an RMI remote object. +

+ Clients can see it through 2 interfaces: users of the service see it through the + remote interface + ( + MyRemoteService), while management application (such as the HTTP adaptor) + see it through the + management interface ( + MyRemoteServiceObjectMBean). +
+ The remote interface contains only one method: +

+ public void + sayHello(String name) + +

+ that will execute client's requests. +
+ The management interface, conversely, contains 3 methods: +

+ public void + start() + +
+ public void + stop() + +
+ public boolean + isRunning() + +

+ that will be used by management application such as the HTTP adaptor. +

+ Notice that users of the remote interface cannot invoke methods of the management interface, as well as management + application cannot invoke methods of the remote interface. +

The implementation

+ The purpose of the + Server class is only to start a JMX Agent by instantiating the MBeanServer, + register the service we want to expose, and starting it. +

+

Example 7.4. The + Server class +

+                  
+public class Server
+{
+   public static void main(String[] args) throws Exception
+   {
+      MBeanServer server = MBeanServerFactory.createMBeanServer();
+
+      ObjectName name = new ObjectName("examples:type=remote");
+      MyRemoteServiceObject remote = new MyRemoteServiceObject();
+      server.registerMBean(remote, name);
+
+      MyRemoteServiceObjectMBean managed = (MyRemoteServiceObjectMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, MyRemoteServiceObjectMBean.class, false);
+      managed.start();
+   }
+}
+               
+               
+

+ The remote object, instance of + MyRemoteServiceObject class, is worth some more detail. +
+ First notice that it extends + java.rmi.server.RemoteServer and not + java.rmi.server.UnicastRemoteObject. This is done to avoid that the object is automatically + exported to the RMI runtime when creating it, since we want to control the export and unexport via the + start() and + stop() methods of the management interface. +
+ Second, notice the symmetry of the + start() and + stop() methods: + start() export the object to the RMI runtime and binds it in the naming, while + stop() + unbinds it from the naming and unexport it from the RMI runtime. +

+

Example 7.5. The + MyRemoteServiceObject class +

+                  
+public class MyRemoteServiceObject extends RemoteServer implements MyRemoteService, MyRemoteServiceObjectMBean
+{
+   private boolean m_running;
+
+   public MyRemoteServiceObject() throws RemoteException {}
+
+   public void sayHello(String name) throws RemoteException
+   {
+      System.out.println("Hello, " + name);
+   }
+
+   public void start() throws Exception
+   {
+      if (!m_running)
+      {
+         UnicastRemoteObject.exportObject(this);
+         InitialContext ctx = new InitialContext();
+         ctx.rebind(JNDI_NAME, this);
+         m_running = true;
+         System.out.println("My remote service started successfully");
+      }
+   }
+
+   public void stop() throws Exception
+   {
+      if (m_running)
+      {
+         InitialContext ctx = new InitialContext();
+         ctx.unbind(JNDI_NAME);
+         UnicastRemoteObject.unexportObject(this, false);
+         m_running = false;
+         System.out.println("My remote service stopped successfully");
+      }
+   }
+
+   public boolean isRunning()
+   {
+      return m_running;
+   }
+}
+               
+               
+

+ Thus, will be possible to start the service via a management application and let it available to users; + and will be possible to stop it, maybe changing some configuration file (not in this simple example, but you + got the picture), and restarting it, + WITHOUT shutting down other services that may have + been started by the same JMX Agent. +

+ The implementation of the + sayHello(String name) method is straightforward, as well as + the + isRunning() one that, accessible from management applications, returns if the + service is running or not. +

Compiling the example files

+ The above classes must be compiled using + javac, and the + MyRemoteServiceObject class + must be compiled using + rmic. +

+ Let's suppose you unpack the MX4J distribution in the mx4j- + ver directory; from this directory you issue these + commands: +

+ C:\mx4j- + ver>javac -classpath lib\mx4j-jmx.jar examples\mbeans\rmi\*.java +
+ C:\mx4j- + ver>rmic mx4j.examples.mbeans.rmi.MyRemoteServiceObject +

Running the example

+ To run the example, three consoles are needed: +

  • One for the + rmiregistry
  • One for the server
  • One for the client
+

+ For the rmiregistry, you need to have in the classpath the RMI stub of the + MyRemoteServiceObject + class you just compiled with + rmic. Then you can start it by typing the following command: +

+ C:\mx4j- + ver>set classpath=. +
+ C:\mx4j- + ver>rmiregistry +

+ For the server, you need all the compiled classes (apart for the + Client class), + mx4j-jmx.jar (the JMX implementation), and a suitable + jndi.properties file (there is a default + one shipped with this example) in the classpath. Then you can start the server with the following command: +

+ C:\mx4j- + ver>java -cp .;examples;lib\mx4j-jmx.jar mx4j.examples.mbeans.rmi.Server +

+ For the client, you need the + Client class, the remote interface and the RMI stub, and a suitable + jndi.properties file (there is a default one shipped with this example). + Then you can start the client with the following command: +

+ C:\mx4j- + ver>java -cp .;examples mx4j.examples.mbeans.rmi.Client +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch07s15.html b/mx4j-3.0.2/docs/ch07s15.html new file mode 100644 index 0000000..ee52dcc --- /dev/null +++ b/mx4j-3.0.2/docs/ch07s15.html @@ -0,0 +1,147 @@ +Tools

Tools

Using XDoclet

Introduction

+ MX4J provides a way to generate source code of MBean interfaces and descriptions using some custom javadoc comments in + source code. This source generation is done with the help of + XDoclet. + It is recommended to look at the example included in the distribution for getting started with this feature. +

Preparing Ant

+ In order to generate the source code, XDoclet must be copied into the directory where all libraries are. This is usually + the lib subdirectory of the project which will be referred as the Ant variable + ${lib} from now on. + A path must be defined for the Ant task. An example is given below: +

+

Example 7.6. Defining the xdoclet classpath and Ant task.

+<path id="xdoclet">
+   <pathelement location="${lib.dir}/xjavadoc.jar"/>
+   <pathelement location="${lib.dir}/xdoclet.jar"/>
+   <pathelement location="${lib.dir}/xdoclet-jmx-module.jar"/>
+   <pathelement location="${lib.dir}/xdoclet-mx4j-module.jar"/>
+   <pathelement location="${lib}/log4j.jar"/>
+   <pathelement location="${ANT_HOME}/lib/ant.jar"/>
+   <pathelement location="${build}"/>
+</path>
+<taskdef name="jmxdoclet" classname="xdoclet.jmx.JMXDocletTask">
+   <classpath refid="xdoclet"/>
+</taskdef>
+      
+

+ Let's suppose now that the Ant compilation target is called + compilation. The easiest way to generate + the source code of the MBean interface and description is to make the + compilation depending on the + target + generateJMX defined by: +

+

Example 7.7.

+<target name="generate-jmx" depends="init">
+   <!-- Generate the MBean interfaces and descriptions -->
+   <jmxdoclet sourcepath="${src}" destdir="${src}" classpathref="xdoclet" force="yes">
+      <fileset dir="${src}">
+         <include name="com/xtremejava/webos/**" />
+      </fileset>
+      <!-- Create the {0}MBean interface for the MBean -->
+      <mbeaninterface/>
+      <!-- Create the MX4J specific description adaptor class for the MBean -->
+      <mx4jdescription />
+      <!-- Generate the mlet file -->
+      <mlet destinationFile="mbeans.mlet" destdir="conf"/>
+   </jmxdoclet>
+</target>
+      
+

Basic usage

+ A few javadoc tags can be used in order to specify how to generate the interface and the description of your MBean. +

Table 7.1. List of Javadoc tags

Javadoc Tag NameMeaning
@jmx:mbeanTag used in order to define the name of the MBean and its description. Must be defined at class level.
@jmx:managed-constructorTag used in order to define the name of the constructor and its description. Must be defined at constructor level.
@jmx:managed-constructor-parameterTag used in order to define the name of a constructor attribute, it's index, and its description. Must be defined at constructor level.
@jmx:managed-operationTag used in order to define the name of an operation and its description. Must be defined at method level.
@jmx:managed-operation-parameterTag used in order to define the name of an operation attribute, it's index, and its description. Must be defined at method level.
@jmx:managed-attribute + Tag used in order to define the description of an attribute. Must be defined at method level. Note: the getter description has + priority over the setter description. +
@jmx:mlet-entryTag used in order to generate the mlets file. All classes having this tags will have the result merge in one file. Must be defined at class level.
+

FilePersister example

Introduction

+ This example will cover the usage of the FilePersister with MLets. It will give a good overview of how to use MLets into the bargain :-). + What we will do is create two MBeans the one extends FilePersister, so that it can load and store Objects. The other is a standard MBean which will ask the FilePersisterMBean to store it, The interesting thing about this example is that the two mbeans are loaded by two differnet MLets from two different jar files. One note of importance any object to be stored must implement the interface Serializable. Let us begin. +

Writing the code

+ We are going to write an MBean which extends FilePersister and pass any calls made to it to its parent class. +

Example 7.8. MBeanOne implementation

+public class MBeanOne extends FilePersister implements Serializable
+{
+   public MBeanOne(String location, String name) throws MBeanException
+       {
+      super(location, name);
+       }
+
+   public void store(Object mbean)throws MBeanException, InstanceNotFoundException
+   {
+      store(mbean);
+   }
+
+   public Object load()throws MBeanException, RuntimeOperationsException, InstanceNotFoundException
+   {
+      return load();
+   }
+}
+            

+ Now to do the mbean that will ask the MBeanOne to store it. +

Example 7.9. MBeanTwo implementation

+public class MBeanTwo implements MBeanTwoMBean, Serializable
+{
+   // constructor... see example
+   //we are now going to invoke MBeanOne through the MBeanServer
+   public void storeIt(MBeanServer server, ObjectName name)
+   {
+      server.invoke(name, "store", new Object[]{this}, new String[]{"java.lang.Object"});
+   }
+
+   public Object loadIt(MBeanServer server, ObjectName name)
+   {
+      Object me = null;
+      try
+      {
+         me = (MBeanTwo)server.invoke(name, "load", new Object[0], new String[0]);
+      }
+      catch (Exception ex)
+      {
+         ex.printStackTrace();
+      }
+      return me;
+   }
+}
+            

The Agent MLet implementation

+ The "main" class will now create and register two MLets, each MLet will load its own MBean from separate jar files +

Example 7.10. The FilePersisterAgent

+// Create the MBeanServer
+// Build the ObjectNames for the MLets
+// Register the MLets
+MLet mlet1 = new MLet();
+m_server.registerMBean(mlet1, mName1);
+mlet1.addURL(jarOneUrl);
+
+MLet mlet2 = new MLet();
+m_server.registerMBean(mlet2, mName2);
+mlet2.addURL(jarTwoUrl);
+
+// We now have access to the MBeans, so instantiate them
+m_server.createMBean(mbeanClassName, mbeanObjectName, mLetObjectName, params, signature);
+
+// As above but the other mbean is now registered using the othe MLet object name as the third parameter
+m_server.createMBean(.....);
+
+// Now invoke the storage of one MBean by the other
+m_server.invoke(mbeanName2, "storeIt", new Object[] {m_server, mbeanName1},
+             new String[]{"javax.management.MBeanServer", "javax.management.ObjectName"});
+
+// Now load it
+Object a = m_server.invoke(mbeanName2, "loadIt", new Object[] {m_server, mbeanName1},
+           new String[]{"javax.management.MBeanServer", "javax.management.ObjectName"});
+
+// And finally a test to see that the objects are equal
+if(a.getClass().getName() == mbeanClass2) System.out.println("Objects are equal and the same");
+            

Steps for Running the Example

+ Once you have the files and compiled them you will need to build the jars holding the mbeans start a command prompt (windows) cd to the examples/classes directory and type in the following commands: +

Example 7.11.

+jar cvf one.jar examples/tools/persister/MBeanOne.class
+// and then
+jar cvf two.jar examples/tools/persister/MBeanTwo.class examples/tools/persister/MBeanTwoMBean.class
+            

+ Now delete the MBeanOne.class and MBeanTwo.class (we do not want them in the classpath :-). Once this is done add four application parameters +

  • 1) path to jar one.jar eg:file:C:/dev/mx4j/one.jar
  • 2) path to jar two.jar eg: file:C:/dev/two.jar
  • 3) path where to store the file eg: C:/temp
  • 4) name of the file eg: test.ser
+

+ You are now ready to start the agent! + Have fun !! +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch08.html b/mx4j-3.0.2/docs/ch08.html new file mode 100644 index 0000000..b6e1ea0 --- /dev/null +++ b/mx4j-3.0.2/docs/ch08.html @@ -0,0 +1,26 @@ +Chapter 8. FAQ

Chapter 8. FAQ

MX4J Frequently Asked Questions

1. + How it is possible to change the default log level + of the MX4J implementation to understand what is going on ? +

+ Just set the system property 'mx4j.log.priority' to one of these values (from less verbose to more verbose): +

  • fatal
  • error
  • warn
  • info
  • debug
  • trace
+ like this example command line: +

+ > java -Dmx4j.log.priority=debug -classpath . my.package.Application +

+ See the MX4J documentation about logging for more information. +

2. + The MLet file format is not enough flexible for my needs. + Is there a more powerful configuration file format, maybe in XML, by means of which + will be possible to load and configure the MBeans of a system ? +

+ MX4J, from version 2.0, supports a configuration file format in XML, by which it is + possible to specify constructor arguments to MBeans, call methods on object and MBeans, + register and unregister MBeans and so on. +
+ Think of this configuration file format as an XML way to invoke Java methods and JMX + attributes or operations. +

+ The class that allows this is mx4j.tools.config.ConfigurationLoader. + Refer to the MX4J tools documentation for details about usage of this class. +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/ch09.html b/mx4j-3.0.2/docs/ch09.html new file mode 100644 index 0000000..39ef735 --- /dev/null +++ b/mx4j-3.0.2/docs/ch09.html @@ -0,0 +1,229 @@ +Chapter 9. MX4J Developer's guide

Chapter 9. MX4J Developer's guide

Introduction

+ This chapter aims to give some suggestion to developers of MX4J, in order to have some common base to start from. + It gives also some indication on how to create and distribute a new MX4J release, and the general architecture + of the MX4J implementation. +

Coding conventions

+ The base to start from are the coding conventions for Java, + see here.
+ We require as additional convention the one-line one-brace style: +

Example 9.1. One-line one-brace style

+	
+public class Main { // bad
+	private String name;
+	public Main(String n) { // bad
+		if (n != null) { // bad
+			name = n;
+		}
+	}
+}
+
+public class Main
+{ // good
+	private String name;
+	public Main(String n)
+	{ // good
+		if (n != null)
+		{ // good
+			name = n;
+		}
+	}
+}
+	
+	

+ +

Using logging

+ It is good practice to insert logging statements in the code, to help debugging and + to record information about what the program is doing. +

+ MX4J has a built-in logging system based on the mx4j.log.Logger + class, whose usage is very similar to the Category class + of the Log4J project. +

+ Class Logger has six methods that logs at a different priority; + from the lowest priority to the highest they are: +

  • + public void trace(...); +

  • + public void debug(...); +

  • + public void info(...); +

  • + public void warn(...); +

  • + public void error(...); +

  • + public void fatal(...); +

+ They all have two overloaded version, one that takes one argument of type + Java.lang.Object, and one that takes two arguments + of type Java.lang.Object and + java.lang.Throwable. +

+ Class Logger has another useful method that returns the + priority enabled for that instance of Logger: +

  • + public boolean isEnabledFor(...); +

+ Using correctly this method will save the run-time cost associated with the concatenation + of String objects: +

Example 9.2. Saving run-time cost of String concatenation

+	
+Logger logger = ...;
+if (logger.isEnabledFor(Logger.TRACE))
+{
+	logger.trace("Result is: " + result + " on item: " + item + " for process: " + process);
+}
+	
+	

+ Saving the time associated with the creation of temporary objects used only for the logging + statement is mandatory when the priority is trace, debug or info, to avoid unnecessary drop of + performance. +

+ Another useful way to avoid creation of temporary String objects is to use + the StringBuffer class, following this example: +

Example 9.3. Saving run-time cost of String concatenation with StringBuffer

+	
+Logger logger = ...;
+if (logger.isEnabledFor(Logger.TRACE))
+{
+	StringBuffer message = new StringBuffer("Result is: ").append(result).append(" on item: ").append(" for process: ").append(process);
+	logger.trace(message);
+}
+	
+	

+ This version, when the logging is performed because the priority is enabled for the logger instance, + is more efficient than the previous example that used String concatenation. +

+ How do you obtain an instance of the Logger class ? You must use the + mx4j.log.Log class, this way: +

Example 9.4. Retrieving a Logger instance

+			
+Logger logger = Log.getLogger("MyCategory");
+			
+			

+ Every logger instance is associated with a category, i.e. a string that + normally represent a correlated group of logging requests. +

Choosing the right priority

+ Choosing the right priority is important, and here there are few guidelines: +

  • + Use Logger.trace to log execution flow. + Always surround a log with trace priority with a call + to Logger.isEnabledFor. +

  • + Use Logger.debug to log variables values. + Always surround a log with debug priority with a call + to Logger.isEnabledFor. +

  • + Use Logger.info to log information that + can be of interest for the user. For every public method there should + be at least one log with info priority. + Always surround a log with info priority with a call + to Logger.isEnabledFor. +

  • + Use Logger.warn to log recoverable errors that + in normal situations should not happen. The warn priority is the default priority + for MX4J. +

  • + Use Logger.error to log exceptions. + Typically, log with error priority are inside catch blocks, just before rethrowing: +

    Example 9.5. Logs with error priority

    +	
    +Logger logger = ...;
    +try
    +{
    +	thisMethodThrows();
    +}
    +catch (Exception x)
    +{
    +	logger.error("Exception happened: ", x);
    +	throw x;
    +}
    +	
    +	

    +

  • + Use Logger.fatal(...); to log fatal errors that + will force the JVM to terminate. + Typically log with fatal priority are inside catch blocks, just before + calling System.exit: +

    Example 9.6. Logs with fatal priority

    +	
    +Logger logger = ...;
    +try
    +{
    +	Class.forName("java.lang.Object");
    +}
    +catch (ClassNotFoundException x)
    +{
    +	logger.fatal("Can't find core classes", x);
    +	System.exit(1);
    +}
    +	
    +	

    + However, it is mandatory that in the MX4J code + System.exit is never called. +

+

Writing documentation

+ The documentation that comes with MX4J is written using DocBook. + It is very easy to use DocBook, and an on-line manual is available + here. +

+ Generally, the layout is defined in the file index.xml. All other files are DocBook sections belonging to + a chapter, also defined in index.xml. +

Releasing MX4J

+ The following steps are required for a new release of MX4J: +

  • Fresh checkout from CVS. Do NOT update, checkout to a new directory the whole CVS
  • Add to lib directory all the optional libraries
  • Build the code and run the test suite. All tests must pass
  • Build the distribution kit
  • Check that the distribution kit contains all the jars, the sources and licensing information + (also for third party software used)
  • Tag CVS with the suitable release tag
  • Upload the new kit to SourceForge, creating a new release version
  • Update the Change Notes tracker in SourceForge
  • Submit a news in SourceForge
  • Submit a news in FreshMeat
  • Submit a news in JavaLobby
  • Submit a news in TheServerSide
  • Submit a news in jmx-forum@java.sun.com
  • Submit a news in comp.lang.java.announce
+

MX4J Implementation Architecture

+ The primary implementation class of the MX4J JMX Agent is mx4j.server.MX4JMBeanServer. +

+ The MBeanServer implementation class accomplishes these roles: +

  • Returns information about the Agent
  • It is a repository for MBeans
  • Introspect the MBeans to determine their type and compliance
  • It acts as invoker, on behalf of the user, of operations on the registered MBeans
+

+ The information about the JMX Agent are returned by several methods such as, for example, + getDefaultDomain(), and are implemented directly in the + mx4j.server.MX4JMBeanServer class. +

+ The registered MBeans are stored into a repository.
+ The MBeanServer implementation delegates to implementations of the + mx4j.server.MBeanRepository interface the repository task; therefore the + MBeanServer implementation acts as a factory for MBeanRepository instances, + but the implementation is delegated to MBeanRepository instances.
+ It is possible to specify custom MBeanRepository implementations by specifying the full qualified name + of the implementation class as value of the system property "mx4j.mbeanserver.repository". +

+ When an MBean is registered several checks must be made to determine the MBean's type, if it is a + compliant MBean or not and to retrieve its MBeanInfo information.
+ The MBeanServer implementation delegates this task to the mx4j.server.MBeanIntrospector + class.
+ Objects of this class are first asked to fully introspect the given MBean; after the MBeanIntrospector has + gathered all information about the MBean into an instance of mx4j.server.MBeanMetaData + class, the MBeanServer implementation asks the MBeanIntrospector to check the compliance of the MBean.
+ If the MBean is a standard one, the MBeanIntrospector must create the MBeanInfo information for it using + introspection on the MBean's management interface, and create the MBean invoker for it, see below.
+ The role of the MBeanIntrospector is thus to check the MBean compliance, to create the MBeanInfo information + for standard MBeans and to act as a factory for MBean invokers. +

+ The MBeanServer implementation acts as an invoker, on behalf of the user, of operations on the registered + MBeans.
+ The architecture is interceptor-based, that is whenever you call + from a client an MBeanServer method that will end up to call the MBean instance, the call is dispatched to + the interceptor chain and eventually to the MBean instance.
+ The interceptors are configurable via the MBeanServer Interceptor Configurator MBean, that is an MBean + of class mx4j.server.MBeanServerInterceptorConfigurator registered under the + "JMImplementation" domain.
+ When the call is about to arrive to the MBean instance, the last interceptor dispatches the call depending on + the MBean type: if the MBean is a dynamic MBean, the call is dispatched directly using the methods of the + DynamicMBean interface; if the MBean is a standard + MBean, then an MBean invoker is delegated to invoke the operation on the MBean instance.
+ MBean invokers are implementations of the mx4j.server.MBeanInvoker interface.
+ There are 2 default MBean invoker implementations: the first is based on reflection to invoke the MBean instance, + the second is based on an on-the-fly generated class that invokes the MBean directly. + This on-the-fly generated class is created at registration time; its bytecode is built at runtime using the + Byte Code Engineering Library.
+ Both versions make use of TernaryTree as fast caches for MBean information, so that the invocations on + standard MBeans are really FAST.
+ Early performance benchmarks reveal that the on-the-fly generated version is 2 times faster than the one that use + reflection. +

+ For further information, see the Javadocs of the cited classes. +

\ No newline at end of file diff --git a/mx4j-3.0.2/docs/images/logo.gif b/mx4j-3.0.2/docs/images/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..31522aa43a0a65acaadf291b20c04ea1817b44c3 GIT binary patch literal 2135 zcmeH`>pRm60LOoGn`@11E}@xQE|trKBQl2UpbZJ5GfyrDQxqwBom1kB9m(_b#lL?q){$$I{(Ib`o8+S`Mmi&&)3t-!`>mh69@sm0)VV+3~>9hG*4<;^gElCAD6)S}F_+?6Nsw z?iAiF%Dy|gBhjSCy9upLSRck86MT5AJ|%A_UfgS7#()K;yo37`Ar-_G@r)(XFe)H( z2%8|6oTKaB5RQh%fw@=3ASoFaeZnGF26}n>MJ_h?ZA+4BpbRcoD`QKg5$27sW>*|X z4m`w0?rvG7#NZ>*`@CbRkBZ4$RY8sG5o7j1K1?>aq;MaI0e3Tg7(HDU6m@Hw7J6ZR zx}1<>Izx}3#TdI@^ilBhhr`$dp4Y>*#)|eW4I#Yb6H?wMYoneU(rn}98!sBfct$dy zEdvcS6VyD80v3{9*TQh_vxRrvleBT9Y`^sqKoZCT~ zpnU({5XXSMJ*b@hXZqEntUjv8c|KO__hYNQXEW+Goz{E2N-;>n)wDNPWsBsC=e_0V&u+bWW3Yf2_VC_Hzb=KgUGAbd8Yxp-jP0fjJNEopjpgo# zR&xY~M$^_ANE`PRKE(gFG1{`q>_d;)S-GLp=vi|^zN6dR2TaKL)^R~}VEpPpP&9XS zFf?Upb%>CAU~M>}JbvxX?~UBG5n{8-4G{daQ=sq@rn$DM;^3eSYF8(2><@8pY~WXq z39?2#vp+pI{?&NqOo}HB!|km)1cuqgBJ9p25r@JqBgjTs&Z^U=DwA4Bq;w&%cihb3 zTbZvm-Jc{}S*JvK8A!^emYC%`X&!Blrz&SFeMegFozo|N^I-3&AG*1*y~pr#=WWRm z^rjQ}b6p2-G|8jSdDN*V5o$}VSMEUTO&rC6{l67AR4?SG<7&$|ycE)q-@7!Vxi`{u zxY_I}CsX+@VonRUfsi_or6aPOR4QN;KeZpIj!F)v_ADYM8X=J%6ZZCtq{mB}7ydHJ zYE|m`q|GYx^;z;wV0KDbu}rej34SWB%r@aUDi10ETA7LPS5!~89Z#?yTF zo*bXC!MBzsw0~r|#^4MUh(q*~e3{0q4!mAFO9bK5qpoUL)rPB0>FcaqC&2i_K%Yn> zk(qe%IO$gk;Wf&8;_;d6fJEl2ZK3l@0L5gVP@bnfQTY~mFCA(Md#CtP7UUV`B5vuUKnlZzUN5SzUa-YNsEFQ7%lQ>E@tnqW{Ija~4_*(TwxN&j+9AW|@$n#PaICfNYQ0)~ka|!~N@xgj& i2;9xB%gD_H)0-b6VQF^X^swvfC8tX2LKWo!$A1BO+oC@J literal 0 HcmV?d00001 diff --git a/mx4j-3.0.2/docs/index.html b/mx4j-3.0.2/docs/index.html new file mode 100644 index 0000000..cf96743 --- /dev/null +++ b/mx4j-3.0.2/docs/index.html @@ -0,0 +1,23 @@ +MX4J English Documentation

MX4J English Documentation


Table of Contents

1. MX4J and JMX Overview
Overview
MX4J
What is JMX ?
For what can you use JMX ?
MX4J's JMX implementation
License
2. JMX 1.2 Explained
+ javax.management.ObjectName changes +
The + getInstance() methods +
The + quote() and + unquote() methods +
Support for remote API
Overview
The + javax.management.MBeanServer class inherits from + javax.management.MBeanServerConnection +
The + javax.management.MBeanServerBuilder class +
Introduction
How to use MX4J's + MBeanServer implementation with Sun's JMX Reference Implementation. +
How to "decorate" + MBeanServer methods. +
More complex + MBeanServer "decorations". +
Possible usages of MBeanServer "decorators"
The + javax.management.MBeanServerInvocationHandler class +
Introduction
MBeanServerInvocationHandler usage
Porting examples for + mx4j.util.StandardMBeanProxy +
3. JSR 160 (JMX Remoting) Explained
What is JSR 160 ?
Introduction
MX4J's JSR 160 implementation
How to use JSR 160
Introduction
JMXServiceURLs
Creating a JMXConnectorServer
Creating a JMXConnector
Remote Notifications
JSR 160 Security
Requiring user authentication to connect to a JMXConnectorServer
Running under SecurityManager and Subject Delegation
Advanced JSR 160
Intercepting calls between the JSR 160 JMXConnectorServer and the MBeanServer
Standard JSR 160 JMXConnectors and JMXConnectorServers
Overview of RMIConnector and RMIConnectorServer
Connecting to the RMIConnectorServer
ORB properties for JMXConnector and JMXConnectorServer over IIOP
RMI socket factories (over SSL) for the RMIConnectorServer over JRMP
MX4J's JSR 160 JMXConnectors and JMXConnectorServers
The SOAP JSR 160 connector
The HESSIAN and BURLAP JSR 160 connectors
Using HTTP-based connectors over HTTPS
Configuration of the web container
Configuration of the keystore
Code examples
Porting old MX4J remoting code to JSR 160
Introduction
Porting Examples
MX4J Remote Tools and Utilities
Remote MBean Proxying
4. MX4J Extensions and utilities
Extensions
Standard MBean descriptions
Interacting with the MX4J implementation
Internal logging redirection
MBeanServerInterceptor configuration
5. MX4J HTTP Adaptor
HttpAdaptor
Introduction
Parameters and operations
Security
Usage
Available requests
XSLTProcessor
Introduction
Compatibility
Attributes
XSL Development
Internationalization
6. MX4J Tools
XML Configuration Loader
Loading and starting MBeans using XML files
Dynamic MBeans
AbstractDynamicMBean base class for DynamicMBean implementation
Naming MBeans
The NamingService MBean
The CosNamingService MBean
Mailer MBean
Introduction
Configuration
Keyword expanding
Jython MBean
Introduction
Configuration
Built-in functions
7. MX4J Examples
Services
The Relation Service example
MBeans
RMI MBean example
Tools
Using XDoclet
FilePersister example
8. FAQ
MX4J Frequently Asked Questions
9. MX4J Developer's guide
Introduction
Coding conventions
Using logging
Writing documentation
Releasing MX4J
MX4J Implementation Architecture
\ No newline at end of file diff --git a/mx4j-3.0.2/docs/styles.css b/mx4j-3.0.2/docs/styles.css new file mode 100644 index 0000000..2072f3d --- /dev/null +++ b/mx4j-3.0.2/docs/styles.css @@ -0,0 +1,118 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +/* + * MX4J stylesheet + * For colors definitions, see (among others) + * http://www.projectcool.com/developer/reference/color-chart.html + * $Revision: 1.3 $ + */ + +body +{ + font-family: verdana,arial,helvetica,sans-serif; + font-size: 9pt; + color: black; + background: white; +} + +tt +{ + font-size: 9pt +} + +td +{ + font-size: 10pt +} + +th +{ + font-size: 10pt; + font-weight: bold +} + +h1 +{ + font-size: 30pt; + color: dodgerblue; + text-align: center; +} + +h2 +{ + font-size: 14pt; + color: dodgerblue; + font-weight: bold +} + +h3 +{ + font-size: 12pt; + color: dodgerblue; + font-weight: bold +} + +h4 +{ + font-size: 10pt; + color: dodgerblue; + font-weight: bold; + font-style: italic +} + +a:link +{ + color : forestgreen; + font-weight: bold; +} + +a:visited +{ + color : indianred; + font-weight: bold; +} + +a:hover +{ + color: indigo; + font-weight: bold; +} + +.example +{ + padding: 10; + border: thin solid; + background-color: whitesmoke +} + +.programlisting +{ + margin-left: 10; + margin-right: auto; + font-size: 8pt; + font-family: Courier; + border-style: solid; + border-width: 1; + white-space: pre; + background-color: lavender +} + +.question +{ + color: dodgerblue; +} + +.abstract +{ + padding: 5pt; + font-size: 8pt; + border-style: solid; + border-width: 1; + background-color: seashell +} diff --git a/mx4j-3.0.2/examples/jndi.properties b/mx4j-3.0.2/examples/jndi.properties new file mode 100644 index 0000000..1b003a6 --- /dev/null +++ b/mx4j-3.0.2/examples/jndi.properties @@ -0,0 +1,8 @@ +java.naming.factory.initial=com.sun.jndi.rmi.registry.RegistryContextFactory +java.naming.provider.url=rmi://localhost:1099 + +# Use the following properties for use with tnameserv, and remark the lines above +# Remember to start tnameserv with the -ORBInitialPort option if you want to change +# the ORB port (default port is 900), and change the value below accordingly +#java.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory +#java.naming.provider.url=iiop://localhost:900 diff --git a/mx4j-3.0.2/examples/key.store b/mx4j-3.0.2/examples/key.store new file mode 100644 index 0000000000000000000000000000000000000000..41eb978ff746da1d8e52623535cdf1850e4a97ab GIT binary patch literal 1307 zcmezO_TO6u1_mY|W&~r_+{*0KN+9#c?tdpEfuj8eO^n?Jd~96WY>X_7T1*>LOx#JM zPis5fg~P-hwF`sqYyJ<)o4uT|z1jY+U07^}))tdME>qv-=hb+fm3IE--rA^{QuF4K zK-Dped1qV9dxC`5?b5B=(VDurx|nbI(u|8!PvqzPB{d1p_d*c>oPWX7`Yn901C7Ty33xw4FId64gtJJdSYG$r~5Z{8?7y$ ze*L^q3fJ`huMs;YD0i7|{%9BX@Z$r6J>OLHY#$!!SRP%O#-=>&TAtMX@QSluD?*p2 z^PXV;ZF+!f|DxAbo|B~_I2{~Me%h=ouORj5jajj`JS3JP^h^yb85o$|44RmofS7@a z#eOXxivc$qyH=aWISUqMRtAH{HbZU$PB!LH7B*p~&|nycLzu}g(ooDm1SG>Q%LSyE{zX&?>~=MokO$w*c3jWF?22q?gryavXGh6Wafrp6W~CQ(4H ziGh)U8I(JC9NNUV9hls8V1dX8jqhq{7-2K+p}i|EL}2x{tK3B z0i{F!yH{TSxBZy(59{#f$5t#8wMkM+Ovo?6U}EeuSJ4N;RE^h|bnKB|=bbZWA?`(3@*;MFQ?7Je7`vuo#1b15a` z@4=OR0iK4&*<0h2HoKM{^4%_%WGy#s#oYzhR+z7Fv8_DiIZxGwIY8k^6=U<_r`)Tz z7;k@A%ir?zh;o(Px5eDQyB3%8->dI*b+TrA5^ncvf!@N;DdN2I9qr!RzWuF?lJc4L z84ProM5NzYTZMB?nI0OpKBQt(i>yIsN-UFzOxbSE{GF5jr#h^Vkl+<^ob~hHug}k2 Wcl9O3>N>3rKJxx#e5Ol*v + * Its purpose is to show the difference between management methods and service methods.
+ * This class has 3 methods, but only 2 belong to the management interface, therefore only these 2 + * are accessible from the MBeanServer, so they're the management methods.
+ * The third method can be used by any other class but it is not accessible from the MBeanServer so + * it's a service method (since it gives a service to callers), and not a management method. + * + * @version $Revision: 1.3 $ + */ +public class HelloWorld implements HelloWorldMBean +{ + private int m_times; + private Properties m_configuration; + + public String getInfoFromConfiguration(String key) + { + // Be sure to use the configuration while it is not changed. + synchronized (this) + { + return m_configuration.getProperty(key); + } + } + + public void reloadConfiguration() throws IOException + { + // Lookup the configuration file in the classpath + String configuration = "jndi.properties"; + InputStream is = getClass().getClassLoader().getResourceAsStream(configuration); + if (is == null) + { + throw new FileNotFoundException("Cannot find " + configuration + " file in classpath"); + } + + // Load the new configuration from the file + Properties p = new Properties(); + p.load(is); + + // Avoid that someone reads the configuration while we are changing it + synchronized (this) + { + m_configuration = p; + ++m_times; + } + } + + public int getHowManyTimes() + { + return m_times; + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/helloworld/HelloWorldExample.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/helloworld/HelloWorldExample.java new file mode 100644 index 0000000..30921cc --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/helloworld/HelloWorldExample.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.helloworld; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; + +/** + * JMX HelloWorld example.

+ * Instead of saying "Hello", this simple class shows how is possible to create services, + * register them in the JMX Agent, and invoke methods on them without + * having a reference to them.
+ * One can create a service that can reload its configuration at runtime, and be queried + * on how many times the configuration is reloaded, and expose it as standard MBean.
+ * This class shows in code what is possible to do via a management interface: once the + * service is registered, one can connect via (for example) the HTTP adaptor and + * invoke methods on the MBean.
+ * The service (the MBean) can be registered in one host, while the system administrator + * can connect to the HTTP adaptor from another host using a browser and ask the service + * to reload its configuration, without stopping it nor being forced to login to the + * remote host. + * + * @version $Revision: 1.3 $ + */ +public class HelloWorldExample +{ + public static void main(String[] args) throws Exception + { + // Create an instance of MBeanServer + MBeanServer server = MBeanServerFactory.createMBeanServer(); + + // Create an ObjectName for the MBean + ObjectName name = new ObjectName(":mbean=helloworld"); + + // Create and register the MBean in the MBeanServer + server.createMBean("mx4j.examples.mbeans.helloworld.HelloWorld", name, null); + + // Invoke a method on it + server.invoke(name, "reloadConfiguration", new Object[0], new String[0]); + + // Invoke an attribute on it + Integer times = (Integer)server.getAttribute(name, "HowManyTimes"); + + System.out.println("The configuration was reloaded " + times + " times."); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/helloworld/HelloWorldMBean.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/helloworld/HelloWorldMBean.java new file mode 100644 index 0000000..689f695 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/helloworld/HelloWorldMBean.java @@ -0,0 +1,23 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.helloworld; + +import java.io.IOException; + +/** + * Management interface for the HelloWorld MBean + * + * @version $Revision: 1.3 $ + */ +public interface HelloWorldMBean +{ + public void reloadConfiguration() throws IOException; + + public int getHowManyTimes(); +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/Hello.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/Hello.java new file mode 100644 index 0000000..9ec8676 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/Hello.java @@ -0,0 +1,23 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.mbeans.iiop; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +/** + * The RMI Remote interface exposed by the Hello service. + * + * @version $Revision: 1.4 $ + */ +public interface Hello extends Remote +{ + public static final String IIOP_JNDI_NAME = "iiop://localhost:1900/iiop_service"; + + public void sayHello(String name) throws RemoteException; +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/HelloImpl.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/HelloImpl.java new file mode 100644 index 0000000..0029e4f --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/HelloImpl.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.mbeans.iiop; + +import java.rmi.RemoteException; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.rmi.PortableRemoteObject; + +/** + * The Hello service implementation.
+ * It exposes two interfaces: the RMI Remote interface, invocable from remote clients - + * represented by the {@link Hello} interface, and + * the management interface - represented by the {@link HelloImplMBean} interface, + * invocable from management applications that wants to manage the features of this + * service. + * + * @version $Revision: 1.4 $ + */ +public class HelloImpl implements Hello, HelloImplMBean +{ + private boolean m_isRunning; + + public HelloImpl() throws RemoteException + { + } + + public void sayHello(String name) throws RemoteException + { + String hello = "Hello"; + System.out.println(hello + " " + name); + } + + public void start() throws Exception + { + if (!m_isRunning) + { + // export the remote object + PortableRemoteObject.exportObject(this); + // set up the initialContext + Context ctx = new InitialContext(); + ctx.rebind(IIOP_JNDI_NAME, this); + System.out.println("My Service servant started successfully"); + m_isRunning = true; + } + } + + public void stop() throws Exception + { + if (m_isRunning) + { + PortableRemoteObject.unexportObject(this); + Context ctx = new InitialContext(); + ctx.unbind(IIOP_JNDI_NAME); + m_isRunning = false; + System.out.println("My Service Servant stopped successfully"); + } + } + + public boolean isRunning() + { + return m_isRunning; + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/HelloImplMBean.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/HelloImplMBean.java new file mode 100644 index 0000000..712831d --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/HelloImplMBean.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.mbeans.iiop; + +/** + * The management interface exposed by the service. + * As you can see, the management operations consist of + * starting and stopping the service along with seeing if the server is running. + * Note that it does not contain the {@link Hello#sayHello} method, which is + * considered in this example a business method and not a management method. + * + * @version $Revision: 1.4 $ + */ +public interface HelloImplMBean +{ + /** + * Starts the service, allowing RMI clients to connect + * + * @see #stop + */ + public void start() throws Exception; + + /** + * Stops the service so that RMI clients cannot connect anymore + * + * @see #start + */ + public void stop() throws Exception; + + /** + * Returns if the service is running + * + * @see #start + */ + public boolean isRunning(); +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/IIOPClient.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/IIOPClient.java new file mode 100644 index 0000000..a3ec874 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/IIOPClient.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.mbeans.iiop; + +import javax.naming.InitialContext; +import javax.rmi.PortableRemoteObject; + +/** + * This example connects to an RMI over IIOP server and invoke the services it exposes, + * in this simple example it just calls {@link Hello#sayHello}. + * + * @version $Revision: 1.4 $ + */ +public class IIOPClient +{ + public static void main(String[] args) throws Exception + { + InitialContext ctx = new InitialContext(); + Hello remoteInterface = (Hello)PortableRemoteObject.narrow(ctx.lookup(Hello.IIOP_JNDI_NAME), Hello.class); + remoteInterface.sayHello("from the MX4J Team"); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/IIOPServer.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/IIOPServer.java new file mode 100644 index 0000000..a01e1fa --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/iiop/IIOPServer.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.mbeans.iiop; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.MBeanServerInvocationHandler; +import javax.management.ObjectName; + +/** + * This example starts a RMI over IIOP server that listens for RMI clients to connect + * and exposes its functionalities via JMX. + * To be run, be sure to have started the tnameserv or the orbd utility on the port + * specified by {@link Hello#IIOP_JNDI_NAME}, with the following command: + *

+ * $JAVA_HOME/bin/orbd -ORBInitialPort 1900
+ * 
+ * + * @version $Revision: 1.5 $ + */ +public class IIOPServer +{ + public static void main(String[] args) throws Exception + { + MBeanServer server = MBeanServerFactory.newMBeanServer(); + + ObjectName name = new ObjectName("examples:type=iiop-remote"); + HelloImpl remote = new HelloImpl(); + server.registerMBean(remote, name); + + HelloImplMBean managed = (HelloImplMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, HelloImplMBean.class, false); + managed.start(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/DynamicLegacyService.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/DynamicLegacyService.java new file mode 100644 index 0000000..a534a82 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/DynamicLegacyService.java @@ -0,0 +1,200 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.legacy; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import javax.management.ListenerNotFoundException; +import javax.management.MBeanAttributeInfo; +import javax.management.MBeanNotificationInfo; +import javax.management.MBeanOperationInfo; +import javax.management.MBeanParameterInfo; +import javax.management.Notification; +import javax.management.NotificationBroadcaster; +import javax.management.NotificationBroadcasterSupport; +import javax.management.NotificationFilter; +import javax.management.NotificationListener; + +import mx4j.AbstractDynamicMBean; + +/** + * The wrapper DynamicMBean for exposing the legacy service in a non-invasive way.
+ * This MBean emits notifications when the legacy service starts its activity and when it stops it. + * Furthermore, when the legacy service is running, it displays the number of threads that the + * legacy service is using to perform its activity.
+ * Note how the {@link LegacyService} is completely unaware of JMX, and even if it has private fields + * and methods (the legacy service was designed without knowledge of JMX), it is possible to + * expose them (via reflection) in JMX.
+ * This MBean is divided in two parts, the implementation one and the JMX one. Note how the JMX + * part, thanks to {@link AbstractDynamicMBean}, is very simple even if it is a DynamicMBean. + * + * @version $Revision: 1.4 $ + */ +public class DynamicLegacyService extends AbstractDynamicMBean implements NotificationBroadcaster +{ + // + // Implementation Part + // + + private LegacyService service; + private Thread statusThread; + + public DynamicLegacyService(LegacyService service) + { + this.service = service; + + statusThread = new Thread(new Runnable() + { + public void run() + { + monitorStatus(); + } + }); + } + + /** + * Starts monitoring the legacy service, and starts as well the legacy service + * + * @see #isRunning + */ + public void start() + { + // Start the thread that monitors the status of the service + statusThread.start(); + + // We remap the 'start' method as defined by JMX to the 'execute' method of the legacy service + service.execute(); + } + + /** + * Returns whether the legacy service has woken up and it is running or not. + */ + public boolean isRunning() + { + // The method 'isRunning' is private in the legacy service, so here we use reflection tricks + try + { + Class cls = service.getClass(); + Method method = cls.getDeclaredMethod("isRunning", new Class[0]); + method.setAccessible(true); + Boolean result = (Boolean)method.invoke(service, new Object[0]); + return result.booleanValue(); + } + catch (Exception ignored) + { + ignored.printStackTrace(); + return false; + } + } + + /** + * Returns the number of threads that the legacy service is using to perform its job when it + * wakes up. + */ + public int getThreadCount() + { + // There is no a direct mapping of the thread count in the legacy service + // We use again reflection tricks, calling LegacyService.group.activeCount() + try + { + Class cls = service.getClass(); + Field field = cls.getDeclaredField("group"); + field.setAccessible(true); + ThreadGroup group = (ThreadGroup)field.get(service); + return group.activeCount(); + } + catch (Exception ignored) + { + ignored.printStackTrace(); + return 0; + } + } + + /** + * Monitors the status of the legacy service, every 50 ms, to see if it has woken up + * and it is running.
+ * When the legacy service starts and stops its job, a notification is emitted. + */ + private void monitorStatus() + { + boolean wasRunning = false; + while (true) + { + boolean isRunning = isRunning(); + if (wasRunning ^ isRunning) + { + Notification notification = new Notification("legacy.status.running." + isRunning, this, 0, "Legacy Service Status: " + isRunning); + broadcaster.sendNotification(notification); + wasRunning = isRunning; + } + else + { + if (isRunning) System.out.println("Threads: " + getThreadCount()); + } + + // Monitor every 50 ms + try + { + Thread.sleep(50); + } + catch (InterruptedException ignored) + { + } + } + } + + // + // JMX Part + // + + private NotificationBroadcasterSupport broadcaster = new NotificationBroadcasterSupport(); + + protected MBeanAttributeInfo[] createMBeanAttributeInfo() + { + return new MBeanAttributeInfo[] + { + new MBeanAttributeInfo("Running", "boolean", "The running status of the Legacy Service", true, false, true), + new MBeanAttributeInfo("ThreadCount", "int", "The number of running threads", true, false, false) + }; + } + + protected MBeanOperationInfo[] createMBeanOperationInfo() + { + return new MBeanOperationInfo[] + { + new MBeanOperationInfo("start", "Start the Legacy Service", new MBeanParameterInfo[0], "void", MBeanOperationInfo.ACTION) + }; + } + + protected MBeanNotificationInfo[] createMBeanNotificationInfo() + { + return getNotificationInfo(); + } + + public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) + { + broadcaster.addNotificationListener(listener, filter, handback); + } + + public MBeanNotificationInfo[] getNotificationInfo() + { + return new MBeanNotificationInfo[] + { + new MBeanNotificationInfo + (new String[]{"legacy.status.running.true", "legacy.status.running.false"}, + Notification.class.getName(), + "Notifications on the status of the Legacy Service") + }; + } + + public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException + { + broadcaster.removeNotificationListener(listener); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/LegacyExample.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/LegacyExample.java new file mode 100644 index 0000000..472f438 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/LegacyExample.java @@ -0,0 +1,62 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.legacy; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.Notification; +import javax.management.NotificationListener; +import javax.management.ObjectName; + +/** + * This example aims to show how it is possible, with JMX, to write a non-invasive + * wrapper for an existing legacy service in order to expose the functionality + * of the legacy service with JMX. + * + * @version $Revision: 1.3 $ + */ +public class LegacyExample +{ + public static void main(String[] args) throws Exception + { + // Create the service + LegacyService legacyService = new LegacyService(); + + // Create the JMX MBeanServer and register the service wrapper + MBeanServer server = MBeanServerFactory.newMBeanServer(); + ObjectName serviceName = new ObjectName("examples", "mbean", "legacy"); + DynamicLegacyService dynamicService = new DynamicLegacyService(legacyService); + server.registerMBean(dynamicService, serviceName); + + // Now register a listener: we want to be able to know when the service starts and stops + server.addNotificationListener(serviceName, new NotificationListener() + { + public void handleNotification(Notification notification, Object handback) + { + System.out.println(notification); + } + }, null, null); + + // Now start the service, using the new method name: 'start' instead of 'execute' + server.invoke(serviceName, "start", null, null); + } + + /** + * This is the old main routine that started the service. + * In this example we had the possibility to modify the starter of the service + * by renaming the main method and by writing a new one that uses JMX. + * However, it is also possible to write another starter leaving the legacy part + * totally unchanged. + */ + public static void oldMain(String[] args) + { + LegacyService service = new LegacyService(); + service.execute(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/LegacyService.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/LegacyService.java new file mode 100644 index 0000000..8d97a41 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/legacy/LegacyService.java @@ -0,0 +1,117 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.legacy; + +/** + * This service wakes up every once in a while, and does an intensive job + * spawning many threads to perform the given operation.
+ * We would like to be informed of this activity, and would like to expose functionality of + * this service via JMX. To achieve these goals, we wrap it by means of a DynamicMBean, + * {@link DynamicLegacyService}. + * + * @version $Revision: 1.3 $ + */ +public class LegacyService +{ + private boolean running; + private ThreadGroup group = new ThreadGroup("Legacy Thread Group"); + + /** + * This method is called 'execute', but we want to expose it in JMX with the name 'start'. + * The magic is done in the DynamicMBean that wraps this service to expose it via JMX. + */ + public void execute() + { + while (true) + { + // Wait for a while + long wait = Math.round(Math.random() * 10000L) + 1; + try + { + System.out.println("Waiting " + wait + " ms..."); + Thread.sleep(wait); + } + catch (InterruptedException ignored) + { + } + // Ok, we've slept enough, time to do some job + synchronized (this) + { + running = true; + } + + Thread thread = new Thread(new Runnable() + { + public void run() + { + spawnThreads(); + // We're done now, not running anymore + synchronized (this) + { + running = false; + } + } + }); + thread.start(); + try + { + thread.join(); + } + catch (InterruptedException ignored) + { + } + } + } + + /** + * This method is private in the legacy service. However, we want to expose it via JMX + * without modifying this service. The magic is done in the DynamicMBean that wraps this + * service to expose it via JMX. + */ + private synchronized boolean isRunning() + { + return running; + } + + private void spawnThreads() + { + Thread[] threads = new Thread[20]; + for (int i = 0; i < threads.length; ++i) + { + threads[i] = new Thread(group, new Runnable() + { + public void run() + { + // Simulate a job: sleep for a while :D + long sleep = Math.round(Math.random() * 5000L) + 1; + try + { + Thread.sleep(sleep); + } + catch (InterruptedException ignored) + { + } + } + }); + threads[i].start(); + } + + // Now wait for everyone to complete: + for (int i = 0; i < threads.length; ++i) + { + try + { + threads[i].join(); + } + catch (InterruptedException ignored) + { + } + } + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/Client.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/Client.java new file mode 100644 index 0000000..cd5c223 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/Client.java @@ -0,0 +1,25 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.rmi; + +import javax.naming.InitialContext; + +/** + * @version $Revision: 1.3 $ + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + InitialContext ctx = new InitialContext(); + MyRemoteService service = (MyRemoteService)ctx.lookup(MyRemoteService.JNDI_NAME); + + service.sayHello("Simon"); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteService.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteService.java new file mode 100644 index 0000000..784d135 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteService.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.rmi; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +/** + * The RMI Remote interface of the service. + * + * @version $Revision: 1.4 $ + */ +public interface MyRemoteService extends Remote +{ + public static final String JNDI_NAME = "rmi://localhost:1099/my-service"; + + public void sayHello(String name) throws RemoteException; +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteServiceObject.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteServiceObject.java new file mode 100644 index 0000000..5a8afd9 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteServiceObject.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.rmi; + +import java.rmi.RemoteException; +import java.rmi.server.RemoteServer; +import java.rmi.server.UnicastRemoteObject; +import javax.naming.InitialContext; + +/** + * The service implementation.
+ * It exposes two interfaces: the RMI Remote interface, invocable from remote clients - + * represented by the {@link MyRemoteService} interface, and + * the management interface - represented by the {@link MyRemoteServiceObjectMBean} interface, + * invocable from management applications that wants to manage the features of this + * service. + * + * @version $Revision: 1.4 $ + */ +public class MyRemoteServiceObject extends RemoteServer implements MyRemoteService, MyRemoteServiceObjectMBean +{ + private boolean m_running; + + public MyRemoteServiceObject() throws RemoteException + { + } + + public void sayHello(String name) throws RemoteException + { + System.out.println("Hello, " + name); + } + + public void start() throws Exception + { + if (!m_running) + { + UnicastRemoteObject.exportObject(this); + InitialContext ctx = new InitialContext(); + ctx.rebind(JNDI_NAME, this); + m_running = true; + System.out.println("My remote service started successfully"); + } + } + + public void stop() throws Exception + { + if (m_running) + { + InitialContext ctx = new InitialContext(); + ctx.unbind(JNDI_NAME); + UnicastRemoteObject.unexportObject(this, false); + m_running = false; + System.out.println("My remote service stopped successfully"); + } + } + + public boolean isRunning() + { + return m_running; + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteServiceObjectMBean.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteServiceObjectMBean.java new file mode 100644 index 0000000..d8e4c63 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/MyRemoteServiceObjectMBean.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.rmi; + +/** + * The management interface exposed by the service. + * As you can see, the management operations consist of + * starting and stopping the service along with seeing if the server is running. + * Note that it does not contain the {@link MyRemoteService#sayHello} method, which is + * considered in this example a business method and not a management method. + * + * @version $Revision: 1.4 $ + */ +public interface MyRemoteServiceObjectMBean +{ + public void start() throws Exception; + + public void stop() throws Exception; + + public boolean isRunning(); +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/Server.java b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/Server.java new file mode 100644 index 0000000..bcb8804 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/mbeans/rmi/Server.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.mbeans.rmi; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.MBeanServerInvocationHandler; +import javax.management.ObjectName; + +/** + * This example starts a RMI over IIOP server that listens for RMI clients to connect + * and exposes its functionalities via JMX. + * To be run, be sure to have started the rmiregistry utility on the port + * specified by {@link MyRemoteService#JNDI_NAME}, with the following command: + *
+ * $JAVA_HOME/bin/rmiregistry 1099
+ * 
+ * + * @version $Revision: 1.4 $ + */ +public class Server +{ + public static void main(String[] args) throws Exception + { + MBeanServer server = MBeanServerFactory.createMBeanServer(); + + ObjectName name = new ObjectName("examples:type=remote"); + MyRemoteServiceObject remote = new MyRemoteServiceObject(); + server.registerMBean(remote, name); + + MyRemoteServiceObjectMBean managed = (MyRemoteServiceObjectMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, MyRemoteServiceObjectMBean.class, false); + managed.start(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/interception/Client.java b/mx4j-3.0.2/examples/mx4j/examples/remote/interception/Client.java new file mode 100644 index 0000000..00814ad --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/interception/Client.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.interception; + +import java.util.HashMap; +import java.util.Map; +import javax.management.MBeanServerConnection; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; + +/** + * This example shows how to setup a JSR 160 connector client that connects to + * a JSR 160 connector server that intercepts calls directed to it. + * + * @version $Revision: 1.3 $ + * @see Server + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + // The address of the connector server + JMXServiceURL url = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jmx"); + + // The credentials are passed via the environment Map + Map environment = new HashMap(); + String[] credentials = new String[]{"guest", "guest"}; + environment.put(JMXConnector.CREDENTIALS, credentials); + + // Connect to the server + JMXConnector cntor = JMXConnectorFactory.connect(url, environment); + + MBeanServerConnection connection = cntor.getMBeanServerConnection(); + + // On the server's console, this call will be intercepted + String domain = connection.getDefaultDomain(); + System.out.println("Default domain = " + domain); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/interception/Server.java b/mx4j-3.0.2/examples/mx4j/examples/remote/interception/Server.java new file mode 100644 index 0000000..571f7ab --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/interception/Server.java @@ -0,0 +1,98 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.interception; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; +import javax.management.remote.JMXAuthenticator; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +import mx4j.tools.naming.NamingService; +import mx4j.tools.remote.PasswordAuthenticator; + +/** + * This example shows how to setup a JSR 160 connector server that intercepts calls to its target MBeanServer. + * It will be shown how to intercept and print on the console the Subject of the current call. + * It is very similar to the {@link mx4j.examples.remote.security.Server security example}, because it needs + * an authenticated Subject to be present in order to log the Subject of the current invocation. + * + * @version $Revision: 1.3 $ + * @see Client + */ +public class Server +{ + private static final String PASSWORD_FILE = "users.properties"; + + public static void main(String[] args) throws Exception + { + prepareUsersFile(); + + // The address of the connector server + JMXServiceURL url = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jmx"); + + // Specify the authenticator in the environment Map, using the + // standard property JMXConnector.AUTHENTICATOR + Map environment = new HashMap(); + JMXAuthenticator authenticator = new PasswordAuthenticator(new File(PASSWORD_FILE)); + environment.put(JMXConnectorServer.AUTHENTICATOR, authenticator); + + // Create and register the connector server + JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, environment, null); + ObjectName cntorServerName = ObjectName.getInstance(":service=" + JMXConnectorServer.class.getName() + ",protocol=" + url.getProtocol()); + MBeanServer server = MBeanServerFactory.createMBeanServer("remote.security.example"); + server.registerMBean(cntorServer, cntorServerName); + + // Setup the rmiregistry to bind in JNDI the RMIConnectorServer stub. + NamingService naming = new NamingService(); + ObjectName namingName = ObjectName.getInstance(":service=" + NamingService.class.getName()); + server.registerMBean(naming, namingName); + naming.start(); + + // Setup the interception + SubjectTrackingMBeanServer interceptor = new SubjectTrackingMBeanServer(); + cntorServer.setMBeanServerForwarder(interceptor); + + // Start the connector server + cntorServer.start(); + + System.out.println("Server up and running"); + } + + /** + * Writes a user/password file in the filesystem, with two hardcoded users: + * 'admin' and 'guest'. + * Normally this file is provided externally, not created by a program. + * Purpose of this method is to show how to obfuscate passwords using + * {@link PasswordAuthenticator}. + */ + private static void prepareUsersFile() throws IOException + { + Properties properties = new Properties(); + + String user = "admin"; + String password = PasswordAuthenticator.obfuscatePassword("admin"); + properties.setProperty(user, password); + + user = "guest"; + password = PasswordAuthenticator.obfuscatePassword("guest"); + properties.setProperty(user, password); + + FileOutputStream fos = new FileOutputStream(new File(PASSWORD_FILE)); + properties.store(fos, null); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/interception/SubjectTrackingMBeanServer.java b/mx4j-3.0.2/examples/mx4j/examples/remote/interception/SubjectTrackingMBeanServer.java new file mode 100644 index 0000000..bce9d82 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/interception/SubjectTrackingMBeanServer.java @@ -0,0 +1,310 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.interception; + +import java.io.ObjectInputStream; +import java.security.AccessController; +import java.util.Set; +import javax.management.Attribute; +import javax.management.AttributeList; +import javax.management.AttributeNotFoundException; +import javax.management.InstanceAlreadyExistsException; +import javax.management.InstanceNotFoundException; +import javax.management.IntrospectionException; +import javax.management.InvalidAttributeValueException; +import javax.management.ListenerNotFoundException; +import javax.management.MBeanException; +import javax.management.MBeanInfo; +import javax.management.MBeanRegistrationException; +import javax.management.MBeanServer; +import javax.management.NotCompliantMBeanException; +import javax.management.NotificationFilter; +import javax.management.NotificationListener; +import javax.management.ObjectInstance; +import javax.management.ObjectName; +import javax.management.OperationsException; +import javax.management.QueryExp; +import javax.management.ReflectionException; +import javax.management.loading.ClassLoaderRepository; +import javax.management.remote.MBeanServerForwarder; +import javax.security.auth.Subject; + +/** + * This class tracks the Subject of the current invocation, and prints it to System.out. + * It should be better implemented as JDK 1.3 dynamic proxy, but this is left as a simple + * exercise to the reader ;) + * + * @version $Revision: 1.3 $ + */ +public class SubjectTrackingMBeanServer implements MBeanServerForwarder +{ + private MBeanServer server; + + public synchronized MBeanServer getMBeanServer() + { + return server; + } + + public synchronized void setMBeanServer(MBeanServer server) throws IllegalArgumentException + { + if (server == null) throw new IllegalArgumentException("Cannot forward to a null MBeanServer"); + this.server = server; + } + + private void trackSubject() + { + Subject subject = Subject.getSubject(AccessController.getContext()); + System.out.println("Subject = " + subject); + } + + public void addNotificationListener(ObjectName observed, NotificationListener listener, NotificationFilter filter, Object handback) + throws InstanceNotFoundException + { + trackSubject(); + getMBeanServer().addNotificationListener(observed, listener, filter, handback); + } + + public void addNotificationListener(ObjectName observed, ObjectName listener, NotificationFilter filter, Object handback) + throws InstanceNotFoundException + { + trackSubject(); + getMBeanServer().addNotificationListener(observed, listener, filter, handback); + } + + public void removeNotificationListener(ObjectName observed, ObjectName listener) + throws InstanceNotFoundException, ListenerNotFoundException + { + trackSubject(); + getMBeanServer().removeNotificationListener(observed, listener); + } + + public void removeNotificationListener(ObjectName observed, NotificationListener listener) + throws InstanceNotFoundException, ListenerNotFoundException + { + trackSubject(); + getMBeanServer().removeNotificationListener(observed, listener); + } + + public void removeNotificationListener(ObjectName observed, ObjectName listener, NotificationFilter filter, Object handback) + throws InstanceNotFoundException, ListenerNotFoundException + { + trackSubject(); + getMBeanServer().removeNotificationListener(observed, listener, filter, handback); + } + + public void removeNotificationListener(ObjectName observed, NotificationListener listener, NotificationFilter filter, Object handback) + throws InstanceNotFoundException, ListenerNotFoundException + { + trackSubject(); + getMBeanServer().removeNotificationListener(observed, listener, filter, handback); + } + + public MBeanInfo getMBeanInfo(ObjectName objectName) + throws InstanceNotFoundException, IntrospectionException, ReflectionException + { + trackSubject(); + return getMBeanServer().getMBeanInfo(objectName); + } + + public boolean isInstanceOf(ObjectName objectName, String className) + throws InstanceNotFoundException + { + trackSubject(); + return getMBeanServer().isInstanceOf(objectName, className); + } + + public String[] getDomains() + { + trackSubject(); + return getMBeanServer().getDomains(); + } + + public String getDefaultDomain() + { + trackSubject(); + return getMBeanServer().getDefaultDomain(); + } + + public ObjectInstance createMBean(String className, ObjectName objectName) + throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException + { + trackSubject(); + return getMBeanServer().createMBean(className, objectName); + } + + public ObjectInstance createMBean(String className, ObjectName objectName, ObjectName loaderName) + throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException + { + trackSubject(); + return getMBeanServer().createMBean(className, objectName, loaderName); + } + + public ObjectInstance createMBean(String className, ObjectName objectName, Object[] args, String[] parameters) + throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException + { + trackSubject(); + return getMBeanServer().createMBean(className, objectName, args, parameters); + } + + public ObjectInstance createMBean(String className, ObjectName objectName, ObjectName loaderName, Object[] args, String[] parameters) + throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException + { + trackSubject(); + return getMBeanServer().createMBean(className, objectName, loaderName, args, parameters); + } + + public void unregisterMBean(ObjectName objectName) + throws InstanceNotFoundException, MBeanRegistrationException + { + trackSubject(); + getMBeanServer().unregisterMBean(objectName); + } + + public Object getAttribute(ObjectName objectName, String attribute) + throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException + { + trackSubject(); + return getMBeanServer().getAttribute(objectName, attribute); + } + + public void setAttribute(ObjectName objectName, Attribute attribute) + throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException + { + trackSubject(); + getMBeanServer().setAttribute(objectName, attribute); + } + + public AttributeList getAttributes(ObjectName objectName, String[] attributes) + throws InstanceNotFoundException, ReflectionException + { + trackSubject(); + return getMBeanServer().getAttributes(objectName, attributes); + } + + public AttributeList setAttributes(ObjectName objectName, AttributeList attributes) + throws InstanceNotFoundException, ReflectionException + { + trackSubject(); + return getMBeanServer().setAttributes(objectName, attributes); + } + + public Object invoke(ObjectName objectName, String methodName, Object[] args, String[] parameters) + throws InstanceNotFoundException, MBeanException, ReflectionException + { + trackSubject(); + return getMBeanServer().invoke(objectName, methodName, args, parameters); + } + + public Integer getMBeanCount() + { + trackSubject(); + return getMBeanServer().getMBeanCount(); + } + + public boolean isRegistered(ObjectName objectname) + { + trackSubject(); + return getMBeanServer().isRegistered(objectname); + } + + public ObjectInstance getObjectInstance(ObjectName objectName) + throws InstanceNotFoundException + { + trackSubject(); + return getMBeanServer().getObjectInstance(objectName); + } + + public Set queryMBeans(ObjectName patternName, QueryExp filter) + { + trackSubject(); + return getMBeanServer().queryMBeans(patternName, filter); + } + + public Set queryNames(ObjectName patternName, QueryExp filter) + { + trackSubject(); + return getMBeanServer().queryNames(patternName, filter); + } + + public Object instantiate(String className) + throws ReflectionException, MBeanException + { + trackSubject(); + return getMBeanServer().instantiate(className); + } + + public Object instantiate(String className, ObjectName loaderName) + throws ReflectionException, MBeanException, InstanceNotFoundException + { + trackSubject(); + return getMBeanServer().instantiate(className, loaderName); + } + + public Object instantiate(String className, Object[] args, String[] parameters) + throws ReflectionException, MBeanException + { + trackSubject(); + return getMBeanServer().instantiate(className, args, parameters); + } + + public Object instantiate(String className, ObjectName loaderName, Object[] args, String[] parameters) + throws ReflectionException, MBeanException, InstanceNotFoundException + { + trackSubject(); + return getMBeanServer().instantiate(className, loaderName, args, parameters); + } + + public ObjectInstance registerMBean(Object mbean, ObjectName objectName) + throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException + { + trackSubject(); + return registerMBean(mbean, objectName); + } + + public ObjectInputStream deserialize(String className, ObjectName loaderName, byte[] bytes) + throws InstanceNotFoundException, OperationsException, ReflectionException + { + trackSubject(); + return getMBeanServer().deserialize(className, loaderName, bytes); + } + + public ObjectInputStream deserialize(String className, byte[] bytes) + throws OperationsException, ReflectionException + { + trackSubject(); + return getMBeanServer().deserialize(className, bytes); + } + + public ObjectInputStream deserialize(ObjectName objectName, byte[] bytes) + throws InstanceNotFoundException, OperationsException + { + trackSubject(); + return getMBeanServer().deserialize(objectName, bytes); + } + + public ClassLoader getClassLoaderFor(ObjectName mbeanName) + throws InstanceNotFoundException + { + trackSubject(); + return getMBeanServer().getClassLoaderFor(mbeanName); + } + + public ClassLoader getClassLoader(ObjectName loaderName) + throws InstanceNotFoundException + { + trackSubject(); + return getMBeanServer().getClassLoader(loaderName); + } + + public ClassLoaderRepository getClassLoaderRepository() + { + trackSubject(); + return getMBeanServer().getClassLoaderRepository(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/notification/Client.java b/mx4j-3.0.2/examples/mx4j/examples/remote/notification/Client.java new file mode 100644 index 0000000..d14d798 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/notification/Client.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.notification; + +import javax.management.MBeanServerConnection; +import javax.management.Notification; +import javax.management.NotificationListener; +import javax.management.ObjectName; +import javax.management.loading.MLet; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; + +/** + * This example shows how to setup a JSR 160 connector client, and how it is + * possible to receive notifications emitted by a remote connector server. + * + * @version $Revision: 1.4 $ + * @see Server + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + // The address of the connector server + JMXServiceURL url = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jmx"); + + // Create and connect the connector client + JMXConnector cntor = JMXConnectorFactory.connect(url, null); + + // The connection represent, on client-side, the remote MBeanServer + MBeanServerConnection connection = cntor.getMBeanServerConnection(); + + // The listener that will receive notifications from a remote MBean + NotificationListener listener = new NotificationListener() + { + public void handleNotification(Notification notification, Object handback) + { + System.out.println(notification); + } + }; + + // The MBeanServerDelegate emits notifications about registration/unregistration of MBeans + ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate"); + + connection.addNotificationListener(delegateName, listener, null, null); + + // Give chance to the notification machinery to setup + Thread.sleep(1000); + + // Now register a remote MBean, for example an MLet, so that the MBeanServerDelegate + // will emit notifications for its registration + ObjectName name = ObjectName.getInstance("examples:mbean=mlet"); + // First notification + connection.createMBean(MLet.class.getName(), name, null); + // Second notification + connection.unregisterMBean(name); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/notification/Server.java b/mx4j-3.0.2/examples/mx4j/examples/remote/notification/Server.java new file mode 100644 index 0000000..286a0bf --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/notification/Server.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.notification; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +import mx4j.tools.naming.NamingService; + +/** + * This example shows how to setup a JSR 160 connector server. + * The client counterpart of this example will register a remote NotificationListener + * and receive notifications over the wire. + * Nothing special is needed in the server side, if not registering an MBean + * that implements {@link javax.management.NotificationEmitter}. + * Every JMX implementation already has such an MBean registered, the MBeanServerDelegate. + * The client will register a NotificationListener to the MBeanServerDelegate MBean, + * that emits notifications when other MBeans are registered or unregistered. + * + * @version $Revision: 1.4 $ + * @see Client + */ +public class Server +{ + public static void main(String[] args) throws Exception + { + // The address of the connector server + JMXServiceURL url = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jmx"); + + // No need of environment variables or the MBeanServer at this point + JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, null); + ObjectName cntorServerName = ObjectName.getInstance(":service=" + JMXConnectorServer.class.getName() + ",protocol=" + url.getProtocol()); + + MBeanServer server = MBeanServerFactory.createMBeanServer("remote.notification.example"); + // Register the connector server as MBean + server.registerMBean(cntorServer, cntorServerName); + + // The rmiregistry needed to bind the RMI stub + NamingService naming = new NamingService(); + ObjectName namingName = ObjectName.getInstance(":service=" + NamingService.class.getName()); + server.registerMBean(naming, namingName); + naming.start(); + + // Start the connector server + cntorServer.start(); + + System.out.println("Server up and running"); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/iiop/Client.java b/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/iiop/Client.java new file mode 100644 index 0000000..6604f5a --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/iiop/Client.java @@ -0,0 +1,62 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.rmi.iiop; + +import javax.management.MBeanServerConnection; +import javax.management.MBeanServerDelegateMBean; +import javax.management.MBeanServerInvocationHandler; +import javax.management.ObjectName; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; + +/** + * This example shows how to connect to a JSR 160 connector server over IIOP. + * It is very similar to the simple example also present in these examples, except + * that it uses the IIOP protocol instead of native RMI's one, called JRMP. + * + * @version $Revision: 1.4 $ + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + // The JMXConnectorServer protocol, in this case is IIOP + String serverProtocol = "iiop"; + + // The RMI server's host: this is actually ignored by JSR 160 + // since this information is stored in the RMI stub. + String serverHost = "host"; + + // The host and port where the COSNaming service runs and the path under which the stub is registered. + String namingHost = "localhost"; + int namingPort = 1199; + String jndiPath = "/jmxconnector"; + + // The address of the connector server + JMXServiceURL url = new JMXServiceURL("service:jmx:" + serverProtocol + "://" + serverHost + "/jndi/iiop://" + namingHost + ":" + namingPort + jndiPath); + + // Connect a JSR 160 JMXConnector to the server side + JMXConnector connector = JMXConnectorFactory.connect(url); + + // Retrieve an MBeanServerConnection that represent the MBeanServer the remote + // connector server is bound to + MBeanServerConnection connection = connector.getMBeanServerConnection(); + + // Call the server side as if it is a local MBeanServer + ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate"); + Object proxy = MBeanServerInvocationHandler.newProxyInstance(connection, delegateName, MBeanServerDelegateMBean.class, true); + MBeanServerDelegateMBean delegate = (MBeanServerDelegateMBean)proxy; + + // The magic of JDK 1.3 dynamic proxy and JSR 160: + // delegate.getImplementationVendor() is actually a remote JMX call, + // but it looks like a local, old-style, java call. + System.out.println(delegate.getImplementationVendor() + " is cool !"); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/iiop/Server.java b/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/iiop/Server.java new file mode 100644 index 0000000..7859354 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/iiop/Server.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.rmi.iiop; + +import javax.management.Attribute; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +/** + * This example shows the how to setup a JSR 160 connector server over IIOP, the CORBA + * protocol. + * It is very similar to the simple example also present in these examples, except + * that it uses the IIOP protocol instead of native RMI's one, called JRMP. + * + * @version $Revision: 1.3 $ + */ +public class Server +{ + public static void main(String[] args) throws Exception + { + // The MBeanServer + MBeanServer server = MBeanServerFactory.createMBeanServer(); + + // Register and start the tnameserv MBean, needed by JSR 160 RMIConnectorServer over IIOP + // You can also start the new JDK 1.4 'orbd' daemon, but you should do so externally + // as there are no MBeans that wrap it. + ObjectName namingName = ObjectName.getInstance("naming:type=tnameserv"); + server.createMBean("mx4j.tools.naming.CosNamingService", namingName, null); + // Standard port for the COS naming service is 900, but that's a restricted port on Unix/Linux systems + int namingPort = 1199; + server.setAttribute(namingName, new Attribute("Port", new Integer(namingPort))); + server.invoke(namingName, "start", null, null); + + String jndiPath = "/jmxconnector"; + // Note how the JMXServiceURL specifies 'iiop' as protocol for both the + // JMXConnectorServer (the first), to indicate the protocol of the JMXConnectorServer, + // and for the naming server (the second), to indicate that this is not the rmiregistry + // but the COS naming service. + JMXServiceURL url = new JMXServiceURL("service:jmx:iiop://localhost/jndi/iiop://localhost:" + namingPort + jndiPath); + + // Create and start the RMIConnectorServer over IIOP + JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server); + connectorServer.start(); + + System.out.println("Server up and running"); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/ssl/Client.java b/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/ssl/Client.java new file mode 100644 index 0000000..0ab20c4 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/ssl/Client.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.rmi.ssl; + +import javax.management.MBeanServerConnection; +import javax.management.MBeanServerDelegateMBean; +import javax.management.MBeanServerInvocationHandler; +import javax.management.ObjectName; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; + +/** + * This example shows how to connect to a JSR 160 RMIConnectorServer over SSL.
+ * An RMI client that has been setup to use SSL must know the X509 certificate + * corrispondent to the private key used by the server to encrypt the communication. + * This X509 certificate is usually distributed by the server to the clients, that should + * import it into a 'trust store'. + * This trust store can be the JDK's one ($JRE_HOME/lib/security/cacerts) or a custom one. + * In both cases the import operation can be achieved by using JDK's keytool utility. + * Here is the command to create a custom trust store containing the X509 certificate + * from a certificate file 'myserver.cer' distributed by the server: + *
+ * keytool -import -v -file myserver.cer -storepass storepwd -keystore trust.store -noprompt
+ * 
+ * When using a custom trust store, the system property javax.net.ssl.trustStore + * must point to the file path of the trust store.
+ * If instead the X509 certificate has been imported into the JDK's default trust store, + * then it is not necessary to specify the javax.net.ssl.trustStore system + * property.

+ * This example is meant to show the usage of the JSR 160 API: it is not an example of how to + * setup a secure environment.
+ * Please refer to the JDK documentation about usage of keytool, to the JCE and JSSE documentation + * and to a good book on Java security before porting these examples to a real environment that + * must be secured. + * You know what I mean :-) + * + * @version $Revision: 1.4 $ + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + // The RMI server's host: this is actually ignored by JSR 160 + // since this information is stored in the RMI stub. + String serverHost = "localhost"; + + // The host where the rmiregistry runs. + String namingHost = "localhost"; + + String jndiPath = "/ssljmxconnector"; + JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://" + serverHost + "/jndi/rmi://" + namingHost + jndiPath); + JMXConnector connector = JMXConnectorFactory.connect(url); + MBeanServerConnection connection = connector.getMBeanServerConnection(); + + // Call the server side + ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate"); + Object proxy = MBeanServerInvocationHandler.newProxyInstance(connection, delegateName, MBeanServerDelegateMBean.class, true); + MBeanServerDelegateMBean delegate = (MBeanServerDelegateMBean)proxy; + + System.out.println(delegate.getImplementationVendor() + " is cool !"); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/ssl/Server.java b/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/ssl/Server.java new file mode 100644 index 0000000..26d5861 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/rmi/ssl/Server.java @@ -0,0 +1,110 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.rmi.ssl; + +import java.io.IOException; +import java.io.InputStream; +import java.security.KeyStore; +import java.util.HashMap; +import java.util.Map; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; +import javax.management.remote.rmi.RMIConnectorServer; +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; + +import mx4j.tools.remote.rmi.SSLRMIClientSocketFactory; +import mx4j.tools.remote.rmi.SSLRMIServerSocketFactory; + +/** + * This example shows how to setup a JSR 160 RMIConnectorServer over SSL.
+ * An RMI server that has been setup to use SSL uses a private key to encrypt the + * communication with the client. The client must know the server's public key in order + * to be able to decrypt the communication; public keys are stored in X509 certificates. + * This X509 certificate is generated by the server and should be made available to + * clients (for example by distributing it).
+ * The private and public key are normally stored in a server-side key store that can + * be created by using the JDK's keytool utility; here is a sample command that can + * be invoked to generate a keystore: + *
+ * keytool -genkey -v -keystore key.store -storepass storepwd -dname "CN=Anonymous Geek, OU=MX4J Development Team, O=The MX4J Project, L=New York City, S=NY, C=US"
+ * 
+ * It creates a 'key.store' file that must be present in the classpath when running this example.
+ * The next step is to export the X509 certificate for the clients, with the following command: + *
+ * keytool -export -v -storepass storepwd -keystore key.store -file myserver.cer
+ * 
+ * It is also possible to generate a trust store containing the X509 certificate that + * can be used directly by the client with the following command: + *
+ * keytool -export -v -storepass storepwd -keystore key.store | keytool -import -v -storepass storepwd -keystore trust.store -noprompt
+ * 
+ * Once you have exported the X509 certificate, follow the instructions on how to setup + * the client {@link Client here}. + * + * @version $Revision: 1.4 $ + */ +public class Server +{ + public static void main(String[] args) throws Exception + { + MBeanServer server = MBeanServerFactory.createMBeanServer(); + + // Register and start the rmiregistry MBean + ObjectName namingName = ObjectName.getInstance("naming:type=rmiregistry"); + server.createMBean("mx4j.tools.naming.NamingService", namingName, null); + server.invoke(namingName, "start", null, null); + int namingPort = ((Integer)server.getAttribute(namingName, "Port")).intValue(); + + String jndiPath = "/ssljmxconnector"; + JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost/jndi/rmi://localhost:" + namingPort + jndiPath); + + // Create the rmi socket factories for SSL + Map environment = new HashMap(); + SSLContext context = createSSLContext(); + environment.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE, new SSLRMIClientSocketFactory()); + environment.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE, new SSLRMIServerSocketFactory(context)); + + // Create and start the RMIConnectorServer + JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, environment, null); + ObjectName connectorServerName = ObjectName.getInstance("connectors:protocol=" + url.getProtocol()); + server.registerMBean(connectorServer, connectorServerName); + connectorServer.start(); + + System.out.println("Server up and running"); + } + + /** + * Creates and returns an SSLContext by reading information from a keystore.
+ * Change the hardcoded options to match your configuration and your environment. + */ + private static SSLContext createSSLContext() throws Exception + { + String keystoreName = "key.store"; + String keystorePassword = "storepwd"; + + KeyStore keystore = KeyStore.getInstance("JKS"); + InputStream keystoreStream = Server.class.getClassLoader().getResourceAsStream(keystoreName); + // Must check for nullity, otherwise a new empty keystore is created by KeyStore.load + if (keystoreStream == null) throw new IOException("Cannot find KeyStore " + keystoreName + " in classpath"); + keystore.load(keystoreStream, keystorePassword.toCharArray()); + + KeyManagerFactory keyFactory = KeyManagerFactory.getInstance("SunX509"); + keyFactory.init(keystore, keystorePassword.toCharArray()); + + SSLContext context = SSLContext.getInstance("TLS"); + context.init(keyFactory.getKeyManagers(), null, null); + + return context; + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/security/Client.java b/mx4j-3.0.2/examples/mx4j/examples/remote/security/Client.java new file mode 100644 index 0000000..b7b0586 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/security/Client.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.security; + +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import javax.management.MBeanServerConnection; +import javax.management.ObjectName; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXPrincipal; +import javax.management.remote.JMXServiceURL; +import javax.security.auth.Subject; + +/** + * This example shows how to setup a JSR 160 connector client that connects to + * a secured JSR 160 connector server, and that uses the subject delegation features + * defined by JSR 160. + * Refer to the MX4J documentation on how to run this example and on how it + * works: this example is described in details. + * + * @version $Revision: 1.4 $ + * @see Server + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + // The address of the connector server + JMXServiceURL url = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jmx"); + + // The credentials are passed via the environment Map + Map environment = new HashMap(); + String[] credentials = new String[]{"guest", "guest"}; + environment.put(JMXConnector.CREDENTIALS, credentials); + + // Connect to the server + JMXConnector cntor = JMXConnectorFactory.connect(url, environment); + + // Create a subject to delegate to + JMXPrincipal principal = new JMXPrincipal("anotherGuest"); + Set principals = new HashSet(); + principals.add(principal); + Subject delegate = new Subject(true, principals, Collections.EMPTY_SET, Collections.EMPTY_SET); + + // Get two MBeanServerConnection: one that uses the 'guest' principal directly, + // the second that uses the 'guest' user but delegates to another principal. + MBeanServerConnection connection = cntor.getMBeanServerConnection(); + MBeanServerConnection delegateConnection = cntor.getMBeanServerConnection(delegate); + + // The example policy file provided allows both MBeanServerConnections to call + // MBeanServerConnection.queryNames + Set mbeans = connection.queryNames(null, null); + System.out.println("MBeans retrieved by a connection without delegate subject:"); + System.out.println(mbeans); + System.out.println(); + + mbeans = delegateConnection.queryNames(null, null); + System.out.println("MBeans retrieved by a connection with a delegate subject:"); + System.out.println(mbeans); + System.out.println(); + + // The example policy file forbids to call MBeanServerConnection.getObjectInstance + try + { + connection.getObjectInstance(ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate")); + throw new Error(); + } + catch (SecurityException x) + { + System.out.println("No permission to call getObjectInstance for the MBeanServerDelegate"); + } + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/security/Server.java b/mx4j-3.0.2/examples/mx4j/examples/remote/security/Server.java new file mode 100644 index 0000000..c212120 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/security/Server.java @@ -0,0 +1,94 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.security; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; +import javax.management.remote.JMXAuthenticator; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +import mx4j.tools.naming.NamingService; +import mx4j.tools.remote.PasswordAuthenticator; + +/** + * This example shows how to setup a JSR 160 connector server that runs under + * security manager and that forbids access to non-authorized users. + * Refer to the MX4J documentation on how to run this example and on how to tune + * the policy files: this example is described in details. + * + * @version $Revision: 1.5 $ + * @see Client + */ +public class Server +{ + private static final String PASSWORD_FILE = "users.properties"; + + public static void main(String[] args) throws Exception + { + prepareUsersFile(); + + // The address of the connector server + JMXServiceURL url = new JMXServiceURL("rmi", "localhost", 0, "/jndi/jmx"); + + // Specify the authenticator in the environment Map, using the + // standard property JMXConnector.AUTHENTICATOR + Map environment = new HashMap(); + JMXAuthenticator authenticator = new PasswordAuthenticator(new File(PASSWORD_FILE)); + environment.put(JMXConnectorServer.AUTHENTICATOR, authenticator); + + // Create and register the connector server + JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, environment, null); + ObjectName cntorServerName = ObjectName.getInstance(":service=" + JMXConnectorServer.class.getName() + ",protocol=" + url.getProtocol()); + MBeanServer server = MBeanServerFactory.createMBeanServer("remote.security.example"); + server.registerMBean(cntorServer, cntorServerName); + + // Setup the rmiregistry to bind in JNDI the RMIConnectorServer stub. + NamingService naming = new NamingService(); + ObjectName namingName = ObjectName.getInstance(":service=" + NamingService.class.getName()); + server.registerMBean(naming, namingName); + naming.start(); + + // Start the connector server + cntorServer.start(); + + System.out.println("Server up and running"); + } + + /** + * Writes a user/password file in the filesystem, with two hardcoded users: + * 'admin' and 'guest'. + * Normally this file is provided externally, not created by a program. + * Purpose of this method is to show how to obfuscate passwords using + * {@link PasswordAuthenticator}. + */ + private static void prepareUsersFile() throws IOException + { + Properties properties = new Properties(); + + String user = "admin"; + String password = PasswordAuthenticator.obfuscatePassword("admin"); + properties.setProperty(user, password); + + user = "guest"; + password = PasswordAuthenticator.obfuscatePassword("guest"); + properties.setProperty(user, password); + + FileOutputStream fos = new FileOutputStream(new File(PASSWORD_FILE)); + properties.store(fos, null); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/security/server.policy b/mx4j-3.0.2/examples/mx4j/examples/remote/security/server.policy new file mode 100644 index 0000000..b37fee9 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/security/server.policy @@ -0,0 +1,63 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +/* + * This is an example policy file for a JMXConnectorServer that uses RMI/JRMP, + * working with JDK 1.4+. + * Refer to the bundled example class mx4j.examples.remote.security.Server and to the + * MX4J documentation for more details. + */ + +grant codebase "file:${user.dir}/dist/lib/mx4j-remote.jar" +{ + permission java.security.AllPermission; +}; +grant codebase "file:${user.dir}/dist/lib/mx4j.jar" +{ + permission java.security.AllPermission; +}; +grant codebase "file:${user.dir}/dist/lib/mx4j-impl.jar" +{ + permission java.security.AllPermission; +}; +grant codebase "file:${user.dir}/dist/lib/mx4j-jmx.jar" +{ + permission java.security.AllPermission; +}; +grant codebase "file:${user.dir}/dist/lib/mx4j-tools.jar" +{ + permission java.security.AllPermission; +}; + +grant codebase "file:${user.dir}/dist/examples/mx4j-examples.jar" +{ + permission java.security.AllPermission; +}; +grant codebase "file:${user.dir}/lib/bcel.jar" +{ + permission java.security.AllPermission; +}; + +grant +{ + permission javax.security.auth.AuthPermission "doAsPrivileged"; + + permission java.net.SocketPermission "localhost:1024-", "listen,resolve"; + permission java.net.SocketPermission "*", "accept,resolve"; +}; + +grant principal javax.management.remote.JMXPrincipal "admin" +{ + permission java.security.AllPermission; +}; + +grant principal javax.management.remote.JMXPrincipal "guest" +{ + permission javax.management.MBeanPermission "*", "queryNames"; + permission javax.management.remote.SubjectDelegationPermission "javax.management.remote.JMXPrincipal.*"; +}; diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/simple/Client.java b/mx4j-3.0.2/examples/mx4j/examples/remote/simple/Client.java new file mode 100644 index 0000000..9e5ad10 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/simple/Client.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.simple; + +import javax.management.MBeanServerConnection; +import javax.management.MBeanServerDelegateMBean; +import javax.management.MBeanServerInvocationHandler; +import javax.management.ObjectName; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; + +/** + * This example shows the simplest way to connect to a JSR 160 connector server.
+ * To do so, the most important information is the JMXServiceURL, which is the address + * of the remote connector server. This url is generated by the server, and + * must be known to the client. + * When using JSR 160's RMI connector server, this information is often in form of a + * JNDI name where the RMI stub has been registered; in this case the client needs + * to know the host and port of the JNDI server and the JNDI path where the stub is + * registered. + * + * @version $Revision: 1.3 $ + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + // The JMXConnectorServer protocol, in this case is RMI. + String serverProtocol = "rmi"; + + // The RMI server's host: this is actually ignored by JSR 160 + // since this information is stored in the RMI stub. + String serverHost = "host"; + + // The host, port and path where the rmiregistry runs. + String namingHost = "localhost"; + int namingPort = 1099; + String jndiPath = "/jmxconnector"; + + // The address of the connector server + JMXServiceURL url = new JMXServiceURL("service:jmx:" + serverProtocol + "://" + serverHost + "/jndi/rmi://" + namingHost + ":" + namingPort + jndiPath); + + // Connect a JSR 160 JMXConnector to the server side + JMXConnector connector = JMXConnectorFactory.connect(url); + + // Retrieve an MBeanServerConnection that represent the MBeanServer the remote + // connector server is bound to + MBeanServerConnection connection = connector.getMBeanServerConnection(); + + // Call the server side as if it is a local MBeanServer + ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate"); + Object proxy = MBeanServerInvocationHandler.newProxyInstance(connection, delegateName, MBeanServerDelegateMBean.class, true); + MBeanServerDelegateMBean delegate = (MBeanServerDelegateMBean)proxy; + + // The magic of JDK 1.3 dynamic proxy and JSR 160: + // delegate.getImplementationVendor() is actually a remote JMX call, + // but it looks like a local, old-style, java call. + System.out.println(delegate.getImplementationVendor() + " is cool !"); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/remote/simple/Server.java b/mx4j-3.0.2/examples/mx4j/examples/remote/simple/Server.java new file mode 100644 index 0000000..b40b8a2 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/remote/simple/Server.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.remote.simple; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +/** + * This example shows the simplest way to setup a JSR 160 connector server. + * It uses the standard JSR 160 RMIConnectorServer, and if you're familiar with + * RMI, you'll know that a JNDI server like the rmiregistry is needed + * in order to register the server stub that will be looked up by the client. + * + * @version $Revision: 1.3 $ + */ +public class Server +{ + public static void main(String[] args) throws Exception + { + // The MBeanServer + MBeanServer server = MBeanServerFactory.createMBeanServer(); + + // Register and start the rmiregistry MBean, needed by JSR 160 RMIConnectorServer + ObjectName namingName = ObjectName.getInstance("naming:type=rmiregistry"); + server.createMBean("mx4j.tools.naming.NamingService", namingName, null); + server.invoke(namingName, "start", null, null); + int namingPort = ((Integer)server.getAttribute(namingName, "Port")).intValue(); + + String jndiPath = "/jmxconnector"; + JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost/jndi/rmi://localhost:" + namingPort + jndiPath); + + // Create and start the RMIConnectorServer + JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server); + connectorServer.start(); + + System.out.println("Server up and running"); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/services/loading/Main.java b/mx4j-3.0.2/examples/mx4j/examples/services/loading/Main.java new file mode 100644 index 0000000..0895ace --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/services/loading/Main.java @@ -0,0 +1,155 @@ +/** + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.services.loading; + +import java.io.File; +import java.net.URL; +import java.util.Arrays; +import java.util.Iterator; +import java.util.Set; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectInstance; +import javax.management.ObjectName; +import javax.management.ReflectionException; +import javax.management.ServiceNotFoundException; +import javax.management.loading.MLet; + +/** + * The starter class for loading MBeans via an MLET file.
+ * Modify at your wish. + * + * @version $Revision: 1.3 $ + */ +public class Main +{ + public static void main(String[] args) throws Exception + { + // Create the MBeanServer + MBeanServer server = MBeanServerFactory.createMBeanServer(); + + // Register the MLet in the MBeanServer + MLet mlet = new MLet(); + ObjectName mletName = new ObjectName("system:mbean=loader"); + server.registerMBean(mlet, mletName); + + // Set the MLet as context classloader + // Can be useful for the loaded services that want to access this classloader. + Thread.currentThread().setContextClassLoader(mlet); + + // Resolve the file to load MBeans from + // If we got a program argument, we load it from there, otherwise + // we assume we have a 'mbeans.mlet' file in this example's directory + URL mbeansURL = null; + if (args.length == 1) + { + String file = args[0]; + mbeansURL = new File(file).toURL(); + } + else + { + mbeansURL = mlet.getResource("examples/services/loading/mbeans.mlet"); + } + + // If the URL is still null, abort + if (mbeansURL == null) throw new ServiceNotFoundException("Could not find MBeans to load"); + + // Load the MBeans + Set mbeans = mlet.getMBeansFromURL(mbeansURL); + + System.out.println("MLet has now the following classpath: " + Arrays.asList(mlet.getURLs())); + + // Now let's check everything is ok. + checkMBeansLoadedSuccessfully(mbeans); + + // Now the system is loaded, but maybe we should initialize and start them + initializeMBeans(server, mbeans); + startMBeans(server, mbeans); + + // Now the system is up and running + System.out.println("System up and running !"); + + // The program exits because none of the loaded MBeans in this example started a non-daemon thread. + } + + private static void checkMBeansLoadedSuccessfully(Set mbeans) throws ServiceNotFoundException + { + // MLet.getMBeansFromURL returns a Set containing exceptions if an MBean could not be loaded + boolean allLoaded = true; + for (Iterator i = mbeans.iterator(); i.hasNext();) + { + Object mbean = i.next(); + if (mbean instanceof Throwable) + { + ((Throwable)mbean).printStackTrace(); + allLoaded = false; + // And go on with the next + } + else + { + // Ok, the MBean was registered successfully + System.out.println("Registered MBean: " + mbean); + } + } + + if (!allLoaded) throw new ServiceNotFoundException("Some MBean could not be loaded"); + } + + private static void initializeMBeans(MBeanServer server, Set mbeans) + { + for (Iterator i = mbeans.iterator(); i.hasNext();) + { + try + { + ObjectInstance instance = (ObjectInstance)i.next(); + if (server.isInstanceOf(instance.getObjectName(), "org.apache.avalon.framework.activity.Initializable")) + { + try + { + server.invoke(instance.getObjectName(), "initialize", null, null); + } + catch (ReflectionException ignored) + { + // The initialize method is not part of the management interface, ignore + } + } + } + catch (Exception x) + { + x.printStackTrace(); + } + } + } + + private static void startMBeans(MBeanServer server, Set mbeans) + { + for (Iterator i = mbeans.iterator(); i.hasNext();) + { + try + { + ObjectInstance instance = (ObjectInstance)i.next(); + if (server.isInstanceOf(instance.getObjectName(), "org.apache.avalon.framework.activity.Startable")) + { + try + { + server.invoke(instance.getObjectName(), "start", null, null); + } + catch (ReflectionException ignored) + { + // The start method is not part of the management interface, ignore + } + } + } + catch (Exception x) + { + x.printStackTrace(); + } + } + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/services/loading/mbeans.mlet b/mx4j-3.0.2/examples/mx4j/examples/services/loading/mbeans.mlet new file mode 100644 index 0000000..8ed940a --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/services/loading/mbeans.mlet @@ -0,0 +1,9 @@ + + + + CODEBASE="lib" + ARCHIVE="mx4j-tools.jar"> + diff --git a/mx4j-3.0.2/examples/mx4j/examples/services/relation/RelationServiceExample.java b/mx4j-3.0.2/examples/mx4j/examples/services/relation/RelationServiceExample.java new file mode 100644 index 0000000..b7f39e2 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/services/relation/RelationServiceExample.java @@ -0,0 +1,340 @@ +/** + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.services.relation; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.MBeanServerInvocationHandler; +import javax.management.ObjectInstance; +import javax.management.ObjectName; +import javax.management.Query; +import javax.management.relation.RelationServiceMBean; +import javax.management.relation.Role; +import javax.management.relation.RoleList; +import javax.management.relation.RoleResult; + +import mx4j.log.Log; +import mx4j.log.Logger; + +/** + * @version $Revision: 1.4 $ + */ + +/** + * This class will demonstrate the use-case scenarios described in the docs, under chapter "examples" and sub-section RelationService + * Some methods will also use the MBeanServerInvocationHandler. + */ +public class RelationServiceExample +{ + private MBeanServer m_server = null; + private RelationServiceMBean m_proxy = null; + private String m_relationServiceClass = "javax.management.relation.RelationService"; + private String m_libraryClassName = "mx4j.examples.services.relation.SimplePersonalLibrary"; + private ObjectName m_libraryObjectName = null; + private ObjectName m_relationObjectName = null; + private SimplePersonalLibrary m_library = null; + + public RelationServiceExample() + { + m_server = MBeanServerFactory.createMBeanServer("RelationExample"); + } + + public void setUpRelations() + { + // build the object name and register the relationService + try + { + System.out.println("Creating RelationService in the MBeanServer"); + Object[] params = {new Boolean(true)}; + String[] signature = {"boolean"}; + m_relationObjectName = new ObjectName("relations:class=" + m_relationServiceClass); + m_server.createMBean(m_relationServiceClass, m_relationObjectName, null, params, signature); + + // we will create the proxy now so we can make some simple calls through the proxy + m_proxy = (RelationServiceMBean)MBeanServerInvocationHandler.newProxyInstance(m_server, m_relationObjectName, RelationServiceMBean.class, false); + System.out.println("----------------------- done ----------------------------"); + + System.out.println("create the relationType"); + String libraryTypeName = "personal_library"; + m_library = new SimplePersonalLibrary(libraryTypeName); + // add it to the relationService + addRelationType(); + printRelationTypeInfo(); + System.out.println("----------------------- done ----------------------------"); + + System.out.println("create RelationId for the relationType"); + String personalLibraryId = libraryTypeName + "_internal"; + //....Done.... + System.out.println("----------------------- done ----------------------------"); + + // we now need to build the Roles and MBeans that will represent those relations + String ownerClassName = "mx4j.examples.services.relation.SimpleOwner"; // create 2 instance of this + String bookClassName = "mx4j.examples.services.relation.SimpleBooks"; // create 5 instances of this + + System.out.println("Creating MBeans to represent our relations"); + ObjectName ownerName1 = new ObjectName("library:name=" + ownerClassName + "1"); + ObjectName ownerName2 = new ObjectName("library:name=" + ownerClassName + "2"); + ObjectName bookName1 = new ObjectName("library:name=" + bookClassName + "1"); + ObjectName bookName2 = new ObjectName("library:name=" + bookClassName + "2"); + ObjectName bookName3 = new ObjectName("library:name=" + bookClassName + "3"); + ObjectName bookName4 = new ObjectName("library:name=" + bookClassName + "4"); + ObjectName bookName5 = new ObjectName("library:name=" + bookClassName + "5"); + + m_server.createMBean(bookClassName, bookName1, null, new Object[]{"Lord of the rings"}, new String[]{"java.lang.String"}); + m_server.createMBean(bookClassName, bookName2, null, new Object[]{"The Hobbit"}, new String[]{"java.lang.String"}); + m_server.createMBean(bookClassName, bookName3, null, new Object[]{"Harry Potter"}, new String[]{"java.lang.String"}); + m_server.createMBean(bookClassName, bookName4, null, new Object[]{"UML Distilled"}, new String[]{"java.lang.String"}); + m_server.createMBean(bookClassName, bookName5, null, new Object[]{"Applying UML"}, new String[]{"java.lang.String"}); + + m_server.createMBean(ownerClassName, ownerName1, null, new Object[]{"Fred"}, new String[]{"java.lang.String"}); + m_server.createMBean(ownerClassName, ownerName2, null, new Object[]{"Humpty Dumpty"}, new String[]{"java.lang.String"}); + System.out.println("----------------------- done ----------------------------"); + + System.out.println("Build the roles"); + // build our Lists of values for our first use case an owner registers and takes out one book + ArrayList ownerList = new ArrayList(); + ownerList.add(ownerName1); // can only add owner to an owner role can only be 1 + Role ownerRole = new Role("owner", ownerList); + + System.out.println("created owner Role"); + + ArrayList bookList = new ArrayList(); + // we can have between 1 and 4 books more than 4 invalidates out relation and less than 1 invalidates it + bookList.add(bookName1); + bookList.add(bookName2); + bookList.add(bookName3); + Role bookRole = new Role("books", bookList); + + System.out.println("Created book role"); + System.out.println("----------------------- done ----------------------------"); + + System.out.println("Creating the relation"); + // add our roles to the RoleList + RoleList libraryList = new RoleList(); + libraryList.add(ownerRole); + libraryList.add(bookRole); + // now to create the relation + createLibraryRelation(personalLibraryId, libraryTypeName, libraryList); + System.out.println("Getting all the related info"); + printAllRelationInfo(); + System.out.println("----------------------- done ----------------------------"); + + // borrow one book still within our stated quota + System.out.println("borrow a book we have 3 one more does not invalidate our relation"); + borrowBooks(personalLibraryId, "books", bookName4); + ArrayList newBookList4 = getRoleValue(personalLibraryId, "books"); + System.out.println("we now have 4 books: " + newBookList4.toString()); + System.out.println("----------------------- done ----------------------------"); + + // remove 2 books from the MBeanServer an see if our owner has only 2 left + System.out.println("2 MBeans removed from the MBeanServer - no problem we still have a valid relation."); + m_server.unregisterMBean(bookName1); + m_server.unregisterMBean(bookName2); + + ArrayList newBookList = getRoleValue(personalLibraryId, "books"); + System.out.println("After removing the 2 MBeans we have only 2 Book MBeans left " + newBookList.toString()); + System.out.println("----------------------- done ----------------------------"); + + // we will now demonstrate the unhappy scenarios. + //invalidate the relation and borrow too many books throws InvalidRoleValueException + // note we cannot add bookName1 or bookName2 as they have been unregistered from the MBeanServer + // register + System.out.println("Deregistering the last of our books from the MBeanServer"); + m_server.unregisterMBean(bookName3); + m_server.unregisterMBean(bookName4); + System.out.println("----------------------- done ----------------------------"); + + System.out.println("Testing access by running queries: "); + System.out.println("The relation should have been removed and an exception of RelationNotFoundException returned"); + testAllAccessQueries(personalLibraryId); + System.out.println("----------------------- done ----------------------------"); + + } + catch (Exception ex) + { + System.out.println("Could Not create the RelationService: " + ex); + ex.printStackTrace(); + } + } + + public void borrowBooks(String relationId, String roleName, ObjectName bookToAdd) + { + Logger logger = getLogger(); + try + { + // get the old values + ArrayList oldRoleValue = getRoleValue(relationId, roleName); + ArrayList newRoleValue = (ArrayList)oldRoleValue.clone(); + newRoleValue.add(bookToAdd); + // now we update the values + Role role = new Role(roleName, newRoleValue); + Object[] params1 = {relationId, role}; + String[] signature1 = {"java.lang.String", "javax.management.relation.Role"}; + m_server.invoke(m_relationObjectName, "setRole", params1, signature1); + } + catch (Exception ex) + { + logger.error("Unable to add a book"); + ex.printStackTrace(); + } + } + + private void printList(List list) + { + for (Iterator i = list.iterator(); i.hasNext();) + { + System.out.println(">>>> Names representing roles: " + i.next()); + } + } + + private ArrayList getRoleValue(String relationId, String roleName) + { + Logger logger = getLogger(); + try + { + Object[] params = {relationId, roleName}; + String[] signature = {"java.lang.String", "java.lang.String"}; + return ((ArrayList)(m_server.invoke(m_relationObjectName, "getRole", params, signature))); + } + catch (Exception ex) + { + logger.error("Unable to get the list of roles for ID: " + relationId); + return null; + } + } + + public void endExample() + { + try + { + System.out.println("Cleaning up......"); + // this query will return the set of mbeans which have a class attribute of "management*" which is our MBeans + Set mbeanSet = m_server.queryMBeans(null, Query.initialSubString(Query.classattr(), Query.value("management*"))); + for (Iterator i = mbeanSet.iterator(); i.hasNext();) + { + m_server.unregisterMBean(((ObjectInstance)i.next()).getObjectName()); + } + // release the relationService + m_server.unregisterMBean(m_relationObjectName); + // release the MBeanServer + MBeanServerFactory.releaseMBeanServer(m_server); + System.exit(0); + } + catch (Exception ex) + { + ex.printStackTrace(); + System.exit(1); + } + } + + private void addRelationType() + { + try + { + Object[] params = {m_library}; + String[] signature = {"javax.management.relation.RelationType"}; + m_server.invoke(m_relationObjectName, "addRelationType", params, signature); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + } + + private void printRelationTypeInfo() + { + try + { + ArrayList relTypeNameList = (ArrayList)(m_server.getAttribute(m_relationObjectName, "AllRelationTypeNames")); + System.out.println("The RelationType Names found in the RelationService: " + relTypeNameList.toString()); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + } + + private void createLibraryRelation(String personalLibraryId, String libraryTypeName, RoleList libraryList) + { + Logger logger = getLogger(); + try + { + Object[] params = {personalLibraryId, libraryTypeName, libraryList}; + String[] signature = {"java.lang.String", "java.lang.String", "javax.management.relation.RoleList"}; + m_server.invoke(m_relationObjectName, "createRelation", params, signature); + } + catch (Exception ex) + { + logger.error("Exception creating Library Relation: " + ex.getMessage()); + ex.printStackTrace(); + } + } + + private void printAllRelationInfo() + { + Logger logger = getLogger(); + try + { + ArrayList allRelationIds = (ArrayList)m_server.getAttribute(m_relationObjectName, "AllRelationIds"); + for (Iterator i = allRelationIds.iterator(); i.hasNext();) + { + String currentRelationId = (String)i.next(); + System.out.println("All RelationIds: " + currentRelationId); + testAllAccessQueries(currentRelationId); + } + } + catch (Exception ex) + { + logger.error("Unable to print the relations"); + ex.printStackTrace(); + } + } + + private void testAllAccessQueries(String relationId) + { + Logger logger = getLogger(); + // retrieve all roles + try + { + Object[] params = {relationId}; + String[] signature = {"java.lang.String"}; + RoleResult roleResult = (RoleResult)(m_server.invoke(m_relationObjectName, "getAllRoles", params, signature)); + RoleList roleList = roleResult.getRoles(); + for (Iterator i = roleList.iterator(); i.hasNext();) + { + Role currentRole = (Role)i.next(); + System.out.println(">>>> role name: " + currentRole.getRoleName()); + System.out.println(">>>> role values: " + currentRole.getRoleValue().toString()); + } + System.out.println("No unresolved Roles roleUnresolved size: " + roleResult.getRolesUnresolved().size()); + } + catch (Exception ex) + { + logger.error("Exception printing the results from relationId: " + relationId); + System.out.println("Printing the Exception message to validate exception: " + ex.getMessage()); + } + + } + + private Logger getLogger() + { + return Log.getLogger(getClass().getName()); + } + + public static void main(String[] args) + { + RelationServiceExample example = new RelationServiceExample(); + example.setUpRelations(); + example.endExample(); + } +} \ No newline at end of file diff --git a/mx4j-3.0.2/examples/mx4j/examples/services/relation/SimpleBooks.java b/mx4j-3.0.2/examples/mx4j/examples/services/relation/SimpleBooks.java new file mode 100644 index 0000000..3636949 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/services/relation/SimpleBooks.java @@ -0,0 +1,38 @@ +/** + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.services.relation; + +/** + * @version $Revision: 1.3 $ + */ +interface SimpleBooksMBean +{ + public void setBook(String bookName); + + public String getBook(); +} + +public class SimpleBooks implements SimpleBooksMBean +{ + private String m_name = null; + + public SimpleBooks(String bookName) + { + m_name = bookName; + } + + public void setBook(String bookName) + { + m_name = bookName; + } + + public String getBook() + { + return m_name; + } +} \ No newline at end of file diff --git a/mx4j-3.0.2/examples/mx4j/examples/services/relation/SimpleOwner.java b/mx4j-3.0.2/examples/mx4j/examples/services/relation/SimpleOwner.java new file mode 100644 index 0000000..2b26577 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/services/relation/SimpleOwner.java @@ -0,0 +1,38 @@ +/** + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.services.relation; + +/** + * @version $Revision: 1.3 $ + */ +interface SimpleOwnerMBean +{ + public void setOwnerName(String ownerName); + + public String getOwnerName(); +} + +public class SimpleOwner implements SimpleOwnerMBean +{ + private String m_name = null; + + public SimpleOwner(String name) + { + m_name = name; + } + + public void setOwnerName(String name) + { + m_name = name; + } + + public String getOwnerName() + { + return m_name; + } +} \ No newline at end of file diff --git a/mx4j-3.0.2/examples/mx4j/examples/services/relation/SimplePersonalLibrary.java b/mx4j-3.0.2/examples/mx4j/examples/services/relation/SimplePersonalLibrary.java new file mode 100644 index 0000000..5b4908c --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/services/relation/SimplePersonalLibrary.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.services.relation; + +import javax.management.relation.RelationTypeSupport; +import javax.management.relation.RoleInfo; + +/** + * @version $Revision: 1.3 $ + */ +public class SimplePersonalLibrary extends RelationTypeSupport +{ + + public SimplePersonalLibrary(String relationTypeName) + { + super(relationTypeName); + + try + { + RoleInfo ownerRoleInfo = new RoleInfo("owner", + // the name of the MBean class of which all members must be an instance. + "mx4j.examples.services.relation.SimpleOwner", + true, //read + true, //write + 1, // only one owner + 1, + "Owner"); + addRoleInfo(ownerRoleInfo); + + RoleInfo booksRoleInfo = new RoleInfo("books", + "mx4j.examples.services.relation.SimpleBooks", + true, + true, + 1, // feeling nasty can only own max 4 books and no fewer than 1 + 4, + "Books"); + addRoleInfo(booksRoleInfo); + } + catch (Exception ex) + { + throw new RuntimeException(ex.getMessage()); + } + } +} \ No newline at end of file diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/HttpAdaptor.java b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/HttpAdaptor.java new file mode 100644 index 0000000..1503c5b --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/HttpAdaptor.java @@ -0,0 +1,334 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.adaptor.http; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.management.Attribute; +import javax.management.JMException; +import javax.management.MBeanNotificationInfo; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.NotificationBroadcasterSupport; +import javax.management.ObjectName; +import javax.management.openmbean.CompositeData; +import javax.management.openmbean.CompositeDataSupport; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.OpenDataException; +import javax.management.openmbean.OpenType; +import javax.management.openmbean.SimpleType; + +import mx4j.tools.stats.TimedStatisticsRecorder; + +/** + * Example as how to use the HttpAdaptor and the XSLTProcessor + * + * @version $Revision: 1.4 $ + */ +public class HttpAdaptor +{ + private int port = 8080; + + private String host = "localhost"; + + private String path = null, pathInJar = null; + + public static interface TestClassMBean + { + public URL getURL(); + + public void setURL(URL url); + + public String getStr(); + + public String[] getStrArray(); + + public Double getDouble(); + + public boolean isTrue(); + + public void setStr(String str); + + public void setStrArray(String[] str); + + public Boolean aMethod(String string); + + public void anotherMethod(String string, int test); + + public Map getaMap(); + + public List getaList(); + + public Date getDate(); + + public void setDate(Date date); + + public BigInteger getBigInteger(); + + public void setBigInteger(BigInteger integer); + + public BigDecimal getBigDecimal(); + + public void setBigDecimal(BigDecimal decimal); + + public CompositeData getCompositeData(); + + public void setCompositeData(CompositeData composite); + } + + public static class TestClass extends NotificationBroadcasterSupport implements TestClassMBean + { + private String[] strArray = new String[]{"first", "second"}; + private String str; + private URL url; + private List list = new ArrayList(); + private Map map = new HashMap(); + private Date date = new Date(); + private BigInteger bigInteger = new BigInteger("123456789101112131415"); + private BigDecimal bigDecimal = new BigDecimal("123456789101112131415.987654321"); + private CompositeData compositeData = null; + + public TestClass(String str, URL url) + { + this.str = str; + this.url = url; + list.add("a"); + list.add("b"); + list.add("c"); + map.put("1", "a"); + map.put("2", "b"); + map.put("3", "c"); + try + { + CompositeType type = new CompositeType("My type", + "My type", + new String[]{"item1", "item2"}, + new String[]{"item1", "item2"}, + new OpenType[]{SimpleType.STRING, SimpleType.STRING}); + compositeData = new CompositeDataSupport(type, new String[]{"item1", "item2"}, new Object[]{"item value 1", "item value 2"}); + } + catch (OpenDataException e) + { + e.printStackTrace(); + } + + } + + public void setCompositeData(CompositeData compositeData) + { + this.compositeData = compositeData; + } + + public CompositeData getCompositeData() + { + return compositeData; + } + + public void setBigInteger(BigInteger bigInteger) + { + this.bigInteger = bigInteger; + } + + public BigInteger getBigInteger() + { + return bigInteger; + } + + public void setBigDecimal(BigDecimal bigDecimal) + { + this.bigDecimal = bigDecimal; + } + + public BigDecimal getBigDecimal() + { + return bigDecimal; + } + + public void setDate(Date date) + { + this.date = date; + } + + public Date getDate() + { + return date; + } + + public void setURL(URL url) + { + this.url = url; + } + + public URL getURL() + { + return url; + } + + public String getStr() + { + return str; + } + + public void setStr(String str) + { + this.str = str; + } + + public String[] getStrArray() + { + return strArray; + } + + public void setStrArray(String[] strArray) + { + this.strArray = strArray; + } + + public Double getDouble() + { + return new Double(100 * Math.random()); + } + + public boolean isTrue() + { + return true; + } + + public Boolean aMethod(String string) + { + return new Boolean(string.equals("true")); + } + + public void anotherMethod(String string, int test) + { + this.str = string; + } + + public MBeanNotificationInfo[] getNotificationInfo() + { + MBeanNotificationInfo[] notifications = new MBeanNotificationInfo[1]; + notifications[0] = new MBeanNotificationInfo(new String[]{"test1" + , "test2"}, "name", "test"); + return notifications; + } + + public Map getaMap() + { + return map; + } + + public List getaList() + { + return list; + } + + } + + /** + * Creates a new HttpAdaptor example. You can optionally pass the host/port as + * java -cp CLASSPATH adaptor.http.HttpAdaptor localhost 8080 path + */ + public HttpAdaptor(String args[]) + { + if (args.length > 0) + { + host = args[0]; + } + if (args.length > 1) + { + port = Integer.parseInt(args[1]); + } + if (args.length > 2) + { + path = args[2]; + } + if (args.length > 3) + { + pathInJar = args[3]; + } + } + + /** + * Starts the http server + */ + public void start() throws JMException, MalformedURLException + { + // creates new server + MBeanServer server = MBeanServerFactory.createMBeanServer("test"); + ObjectName serverName = new ObjectName("Http:name=HttpAdaptor"); + server.createMBean("mx4j.tools.adaptor.http.HttpAdaptor", serverName, null); + // set attributes + if (port > 0) + { + server.setAttribute(serverName, new Attribute("Port", new Integer(port))); + } + else + { + System.out.println("Incorrect port value " + port); + } + if (host != null) + { + server.setAttribute(serverName, new Attribute("Host", host)); + } + else + { + System.out.println("Incorrect null hostname"); + } + // set the XSLTProcessor. If you want to use pure XML comment this out + ObjectName processorName = new ObjectName("Http:name=XSLTProcessor"); + server.createMBean("mx4j.tools.adaptor.http.XSLTProcessor", processorName, null); + if (path != null) + { + server.setAttribute(processorName, new Attribute("File", path)); + } + server.setAttribute(processorName, new Attribute("UseCache", new Boolean(false))); + if (pathInJar != null) + { + server.setAttribute(processorName, new Attribute("PathInJar", pathInJar)); + } + server.setAttribute(serverName, new Attribute("ProcessorName", processorName)); + + // add a couple of MBeans + TestClass test1 = new TestClass("t1", new URL("http://mx4j.sourceforge.net")); + TestClass test2 = new TestClass("t1", new URL("http://www.sourceforge.net/projects/mx4j")); + server.registerMBean(test1, new ObjectName("Test:name=test1")); + server.registerMBean(test2, new ObjectName("Test:name=test2")); + + // add a stats MBean + TimedStatisticsRecorder recoder = new TimedStatisticsRecorder(); + recoder.setObservedObject(new ObjectName("Test:name=test1")); + recoder.setObservedAttribute("Double"); + server.registerMBean(recoder, new ObjectName("Test:name=test1recorder")); + server.invoke(new ObjectName("Test:name=test1recorder"), "start", null, null); + + // add a couple of MBeans + + // add user names + server.invoke(serverName, "addAuthorization", new Object[]{"mx4j", "mx4j"}, new String[]{"java.lang.String", "java.lang.String"}); + + // use basic authentication + //server.setAttribute(serverName, new Attribute("AuthenticationMethod", "basic")); + + // starts the server + server.invoke(serverName, "start", null, null); + } + + public static void main(String[] str) throws Exception + { + HttpAdaptor adaptor = new HttpAdaptor(str); + adaptor.start(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/RelationServiceAdaptor.java b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/RelationServiceAdaptor.java new file mode 100644 index 0000000..8c59074 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/RelationServiceAdaptor.java @@ -0,0 +1,324 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.tools.adaptor.http; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import javax.management.Attribute; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.MBeanServerInvocationHandler; +import javax.management.ObjectInstance; +import javax.management.ObjectName; +import javax.management.Query; +import javax.management.relation.RelationServiceMBean; +import javax.management.relation.Role; +import javax.management.relation.RoleInfo; +import javax.management.relation.RoleList; +import javax.management.relation.RoleResult; + +import mx4j.tools.adaptor.http.DefaultProcessor; +import mx4j.tools.adaptor.http.XSLTProcessor; + +/** + * Example as how to use the HttpAdaptor and the XSLTProcessor and the RelationProcessor + * To use this example please add as arguments to the command line in this order + * + * @version $Revision: 1.3 $ + */ +public class RelationServiceAdaptor +{ + private MBeanServer m_server = null; + private RelationServiceMBean m_proxy = null; + private mx4j.tools.adaptor.http.HttpAdaptor m_adaptor = null; + private DefaultProcessor m_processor = null; + private XSLTProcessor m_xsltProcessor = null; + private ObjectName httpAdaptorObjectName = null; + private ObjectName processorName = null; + private ObjectName m_relationServiceObjectName = null; + + public RelationServiceAdaptor() + { + m_server = MBeanServerFactory.createMBeanServer("MyAdaptorTests"); + m_adaptor = new mx4j.tools.adaptor.http.HttpAdaptor(); + m_processor = new DefaultProcessor(); + m_xsltProcessor = new XSLTProcessor(); + } + + public void startTests(String[] args) + { + int defaultPort = 1999; + String defaultHost = "localhost"; + String defaultPath = "."; + if (args.length > 0) + { + defaultHost = args[0]; + } + if (args.length > 1) + { + defaultPort = Integer.parseInt(args[1]); + } + if (args.length > 2) + { + defaultPath = args[2]; + } + + try + { + System.out.println("Building the objectNames and registering the HttpAdaptor, and XSLTProcessor"); + // build object names + httpAdaptorObjectName = new ObjectName("Server:name=HttpAdaptor"); + processorName = new ObjectName("processor:name=XSLTProcessor"); + + // register adaptor in server + m_server.registerMBean(m_adaptor, httpAdaptorObjectName); + m_server.registerMBean(m_xsltProcessor, processorName); + + m_server.setAttribute(processorName, new Attribute("File", defaultPath)); + + m_adaptor.setPort(defaultPort); + m_adaptor.setHost(defaultHost); + m_adaptor.setProcessor(m_xsltProcessor); + m_adaptor.setAuthenticationMethod("none"); + + System.out.println("------------------------------------------- done --------------------------------------------"); + + System.out.println("starting the adpator and then checking all is active"); + m_adaptor.start(); + + if (m_adaptor.isActive()) + { + System.out.println("Adaptor is active"); + System.out.println("The name of the processor: " + m_adaptor.getProcessor().getName()); + } + + System.out.println("------------------------------------------- done --------------------------------------------"); + System.out.println("Press enter to register relationService"); + waitForEnterPressed(); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + } + + public void buildMBeans() + { + try + { + System.out.println("Building and registering the relationService and 6 MBeans"); + String m_relationServiceClassName = "javax.management.relation.RelationService"; + m_relationServiceObjectName = new ObjectName("relations:type=" + m_relationServiceClassName + "_1"); + Object[] params = {new Boolean(true)}; + String[] signature = {"boolean"}; + m_server.createMBean(m_relationServiceClassName, m_relationServiceObjectName, null, params, signature); + + // create a proxy + m_proxy = (RelationServiceMBean)MBeanServerInvocationHandler.newProxyInstance(m_server, m_relationServiceObjectName, RelationServiceMBean.class, false); + + System.out.println("Press ENTER to register 6 MBeans"); + waitForEnterPressed(); + String mbeanClassName = "mx4j.examples.tools.adaptor.http.SimpleStandard"; + ObjectName mbeanObjectName1 = new ObjectName("domain:type=SimpleStandard_1"); + ObjectName mbeanObjectName2 = new ObjectName("domain:type=SimpleStandard_2"); + ObjectName mbeanObjectName3 = new ObjectName("domain:type=SimpleStandard_3"); + ObjectName mbeanObjectName4 = new ObjectName("domain:type=SimpleStandard_4"); + ObjectName mbeanObjectName5 = new ObjectName("domain:type=SimpleStandard_5"); + ObjectName mbeanObjectName6 = new ObjectName("domain:type=SimpleStandard_6"); + + m_server.createMBean(mbeanClassName, mbeanObjectName1, null); + m_server.createMBean(mbeanClassName, mbeanObjectName2, null); + m_server.createMBean(mbeanClassName, mbeanObjectName3, null); + m_server.createMBean(mbeanClassName, mbeanObjectName4, null); + m_server.createMBean(mbeanClassName, mbeanObjectName5, null); + m_server.createMBean(mbeanClassName, mbeanObjectName6, null); + System.out.println("------------------------------------------- done --------------------------------------------"); + + System.out.println("Creating RoleInfos for RelationType"); + RoleInfo[] roleInfos = new RoleInfo[2]; + String roleName1 = "primary"; + roleInfos[0] = new RoleInfo(roleName1, "mx4j.examples.tools.adaptor.http.SimpleStandard", true, true, 1, 1, null); + + String roleName2 = "secondary"; + roleInfos[1] = new RoleInfo(roleName2, "mx4j.examples.tools.adaptor.http.SimpleStandard", true, true, 0, -1, null); + + // create a relation type with those role infos + String relationTypeName = "Building_relation_view1"; + m_proxy.createRelationType(relationTypeName, roleInfos); + + // creating more relationTypes to test + String relationTypeName2 = "Testing_2"; + m_proxy.createRelationType(relationTypeName2, roleInfos); + + System.out.println("Creating relationIds for relationTypeName: " + relationTypeName); + System.out.println("First create the roles..."); + + ArrayList roleValue1 = new ArrayList(); + roleValue1.add(mbeanObjectName1); + + Role role1 = new Role(roleName1, roleValue1); + + ArrayList roleValue2 = new ArrayList(); + roleValue2.add(mbeanObjectName2); + roleValue2.add(mbeanObjectName3); + roleValue2.add(mbeanObjectName4); + + Role role2 = new Role(roleName2, roleValue2); + RoleList roleList1 = new RoleList(); + roleList1.add(role1); + roleList1.add(role2); + + /// testing form here + ArrayList role5Value = new ArrayList(); + role5Value.add(mbeanObjectName2); + + Role role5 = new Role(roleName1, role5Value); + ArrayList roleValue5 = new ArrayList(); + roleValue5.add(mbeanObjectName4); + + Role role6 = new Role(roleName2, roleValue5); + RoleList roleList5 = new RoleList(); + roleList5.add(role5); + roleList5.add(role6); + + System.out.println("------------------------------------------- done --------------------------------------------"); + System.out.println("Now create relations with ids:::"); + + String relationId1 = "relationId_1"; + m_proxy.createRelation(relationId1, relationTypeName, roleList1); + + String relationId2 = "relationId_2"; + m_proxy.createRelation(relationId2, relationTypeName, roleList5); + + String relationId3 = "relationId_3"; + m_proxy.createRelation(relationId3, relationTypeName, roleList1); + System.out.println("------------------------------------------- done --------------------------------------------"); + + System.out.println("creating relationIds for relationtypeName: " + relationTypeName2); + + String relationId4 = "relationId_number2_1"; + m_proxy.createRelation(relationId4, relationTypeName2, roleList1); + + String relationId5 = "relationId_number2_2"; + m_proxy.createRelation(relationId5, relationTypeName2, roleList1); + + String relationId6 = "relationId_number2_3"; + m_proxy.createRelation(relationId6, relationTypeName2, roleList1); + System.out.println("------------------------------------------- done --------------------------------------------"); + waitForEnterPressed(); + + System.out.println("create a relation MBean and add it in the Relation Service"); + String relMBeanClassName = "mx4j.examples.tools.adaptor.http.SimpleRelationTestSupport"; + String relationId7 = "relationId_relationMBean_1"; + ObjectName relMBeanObjName1 = new ObjectName("relationType:name=RelationTypeSupportInstance"); + m_server.createMBean(relMBeanClassName, relMBeanObjName1, null, + new Object[]{relationId7, m_relationServiceObjectName, relationTypeName2, roleList1}, + new String[]{"java.lang.String", "javax.management.ObjectName", "java.lang.String", "javax.management.relation.RoleList"}); + m_proxy.addRelation(relMBeanObjName1); + System.out.println("------------------------------------------- done --------------------------------------------"); + waitForEnterPressed(); + RoleResult result = m_proxy.getAllRoles(relationId1); + Iterator i = result.getRoles().iterator(); + while (i.hasNext()) + { + Role r = (Role)i.next(); + List l = r.getRoleValue(); + Iterator j = l.iterator(); + while (j.hasNext()) + { + ObjectName objName = (ObjectName)j.next(); + System.out.println("ObjectName: " + objName.getCanonicalName() + " for relationId: " + relationId1); + } + } + + RoleResult result2 = m_proxy.getAllRoles(relationId2); + Iterator i2 = result2.getRoles().iterator(); + while (i2.hasNext()) + { + Role r = (Role)i2.next(); + List l = r.getRoleValue(); + Iterator j = l.iterator(); + while (j.hasNext()) + { + ObjectName objName = (ObjectName)j.next(); + System.out.println("ObjectName: " + objName.getCanonicalName() + " for relationId: " + relationId2); + } + } + + System.out.println("getting all relationIds"); + List li = m_proxy.getAllRelationIds(); + System.out.println("allrelationIds list: " + li.toString()); + + System.out.println("You can view the adaptor at url http://......"); + System.out.println(">>>>>>>>>>>>>>>> PRESS ENTER TO END THE DEMO <<<<<<<<<<<<<<<<<<<<"); + + waitForEnterPressed(); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + } + + public void endTests() + { + try + { + m_adaptor.stop(); + Set mbeanSet = m_server.queryMBeans(null, Query.initialSubString(Query.classattr(), Query.value("test*"))); + for (Iterator i = mbeanSet.iterator(); i.hasNext();) + { + m_server.unregisterMBean(((ObjectInstance)i.next()).getObjectName()); + } + // release the relationService + m_server.unregisterMBean(m_relationServiceObjectName); + m_server.unregisterMBean(processorName); + m_server.unregisterMBean(httpAdaptorObjectName); + // release the MBeanServer + MBeanServerFactory.releaseMBeanServer(m_server); + System.exit(0); + } + catch (Exception ex) + { + ex.printStackTrace(); + System.exit(1); + } + } + + public static void main(String[] args) + { + RelationServiceAdaptor bnb = new RelationServiceAdaptor(); + bnb.startTests(args); + bnb.buildMBeans(); + bnb.endTests(); + } + + private static void waitForEnterPressed() + { + try + { + boolean done = false; + while (!done) + { + char ch = (char)System.in.read(); + if (ch < 0 || ch == '\n') + { + done = true; + } + } + } + catch (IOException ex) + { + ex.printStackTrace(); + } + return; + } +} \ No newline at end of file diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SSLHttpAdaptor.java b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SSLHttpAdaptor.java new file mode 100644 index 0000000..2fb4373 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SSLHttpAdaptor.java @@ -0,0 +1,197 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.tools.adaptor.http; + +import javax.management.Attribute; +import javax.management.JMException; +import javax.management.MBeanNotificationInfo; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.MBeanServerInvocationHandler; +import javax.management.NotificationBroadcasterSupport; +import javax.management.ObjectName; + +import mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean; + +/** + * Example as how to use the HttpAdaptor and the XSLTProcessor with + * SSL support. This example assumes that you have created a keystore + * as described in the documentation. + * + * @version $Revision: 1.4 $ + */ +public class SSLHttpAdaptor +{ + private int port = 8080; + + private String host = "localhost"; + + private String path = null, pathInJar = null; + + private static interface TestClassMBean + { + public String getStr(); + + public Double getDouble(); + + public boolean isTrue(); + + public void setStr(String str); + + public Boolean aMethod(String string); + + public void anotherMethod(String string, int test); + } + + public static class TestClass extends NotificationBroadcasterSupport implements TestClassMBean + { + private String str; + + public TestClass(String str) + { + this.str = str; + } + + public String getStr() + { + return str; + } + + public void setStr(String str) + { + this.str = str; + } + + public Double getDouble() + { + return new Double(0); + } + + public boolean isTrue() + { + return true; + } + + public Boolean aMethod(String string) + { + return new Boolean(string.equals("true")); + } + + public void anotherMethod(String string, int test) + { + this.str = string; + } + + public MBeanNotificationInfo[] getNotificationInfo() + { + MBeanNotificationInfo[] notifications = new MBeanNotificationInfo[1]; + notifications[0] = new MBeanNotificationInfo(new String[]{"test1" + , "test2"}, "name", "test"); + return notifications; + } + + } + + /** + * Creates a new SSLHttpAdaptor example. You can optionally pass the host/port as + * java -cp CLASSPATH adaptor.http.HttpAdaptor localhost 8080 path + */ + public SSLHttpAdaptor(String args[]) + { + if (args.length > 0) + { + host = args[0]; + } + if (args.length > 1) + { + port = Integer.parseInt(args[1]); + } + if (args.length > 2) + { + path = args[2]; + } + if (args.length > 3) + { + pathInJar = args[3]; + } + } + + /** + * Starts the http server + */ + public void start() throws JMException + { + // creates new server + MBeanServer server = MBeanServerFactory.createMBeanServer("test"); + ObjectName serverName = new ObjectName("Http:name=HttpAdaptor"); + server.createMBean("mx4j.tools.adaptor.http.HttpAdaptor", serverName, null); + // set attributes + if (port > 0) + { + server.setAttribute(serverName, new Attribute("Port", new Integer(port))); + } + else + { + System.out.println("Incorrect port value " + port); + } + if (host != null) + { + server.setAttribute(serverName, new Attribute("Host", host)); + } + else + { + System.out.println("Incorrect null hostname"); + } + // set the XSLTProcessor. If you want to use pure XML comment this out + ObjectName processorName = new ObjectName("Http:name=XSLTProcessor"); + server.createMBean("mx4j.tools.adaptor.http.XSLTProcessor", processorName, null); + if (path != null) + { + server.setAttribute(processorName, new Attribute("File", path)); + } + server.setAttribute(processorName, new Attribute("UseCache", new Boolean(false))); + if (pathInJar != null) + { + server.setAttribute(processorName, new Attribute("PathInJar", pathInJar)); + } + server.setAttribute(serverName, new Attribute("ProcessorName", processorName)); + + // add a couple of MBeans + TestClass test1 = new TestClass("t1"); + TestClass test2 = new TestClass("t2"); + server.registerMBean(test1, new ObjectName("Test:name=test1")); + server.registerMBean(test2, new ObjectName("Test:name=test2")); + + // add user names + //server.invoke(serverName, "addAuthorization", new Object[] {"mx4j", "mx4j"}, new String[] {"java.lang.String", "java.lang.String"}); + + // use basic authentication + //server.setAttribute(serverName, new Attribute("AuthenticationMethod", "basic")); + + // SSL support + ObjectName sslFactory = new ObjectName("Adaptor:service=SSLServerSocketFactory"); + server.createMBean("mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory", sslFactory, null); + + SSLAdaptorServerSocketFactoryMBean factory = (SSLAdaptorServerSocketFactoryMBean)MBeanServerInvocationHandler.newProxyInstance(server, sslFactory, SSLAdaptorServerSocketFactoryMBean.class, false); + // Customize the values below + factory.setKeyStoreName("certs"); + factory.setKeyStorePassword("mx4j"); + + server.setAttribute(serverName, new Attribute("SocketFactoryName", sslFactory)); + + // starts the server + server.invoke(serverName, "start", null, null); + } + + public static void main(String[] str) throws JMException + { + SSLHttpAdaptor adaptor = new SSLHttpAdaptor(str); + adaptor.start(); + } +} + diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SimpleRelationTestSupport.java b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SimpleRelationTestSupport.java new file mode 100644 index 0000000..202e542 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SimpleRelationTestSupport.java @@ -0,0 +1,31 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.adaptor.http; + +import javax.management.ObjectName; +import javax.management.relation.InvalidRoleValueException; +import javax.management.relation.RelationSupport; +import javax.management.relation.RelationSupportMBean; +import javax.management.relation.RoleList; + +/** + * @version $Revision: 1.3 $ + */ +interface SimpleRelationTestSupportMBean extends RelationSupportMBean +{ +} + +public class SimpleRelationTestSupport extends RelationSupport implements SimpleRelationTestSupportMBean +{ + public SimpleRelationTestSupport(String relationId, ObjectName relationServiceName, String relationTypeName, + RoleList roleList) throws InvalidRoleValueException, IllegalArgumentException + { + super(relationId, relationServiceName, relationTypeName, roleList); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SimpleStandard.java b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SimpleStandard.java new file mode 100644 index 0000000..1d4544d --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/adaptor/http/SimpleStandard.java @@ -0,0 +1,38 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.adaptor.http; + +/** + * @version $Revision: 1.3 $ + */ +interface SimpleStandardMBean +{ + public void setName(String name); + + public String getName(); +} + +public class SimpleStandard implements SimpleStandardMBean +{ + private String m_name = "RelationAdaptor Example"; + + public SimpleStandard() + { + } + + public void setName(String name) + { + m_name = name; + } + + public String getName() + { + return m_name; + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/config/ConfigurationShutdown.java b/mx4j-3.0.2/examples/mx4j/examples/tools/config/ConfigurationShutdown.java new file mode 100644 index 0000000..79316f5 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/config/ConfigurationShutdown.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.config; + +import java.net.Socket; + +/** + * This class invokes the shutdown section of the XML configuration file bundled + * with this example.
+ * Refer to the ConfigurationLoader documentation for further information. + * + * @version $Revision: 1.3 $ + * @see ConfigurationStartup + */ +public class ConfigurationShutdown +{ + public static void main(String[] args) throws Exception + { + String shutdownCommand = "shutdown"; + Socket socket = new Socket("127.0.0.1", 9876); + socket.getOutputStream().write(shutdownCommand.getBytes()); + socket.close(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/config/ConfigurationStartup.java b/mx4j-3.0.2/examples/mx4j/examples/tools/config/ConfigurationStartup.java new file mode 100644 index 0000000..a1646bf --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/config/ConfigurationStartup.java @@ -0,0 +1,76 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.config; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.Reader; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; + +import mx4j.tools.config.ConfigurationLoader; + +/** + * This example shows how to use the XML configuration files to load MBeans into + * an MBeanServer.
+ * The main class is {@link ConfigurationLoader}, that is able to read the XML + * configuration format defined by the MX4J project (see the online documentation + * for details on the format). + * A ConfigurationLoader is an MBean itself, and loads information + * from one XML file into one MBeanServer.
+ * This example runs by specifying the path of an XML configuration file as a + * program argument, such as + *
+ * java -classpath ... mx4j.examples.tools.config.ConfigurationStartup ./config.xml
+ * 
+ * Refer to the documentation about the ConfigurationLoader for further information. + * + * @version $Revision: 1.3 $ + * @see ConfigurationShutdown + */ +public class ConfigurationStartup +{ + public static void main(String[] args) throws Exception + { + // The MBeanServer + MBeanServer server = MBeanServerFactory.newMBeanServer(); + + // The configuration loader + + /* Choice 1: as an external object */ + // ConfigurationLoader loader = new ConfigurationLoader(server); + + /* Choice 2: as a created MBean */ + // server.createMBean(ConfigurationLoader.class.getName(), ObjectName.getInstance("config:service=loader"), null); + + /* Choice 3: as a registered MBean */ + ConfigurationLoader loader = new ConfigurationLoader(); + server.registerMBean(loader, ObjectName.getInstance("config:service=loader")); + + // The XML file + + /* Choice 1: read it from classpath using classloaders + Note: the directory that contains the XML file must be in the classpath */ + // InputStream stream = ConfigurationStartup.class.getClassLoader().getResourceAsStream("config.xml"); + // Reader reader = new BufferedReader(new InputStreamReader(stream)); + + /* Choice 2: read it from a file + Note: requires file path to be passed as program argument */ + String path = args[0]; + Reader reader = new BufferedReader(new FileReader(path)); + + // Read and execute the 'startup' section of the XML file + loader.startup(reader); + + reader.close(); + + System.out.println("Application configured successfully"); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/config/config.xml b/mx4j-3.0.2/examples/mx4j/examples/tools/config/config.xml new file mode 100644 index 0000000..b8146a9 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/config/config.xml @@ -0,0 +1,18 @@ + + + + + 9090 + localhost + + + + connectors:type=http,processor=xslt + + + + + + + + diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/jython/ScriptExample.java b/mx4j-3.0.2/examples/mx4j/examples/tools/jython/ScriptExample.java new file mode 100644 index 0000000..26db6ba --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/jython/ScriptExample.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.tools.jython; + +import java.net.MalformedURLException; +import javax.management.Attribute; +import javax.management.JMException; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; + +/** + * Example as how to use the Jython MBean. An MBean will be created and some scripts executed + * + * @version $Revision: 1.3 $ + */ +public class ScriptExample +{ + public ScriptExample() + { + } + + /** + * Executes the script + */ + public void start() throws JMException, MalformedURLException + { + // creates new server + MBeanServer server = MBeanServerFactory.createMBeanServer("Script"); + ObjectName scriptingName = new ObjectName("Test:name=script"); + server.createMBean("mx4j.tools.jython.JythonRunner", scriptingName, null); + + // Sample. Starts all monitors + server.setAttribute(scriptingName, new Attribute("Script", "[proxy(name).start() for name in server.queryNames(None, None) if server.isInstanceOf(name, 'javax.management.monitor.Monitor')]")); + server.invoke(scriptingName, "runScript", null, null); + + // Sample. Stops all timers + server.setAttribute(scriptingName, new Attribute("Script", "[proxy(name).start() for name in server.queryNames(None, None) if server.isInstanceOf(name, 'javax.management.timer.Timer')]")); + server.invoke(scriptingName, "runScript", null, null); + + // Sample. prints all MBeans which description is not null + server.setAttribute(scriptingName, new Attribute("Script", "desc = [server.getMBeanInfo(name).description for name in server.queryNames(None, None)]\nprint filter(lambda x:x, desc)")); + server.invoke(scriptingName, "runScript", null, null); + } + + public static void main(String[] str) throws JMException, MalformedURLException + { + ScriptExample example = new ScriptExample(); + example.start(); + } +} + diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/mail/MailExample.java b/mx4j-3.0.2/examples/mx4j/examples/tools/mail/MailExample.java new file mode 100644 index 0000000..ac3be9c --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/mail/MailExample.java @@ -0,0 +1,104 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.tools.mail; + +import javax.management.Attribute; +import javax.management.JMException; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; + +/** + * Example as how to use the SMTP MBean. There is a monitor which looks for the Str property + * on the TestMBean, when the value changes a notification is sent by the Monitor and a mail + * is produced. + *

+ * Modify the values of the SMTP server for your needs + * + * @version $Revision: 1.3 $ + */ +public class MailExample +{ + + private static interface TestClassMBean + { + public String getStr(); + + public void setStr(String str); + } + + public static class TestClass implements TestClassMBean + { + private String str; + + public TestClass(String str) + { + this.str = str; + } + + public String getStr() + { + return str; + } + + public void setStr(String str) + { + this.str = str; + } + } + + public MailExample() + { + } + + /** + * Starts the http server + */ + public void start() throws JMException + { + // creates new server + MBeanServer server = MBeanServerFactory.createMBeanServer("Mail"); + ObjectName beanName = new ObjectName("Test:name=test"); + server.registerMBean(new TestClass("original"), beanName); + + ObjectName monitorName = new ObjectName("Test:name=monitor"); + server.createMBean("javax.management.monitor.StringMonitor", monitorName, null); + + server.setAttribute(monitorName, new Attribute("ObservedObject", beanName)); + server.setAttribute(monitorName, new Attribute("ObservedAttribute", "Str")); + server.setAttribute(monitorName, new Attribute("StringToCompare", "original")); + server.setAttribute(monitorName, new Attribute("GranularityPeriod", new Integer(100))); + server.setAttribute(monitorName, new Attribute("NotifyDiffer", Boolean.TRUE)); + + server.invoke(monitorName, "start", null, null); + + ObjectName mailerName = new ObjectName("Test:name=mailer"); + server.createMBean("mx4j.tools.mail.SMTP", mailerName, null); + + // Sets attributes + server.setAttribute(mailerName, new Attribute("ObservedObject", monitorName)); + server.setAttribute(mailerName, new Attribute("NotificationName", "jmx.monitor.string.differs")); + server.setAttribute(mailerName, new Attribute("FromAddress", "monitor@someserver")); + server.setAttribute(mailerName, new Attribute("FromName", "MX4J")); + server.setAttribute(mailerName, new Attribute("ServerHost", "smpt-server")); + server.setAttribute(mailerName, new Attribute("To", "nobody@nobody")); + server.setAttribute(mailerName, new Attribute("Subject", "Notification on $date$ at $time$")); + server.setAttribute(mailerName, new Attribute("Content", "Notification on $datetime$ sent by $objectname$ on $observed$ monitor and a notification $notification$\nNotice how $$$$ gets expanded to $$")); + + // this will trigger the monitor and the mailer (Wait for 10 secs app) + server.setAttribute(beanName, new Attribute("Str", "something-else")); + + } + + public static void main(String[] str) throws JMException + { + MailExample example = new MailExample(); + example.start(); + } +} + diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/persister/MBeanOne.java b/mx4j-3.0.2/examples/mx4j/examples/tools/persister/MBeanOne.java new file mode 100644 index 0000000..6a5af30 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/persister/MBeanOne.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.tools.persister; + + +/** + * An MBean that extends FilePersister to demonstrate the usage of the mx4j.persist.FilePersister + * @version $Revision: 1.3 $ + */ + +import java.io.Serializable; +import javax.management.InstanceNotFoundException; +import javax.management.MBeanException; +import javax.management.RuntimeOperationsException; + +import mx4j.persist.FilePersister; + +public class MBeanOne extends FilePersister implements Serializable +{ + private String m_location; + private String m_name; + + public MBeanOne(String location, String name) throws MBeanException + { + super(location, name); + m_location = location; + m_name = name; + } + + // ask FilePersister to store the Object + public void store(Object mbean) throws MBeanException, InstanceNotFoundException + { + store(mbean); + } + + // return the Object + public Object load() throws MBeanException, RuntimeOperationsException, InstanceNotFoundException + { + return load(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/persister/MBeanTwo.java b/mx4j-3.0.2/examples/mx4j/examples/tools/persister/MBeanTwo.java new file mode 100644 index 0000000..0ac6b84 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/persister/MBeanTwo.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.tools.persister; + +import java.io.Serializable; +import javax.management.MBeanServer; +import javax.management.ObjectName; + +/** + * The MBean that gets to be stored Please note must be Serializable + * + * @version $Revision: 1.3 $ + */ +interface MBeanTwoMBean +{ + public void storeIt(MBeanServer server, ObjectName name); + + public Object loadIt(MBeanServer server, ObjectName name); +} + +public class MBeanTwo implements MBeanTwoMBean, Serializable +{ + private Integer number = null; + + public MBeanTwo(Integer amount) + { + number = amount; + } + + public void storeIt(MBeanServer server, ObjectName name) + { + try + { + server.invoke(name, "store", new Object[]{this}, new String[]{"java.lang.Object"}); + } + catch (Exception ex) + { + System.out.println("exception: MBeanTwo: storeIt"); + ex.printStackTrace(); + } + } + + public Object loadIt(MBeanServer server, ObjectName name) + { + Object me = null; + try + { + me = (MBeanTwo)server.invoke(name, "load", new Object[0], new String[0]); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + return me; + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/persister/PersisterTest.java b/mx4j-3.0.2/examples/mx4j/examples/tools/persister/PersisterTest.java new file mode 100644 index 0000000..e7385fb --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/persister/PersisterTest.java @@ -0,0 +1,111 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.tools.persister; + + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; +import javax.management.loading.MLet; + + +/** + * Our agent which instantiates 2 MLets to load the MBeans contained in their separate jars + * + * @version $Revision: 1.3 $ + */ +public class PersisterTest +{ + private MBeanServer m_server = null; + + public PersisterTest() + { + + } + + public void endExample() + { + System.out.println("----- example completed -----"); + MBeanServerFactory.releaseMBeanServer(m_server); + System.exit(0); + } + + public void doDemo(String[] args) + { + String jarPath1 = args[0]; + String jarPath2 = args[1]; + String storePath = args[2]; + String filename = args[3]; + + m_server = MBeanServerFactory.createMBeanServer("test"); + try + { + // register the mlet used to load the MBeans MLet one + ObjectName mName1 = new ObjectName("loading:test=mlet1"); + MLet mlet1 = new MLet(); + m_server.registerMBean(mlet1, mName1); + mlet1.addURL(jarPath1); +// mlet1.addURL(new File("one.jar").toURL()); + + ObjectName mName2 = new ObjectName("loading:test=mlet2"); + MLet mlet2 = new MLet(); + m_server.registerMBean(mlet2, mName2); + mlet2.addURL(jarPath2); +// mlet2.addURL(new File("two.jar").toURL()); + + String mbeanClass1 = "mx4j.examples.tools.persister.MBeanOne"; + ObjectName mbeanName1 = new ObjectName("test:name=MBeanOne"); + m_server.createMBean(mbeanClass1, mbeanName1, mName1, + new Object[]{storePath, filename}, new String[]{"java.lang.String", "java.lang.String"}); + + String mbeanClass2 = "mx4j.examples.tools.persister.MBeanTwo"; + ObjectName mbeanName2 = new ObjectName("test:name=MBeanTwo"); + m_server.createMBean(mbeanClass2, mbeanName2, mName2, new Object[]{new Integer(15)}, + new String[]{"java.lang.Integer"}); + + m_server.invoke(mbeanName2, "storeIt", new Object[]{m_server, mbeanName1}, + new String[]{"javax.management.MBeanServer", "javax.management.ObjectName"}); + + Object a = m_server.invoke(mbeanName2, "loadIt", new Object[]{m_server, mbeanName1}, + new String[]{"javax.management.MBeanServer", "javax.management.ObjectName"}); + + if (a.getClass().getName() == mbeanClass2) System.out.println("Objects are equal and the same"); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + endExample(); + } + } + + public static void usage() + { + System.out.println("Four arguments are needed to run this example:"); + System.out.println("arg[0] = eg: file:C:/dev/one.jar"); + System.out.println("arg[1] = eg: file:C:/dev/two.jar"); + System.out.println("arg[2] = eg: C:/dev"); + System.out.println("arg[3] = eg: myMBean.ser"); + + System.out.println("Program is exiting......."); + System.exit(1); + } + + public static void main(String[] args) + { + PersisterTest test = new PersisterTest(); + if (args.length < 4) + { + usage(); + } + + test.doDemo(args); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/Client.java b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/Client.java new file mode 100644 index 0000000..13b909e --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/Client.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.remote.hessian; + +import javax.management.MBeanServerConnection; +import javax.management.MBeanServerDelegateMBean; +import javax.management.MBeanServerInvocationHandler; +import javax.management.Notification; +import javax.management.NotificationListener; +import javax.management.ObjectName; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; +import javax.management.timer.Timer; + +/** + * This example shows how to connect to a Hessian JMXConnectorServer. + * To run this example, you need the following jars: + *

    + *
  • MX4J 3.x
  • + *
      + *
    • mx4j.jar
    • + *
    • mx4j-remote.jar
    • + *
    • mx4j-tools.jar
    • + *
    • mx4j-examples.jar
    • + *
    + *
  • Hessian 3.0.8
  • + *
      + *
    • hessian-3.0.8.jar
    • + *
    + *
+ * + * @version $Revision: 1.1 $ + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + // This JMXServiceURL works only if the connector server is on the same host of + // the connector. If this is not the case, set the correct host name. + JMXServiceURL address = new JMXServiceURL("hessian", null, 8080, "/hessian"); + + // Connect a JSR 160 JMXConnector to the server side + JMXConnector connector = JMXConnectorFactory.connect(address); + + // Retrieve an MBeanServerConnection that represent the MBeanServer + // the remote connector server is bound to + MBeanServerConnection connection = connector.getMBeanServerConnection(); + + // Call the server side as if it is a local MBeanServer + ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate"); + Object proxy = MBeanServerInvocationHandler.newProxyInstance(connection, delegateName, MBeanServerDelegateMBean.class, true); + MBeanServerDelegateMBean delegate = (MBeanServerDelegateMBean)proxy; + + System.out.println(delegate.getImplementationVendor() + " is cool !"); + + // Register an MBean, and get notifications via the Hessian protocol + connection.addNotificationListener(delegateName, new NotificationListener() + { + public void handleNotification(Notification notification, Object handback) + { + System.out.println("Got the following notification: " + notification); + } + }, null, null); + + ObjectName timerName = ObjectName.getInstance("services:type=Timer"); + connection.createMBean(Timer.class.getName(), timerName, null); + + // Unregistering the MBean to get another notification + connection.unregisterMBean(timerName); + + // Allow the unregistration notification to arrive before killing this JVM + Thread.sleep(1000); + + connector.close(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/Server.java b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/Server.java new file mode 100644 index 0000000..918dd2b --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/Server.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.remote.hessian; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +/** + * This example shows how to setup a JSR 160 connector server that uses + * Caucho's Hessian protocol. + *
+ * MX4J's implementation requires the hessian library version 3.0.8 and + * a servlet container to run. The default servlet container used is Jetty. + * To run this example, you need the following jars: + *
    + *
  • MX4J
  • + *
      + *
    • mx4j.jar
    • + *
    • mx4j-remote.jar
    • + *
    • mx4j-tools.jar
    • + *
    • mx4j-examples.jar
    • + *
    + *
  • Jetty 4.2.x or later
  • + *
      + *
    • org.mortbay.jetty.jar
    • + *
    • servlet.jar
    • + *
    • commons-logging.jar
    • + *
    + *
  • Hessian 3.0.8
  • + *
      + *
    • hessian-3.0.8.jar
    • + *
    + *
+ * + * @version : $Revision: 1.1 $ + */ +public class Server +{ + public static void main(String[] args) throws Exception + { + // The MBeanServer + MBeanServer server = MBeanServerFactory.createMBeanServer(); + + // Pass null as the host name to tell JMXServiceURL to default to InetAddress.getLocalHost().getHostName() + JMXServiceURL url = new JMXServiceURL("hessian", null, 8080, "/hessian"); + + JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server); + connectorServer.start(); + + System.out.println("Server up and running " + connectorServer + " on " + url); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/ssl/Client.java b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/ssl/Client.java new file mode 100644 index 0000000..451b8e9 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/ssl/Client.java @@ -0,0 +1,87 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.remote.hessian.ssl; + +import javax.management.MBeanServerConnection; +import javax.management.MBeanServerDelegateMBean; +import javax.management.MBeanServerInvocationHandler; +import javax.management.Notification; +import javax.management.NotificationListener; +import javax.management.ObjectName; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; +import javax.management.timer.Timer; + +/** + * This example shows how to connect to a Hessian JMXConnectorServer over HTTPS. + * To run this example, you need the following jars: + *
    + *
  • MX4J 3.x
  • + *
      + *
    • mx4j.jar
    • + *
    • mx4j-remote.jar
    • + *
    • mx4j-tools.jar
    • + *
    • mx4j-examples.jar
    • + *
    + *
  • Hessian 3.0.8
  • + *
      + *
    • hessian-3.0.8.jar
    • + *
    + *
+ * + * @version $Revision: 1.2 $ + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + // Replace the value with the file path of your keystore. + // IMPORTANT: this should NOT be done in production environments, it is shown here just as an example. + System.setProperty("javax.net.ssl.trustStore", ""); + + // This JMXServiceURL works only if the connector server is on the same host of + // the connector. If this is not the case, set the correct host name. + JMXServiceURL address = new JMXServiceURL("hessian+ssl", null, 8443, "/hessianssl"); + + // Connect a JSR 160 JMXConnector to the server side + JMXConnector connector = JMXConnectorFactory.connect(address); + + // Retrieve an MBeanServerConnection that represent the MBeanServer + // the remote connector server is bound to + MBeanServerConnection connection = connector.getMBeanServerConnection(); + + // Call the server side as if it is a local MBeanServer + ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate"); + Object proxy = MBeanServerInvocationHandler.newProxyInstance(connection, delegateName, MBeanServerDelegateMBean.class, true); + MBeanServerDelegateMBean delegate = (MBeanServerDelegateMBean)proxy; + + System.out.println(delegate.getImplementationVendor() + " is cool !"); + + // Register an MBean, and get notifications via the Hessian protocol + connection.addNotificationListener(delegateName, new NotificationListener() + { + public void handleNotification(Notification notification, Object handback) + { + System.out.println("Got the following notification: " + notification); + } + }, null, null); + + ObjectName timerName = ObjectName.getInstance("services:type=Timer"); + connection.createMBean(Timer.class.getName(), timerName, null); + + // Unregistering the MBean to get another notification + connection.unregisterMBean(timerName); + + // Allow the unregistration notification to arrive before killing this JVM + Thread.sleep(1000); + + connector.close(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/ssl/Server.java b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/ssl/Server.java new file mode 100644 index 0000000..5228ac5 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/hessian/ssl/Server.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.remote.hessian.ssl; + +import java.util.HashMap; +import java.util.Map; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +import mx4j.tools.remote.http.HTTPConnectorServer; + +/** + * This example shows how to setup a JSR 160 connector server that uses Caucho's Hessian + * protocol over HTTPS as communication protocol with the client. + *
+ * MX4J's implementation requires the hessian library version 3.0.8 and + * a servlet container to run. The default servlet container used is Jetty. + * To run this example, you need the following jars: + *
    + *
  • MX4J 3.x
  • + *
      + *
    • mx4j.jar
    • + *
    • mx4j-remote.jar
    • + *
    • mx4j-tools.jar
    • + *
    • mx4j-examples.jar
    • + *
    + *
  • Jetty 4.2.x or later
  • + *
      + *
    • org.mortbay.jetty.jar
    • + *
    • servlet.jar
    • + *
    • commons-logging.jar
    • + *
    + *
  • Hessian 3.0.8
  • + *
      + *
    • hessian-3.0.8.jar
    • + *
    + *
+ * Furthermore, you need a Jetty configuration file and a keystore + * (see the MX4J documentation on how to create these 2 files). + * + * @version : $Revision: 1.1 $ + */ +public class Server +{ + public static void main(String[] args) throws Exception + { + // The MBeanServer + MBeanServer server = MBeanServerFactory.createMBeanServer(); + + // Pass null as the host name to tell JMXServiceURL to default to InetAddress.getLocalHost().getHostName() + JMXServiceURL url = new JMXServiceURL("hessian+ssl", null, 8443, "/hessianssl"); + + // Replace the value of the configuration with the file path of the configuration file + Map serverEnv = new HashMap(); + serverEnv.put(HTTPConnectorServer.WEB_CONTAINER_CONFIGURATION, ""); + JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, serverEnv, server); + connectorServer.start(); + + System.out.println("Server up and running " + connectorServer + " on " + url); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/remote/soap/Client.java b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/soap/Client.java new file mode 100644 index 0000000..009f7b8 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/soap/Client.java @@ -0,0 +1,90 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.remote.soap; + +import javax.management.MBeanServerConnection; +import javax.management.MBeanServerDelegateMBean; +import javax.management.MBeanServerInvocationHandler; +import javax.management.Notification; +import javax.management.NotificationListener; +import javax.management.ObjectName; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; +import javax.management.timer.Timer; + +/** + * This example shows how to connect to a JMXConnectorServer over the SOAP protocol. + * MX4J's implementation of the SOAP provider requires Axis 1.1, that in turn requires + * a servlet container to run. The default servlet container used is Jetty 4.2.x. + * To run this example, you need the following jars: + *
    + *
  • MX4J 2.x
  • + *
      + *
    • mx4j.jar
    • + *
    • mx4j-remote.jar
    • + *
    • mx4j-tools.jar
    • + *
    • mx4j-examples.jar
    • + *
    + *
  • Axis 1.1
  • + *
      + *
    • axis.jar
    • + *
    • jaxrpc.jar
    • + *
    • commons-logging.jar
    • + *
    • commons-discovery.jar
    • + *
    • saaj.jar
    • + *
    • wsdl4j.jar
    • + *
    + *
+ * + * @version $Revision: 1.4 $ + */ +public class Client +{ + public static void main(String[] args) throws Exception + { + // This JMXServiceURL works only if the connector server is in-VM with + // the connector. If this is not the case, set the correct host name. + JMXServiceURL address = new JMXServiceURL("soap", null, 8080, "/jmxconnector"); + + // Connect a JSR 160 JMXConnector to the server side + JMXConnector connector = JMXConnectorFactory.connect(address); + + // Retrieve an MBeanServerConnection that represent the MBeanServer + // the remote connector server is bound to + MBeanServerConnection connection = connector.getMBeanServerConnection(); + + // Call the server side as if it is a local MBeanServer + ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate"); + Object proxy = MBeanServerInvocationHandler.newProxyInstance(connection, delegateName, MBeanServerDelegateMBean.class, true); + MBeanServerDelegateMBean delegate = (MBeanServerDelegateMBean)proxy; + + System.out.println(delegate.getImplementationVendor() + " is cool !"); + + // Register an MBean, and get notifications via the SOAP protocol + connection.addNotificationListener(delegateName, new NotificationListener() + { + public void handleNotification(Notification notification, Object handback) + { + System.out.println("Got the following notification: " + notification); + } + }, null, null); + + ObjectName timerName = ObjectName.getInstance("services:type=Timer"); + connection.createMBean(Timer.class.getName(), timerName, null); + + // Unregistering the MBean to get another notification + connection.unregisterMBean(timerName); + + // Allow the unregistration notification to arrive before killing this JVM + Thread.sleep(1000); + + connector.close(); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/remote/soap/Server.java b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/soap/Server.java new file mode 100644 index 0000000..baa9ef3 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/remote/soap/Server.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ + +package mx4j.examples.tools.remote.soap; + +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +/** + * This example shows how to setup a JSR 160 connector server that uses SOAP as + * communication protocol with the client. + * MX4J's implementation of the SOAP provider requires Axis 1.1, that in turn requires + * a servlet container to run. The default servlet container used is Jetty 4.2.x. + * Incoming connections from a client will be accepted by Jetty, handed to the + * Axis servlet that interpretes the SOAP invocation, and passed to MX4J's + * connector server implementation, and finally routed the MBeanServer. + * Remote notifications are delivered transparently. + * To run this example, you need the following jars: + *
    + *
  • MX4J 2.x
  • + *
      + *
    • mx4j.jar
    • + *
    • mx4j-remote.jar
    • + *
    • mx4j-tools.jar
    • + *
    • mx4j-examples.jar
    • + *
    + *
  • Jetty 4.2.x
  • + *
      + *
    • org.mortbay.jetty.jar
    • + *
    • servlet.jar
    • + *
    + *
  • Axis 1.1
  • + *
      + *
    • axis.jar
    • + *
    • jaxrpc.jar
    • + *
    • commons-logging.jar
    • + *
    • commons-discovery.jar
    • + *
    • saaj.jar
    • + *
    • wsdl4j.jar
    • + *
    + *
+ * + * @version : $Revision: 1.6 $ + */ +public class Server +{ + public static void main(String[] args) throws Exception + { + // The MBeanServer + MBeanServer server = MBeanServerFactory.createMBeanServer(); + + // Pass null as the host name to tell JMXServiceURL to default to InetAddress.getLocalHost().getHostName() + JMXServiceURL url = new JMXServiceURL("soap", null, 8080, "/jmxconnector"); + + // Create and start the connector server + // Jetty will listen on port 8080 + JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server); + connectorServer.start(); + + System.out.println("Server up and running " + connectorServer); + } +} diff --git a/mx4j-3.0.2/examples/mx4j/examples/tools/xdoclet/MyService.java b/mx4j-3.0.2/examples/mx4j/examples/tools/xdoclet/MyService.java new file mode 100644 index 0000000..c456a53 --- /dev/null +++ b/mx4j-3.0.2/examples/mx4j/examples/tools/xdoclet/MyService.java @@ -0,0 +1,111 @@ +/* + * Copyright (C) The MX4J Contributors. + * All rights reserved. + * + * This software is distributed under the terms of the MX4J License version 1.0. + * See the terms of the MX4J License in the documentation provided with this software. + */ +package mx4j.examples.tools.xdoclet; + +/** + * Sample MBean implementation. + * + * @version $Revision: 1.3 $ + * @jmx:mbean name="mx4j:name=My MBean" description="My wonderful service." + * @jmx:mlet-entry archive="MyApp.jar" codebase="../lib" + */ +public class MyService implements MyServiceMBean +{ + protected int status = 0; + protected String m_dummy = null; + + /** + * Default constructor. + * + * @jmx:managed-constructor description="Default constructor." + */ + public MyService() + { + } + + /** + * Constructor. + * + * @param type the type, + * @param status the status. + * @jmx:managed-constructor description="Build the service." + * @jmx:managed-constructor-parameter name="type" position="0" description="The type." + * @jmx:managed-constructor-parameter name="status" position="1" description="The status." + */ + public MyService(String type, int status) + { + } + + /** + * Start my service. + * + * @jmx:managed-operation description="Starts the service." + */ + public void start() + { + } + + /** + * Method that is not an JMX managed operation. + */ + public void stop() + { + } + + /** + * Echos a string. + * + * @jmx:managed-operation description="Echoes the string given as a parameter." + * @jmx:managed-operation-parameter name="str" position="0" description="The string to echo." + */ + public void echo(String str) + { + } + + /** + * Does some crazy stuff. + * + * @jmx:managed-operation description="Do some crazy stuff." + * @jmx:managed-operation-parameter name="firstObject" position="0" description="My first object." + * @jmx:managed-operation-parameter name="secondObject" position="1" description="My second object." + */ + public int doSomeCrazyStuff(Object firstObject, Object secondObject) + { + return -1; + } + + /** + * Sets the status. + * + * @jmx:managed-attribute description="My Status." + */ + public void setStatus(int status) + { + this.status = status; + } + + /** + * Gets the dummy variable. + * + * @jmx:managed-attribute description="My dummy attribute." + */ + public String getDummy() + { + return ""; + } + + /** + * Sets the dummy variable. + * + * @jmx:managed-attribute description="This description should be ignored because of the getter." + */ + public void setDummy(String dummy) + { + } + +} diff --git a/mx4j-3.0.2/examples/trust.store b/mx4j-3.0.2/examples/trust.store new file mode 100644 index 0000000000000000000000000000000000000000..732bca360950140e4c941159a6424e2ff98a644f GIT binary patch literal 900 zcmezO_TO6u1_mY|W(3o$xs}T!7vVoFq2=Tp_qXPNQPaQ*DtkPAu_)x zTfsTAq|#8*KpZ5_B`gqdGh?5;PxP!_bv>FZ7EiH4ErLDDn=FSGfO`1TM;;+b4Bz0hfz=GvrXzwi)*M3RZU^^ zvHo}7Q;WH=g@LKDA!?F?p2;rHN0pMFPEA&KzpED;yjo?=!tWw~cJ2IWE~RArJ-E^@ zz|+t;dux2sX4ld~zT4%JtmUSyxVzxm3iA~%ww0$m=c(E-2Phn=Vr*Xglza6SOvO)lf5<(&X literal 0 HcmV?d00001 diff --git a/mx4j-3.0.2/lib/mx4j-examples.jar b/mx4j-3.0.2/lib/mx4j-examples.jar new file mode 100644 index 0000000000000000000000000000000000000000..40f667a1ee2b4ccd60b3f7f62c349476429f81cc GIT binary patch literal 103976 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

uus&bZfrfA*wMlG}E=uQHO8-(`MWSNSt164)4?t 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

_S-LOS$C!QaF3WH`;AhAbyE`g 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 A^8f$< literal 0 HcmV?d00001 diff --git a/mx4j-3.0.2/lib/mx4j-impl.jar b/mx4j-3.0.2/lib/mx4j-impl.jar new file mode 100644 index 0000000000000000000000000000000000000000..6f96871664a7c353277559d6d3c0aee4ba77a84f GIT binary patch literal 147294 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%0D1CK+j);Zyj9frE4 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 wn8&rJyna%_Tfi4)85Oy^A3Y~=FNol4hg89>@Y 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 O-!u%@E-CNIg!~H@aw;YO literal 0 HcmV?d00001 diff --git a/mx4j-3.0.2/lib/mx4j-jmx.jar b/mx4j-3.0.2/lib/mx4j-jmx.jar new file mode 100644 index 0000000000000000000000000000000000000000..22de33fea80c80798580066fe0227985912c61c4 GIT binary patch literal 262554 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%0A4+qA%-+DGFs+YfBp||#a*|{c1lME|Lyz&}2-Bin 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 z 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

ff_l3kG_XAZE%IUngor%QBK32`Mj}4kh5!0D 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 %8Rpk<|7F1gq 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

9QFALB$d?4bACT{D{sUteg51iw7BzcCyOps^ic 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 dh910u55-cLA95qO9U1;x7R>&H{{iQP{*wRz literal 0 HcmV?d00001 diff --git a/mx4j-3.0.2/lib/mx4j-remote.jar b/mx4j-3.0.2/lib/mx4j-remote.jar new file mode 100644 index 0000000000000000000000000000000000000000..808cf0d5c9fa7053c0e64817e085240ad8c3f836 GIT binary patch literal 172221 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 literal 0 HcmV?d00001 diff --git a/mx4j-3.0.2/lib/mx4j-rimpl.jar b/mx4j-3.0.2/lib/mx4j-rimpl.jar new file mode 100644 index 0000000000000000000000000000000000000000..e3dfaaed19c8225d61f2c245dc370c10694289e8 GIT binary patch literal 100280 zcmb@t1CZoh(l^?k?rPh%&1u`lv~6SBwr$(CZ5z`)ZQGdE?cIHMzuhP9yAj`wTNS73 zA5obVCo?1U%X8$VK*0b&e|vdA$*}(Y;eS4$zP@Edlm%!dWJT%a|A!0`$o-3qeI9fq z>FejFuZ8mOWHJJ>5~3nX%5*ZKGLv4F9iCX1)&e*vcI%Vaswx0Lq?X7gzE};$ zj7kFM&ttRZ$`#JXvg=b}>R^SGa>M`=pan**y@@7Or>uiQJ32fUSX@h88Mg$gIAFK&T(!g4AT?r7T z0aR(D;_P_`wQ1%%@IS=>0&@F{wBTQ2Si7=V{7X_GAlJW;{7oT$C$X|M{Wr3|{u9hU z$sCNWZJmt&3nl7bDD50ME-gDPXrPzgQcs-1 zvZ5%Nf2yzN8wR?q_#a=!-}b0MHolNI^rI6`Xe`2+iX0}>I7Y=JDr(ljEHGIqA}4@s zwkAuLw>PVOrxld4;!=~P1>UM`vk+-w94PC}{#@?EL@KwJ7bGnw!4c>RY{0lR_|eZ9 z>B>m8!##{KOe$T=-nU8Ok#H_k$3C>l;<0c}c}|IeUOKIlK} z__KqdSk#)FCub0)o9B01`@<);O3x?2uTx}6)zD`n*om*z$07QeFC(i&Jz0YEy0T2w zAA-2fOwmaoqViU?xk!|iWp2GZSB-po*Cg(UEXQ5!hfo7>I5d{mEm#r%iMNVHNSzLAV!v6Y)%b;#TXS@R@J9rS=mj^UltHNa50fh9j?GbyZs#brXY5`H0iyuM=Eyu_nA>E-* z$39zP=y>_xnlc#5ci=sBh+%_zLS4%H|BTGVmn z4cQT|ybc9E{X(2_fy8?v+6x~zcM}S78noz~88LzU-EC1aB4v9TrwDm*juG*sU-v!- zkm}O}nak@^``SJv5XDV_P9YjRYwpu}I|5QgMQ()h8QU>KMo2@uwn1%>AsA;iNoaYi z3Q9Z(%Z%)AmT!~6Dcd`-wH^74a5}ks;?0}KJ7AdEP1=~(R%$`T-wz+Cz zubybQKX!Vt0B_~f{fK9`>$;DrFas?e}ph&1sS=1egrS*pk={l zq@E;K1_*9>=}vuVn6NO30uqeNBCFH*`S=ULeccm@y*~Wy7$#Xuc;Ak-w8;!NTe5~N zz8qa38W!n&dG=aE19T6r$DcUI97dzM5&Wgt!B!2dMziiasmzJih}R)6PJ;&t%(qZw zYk6nSLSo?@vH~(Z5uv~^L$3te^+(?o2BFGU7g8$14nnexLpIlpQ|=GA^-9?_9|zSr zlCQwBA2`zO)D-4%0v%6ozav&)37e0Ih#WIul-H?dH2z|y6r@~K98o|V;n1h3ddi#5 zIE9G<3vc}%)26B$4*qcS{Jg9}1hdQ$U|jf|n73`el(G{k)nvqBTMfe_uL!2o@_^q@ z$)dqbo8+9GC$^{5nDhoz0KHGQ*|!2>UG>)+xaWd&B7cuiD`srbv3=4$}BC1=9bUDVYA#6ccK72>gS#q7|22f2J;k%{auMN+KTN)9SE;A_k}mx@YiCPB}t&$HqK;sCYu>!=T9?7=s?gv zk<}M(SJ~Zi7w!McO1FR>TSRa zF}$>pOy}WLqU%Afv&g2XYAuBXb+f>=Y!a_vRZ*0}m1*-EAd0q|l-IBpu39<3JcUAW za48OquB=9KwAjCytEvcsQRV2OSoG|dziz#x;yjQPgE5UND)Z0?>$PP66ygvFew5ZM zDk?didqc4%(d|73S-W$oZ6UFapCa8x1{g*7fbUO)x@hzr`g_(99F>>B7wWF8zLPrJ z^vUL>uhJ%tW+YA!@V@B&r&|oh184w{KtL66U-tNmTl~WkQEIP_*lMUBs>w8NUD2pR z(R+>2zZ;?IN!HEdd96ZF#LUYy*PxpA79|22bZU$_E0P*CIAta9&CTx2^1#OnfHeTt z+7z?Hz$1O2bgTX%sr@c$mg>zz(kzZwYaW+vN0}beF4NWC?{jkA z5V^3n6J|sF;2L(TF=Fo+Fx#Op^wHxK1BU)Sl}I_mvG^lHf~X6%lM=}1h?qgxszU5>?+G4=Eh zen}EWe#a_7(Z1iUVtqCnq=Zx$O4jB}$_efo>=(^q4#ioLXWz)2q)?y6(QGL6&+5Z$ z24)k==Zr}mcYnmmYi~>mClsff4BKEWXG~`5LpB@@ISKU9o!{@}`%AfI6KJ6#fV&u! z^mA?HZ3{S2y8`DZUAuK2k4OQ!ed#4v<%xg+-6Yiy^$fSh=PK8zb#LXhwcc$Oc*+fi zvXoWS&F&*vNc^!*8D!KF!g8i*J~DmOtu%zKTmnd*%|#aN{xy5pT9L;CoJ?Jmj)`ec z*^0EoeI=Tz!SZ)e<;@nAY@^WL$Td{1u-e|9QhjI7&Hh*0uzZ`!*J#D4B(p*>;qX=0 z`@Pp3aiR>#^DRW^38Q~R!11eL>l0S$D|ix#-FQfaZWa0iU2xW! z@D6*ufMXE&jQp z4#YzO=hCP%`BY@l$WrBpkD{A!qb_xlj@NHNQ)+f6X7iXTAhA!34qUH_d?~aENAoU4 zk!&f{CL-j{JYHk;CN!uA%LT<_t|n6U)ht-v))T7Vb86&REjLxGj<*xy(FMsLV^z2JR?n!O z3o5qv4_yen_izqIKe=#adU>O|e?wXo?r05dGkV8$WA0jzM=02}+` zV!hS8zHQkM2%L}l1`mZPPN@~L8>mb{oRYPBypaKpfB;tzuQz8`6uCVLKK$rC92V{f zM(z;gR$nM?U8lZ;)|oH`@CTOl3G{*ES{f)sw0xI@yBy z0Wpm$O|v$?U`z^p1KgugoO1VK#Q2SnaI_-Q7}PU22+>mECUwL!U2RZqZc*Z`9SrzE^Hhi|*^_Z%nwzLa?Ett*ESsb6#t z3^povvEOR)+_6;R)WJ;abil&fuB_9BAY2;A(XvEjBB9bmtj~FvLe_`=zuCo*s@X=hYvQXolD-1q1h@(m^NEepoh!neFnJM6t4vG$-C)M+_iOj zzY_k%7hb!%%|#UX*bZswg6Pbs0nmrh?Eq4W=~cYvI^`bpzb;~LUftc6I|mDQ-o@Qq zHRy8De^DL`LSR3D)0NJxSrlk1;3m8N8FWz?$B0^0k_20_6t<4EjReONs4obPLm8ss ziexG=Qx7wP22u|%F#T!7{~-eOf&K6d&*~Fs@`m0)GA^z&NQw_9&IBg`h?Y`eC?uev z3}l{%(2BLl+O~G`b*_sYim*Wg<)~e}FErH}eRsgi2rcz#kpH7jJy3UOnUiIPXt$S_3LtTd7_n&xqWLwZU~{XS-A zBvGpuvI?edRb?X=74hab*g?nSra*FMh$7Rg2fn3Y93z^_LEZzqxfsfaad+`!hsx5` z{s%$^9ZnDX_ZPsdWylBoe^w5tEV2T^ z2V5gfV$p`J1FEo8n=-Hf1p#=t@&xGt8gc>M&juRv4kLB>oKXCaInlo7fp6Ceo{)Pk z%|*(TWHwAG%*?M-nQ6>?-d?Y81c55}Zy3o|gCSUvf6O{`MK1ifqsR7KQOU05>m|mD zNjyl_8vQZB_5H^0D-w+{+G%I;TC9i*am~j-d4%@{^(ijfF;p2XO{7hAa=95=skhbZ zH;+M@?3oK{atfb*dT6f8&CMgU#A{fnHORP4WAjY=xzWrb$@LJE#gSePE`Yc`)Lqh; zN89{(^zb|6f0O^dBuGhX7}$)nK8c~9*1)6=Y2J$0Hx5a|fD($z$^HocP>4)dZ-u|Q ztf{UFcQ?vLyY3W9X#gUr!N?w7zm94e{yO{A$s?)jLeAo*r6UGufogqV-(o&JE z@Q&7!d}KuM2&!a;Tm$v`QX}eko<3iGr84y!ydjenMQarJ8cK#A7Hn1Qoiu(_AKqm# ziRo{Ac*ZPtzundfu6;WFljjW)uIa?kU9#n?g`0`($IXc9;Cl4E8rqPu^zgOA;+UHF zIPLuE46f0)HP@bgPk_l7hg;r{%^ARDt1oR^&aJOvM-ZH#JI7l!w^KSfy|H2K9u6vV z_O_|(I?n*{k^Bb)exN@AJ?p-|+`c!pFZ(ST&m}C@+(dF>n+E;_<&h7S6qX)UjHlp8>BlX_VZ3B5SZtsFBaUVXf9XR_QDHfa??h2P2uSae3_tTu74+wc-O+knX zb8(8giFDx=~g9sZ}%Qz-h@o4uJwdO3K$YF-T2Lp1Dx>i(c%IZ&QqaTsrkFw2AO^D_)_&4QOzPU8!O$o zeeQ_GZR(0Tq@B|^ntZZ%pwRrlDw=)4ZmoVtS^BU;t;tIFfO6@)?a-nNk>Bu%|Ed*_ zU~L6g?Ci8;0*wSxo^ybRr^;)c%fQi{rmx7YRc=hE#aix6yg{ZN^UyKE{ptROL^-oetTvg!-Nk)>A>Ti9T5hDsvqj+1$v6O9}I!_Z0b zEq;BeX}7nxyVt(Mv8iQNjiz^4HN^(h;V;*3=R)9$sX>wUe+KJOhU~(2!^F8IZVtq` zMeOO2;OYKL>T$k!hJf{q}jW}h)k^D#n& zR@&)wS^LDQR|Q^arNbleMozNFM@$z@ca#80k9}J&ph9*-ICXj_X*6Cxe>%9^Y3Dy! zx{1^!H-V_dHCQC^S^(ri-fN8@>lxKC)>nm8y}wia5@u>w`M_A^+g0k~mJL{G5ZpfH z%>MhMW0oB@`eWzF9gQ6iHrOWD$Q|BHL+^tXqRml%_LEySXZ2AEn74cMkyo~9^w|sQ zPPX>y9q^3OuDdg2r%Ut^Xm-iq!v=Y#z5YzmtRw5SbQzIaLk!7es0r16vEWpZyd%%7 z5leQF3=6q|Tk^0*w{hnC0l3ykgkNVmU*Bp>>IbgGZV8%>phoT^)cio1$*~?tG^CUC zC*jr{Et{&vSW`Q*BJ3B&<_7>-50ozLo2t{A82*V}7U_1?)^l|szFUC_t` zC#0@n!&9y#5sG2p(m7;hm%Ymg8H)rGtZP<%DMBPHLE6UT*5ciUF(--S6MACy}YSr27|(e z`S_8-1!1Cd+fu>BLW~%M0)~+}8$E`e(-#|}-y>wEU$XAL&$vxrJv=`3_;dmjgf$=z zUjG2ooI^i6t=+&2+op&fJ82CbVZFD+n7s}RjtnMOff20*_QH}Ce@V>DPF{!&_Cka) z6dw`?i{hXxQ5d_83^!GYgtDT`9Q&S-P`rM`B}!+B!n1(7noOy6oF;oql2*ojfhzx~ z*?fSDVivXn(i{Z{g!|5^q^C4oKh?L^-+B^_vFB!yk4bL1F9y33|4M2+no%DPf<2)X z5N#^+V;-+-t6ApBZj%B{Cc9==p?W@2x^3FcJmD&kZBHZG(#;VhUzeXYbts?l_@GM?ENggJn;x{9wm>Y{}=rdzKDWMuD)Du^>z#Nf=~pGI*?0_)8y(&6_%1xHAVoqnXEnZ0f`O*EJF z)-zik2qahFsgnuV(Eg_c%W3HaS(p((qZ_F|dTKd+$6Tp7(d#njTRj^3O`AgQPo)>Pcl z)KYt=JX&E7b-g9q2A$7^()d&_6B20pr=wj)D?(5Vgn@(o>JhTb&H!?D*bF5&T0!g= zF>?)2=2yau)NaMUR_l-$j|sA>B_03v&VwJHNbQ99d74q^F;OxRuxqACgt0>> zTt=GyoeLeIeBbpO)#d{ylJQ18Cl>1kZ%r_q(;qWf?Y9_chpazO;5VR{{oI6pu6_HBT-qxtoXt*MnDe(}dXm zq7QmH{__g+Nt(~A=jJ&&={4Bv6^X;!hr&Cg?g{ZNXJ81OBZQtYgxVETcL&uoVC9L4EXB+)3NYmRr7{e2{CojVf@+PT99h(PcTZQbLuv&RD zd{_URGe7JAA;Yiput?fm?rculmtWK_JFuI~>@ zs-+ULDT+7SzG!HufI=m@g#sY~uvFD<)24y`%!N!#A0dhX%L5Jc>R)}U0Lw3PHV4bC-WZFNljYFf7d8D*4K8o^JsIn z@@=Iw1sv|1@akhV6ACd1%GrWy8(7eh(^Pnv*~R{Os$?NH8uxQcXEjB0@(^9ss6OrS zv2#`NiSGO{Op(Fa=TB4+P09w!G{K=WRLw!B#}wUl9JYPO(H%=)llMKE_?apC_bT!T zW@Z#|Ld4Bos7|*r@bVc&MQ|m=#w~_k#{{reLo&M3fq!OqH|rGVRC4XAR`u|U>>m>vM|Iv}!>O$@)Oid8OtqL6rUz7#ltFLK z!_hyL3d?uAd$3ZX+}NJuUhRcw6P3~X8e+|vg!X)f%N$~X!@BmbL^IBN@yT{tk2Kmg z+&QA|STMm&mEuPQ)Q@`rkKaP~rr6H6)RewzwXias4YV&_sIgwh8*4$GEjJ4x*5j7+ zTRKNsx1)fiEtB={F`OHye*_LJ< zg1(EF!M)V>qwYj+mx>w0Kjj9@wuIX8^fMCSxFEz=tB~d~JVkqyl3ynq;toq>=Fif% zWgqg5RE<24Uj~vKZO<7wzvb*33OBz;T947-`?q8h5Mc`cUg6e#>UswM0uH*-v-*1Q z5&5JOz5hHZ?S24ev=ebL4%Rs}3Mub7nzy-|4gDWj#|oyN0eY?dJ{Y!pxJ(HneB(rM zT-g=J?#pX=fUy!Y*{65EA1Z08-%gku+x$&F;+12*ALfNTKhd>Oz#XQBxcRZoH;5QS zKOi?2;oWoL+9Dhl$2dp@IY29Ym#alUPP&f29h^r~v{-FFO5JnY$8Me#4%%X@Ssak0 zWkuHy=1r$p^C4|*1i5Wl8IV-@^TH_Dvz+8oMi>V}=ROVJO2v$C4$UXVy`K0ZWeftj zD$REV${IAs3{gA-hgOQ}gUNrO9Jf+tCXhmRu{NJHDyfEv zKpqUvOA+_l_dEyYSjU-K4+L)f!4odhJfQ^8d zCLX~Lqtc6rRx@zXVvVF%0Zq-vH!qH-vrty6e_t!f{G``JOIi;z644kNIf`dy?{P=s zXwk}`efoy6)r46CxKRr1QIT&9Pte9r9$W(tlNLpKse7~Zxi^D2f zrK`;2Ccd)0LYMwSh5@Oyd|^#VU0~EBt@r19XYWH!flJ>zqg2D(i_4!M{Cd9f_WOIp zAlz^~fWd6oR9BP0cN?bu)`2lKKB%r0oM#u`0lELwA!r_qb8uN8d_-L1&N%tx)?%6+`r0 z;})t8 z@Bm0R(oGW>HW5HA8ul9Qrjhnc!IQd0fsc_x>0CDx^L)8i+#;mT0tRHIt>(>s)F zPvxb=IV*QrMzZ}j6m@O|9>NkbW1)k)&bc-sYzMA^SvD`x4g1U7)NsT(G$#X#6*bq> zl^Hwy0+lu8pR`xg%6~+US(6T7rc67NpPcQkC9TG{S1_??w&W$3!yc*0?x%KqLP7%jGgS)$n#qF4Eu=?gT zkR&R&;s88=T-^7Stv$u|Z7KR&+ z`rptwmt@A-Bel;LtaAZ53e{3hpg`vO|XbqxwDiiq{i6U^dXn)Y(tYvy4YqQBTyq_Ke?-i^j)WMUt& z&emXZygyIsd`3S%~8Xy(SOqot&JzuMcv}-mQ=mDhU zq?m`4lRPt%-wDFYUew!{o@pS`)@v?gdexV!AR3;R;{(Pgv<)X8_GoTOeOng|Gn zAa(xQX~}+9qe!R)Ahdn)^w!={rpXr`&Rn(~5hvsM z1u^K9?i(o_5K0sOaQGp2MW$?eDCK8+=JicGD0AxfeMmCuG7+Qtx zG@h+T3ua$%b?|;=;VG%Gqn76c-I}~6HGIm|n2(&EE4=ses1!qfjRt2RG{_qVMVtnm z3Y2vhf(o=v^xTj1fT>0+JRJ#n0_~DOu9^+Ol-p%a5I6u0Zl{)igv}aB{KF$!G^~St zp^m}}nl6~8GdQrfx~hO`wyjT0w?JAY&y+AMF^K3=!&ME{6HJWu*+LCOX1vu@AA|U; zmi=kCU*w_eXy~HO4j&ac2lCuw2hzr$m$OH@H#4kOYLum0pG({M_b+3!EtYy5+UVlm z9bps8jlBIkD!*lJ&7`I~E8~H7=fseDXV8M3G$06;-l$IuvfIGIi`XW&S*^11c zvXHZsK^XHbhO*kBorxj`48=IV9F4b*aIKu^<2Ei|BtDMRhF53E8{rYpM}T=3?OB&R zV~H*Bn)Wx$#?*7UD}sHQ00G2IKz*k8&k^JSOd0MVaa{GmqjOtvvba&~??A-?ytE=nuY5uQ#G_89{`(Nj7W6KVD_C& zK9SK>hortTXoNLp9lM7e1Jym;oqZMc4^S`;xCid2UngDMGxdtze|>VKm+EfSfp~u} z^NFudhstv)xkh6Kh+NLWvukKnTIMOssl5}W>OO;Vt|6S>wl4^WBds{rvfd9n(~&Xw zRy-R;y&7^NKb_6BZCCw-)ke2+c4@F!U87%F9LegX7k*hqS#Pz-%67oTWlx-#Z<&E& z>f~oGf?`NxKqL@hHweT=vD8iWu&WXr*+a<1K1on-10 z%{Ro`ukQAkA=={K4AsT?I6*~xwbT0Kc%e7(?WVl=t)7myz_`kvaT#c1{{)Q|-KLjL!;J%1WsI^(xGi!O)L{=_sprT!JUxhu{*wqgeF8?p$XL4&}Vm3aXf8`KAGT7^K&v(%dli*w&NlufJ~R`TkF#`M28b6U5<8axlu05!oZKKfE|MaUr-WI=y>@ie4w2&1Zj7^Y7 zutE(7syJ#bQ{C5`iY_?G0ugSx&g9v(pS2Qm>%NVf`^c}Cn-B*M;W|j?yZc(=?Gnrr zXS>T9Hn@_*?6Gly{--A1BVVaQzLE&wYhbGK|4|eFt|MV%EAy|L7{(6DW)8;sM*m1X zO==!aD5j{NUJ1XmrkJ1z_5Jvvp#$63ev@?ONyLdklBNfOAVMxRC;XPcSe-0xXoy7- zsC`g5)2x`)Xi^oT<)x_gQ}l~ZR+V4W(6rRl)T|gO$lklb&k^f%F=<#UqAn4htZ zeVQ9-dpCA9`b_8ZksT?d!#&Q0bNG(dy|1l=^#D?TG9~EU-?6Cbg(j)gE6nwChp@sV&(`17_<=+T!A2u<QUGR!uztDY>n;s-MNn3AK&w2U!vmB#A#Cn`yt<|gWJGF187HTRhwG!+yi_o7!iquhMSLrmy=IV7AKvXn5*kp!%DHXa?`o4 zn1$68dxR!hoMetvX~%gT>WV;=9ENHZclXH?_?dYX(_w{}vG**P$`J2<&7~^*#Dppw z!I)aD&VVWik*(E#VOw}8ulqpJf_Y92rLy?hk(_p^ z@f>%{bYAj)epniF|3WJZ%%Vn_c#a%lwC&7fU|yPeNh(vuOQDK=;BW^1Z4eF)tr*!P zy967Va$v4eeb^ot^1PcWj=P*8-H_aOkv$`XlY0{N2a6;Ha1K_K#hB4j=Ni~5FI58_ z_FCn6ZDbIQp=-nOCuyyl@UTI${n1hiV|eFXm0aOuX|v>!KZ;w1zHW*$> z#7t z)P7P5zgj=cAdc?i$~P45C{x#GKYvG#n(dJ1xJYP#MxBbDYPA|j^D=N2f#QuTN$wg* zV`|imq2d9OKv*KGxDz-S86y2bCz_$L^YM*qt`hVh@_9zib_pPRXae@hI2J6VSL}bZCRcIe?=M=Zd=1@Mx}5^!3T>lujRa4BcMVwZ4pKXLtRZnl z=?vC|mhST8RJ!KcL@1?@pF6fHNI%^)09PiCWoqo!vGCmIwBA3ry)O3O+U?{w@2yMi zK1F*9VO8V&dE0r$qHi%tT= z#|R5B^EUJH_l>*q~bO)B@4r(;zb+l8^+VBzIUym&T92 zyf6{txB{m_4gntm)f4;nQfz9-T=7dwwd%~rHK6l-Swu8ZSgBYdasV^aXJ8GTMqNMt zAP)px>$+%YmZ_&{5f2vlkNzS*d@vmJrU0Ed60DJDM1iBP(d+*a9O@Bh6qDqI}w>86pFlu94JuMta7f=W1K3pg4}_YV9p;$=J>-Ph!gU;BH@lS5NOFelt`GwDaCd`lG^psaf}Vu& z-*J`7+?wLx3W1mPvZ{9KBfC2_Vx0SvT8qA8MRXi%F?w|%@Iu=@?|ZjKzy-(TRVFRQ zEnuvuDjiA{WGYv2`T^>VJlpu9pyF7_iWw=R#^uGj&ZPG_$e?MQUVlULSdD;&-Uxs4 zzDil;ou|BCeyba$r@x003a*b;f}EGzt)}crRk|%t%ic>>4cvniU*+&s z%s4$4G?#wzpwbrlcGktB>Mj=-CH0)fpPV)1=HdL-2G|=tHDwg#4q>|Cez^muL8CVa z`?{C8Ys?a%W|!cK+7h-hORF=&b^~#VY`Yu#%)_Jd;k&RKbN~FDaB;U3d&0UH9JQ~W z*4dfT*%L`rirG;cri%Ay`G`lC3z{)@X3P4X)kh&_h!88YF+Fu`pL{ksn4yxIJ-x9toFSd?3 zva8|eb*-Sh2&?tRoDd#u*c`Z!x}d?#0;JnjVNyE(GrW#ygu!KdH*VQ5Rqhm4&%m

4K%|_%!-4=|HUN1U^k@mpSWGV>Y@JUp%y zEW8NEix!5IUhXI0Z?`NhS_>J*3&p3iUK`Bov3Lfj1ecA%%Wwc<5IcBKxa6pKGs`>% zV|Xe0M&((Nf!Y_YOA+f(lVz(qsp2NWk^8?0w1U84j?(p^F@kFWf+*Th!hm&Xe(@BO zw*vxa`Be^t2WRzf>{$Y#{TRqN(J&A-NX`Ndvn2QHd$>O=**U`)uKHwHYzxu~-@pB5 z<@dd#wD|E0Xw5(e0#f?_q4EcR{)wp*=TR!cBz1O*jm zhk*d?$8P|VE{sx{JY^COV`H*+NfYee9F)JLQRTX=Z4ISi-j@y*li!S{>9IPo8NyRp z^;q3hvif9V!k!^i{<8Mw{c`xa`E>cz{j|yJcpo#7RD|SIsrff7oKa=;7#NtBYq-*Olcaf8!UyT&T0R)=}SgLQMy`+$4uBhi+VUpWkCWgK*^jn z96#Kjg9nOCb-g!fRw!xM&M%g$ITuc$Oqe%CpCuG;7L6DdXS19lx0|G%8Hkz+O4UK? zt~(E$&q?!4PbQxQ+f)-&(&nJBuLnk!k(X;4cui2TA#FU2$+G>FY_Q>wHH-O4!cxbM z8AHl8tk|B3o15=~J(f6p33=FNDC47bhHPG0t$9uwc$Z{0JLw9~?95%ph83J#E;l%D z9;Lu8J)F2^JDT&8Vm{K^oyz>4sXLYJmxZ8ui%D}7l&63jct|%5&&RO#CQ0<|=}D5T z4#TBMSS_Yh+Oou3Dq8~1rN8p99yDwf-$;lAW}Ha)dihLK<4MhB6lR@`49ld(<|V;_ z=J0s3QCJ3R!TLF2AdG-G`!ST#o_yu6&ElfwuzcXxe9kmBG2d=k+CE85#=BxiDmO(9 zt^~ac>Mi*kPaX|gt1(gPs&&pY&Z$>N^IY-@Z1(*U0TOy1ELc^Rq!UBzTLu3DeC1mr z3C3U#q_ImIg|10i7+zI&O@eM1CyB~Cl|7hpN?Qx7a#zb>3d$+zlX#zxOht2WJ`!KM zwe{OhvZNK(DT5hzD}u!63oR{SQGV+;xX4SDv}!sxr#w$`(M&yI zS;ZU2H^Dx7l{di5#11%W&v3+U&sHf1sA>5#t&ZYNee0deb5}TDXhcWvv@0KP?sg2- zM<5?^bc?#PsA$(td+7CBM0n3GD!7l*O*z5`?x*~X+}b;IdpMr@N7Sdd?|r3*m>Qm7 zBX9D_B_pw0ueci38aAdbhwv}Uz>|?`Wvb}i2Zg>#RO;fNg+r0z!Is`RXr}X_$pr@% zx9O6B=$v9i%~vm~EgF4R6UgU(MoUN4MC($7!9@BK|4V2kODFzW#k zWGZW`#03_#>^hfmfo%s7zS*P9I*1%M)5_PK6Dhw;L z35BLjpbJfPfv(mHrevwJ$LELH_Y8Qlo(x>)u>$(tN=jCKP&u)YR4J4zXowzshR$PD zK!0zFhRMLm42?{R?tU4bkzOr-a9dD!9{2b*K%U-Pd6U0OD`%|_Q5{yqF@Iv8UtGf3 zcACHqHUj=VN701cJ55$}ktR0rID3QP7EL9&Ge&lM8!Ck5#@(JfL6ULhJODo{woQG* zOMzzSr6_dWkcm~6+LlYSQVOFciM-*$)Qpm6%qjwN7U|5ksf1PdIYb{>&a6bpPf7#l zb5fgBJGzJNL}SeJBKRfG%`@m%t4$j0I+Rh#?2Mkf7~hH znm;0d8Az{zg%`+oiY=^gfXE_D4SG62;k*Nt2%`@mhUx9f&NGH%VF)af-sX>)2)Hyt z1K}ObH_3%)q8K8oGJ6fD)#MnX^DMo6%WNglkZZ z5T(a7DF=|151%MU+?i7vG-BW?huqQN;T^&qzUm~qxZAA6t=HA9_J7toH(MI5Kt(;I zl6I{-!~8%x6hY_mU|)&c6TSfU=AK&CaUQtM z?t#BlUotA-2ws}o|3omE!GDt+qj(~O0A|ZJbIkbp<~=Up3xNT z?gm=Vnu*M|2Up#=&U2|kvG4C~!VEaj`}-BvAK?sl?GkVBncvB*bQZ7NtiQ(tm1_?K zlc$n}B_R7QiP-U{OG!dKO3ys>w&r9ZLAN2^VCf!3Jlbpo$@7Kkv%QZlf6J}|UEfx; z>Dt9OsgN2%5w=~`SE84LhCSlrk8&!m!khb^;>JUa52DI4=R@xqLLGAX2ZV)vgX~|w z$x%e7@u)A?M@03u5aMeI_18A8pA(S-Aw8+buqe6xSAFuT8Vz9{rl6>e=MtfHjmHSm zdtvdqZ#=kuySIhgB*9^On&XLsR<~Cg;z7~6wp)i@EGpD_5UK^Od}{S*L!}RfT{OHE zV(-sGDg5<)f8N*dDOhwNINdHFokW|&FfT~dY_{pe4$K&8(m=06niJd8JneNm<>xwC z7DCg7A_0V+2?s)J%7~rk@thYiG5du@isa{ zSPkj5!`)g7B#%bjA~rYYzW`h)uJXyX!^g^3tH;D#=(Hlo>;jaao|}NHac|-+p=o~3BY3N7|%UDww+1>CFG(O($SpPk3t_E@z7r0 zUQ(`x&6P)MrN8Z6-7U)sIo-Mz@v?JNL4jgJGtXsS!m1j7%{jwnYn3{OM zs(wG*NnQ_yyRGoWQEqXpL6vZAf@rg}v0p#`ED}0Wg6;b)A922_Zd`)UAZOo;qIu#7 z1EQj)CFqPdxG+9$U8}9>7sXEaCzMU4xMrZuQt_s97BSk$j)sTxC)83ur}X%4D}>r~ zn#s%r`0^TjaNMe^W#U&H)785zk6o?vx%za zuB))*`sLY}PbHBg0u2fboF>w}%sBWrqaPTtH!pelkOMqAKjFecLntwr7^z5O&gukL zZK=W{tWt$2mZL79$-QQzM~0aGHG#_&gyNv zV}KxJ#}9_rbbW*%=>j%&c2DN`rE|Qlb9xP8^(h{d6~3$RTtDmiCvEEV+Clu?_2bpz z<24OjyMIglSpfKf9c^&S?CWXu-H-LFcuc4Mx&S;d?dRak#q}-6UTL^m3H2;T@-@` z*Z*9wlJ4{d*jE@&GsTW@RirT?Z&jVY zmp8TcpN%*ziy7W|N)ys0Yt%Zl(XNkx$Oqi!i71qQhF=ne7=$d&crY%k#<7nUnE4f$ zUsCJUme3_lk-px!k55o9FqHR?(a8A34~h!uQ*Cu z-|SJZXNesljW8!@$e)sT@w_3^o<)%RVe@||nTB-scmMV7X+U znlQ;Fc#v6zpBAV@5|W^X^2oSaGCm!B+u3u_r)SZWvb)QTsU;SdE_Xm_52q53W{6)4 zSF?5c=u`l%W?U#nCe~xQrH;m*IBXIx>|~Fx(rTx`ng$R}P`J|iW75-FR;nqt2O{o0 z-V%;?$f{hckipYd3uG>pdhI}z)HsNv#ie;;P(c*ps6Q;%uPpBr6^A8Nk`q&5@G&XZ z*Bz@yEAYgAze!7$HV%!xeW|Oy>nNiysS=yojCzoM&v#I_o-uMm4UFkh{F+nGkrob| zGM~V~(!{}33TEDz6f-)mw#QKrOY?@P#^@jp->EILT<=H`w|KTskX%yuax`DFR02-Z z#GPl#IaLvkQe#Xw!kywO>kx;V*<(1W$-<^ZSwI|v#b{kUN3vScstx65+(jBgHA-Z} zuGIe#N`-{hUG9Q!UtGqV~i9ry1eC1-_V$@WrEp^)gS8&%S&9gEkbVgHOv6zrE zNO5pRkzHtR*}!VW1GB2=w`&>^30hP*^UcxUTFFkIcwtrB}V>q^; zkvc97*nw2$NZYvOemW!1&o6YRAPp3h-O{$frr7@#R3mW=(hAc`jY6uCSt9+o%C=>B zmavT4tihxXXH>N_rm(;b9B9u{>$bas}T5 zumKpb2wnNJ;eBo%sAk_r1oRq|~?M8JcZn_c?(hn9#k}3p52l#^mRU@4)p6Cs!L=Lxu)4OC_f9kpD^_ZL=AQ7+t zd7mU*V@>6bd@UC@?rH+iAT7HZqD4U#$NoKfH>NR7H#RXvlKw&A?up?FB0M_W_Y%(4 zH)Oh3;P`5cY5V#oh;|R*mD7?kwj;9e;1}4Qj&uc`U2_fuS%~BRHRm3NxA|#yR!D(6i8fl=gW|jbQ`JBdM+cb>xYr# zP77vNCXV%ua`W_qNKotGD2w?+w1C4OwFFYtb=90=>M~?U6_r=jLobswm5F#2_kb4^ zl|AKhheT~4i~~gv@Z>Fp%JTZdq;9_uY8uN{d(yP>#rxu__SB!9>g3{NvJDnI%=W&2bgMJ%U5+8Hp!{bzWZ|iWfijwT{oWdl_}xBMq}_T&<^+7{_LQfsgwB2 z_s{}hQ{9{qwhDJ<^UMP>M7<-&J%y+oKyS>2cFY?%6YLQwMbKNsYr^y3%@OUG3_w`) zSXc;s7pgv7(~(l_y$hr&h?gRe^g5+A$#e@XqaG2mXXcZ&&)1HcecC0xQg{RPbeIS4d1&d<`I?Jf1m52%tlMKc%?}Ta z%NaYi;=qdgHxzgA6WE1D-K*0()uni)DCZ9;=JOkhi>49xgmZWMlFLEPF#|8)Yq45TQ={y(FD(O&+Ik#}L38ZA5faid?jvFYNBQae))So{-Cs;Zx zmL2y>kX7c=C(s2C(Qj%9iS^O@1W7e*24&m`v-Uc(2L~Q%2CRKzHqXSPWOVgdVC$!w zVkY^<0#vuT#jMY*QZO)va`%$AZlO;h&H`5l_EZt^hGy-kv4*5Debt$DDO~ADWRnsD z@T16KstW#u6)PY;m<`D2k!|h*-BsouwlzPZ?p13I22#pX5A^}ce%{IKnQ&WZvwZ#> z7~uT^VO692KV#a2)KaatFy{-p z)d%PIT9YLg(L5eU;8HAv%@#}QKBu8c0*n@l(D=c_+xK#%O?x%q)I`vu-% zcb~OD?;sA7;BKYa^&~e$Rj3UgmEgg|YSxoc^y%A7?+JjMi%jeLesuW_g1Qco_m}

o$y&!4VHIr%mP71n$H`9!XBPCNCV`c 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%0AWrZ9%4u3%g*kToJK-=gQNy-vJ|G*918CN$>8< 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 a*Hc;kC>ZpEEu>RN0A74oXM+Nt9RE|#0 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 M!aJ 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 V*489%zQtTIcLQObSO;Tse*s8!5-b1! literal 0 HcmV?d00001 diff --git a/mx4j-3.0.2/lib/mx4j-soap.war b/mx4j-3.0.2/lib/mx4j-soap.war new file mode 100644 index 0000000000000000000000000000000000000000..33f2d6e49c77a57af4310a810927bfef0a611391 GIT binary patch literal 2258058 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

    $c5l<61wK)?agu}aWS1?Js3wI`ER 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%0Ai2CbhQ#c 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

    n3)U9*4iIIAW( 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 D1MogBn+2~a(Ir^(up&OD=Uq+e%pSr&RMP;pTh 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�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

    gb~+-PTfe%v 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�tHP^gtBAY*@pu#_@vle2D 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�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®FY!l;v%f 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
    4ut!* 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