Refreshing again now produced these logs (but I can't say whether it would
have picked up new classes or not because I haven't made any changes there):
There is an error about taking too long to shutdown, but it still shuts
down before restarting - is this likely to be the problem?
Thanks.
13:52:08,907 | INFO | Timer-1 | OsgiBundleXmlApplicationContext
| pport.AbstractApplicationContext 1002 | 89 - org.springframework.context
- 3.0.5.RELEASE | Closing
OsgiBundleXmlApplicationContext(bundle=mystuffUserdataLoad,
config=osgibundle:/META-INF/spring/*.xml): startup date [Mon Aug 15 15:56:18
BST 2011]; root of context hierarchy
13:52:08,907 | INFO | Timer-1 | log
| .eclipse.jetty.util.log.Slf4jLog 55 | 51 - org.eclipse.jetty.util -
7.4.2.v20110526 | stopped
o.e.j.s.h.ContextHandler{/mystuffUserdataLoad,null}
13:52:08,972 | WARN | Timer-1 | JettyHTTPServerEngine
| http_jetty.JettyHTTPServerEngine 215 | - - | Failed to shutdown Jetty
server on port 9000 because it is still in use
13:52:08,972 | WARN | Timer-1 | JettyHTTPServerEngine
| http_jetty.JettyHTTPServerEngine 215 | - - | Failed to shutdown Jetty
server on port 9000 because it is still in use
13:52:08,973 | INFO | Timer-1 | DefaultListableBeanFactory
| ort.DefaultSingletonBeanRegistry 422 | 87 - org.springframework.beans -
3.0.5.RELEASE | Destroying singletons in
org.springframework.beans.factory.support.DefaultListableBeanFactory@132962af:
defining beans
[cxf,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,traceHandler,soapFaultConverter,cxfInboundLoggingInterceptor,cxfOutboundLoggingInterceptor,tracer,cxf.config6,serviceSchedulerClient,sourceDataSource,targetDataSource,taskExecutor,processVocabularies,processTermData,processOrganisations,processUsers,processUserSectors,processUserRegions,processUserOrganisations,responseFactory,mystuffUserdataLoadCamelContext:beanPostProcessor,mystuffUserdataLoadCamelContext];
root of factory hierarchy
13:52:08,974 | INFO | Timer-1 | ThreadPoolTaskExecutor
| ent.ExecutorConfigurationSupport 150 | 89 - org.springframework.context -
3.0.5.RELEASE | Shutting down ExecutorService 'taskExecutor'
13:52:08,977 | INFO | Timer-1 | OsgiSpringCamelContext
| e.camel.impl.DefaultCamelContext 1463 | 104 - org.apache.camel.camel-core
- 2.8.0 | Apache Camel 2.8.0 (CamelContext:mystuffUserdataLoadCamelContext)
is shutting down
13:52:18,909 | ERROR | elixPackageAdmin | RunnableTimedExecution
| oncurrent.RunnableTimedExecution 109 | 94 -
org.springframework.osgi.extender - 1.2.1 | Closing runnable for context
OsgiBundleXmlApplicationContext(bundle=mystuffUserdataLoad,
config=osgibundle:/META-INF/spring/*.xml) did not finish in 10000ms;
consider taking a snapshot and then shutdown the VM in case the thread still
hangs
13:52:18,916 | INFO | elixPackageAdmin | ultOsgiApplicationContextCreator
| ultOsgiApplicationContextCreator 67 | 94 -
org.springframework.osgi.extender - 1.2.1 | Discovered configurations
{osgibundle:/META-INF/spring/*.xml} in bundle [null (mystuffUserdataLoad)]
13:52:20,990 | INFO | xtenderThread-25 | OsgiBundleXmlApplicationContext
| pport.AbstractApplicationContext 456 | 89 - org.springframework.context
- 3.0.5.RELEASE | Refreshing
OsgiBundleXmlApplicationContext(bundle=mystuffUserdataLoad,
config=osgibundle:/META-INF/spring/*.xml): startup date [Tue Aug 16 13:52:20
BST 2011]; root of context hierarchy
13:52:20,993 | INFO | xtenderThread-25 | XmlBeanDefinitionReader
| tory.xml.XmlBeanDefinitionReader 315 | 87 - org.springframework.beans -
3.0.5.RELEASE | Loading XML bean definitions from URL
[bundle://210.0:0/META-INF/spring/mystuffUserdataLoad-1.0.0.xml]
13:52:21,004 | INFO | Timer-1 | DefaultShutdownStrategy
| mel.impl.DefaultShutdownStrategy 120 | 104 - org.apache.camel.camel-core
- 2.8.0 | Starting to graceful shutdown 1 routes (timeout 300 seconds)
13:52:21,008 | INFO | 6 - ShutdownTask | DefaultShutdownStrategy
| ultShutdownStrategy$ShutdownTask 393 | 104 - org.apache.camel.camel-core
- 2.8.0 | Route: RouteUserdataLoad shutdown complete, was consuming from:
Endpoint[cxf://bean:serviceSchedulerClient?dataFormat=POJO&synchronous=true]
13:52:21,008 | INFO | Timer-1 | DefaultShutdownStrategy
| mel.impl.DefaultShutdownStrategy 158 | 104 - org.apache.camel.camel-core
- 2.8.0 | Graceful shutdown of 1 routes completed in 0 seconds
13:52:21,009 | INFO | Timer-1 | DefaultInflightRepository
| l.impl.DefaultInflightRepository 89 | 104 - org.apache.camel.camel-core
- 2.8.0 | Shutting down with no inflight exchanges.
13:52:21,010 | INFO | Timer-1 | OsgiSpringCamelContext
| e.camel.impl.DefaultCamelContext 1519 | 104 - org.apache.camel.camel-core
- 2.8.0 | Uptime: 21 hours 56 minutes
13:52:21,010 | INFO | Timer-1 | OsgiSpringCamelContext
| e.camel.impl.DefaultCamelContext 1520 | 104 - org.apache.camel.camel-core
- 2.8.0 | Apache Camel 2.8.0 (CamelContext: mystuffUserdataLoadCamelContext)
is shutdown in 12.033 seconds
13:52:21,013 | INFO | Timer-1 | ContextLoaderListener
| BundleApplicationContextListener 60 | 94 -
org.springframework.osgi.extender - 1.2.1 | Application context succesfully
closed (OsgiBundleXmlApplicationContext(bundle=mystuffUserdataLoad,
config=osgibundle:/META-INF/spring/*.xml))
13:52:21,056 | INFO | xtenderThread-25 | XmlBeanDefinitionReader
| tory.xml.XmlBeanDefinitionReader 315 | 87 - org.springframework.beans -
3.0.5.RELEASE | Loading XML bean definitions from OSGi
resource[classpath:META-INF/cxf/cxf.xml|bnd.id
=210|bnd.sym=mystuffUserdataLoad]
13:52:21,065 | INFO | xtenderThread-25 | XmlBeanDefinitionReader
| tory.xml.XmlBeanDefinitionReader 315 | 87 - org.springframework.beans -
3.0.5.RELEASE | Loading XML bean definitions from OSGi
resource[classpath:META-INF/cxf/cxf-extension-soap.xml|bnd.id
=210|bnd.sym=mystuffUserdataLoad]
13:52:21,097 | INFO | xtenderThread-25 | XmlBeanDefinitionReader
| tory.xml.XmlBeanDefinitionReader 315 | 87 - org.springframework.beans -
3.0.5.RELEASE | Loading XML bean definitions from OSGi
resource[classpath:META-INF/cxf/cxf-extension-http.xml|bnd.id
=210|bnd.sym=mystuffUserdataLoad]
13:52:21,167 | INFO | xtenderThread-25 | XmlBeanDefinitionReader
| tory.xml.XmlBeanDefinitionReader 315 | 87 - org.springframework.beans -
3.0.5.RELEASE | Loading XML bean definitions from OSGi
resource[classpath:META-INF/cxf/cxf-extension-http-jetty.xml|bnd.id
=210|bnd.sym=mystuffUserdataLoad]
13:52:21,211 | INFO | xtenderThread-25 | WaiterApplicationContextExecutor
| WaiterApplicationContextExecutor 243 | 94 -
org.springframework.osgi.extender - 1.2.1 | No outstanding OSGi service
dependencies, completing initialization for
OsgiBundleXmlApplicationContext(bundle=mystuffUserdataLoad,
config=osgibundle:/META-INF/spring/*.xml)
13:52:21,287 | INFO | xtenderThread-26 | OsgiBundleXmlApplicationContext
| Context$BeanPostProcessorChecker 122 | 89 - org.springframework.context
- 3.0.5.RELEASE | Bean 'cxf' is not eligible for getting processed by all
BeanPostProcessors (for example: not eligible for auto-proxying)
13:52:21,290 | INFO | xtenderThread-26 | DefaultListableBeanFactory
| pport.DefaultListableBeanFactory 555 | 87 - org.springframework.beans -
3.0.5.RELEASE | Pre-instantiating singletons in
org.springframework.beans.factory.support.DefaultListableBeanFactory@7d53a03c:
defining beans
[cxf,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,traceHandler,soapFaultConverter,cxfInboundLoggingInterceptor,cxfOutboundLoggingInterceptor,tracer,cxf.config7,serviceSchedulerClient,sourceDataSource,targetDataSource,taskExecutor,processVocabularies,processTermData,processOrganisations,processUsers,processUserSectors,processUserRegions,processUserOrganisations,responseFactory,mystuffUserdataLoadCamelContext:beanPostProcessor,mystuffUserdataLoadCamelContext];
root of factory hierarchy
13:52:21,298 | INFO | xtenderThread-26 | OsgiServiceProxyFactoryBean
| al.aop.ServiceDynamicInterceptor 470 | 93 -
org.springframework.osgi.core - 1.2.1 | Looking for mandatory OSGi service
dependency for bean [traceHandler] matching filter
(objectClass=org.apache.camel.processor.interceptor.TraceEventHandler)
13:52:21,298 | INFO | xtenderThread-26 | OsgiServiceProxyFactoryBean
| al.aop.ServiceDynamicInterceptor 476 | 93 -
org.springframework.osgi.core - 1.2.1 | Found mandatory OSGi service for
bean [traceHandler]
13:52:21,300 | INFO | xtenderThread-26 | OsgiServiceProxyFactoryBean
| al.aop.ServiceDynamicInterceptor 470 | 93 -
org.springframework.osgi.core - 1.2.1 | Looking for mandatory OSGi service
dependency for bean [soapFaultConverter] matching filter
(&(objectClass=org.apache.camel.Processor)(com.mycompany.routemaster.purpose=SoapFaultConverter))
13:52:21,300 | INFO | xtenderThread-26 | OsgiServiceProxyFactoryBean
| al.aop.ServiceDynamicInterceptor 476 | 93 -
org.springframework.osgi.core - 1.2.1 | Found mandatory OSGi service for
bean [soapFaultConverter]
13:52:21,303 | INFO | xtenderThread-26 | OsgiServiceProxyFactoryBean
| al.aop.ServiceDynamicInterceptor 470 | 93 -
org.springframework.osgi.core - 1.2.1 | Looking for mandatory OSGi service
dependency for bean [cxfInboundLoggingInterceptor] matching filter
(objectClass=com.mycompany.routemaster.cxf.interceptors.InboundInterceptor)
13:52:21,304 | INFO | xtenderThread-26 | OsgiServiceProxyFactoryBean
| al.aop.ServiceDynamicInterceptor 476 | 93 -
org.springframework.osgi.core - 1.2.1 | Found mandatory OSGi service for
bean [cxfInboundLoggingInterceptor]
13:52:21,437 | INFO | xtenderThread-26 | OsgiServiceProxyFactoryBean
| al.aop.ServiceDynamicInterceptor 470 | 93 -
org.springframework.osgi.core - 1.2.1 | Looking for mandatory OSGi service
dependency for bean [cxfOutboundLoggingInterceptor] matching filter
(objectClass=com.mycompany.routemaster.cxf.interceptors.OutboundInterceptor)
13:52:21,437 | INFO | xtenderThread-26 | OsgiServiceProxyFactoryBean
| al.aop.ServiceDynamicInterceptor 476 | 93 -
org.springframework.osgi.core - 1.2.1 | Found mandatory OSGi service for
bean [cxfOutboundLoggingInterceptor]
13:52:21,456 | WARN | xtenderThread-26 | OldSpringSupport
| .cxf.bus.spring.OldSpringSupport 54 | - - | Import of
META-INF/cxf/cxf-extension-soap.xml has been deprecated and is unnecessary.
13:52:21,457 | WARN | xtenderThread-26 | OldSpringSupport
| .cxf.bus.spring.OldSpringSupport 54 | - - | Import of
META-INF/cxf/cxf-extension-http.xml has been deprecated and is unnecessary.
13:52:21,458 | WARN | xtenderThread-26 | OldSpringSupport
| .cxf.bus.spring.OldSpringSupport 54 | - - | Import of
META-INF/cxf/cxf-extension-http-jetty.xml has been deprecated and is
unnecessary.
13:52:21,460 | INFO | xtenderThread-26 | AbstractCamelContextFactoryBean
| .AbstractCamelContextFactoryBean 197 | 107 -
org.apache.camel.camel-spring - 2.8.0 | Using custom Tracer: Tracer
13:52:21,462 | INFO | xtenderThread-26 | OsgiSpringCamelContext
| e.camel.impl.DefaultCamelContext 2301 | 104 - org.apache.camel.camel-core
- 2.8.0 | JMX enabled. Using ManagedManagementStrategy.
13:52:21,465 | INFO | xtenderThread-26 | AnnotationTypeConverterLoader
| er.AnnotationTypeConverterLoader 118 | 104 - org.apache.camel.camel-core
- 2.8.0 | Found 3 packages with 14 @Converter classes to load
13:52:21,471 | INFO | xtenderThread-26 | DefaultTypeConverter
| verter.BaseTypeConverterRegistry 394 | 104 - org.apache.camel.camel-core
- 2.8.0 | Loaded 153 core type converters (total 153 type converters)
13:52:21,471 | INFO | xtenderThread-26 | Activator
| BundleTypeConverterLoader$Loader 353 | 104 - org.apache.camel.camel-core
- 2.8.0 | Found 2 @Converter classes to load
13:52:21,472 | INFO | xtenderThread-26 | Activator
| BundleTypeConverterLoader$Loader 353 | 104 - org.apache.camel.camel-core
- 2.8.0 | Found 2 @Converter classes to load
13:52:21,473 | INFO | xtenderThread-26 | Activator
| BundleTypeConverterLoader$Loader 353 | 104 - org.apache.camel.camel-core
- 2.8.0 | Found 2 @Converter classes to load
13:52:21,477 | INFO | xtenderThread-26 | ThreadPoolTaskExecutor
| ent.ExecutorConfigurationSupport 115 | 89 - org.springframework.context -
3.0.5.RELEASE | Initializing ExecutorService 'taskExecutor'
13:52:21,533 | INFO | xtenderThread-26 | OsgiSpringCamelContext
| e.camel.impl.DefaultCamelContext 1318 | 104 - org.apache.camel.camel-core
- 2.8.0 | Apache Camel 2.8.0 (CamelContext: mystuffUserdataLoadCamelContext)
is starting
13:52:21,533 | INFO | xtenderThread-26 | OsgiSpringCamelContext
| e.camel.impl.DefaultCamelContext 1366 | 104 - org.apache.camel.camel-core
- 2.8.0 | Tracing is enabled on CamelContext:
mystuffUserdataLoadCamelContext
13:52:21,689 | INFO | xtenderThread-26 | ReflectionServiceFactoryBean
| ory.ReflectionServiceFactoryBean 366 | - - | Creating Service {
http://mycompany.com/esb/jobengines/client/service/mycompanySupportSystem/ClientSchedulerTarget}ClientSchedulerTargetServicefrom
WSDL: resources/mystuffUserdataLoad/1.0.0/TaskSchedulerClient.wsdl
13:52:21,772 | INFO | xtenderThread-26 | ServerImpl
| g.apache.cxf.endpoint.ServerImpl 93 | - - | Setting the server's
publish address to be
http://0.0.0.0:8016/mystuffUserdataLoad/TaskSchedulerClient
13:52:22,099<http://0.0.0.0:8016/mystuffUserdataLoad/TaskSchedulerClient%0A13:52:22,099>|
INFO | xtenderThread-26 | log |
.eclipse.jetty.util.log.Slf4jLog 55 | 51 - org.eclipse.jetty.util -
7.4.2.v20110526 | jetty-7.4.2.v20110526
13:52:22,111 | INFO | xtenderThread-26 | log
| .eclipse.jetty.util.log.Slf4jLog 55 | 51 - org.eclipse.jetty.util -
7.4.2.v20110526 | Started [email protected]:8016 STARTING
13:52:22,112 | INFO | xtenderThread-26 | log
| .eclipse.jetty.util.log.Slf4jLog 55 | 51 - org.eclipse.jetty.util -
7.4.2.v20110526 | started
o.e.j.s.h.ContextHandler{/mystuffUserdataLoad,null}
13:52:22,112 | INFO | xtenderThread-26 | OsgiSpringCamelContext
| e.camel.impl.DefaultCamelContext 1906 | 104 - org.apache.camel.camel-core
- 2.8.0 | Route: RouteUserdataLoad started and consuming from:
Endpoint[cxf://bean:serviceSchedulerClient?dataFormat=POJO&synchronous=true]
13:52:22,115 | INFO | xtenderThread-26 | OsgiSpringCamelContext
| e.camel.impl.DefaultCamelContext 1335 | 104 - org.apache.camel.camel-core
- 2.8.0 | Total 1 routes, of which 1 is started.
13:52:22,115 | INFO | xtenderThread-26 | OsgiSpringCamelContext
| e.camel.impl.DefaultCamelContext 1336 | 104 - org.apache.camel.camel-core
- 2.8.0 | Apache Camel 2.8.0 (CamelContext: mystuffUserdataLoadCamelContext)
started in 0.582 seconds
13:52:22,116 | INFO | xtenderThread-26 | OsgiBundleXmlApplicationContext
| ractOsgiBundleApplicationContext 348 | 89 - org.springframework.context
- 3.0.5.RELEASE | Not publishing application context OSGi service for bundle
null (mystuffUserdataLoad)
13:52:22,117 | INFO | xtenderThread-26 | ContextLoaderListener
| BundleApplicationContextListener 45 | 94 -
org.springframework.osgi.extender - 1.2.1 | Application context successfully
refreshed (OsgiBundleXmlApplicationContext(bundle=mystuffUserdataLoad,
config=osgibundle:/META-INF/spring/*.xml))
-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: 16 August 2011 12:04
To: [email protected]
Subject: Re: Help understanding OSGi class loading
Was the application context refreshed when you refreshed the xml bundle?
Is there any logs after refresh?
On 16.08.2011 14:56, Jim Talbut wrote:
The xml-bundle does not contain code - but it does contain instructions
that tell Spring to instantiate objects (and thus to load classes).
"it" is the xml-bundle.
The xml-bundle instructs spring/camel/cxf to set up a web service, when
I call that web service I was getting the old implementation.
I refreshed both the xml bundle and the bundle containing the
implementation and the web service was still getting the old implementation.
When the xml-bundle was uninstalled (by deleting the file) and
reinstalled (by copying the same file back in place again) it picked up the
new implementation.
Jim
-----Original Message-----
From: Per-Erik Svensson [mailto:[email protected]]
Sent: 16 August 2011 10:47
To: [email protected]
Subject: Re: Help understanding OSGi class loading
So, if the only things in the system are
osgi framework (felix)
fileinstall
some code bundle (spring bundle)
a bundle with an xml file only
And the xml-bundle imports packages that the spring-bundle exports,
than updating and refreshing the spring-bundle should cause the
xml-bundle to be "reloaded". However, if the xml-bundle does not
contain code, why is it important that it gets it's package
dependencies rewired? It will not load any classes anyway (and
shouldn't have any package imports because it needs no packages)? I
must be missing something of your problem. :)
If the xml-bundle however does contain code (and needs to load classes),
are you sure that the only one exporting the packages of those classes is
the spring-bundle. One possiblity is that you have other bundles in the
system that export the same packages and that you're getting wired to those
packages instead.
"It didn't pick up the new version of the classes until I deleted the
Spring file[...]"
1. What is "it"? Which bundle are you expecting to see the changes from?
If it's the xml-bundle, have you confirmed that it's manifest.mf-file states
that it needs at least one package that ONLY the spring-bundle can give.
2. There is no way to unload classes, so if "it" has already loaded the
classes it is using, it doesn't matter that you update the origin of those
classes. You also need a refresh which will rewire the package dependencies,
restart the dependent bundles, and reload the classes.
3. Have you made sure that the framework actually gets an update request
on the spring bundle? Fileinstall only has the info supplied by the OS
(file-size, file creation date and so on) to go on, and might determine that
spring-bundleA and spring-bundleB are the same thing (no change, no update).
Finally, trying this in gogo shell might help you see what is wired to
what and when updates actually happen!
Regards,
Per-Erik Svensson
On Tue, Aug 16, 2011 at 7:08 AM, Jim Talbut<[email protected]>
wrote:
I've tried using refresh now (sorry it takes so long to get things
done around here) and it made no difference.
It didn't pick up the new version of the classes until I deleted the
Spring file, waited for fileinstall to pick that up and remove the
bundle, copied the file over again and waited for fileinstall to pick
that up.
Note that this is using a 1.0-SNAPSHOT version of the classes so
there is no version number change, if that affects things.
Jim
-----Original Message-----
From: Jim Talbut [mailto:[email protected]]
Sent: 12 August 2011 17:32
To: [email protected]
Subject: RE: Help understanding OSGi class loading
No I didn't.
How does that work with existing instantiated objects?
Thanks
Jim
-----Original Message-----
From: Richard S. Hall [mailto:[email protected]]
Sent: 12 August 2011 14:44
To: [email protected]
Subject: Re: Help understanding OSGi class loading
Did you refresh after doing the update?
On 8/12/11 4:03 AM, Jim Talbut wrote:
Hi,
I've just been surprised by the behaviour of karaf/felix and I'd be
grateful for some help understanding how this works.
My code is split into two chunks:
1. A compiled bundle.
2. A Spring XML file.
My intention is that the Spring file contains all the configuration
relating to the piece of work, whilst the bundle contains the (more
static) compiled code - with the intention of being able to
update/replace the Spring file whenever I want.
I just found an error in the bundle and uninstalled it, but the
bundle
created for the Spring file is still running.
Does this mean that only OSGi services are dynamically removed, and
if
the Spring file directly references exported classes from a bundle
then the classes are only resolved via OSGi when they are loaded?
In which case will restarting the Spring bundle clear it out
adequately
to ensure that it picks up a new compiled bundle?
Thanks
Jim
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]