> the situation with dependencies may be improved by carefully 
> restructuring Axis2 code into a number of smaller jars 
> (kernel + options)

I think this idea can work so long as:

1. The kernel is small and contains what you need to get started. i.e. It 
is possible to run Axis2 with just the kernel.
2. The options are separate downloads listed on the downloads page with 
good descriptions next to each as to why you need it. For example,

Downloads

Axis2

Optional Downloads

Log4J support   log4j.jar           Adds support for the Log4J logger to 
Axis2
Mime support    activation-1.1.jar  Adds support for Mime binding types to 
Axis2
...

The key is to keep things simple and easy for users to understand. There 
can also be a large download that contains everything for people who want 
to download it all in one shot.

Lawrence 




Oleg Kalnichevski <[EMAIL PROTECTED]> 
10/28/2007 11:25 AM
Please respond to
axis-dev@ws.apache.org


To
axis-dev@ws.apache.org
cc

Subject
Re: [Axis2] Understanding Axis2 dependencies







On Sun, 2007-10-28 at 10:18 -0400, Eran Chinthaka wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Ok I can see at least some one is really using commons-logging. I
> understand and withdraw my proposal to remove the commons-logging.
> And Oleg, well it might be the case that other jars also might have
> dependencies on commons-logging, so we will have to live with it.
> 
> Thanks,
> Chinthaka
> 

Hi Eran,

In fact as far as HttpComponents are concerned we are trying to do away
with commons-logging. We are considering replacing it with something
else in HttpClient 4.0.

The main point I was trying to make, however, is that the situation with
dependencies may be improved by carefully restructuring Axis2 code into
a number of smaller jars (kernel + options), so that the end users could
strip it down to what is actually being needed and used and eliminate
entire graphs of dependencies (direct and transitive). 

Again, for what it is worth.

Cheers

Oleg


> robert lazarski wrote:
> > I agree there are too many jars - I just did a project and it was a
> > drag going through all those deps.
> > 
> > But why are we limping with commons-logging 1.1 - because its a jar
> > dep? IIRC correctly almost all of the apache projects use it.
> > commons-logging is so well, common, you'll probably need it anyways.
> > 
> > Debugging via logs is a very important thing and is more complicated
> > than it may appear. There are not only several IDE's but several JEE
> > servers. I actually use axis2 in alot of these JEE servers. When you
> > start trying to debug axis2 via eclipse live on things like JBoss and
> > JPDA, some loggers like commons-logging 1.0.4 will crash hard. JBoss
> > is a good example of a complicated and hard to override logging
> > scheme.
> > 
> > In short, you're probably going to need commons-logging anyways since
> > everyone uses it, and if history is any guide its going to be left up
> > to the users to test any other logging on everything but tomcat. Since
> > JDK logging is not at all common, help may be hard to come by. So I
> > see pain with little benefit. I'm fighting for this because its not at
> > all fun to waste time on logging problems, and commons-logging 1.1
> > simply works everywhere axis2 has run.
> > 
> > Robert
> > 
> > 
> > 
> > On 10/27/07, Eran Chinthaka <[EMAIL PROTECTED]> wrote:
> > Hi Robert,
> > 
> > Yes it is not broken. But why do we wanna limp with it? If we had used 
a
> > separate, say String class without using java.lang.String, do you 
wanna
> > keep it, if java.lang.String serves the purpose.
> > Look at how pain it is to deal with numerous jars within Axis2. I'd 
like
> > to cut down whatever possible whenever possible.
> > 
> > Also I totally agree with Tom's comments. We can come up with usecases
> > which commons-logging becomes handy. But how many users will use it or
> > come across that use case vs how many users find it difficult to set 
up
> > Axis2 to run within their box? I agree removing just two or three jars
> > won't solve the problem, but at least that will be a start.
> > 
> > Thanks,
> > Chinthaka
> > 
> > robert lazarski wrote:
> >>>> Um, Axis2 has been on commons-logging 1.1 since right after Axis2 
1.0
> >>>> . The most common JEE server is JBoss, and Axis2 and 
commons-logging
> >>>> plays nice there. IMHO, If it aint broke, don't fix it.
> >>>>
> >>>> Robert
> >>>>
> >>>> On 10/23/07, Tom Jordahl <[EMAIL PROTECTED]> wrote:
> >>>>> Of course if Axis2 switched to commons-logging 1.1 and the 
container it
> >>>>> is running in uses 1.0.4 (for instance) then you are worse off 
than when
> >>>>> you started.
> >>>>>
> >>>>> My feeling is that commons-logging is a great idea - as long as 
you are
> >>>>> the only one in the "pool" using it.  Once you try to integrate 
with
> >>>>> another J2EE server/project/whatever that *also* uses it, you tend 
to
> >>>>> get in to trouble.
> >>>>>
> >>>>> Using the JDK api just gets Axis2 out of the line of fire in the
> >>>>> "logging wars".
> >>>>> --
> >>>>> Tom Jordahl
> >>>>>
> >>>>> -----Original Message-----
> >>>>> From: robert lazarski [mailto:[EMAIL PROTECTED]
> >>>>> Sent: Monday, October 22, 2007 8:01 PM
> >>>>> To: axis-dev@ws.apache.org
> >>>>> Subject: Re: [Axis2] Understanding Axis2 dependencies
> >>>>>
> >>>>> I've been stuck in classloader hell many times and moving to
> >>>>> commons-logging 1.1 solved a lot of problems for me - there's been 
a
> >>>>> lot of work put into that area. Also, everything else in apache 
land
> >>>>> uses commons-logging. +1 for keeping it.
> >>>>>
> >>>>> Robert
> >>>>>
> >>>>> On 10/22/07, Tom Jordahl <[EMAIL PROTECTED]> wrote:
> >>>>>> [Concerning commons-logging]
> >>>>>>> also what would you replace it with ?
> >>>>>> I actually think that the JDK 1.4 logging APIs would probably do 
the
> >>>>>> trick, not have "jar hell" problems, and be functional enough for 
most
> >>>>>> everyone.
> >>>>>>
> >>>>>> --
> >>>>>> Tom Jordahl
> >>>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Ajith Ranabahu [mailto:[EMAIL PROTECTED]
> >>>>>> Sent: Wednesday, October 17, 2007 10:39 PM
> >>>>>> To: axis-dev@ws.apache.org
> >>>>>> Subject: Re: [Axis2] Understanding Axis2 dependencies
> >>>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> On 10/17/07, Eran Chinthaka <[EMAIL PROTECTED]> wrote:
> >>>> Since the topic is about jar dependencies, I'd like to comment on
> >>>>>> two
> >>>> aspects.
> >>>>
> >>>> 1. As one can see there is a huge number of dependencies we have in
> >>>> Axis2 and I think we ship almost all of them with our releases. Why
> >>>> should we release both xbeans and jibx with adb? My suggestion,
> >>>>>> let's
> >>>> ship the minimum number of jars required for a user. If he needs to
> >>>>>>> use
> >>>> XmlBeans, then let him download it. Same thing for JiBX.
> >>>> And also it is better to see the minimum set of jars required to 
run
> >>>>>> a
> >>>> client somewhere. I raised this point couple of days before also. 
If
> >>>>>>> you
> >>>> need to do a SOAP call, you need to include more than 20-25 jars.
> >>>>>>> Yes we can do that. We already pick up the databinding 
implementation
> >>>>>>> by reflection and it is easy enough to print a message to print 
a
> >>>>>>> readable error message for the absence of the jars.
> >>>>>>> What I prefer to have is jar bundles for each databinding. Say 
for
> >>>>>>> XMLBeans we have a xmlbeans bundle (Xbeans jar, the 
Xbeans-codegen
> >>>>>>> module etc) and so on.
> >>>>>>>
> >>>> 2. Why do we need to have commons-logging? One would say well it
> >>>>>> let's
> >>>> you plug "any" logging module. How many of the users have really
> >>>>>> used
> >>>>>>> a
> >>>> logging framework other than log4j? This is YAGNI for me. (you can
> >>>>>>> also
> >>>> see very good comments about commons-logging from our valuable
> >>>>>> admirer
> >>>> here http://www.bileblog.org/?p=259)
> >>>>>>> Well not really. All our logging code is based on 
commons-logging. If
> >>>>>>> we are to remove this code it would be somewhat significant 
effort and
> >>>>>>> also what would you replace it with ? The way it is right now is 
the
> >>>>>>> best way. What we can do is to send the default config to use
> >>>>>>> java.util logging so that we do not need to send the log4j jar 
along.
> >>>>>>>
> >>>>>>>
> >>>> Just my 2 cents.
> >>>>
> >>>> Thanks,
> >>>> Chinthaka
> >>>>
> >>>> Sanka Samaranayke wrote:
> >>>>>>>>> Hi,
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Sanjiva Weerawarana wrote:
> >>>>>>>>>> Thanks Ajith.
> >>>>>>>>>>
> >>>>>>>>>> I think we should document this somewhere- we often get this
> >>>>>>> question
> >>>>>>>>>> and there's obviously reasons for why we have all these
> >>>>>>> dependencies.
> >>>>>>>>>> We need to clearly indicate which things are optional and
> >>>>>> indicate
> >>>>>>>>>> under what conditions they come into use.
> >>>>>>>>>>
> >>>>>>>>>> I am not a fan of going back to the seven different 
distributions
> >>>>>>>>>> model as that was confusing to users. Knowing the dependency
> >>>>>>> reasons
> >>>>>>>>>> will help embedders decide what they really need to pull in 
and
> >>>>>>> what's
> >>>>>>>>>> optional.
> >>>>>>>>>>
> >>>>>>>>>> One jar I didn't understand is the mex jar. Why is that 
around;
> >>>>>>> that
> >>>>>>>>>> should only be in the mex mar I believe.
> >>>>>>>>> You need that jar if you use MexClient in your client code.
> >>>>>>>>>
> >>>>>>>>> Thanks,
> >>>>>>>>> Sanka
> >>>>>>>>>
> >>>>>>>>>> Sanjiva.
> >>>>>>>>>>
> >>>>>>>>>> Ajith Ranabahu wrote:
> >>>>>>>>>>> Hi Lawrence,
> >>>>>>>>>>> Let me see whether I can make sense of some of the stuff. 
Others
> >>>>>>> will
> >>>>>>>>>>> chip in as needed and will surely holler if I make a 
mistake.
> >>>>>>>>>>>
> >>>>>>>>>>>> Axis2 Third Party Dependencies
> >>>>>>>>>>>> ------------------------------
> >>>>>>>>>>>> activation-1.1.jar                    MIME support
> >>>>>>>>>>>> annogen-0.1.0.jar                     Annotation support
> >>>>>>>>>>>> axiom-api-1.2.5.jar                   XML pull parsing
> >>>>>>>>>>>> axiom-dom-1.2.5.jar                   XML pull parsing
> >>>>>>>>>>>> axiom-impl-1.2.5.jar                  XML pull parsing
> >>>>>>>>>>>> backport-util-concurrent-2.2.jar      ?
> >>>>>>>>>>> Thread pooling support. This feature is built in for Java 
1.5
> >>>>>> and
> >>>>>>> this
> >>>>>>>>>>> particular jar has a backport of that code to Java 1.4
> >>>>>>>>>>>
> >>>>>>>>>>>> commons-codec-1.3.jar                 URL encoding?
> >>>>>>>>>>>> commons-fileupload-1.1.1.jar          Used for uploading 
new
> >>>>>>> service
> >>>>>>>>>>>>                                       files in the admin
> >>>>>> client?
> >>>>>>>>>>> Yes - needed only when using the webapp
> >>>>>>>>>>>
> >>>>>>>>>>>> commons-httpclient-3.0.1.jar          Used by the Axis2 
kernel?
> >>>>>>>>>>> Yes - but primarily on the client side. I believe it is 
needed
> >>>>>> in
> >>>>>>> the
> >>>>>>>>>>> server side if asynchronous calls are to be supported.
> >>>>>>>>>>>
> >>>>>>>>>>>> commons-io-1.2.jar                    ?
> >>>>>>>>>>>> commons-logging-1.1.jar               Is this related to 
Log4J?
> >>>>>>>>>>> Well kind of. Commons logging is a common API on multiple
> >>>>>> logging
> >>>>>>>>>>> frameworks (log4j/java.util.logging) but allows the 
switching of
> >>>>>>> the
> >>>>>>>>>>> logging engine easily. All the logging code inside the Axis2
> >>>>>>> source
> >>>>>>>>>>> are made using commons logging classes.
> >>>>>>>>>>>
> >>>>>>>>>>>> geronimo-annotation_1.0_spec-1.1.jar  More annotation 
support?
> >>>>>>>>>>>> geronimo-jms_1.1_spec-1.1.jar         JMS bindings?
> >>>>>>>>>>> JMS transport really.
> >>>>>>>>>>>
> >>>>>>>>>>>> httpcore-4.0-alpha5.jar               Used by the Axis2 
kernel?
> >>>>>>>>>>>> httpcore-nio-4.0-alpha5.jar           Used by the Axis2 
kernel?
> >>>>>>>>>>>> httpcore-niossl-4.0-alpha5.jar        Used by the Axis2 
kernel?
> >>>>>>>>>>> The nio (non-blocking io) transport dependancies. Its an
> >>>>>> improved
> >>>>>>>>>>> version of the HTTP transport. My understanding is that this 
is
> >>>>>>> used
> >>>>>>>>>>> optionally (the default Axis2.xml does not point to this
> >>>>>> transport
> >>>>>>>>>>> AFAIK) but needs confirmation
> >>>>>>>>>>>
> >>>>>>>>>>>> jaxb-api-2.0.jar                      Used by the Axis2 
kernel?
> >>>>>>>>>>>> jaxb-impl-2.0.5.jar                   Used by the Axis2 
kernel?
> >>>>>>>>>>>> jaxb-xjc-2.0.5.jar                    Used by the Axis2 
kernel?
> >>>>>>>>>>> These were primarily for the Jaxb based code generation but 
now
> >>>>>>> the
> >>>>>>>>>>> JAX-WS module uses these as dependencies. In any case these 
are
> >>>>>>> needed
> >>>>>>>>>>>  1. if the user needs to generate code with Jaxb data 
binding
> >>>>>>>>>>>  2. If he needs the JAX-WS module running (which is only on 
a
> >>>>>> jdk
> >>>>>>> 1.5
> >>>>>>>>>>> environment)
> >>>>>>>>>>>
> >>>>>>>>>>>> jaxen-1.1.1.jar                       XPath engine - where 
is
> >>>>>>> this
> >>>>>>>>>>>> used?
> >>>>>>>>>>> AXIOM has a Jaxen based Xpath implementation and this jar 
has
> >>>>>> the
> >>>>>>> core
> >>>>>>>>>>> Jaxen classes for it
> >>>>>>>>>>>
> >>>>>>>>>>>> jettison-1.0-RC1.jar                  JSON StAX parser
> >>>>>>>>>>>> jibx-bind-1.1.5.jar                   Related to JAXB?
> >>>>>>>>>>>> jibx-run-1.1.5.jar                    Related to JAXB?
> >>>>>>>>>>> Nope. Jibx is an alternate databinding. My guess is one 
would
> >>>>>> need
> >>>>>>>>>>> these only to use Jibx generated code (databinding - either 
on
> >>>>>>> server
> >>>>>>>>>>> side or client side)
> >>>>>>>>>>>
> >>>>>>>>>>>> juli-6.0.10.jar                       ?
> >>>>>>>>>>> Juli is an alternate implementation to Java.util logging 
from
> >>>>>>> tomcat.
> >>>>>>>>>>> Here is what the tomcat site says
> >>>>>>>>>>>  "A limitation of JDK Logging appears to be the inability to
> >>>>>> have
> >>>>>>>>>>> per-web application logging, as the configuration is per-VM. 
As
> >>>>>> a
> >>>>>>>>>>> result, Tomcat will, in the default configuration, replace 
the
> >>>>>>> default
> >>>>>>>>>>> LogManager implementation with a container friendly
> >>>>>> implementation
> >>>>>>>>>>> called JULI, which addresses these shortcomings."
> >>>>>>>>>>>
> >>>>>>>>>>> It seems that this one is needed only when the webapp comes 
to
> >>>>>>> play
> >>>>>>>>>>>> log4j-1.2.14.jar                      Logging - Is this
> >>>>>> optional?
> >>>>>>> I
> >>>>>>>>>>>> don't
> >>>>>>>>>>>>                                       always want to use 
Log4J
> >>>>>> -
> >>>>>>> for
> >>>>>>>>>>>>                                       example, when working
> >>>>>> with
> >>>>>>>>>>>> Eclipse.
> >>>>>>>>>>> I suppose the default logging configuration with 
common-logging
> >>>>>> is
> >>>>>>>>>>> log4j. I assume we can turn it to java.util logging but most
> >>>>>> folks
> >>>>>>> are
> >>>>>>>>>>> not in favor of it (it will reduce this jar though)
> >>>>>>>>>>>
> >>>>>>>>>>>> mail-1.4.jar                          MIME support?
> >>>>>>>>>>> Yes
> >>>>>>>>>>>
> >>>>>>>>>>>> mex-impl-1.3.jar                      ?
> >>>>>>>>>>> Metadata exchange implementation (WS-Mex).
> >>>>>>>>>>>
> >>>>>>>>>>>> neethi-2.0.2.jar                      WS Policy - Is this
> >>>>>>> optional?
> >>>>>>>>>>> I don't think so. This would be required both at runtime and
> >>>>>>> codegen
> >>>>>>>>>>> time to process policies
> >>>>>>>>>>>
> >>>>>>>>>>>> soapmonitor-1.3.jar                   Is this part of Axis2 
or
> >>>>>>> another
> >>>>>>>>>>>>                                       project? Is this just
> >>>>>> used
> >>>>>>> by the
> >>>>>>>>>>>>                                       Axis2 runtime or is 
it
> >>>>>> just
> >>>>>>> the
> >>>>>>>>>>>>                                       standalone SOAP 
monitor
> >>>>>>> tool?
> >>>>>>>>>>> soapmonitor has two parts - the applet and this server side
> >>>>>>> component.
> >>>>>>>>>>> We may be able to make it optional (i.e. pack it with the 
war
> >>>>>>> only)
> >>>>>>>>>>>> stax-api-1.0.1.jar                    XML pull parsing - I
> >>>>>> think
> >>>>>>> this
> >>>>>>>>>>>>                                       should be replaced in 
the
> >>>>>>> next
> >>>>>>>>>>>>                                       version with 
Geronimo's
> >>>>>>>>>>>>                                       API as Axiom has made 
the
> >>>>>>> change
> >>>>>>>>>>> I'm not sure whether the API has changed. But this jar is 
only
> >>>>>> the
> >>>>>>> API.
> >>>>>>>>>>>> tribes-6.0.10.jar                     ?
> >>>>>>>>>>> Clustering implementation
> >>>>>>>>>>>
> >>>>>>>>>>>> woden-1.0-incubating-M7b.jar          WSDL 2.0 support
> >>>>>>>>>>>> wsdl4j-1.6.2.jar                      WSDL 1.1 support
> >>>>>>>>>>>> wstx-asl-3.2.1.jar                    XML pull parsing
> >>>>>>>>>>>> xbean-2.2.0.jar                       Looks like a 
competitor
> >>>>>> to
> >>>>>>> OSGi -
> >>>>>>>>>>>>                                       where is this used?
> >>>>>>>>>>> Don't let the name fool you :) This is actually the XMLBeans
> >>>>>> core
> >>>>>>>>>>> classes. There is a sepearate project called XBeans that has 
no
> >>>>>>>>>>> relation to this. This one is only needed if one uses 
XMLBeans
> >>>>>>>>>>> classes.
> >>>>>>>>>>>
> >>>>>>>>>>>> xalan-2.7.0.jar                       XSLT - Where is this
> >>>>>> used?
> >>>>>>>>>>>> xercesImpl-2.8.1.jar                  DOM parser - Does 
Axis2
> >>>>>>> actually
> >>>>>>>>>>>>                                       need a DOM parser? I
> >>>>>>> thought
> >>>>>>>>>>>>                                       everything was done 
with
> >>>>>>>>>>>>                                       pull parsing.
> >>>>>>>>>>>> xml-apis-1.3.03.jar                   DOM parser
> >>>>>>>>>>> Axis2 has some DOM based code in the code generator but the
> >>>>>>> standard
> >>>>>>>>>>> VM DOM impl is sufficient for that. The above jars are used
> >>>>>>> primarily
> >>>>>>>>>>> by the SAAJ impl which has a DOM level 3 dependency. JDK 1.4
> >>>>>>> included
> >>>>>>>>>>> parser (Crimson) is  DOM level 2 I believe.
> >>>>>>>>>>>
> >>>>>>>>>>>> XmlSchema-1.3.2.jar                   XML schema support
> >>>>>>>>>>>>
> >>>>>>>>>>>> Thanks,
> >>>>>>>>>>>>
> >>>>>>>>>>>> Lawrence
> >>>>>>>>>>>>
> >>>>>>>>>>> To me it seems that we can ship certain jars only for the
> >>>>>> webapp.
> >>>>>>> Also
> >>>>>>>>>>> we have been discussing three types of distros,  minimal,
> >>>>>> standard
> >>>>>>> and
> >>>>>>>>>>> full which will include jars in various degrees but it 
seemed a
> >>>>>>> bit
> >>>>>>>>>>> confusing at that time for the users (this was actually done 
in
> >>>>>>> 1.0
> >>>>>>>>>>> release). May be it is time to restart these discussions
> >>>>>>>>>>>
> >>>>>>>
> >>>>> 
---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >>>>>>>
> >>>>>> --
> >>>>>> Ajith Ranabahu
> >>>>>>
> >>>>>> Reading, after a certain age, diverts the mind too much from its
> >>>>>> creative pursuits. Any man who reads too much and uses his own 
brain
> >>>>>> too little falls into lazy habits of thinking - Albert Einstein
> >>>>>>
> >>>>>> 
---------------------------------------------------------------------
> >>>>>> 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]
> >>
> >>
> 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFHJJpSjON2uBzUhh8RAmyxAKCOidCQhOKVvmOHFsf3Po58dmnqwQCeK7ZQ
> I3bk1wnUzquG7uW8XWCKwXs=
> =GZ4p
> -----END PGP SIGNATURE-----
> 
> ---------------------------------------------------------------------
> 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]

Reply via email to