geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Siraj Mohamed" <Si...@virtusa.com>
Subject RE: Migrating EAR artifact from WebSphere to WASCE
Date Fri, 25 Nov 2005 05:01:53 GMT

Hi Aaron,

I am not using Geronimo-application.xml but this is my openejb-jar.xml's
header block.

<?xml version="1.0"?>

<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar" 
configId="ejb-RXMeta" 
parentId="org/apache/geronimo/Server">


Please note that I was able to test my hello world ejb sample on WASCE
successfully and I do not see such exceptions.

As you suggested, I tried to deploy through command-line and it seems it
gives me a descriptive exception like:

Error: Unable to distribute RXMeta.ear: Unable to initialize
 EJBContainer GBean: ejbNameImportService

     com/xmeta/client/ServiceClientException


It seems that this class not found in the classpath. But I have many
supporting JARs to my RXMeta.ear application and I have copied them all
into lib\endorsed of WASCE. That's the way we do on WebSphere (copying
them into lib\ext folder). It looks like it doesn't picking up. 


Would you suggest a better way of handling supported JARs to my
application at deployment time other than I bundle all my JARs to the
EAR?

Thanks,
Siraj

-----Original Message-----
From: ammulder@gmail.com [mailto:ammulder@gmail.com] On Behalf Of Aaron
Mulder
Sent: Thursday, November 24, 2005 8:41 PM
To: user@geronimo.apache.org
Subject: Re: Migrating EAR artifact from WebSphere to WASCE

It's curious that it can't find EJB classes.  Can you post the header
block of your openejb-jar.xml (and geronimo-application.xml if this is
in an EAR)?  It may be that you're using the wrong parentId?

<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar
    xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.0"
    configId="MyConfigName"
    parentId="org/apache/geronimo/Server">
  ...

Though I'm assuming that the configurations in WASCE are named the
same as in Geronimo -- maybe we ought to ask one of the IBM folks to
confirm.  (Or you can go to the system deployment list in the console
and check yourself.)

If that looks right, you could also try deploying using the
command-line tool instead of the console and just make sure you get
the same error (that is, make sure it's not a problem specific to the
console).

Thanks,
    Aaron

On 11/24/05, Siraj Mohamed <Siraj@virtusa.com> wrote:
>
>
>
> Hi All,
>
>
>
> I am evaluating Geronimo/WASCE to migrate my application from
WebSphere to
> WASCE. As a start, I removed all websphere specific configuration
files
> bundled with EAR such as ibm-application-bnd.xmi, ibm-ejb-jar-bnd.xmi,
> ibm-ejb-jar-ext.xmi and ibm_ejbext.properties. Also I created
> openejb-jar.xml based on the information of jboss.xml and bundled it
with
> EAR.
>
>
>
> For example, if jboss.xml contains like:
>
>
>
> <session>
>
>          <ejb-name>SandboxService</ejb-name>
>
>          <jndi-name>SandboxService</jndi-name>
>
>          <resource-ref>
>
>             <res-ref-name>xmeta_defaultDS</res-ref-name>
>
>             <jndi-name>java:/jdbc/ASBDataSource</jndi-name>
>
>          </resource-ref>
>
>         <method-attributes>
>
>         </method-attributes>
>
>  </session>
>
>
>
> It is re-written in the openejb-jar.xml like this:
>
>
>
> <session>
>
>          <ejb-name>SandboxService</ejb-name>
>
>          <jndi-name>SandboxService</jndi-name>
>
>          <resource-ref>
>
>             <ref-name>xmeta_defaultDS</ref-name>
>
>             <resource-link>ASB</resource-link>
>
>          </resource-ref>
>
>       </session>
>
>  </session>
>
>
>
> My EAR contains lots of stat full and stateless beans.
>
>
>
> When I tried to deploy it on WASCE, I am getting exception and
following are
> the stack traces
>
>
>
> 16:53:06,817 ERROR [Deployer] Deployment failed due to
>
> java.lang.NoClassDefFoundError: javax/ejb/EJBObject
>
>       at java.lang.ClassLoader.findBootstrapClass(Native
> Method)
>
>       at java.lang.ClassLoader.findBootstrapClass0(Unknown
> Source)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at sun.misc.Launcher$AppClassLoader.loadClass(Unknown
> Source)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(Multi
ParentClassLoader.java:140)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(Multi
ParentClassLoader.java:140)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(Multi
ParentClassLoader.java:140)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(Multi
ParentClassLoader.java:140)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.naming.deployment.ENCConfigBuilder.assureInterface(E
NCConfigBuilder.java:646)
>
>       at
>
org.apache.geronimo.naming.deployment.ENCConfigBuilder.assureEJBObjectIn
terface(ENCConfigBuilder.java:628)
>
>       at
>
org.openejb.deployment.SessionBuilder.initContext(SessionBuilder.java:39
8)
>
>       at
>
org.openejb.deployment.OpenEJBModuleBuilder.initContext(OpenEJBModuleBui
lder.java:334)
>
>       at
>
org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b20.
invoke(<generated>)
>
>       at
> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>
>       at
>
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInv
oker.java:38)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.j
ava:118)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.jav
a:760)
>
>       at
>
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>
>       at
>
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperation
Invoker.java:36)
>
>       at
>
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyM
ethodInterceptor.java:96)
>
>       at
>
org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$97bf
9acb.initContext(<generated>)
>
>       at
>
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(
EARConfigBuilder.java:334)
>
>       at
>
org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$
38e56ec6.invoke(<generated>)
>
>       at
> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>
>       at
>
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInv
oker.java:38)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.j
ava:118)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.jav
a:760)
>
>       at
>
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>
>       at
>
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperation
Invoker.java:36)
>
>       at
>
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyM
ethodInterceptor.java:96)
>
>       at
>
org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$a3
aca33d.buildConfiguration(<generated>)
>
>       at
> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:183)
>
>       at
> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:89)
>
>       at
>
org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invo
ke(<generated>)
>
>       at
> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>
>       at
>
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInv
oker.java:38)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.j
ava:118)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.jav
a:795)
>
>       at
>
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:181
)
>
>       at
>
org.apache.geronimo.console.configmanager.DeploymentPortlet.processActio
n(DeploymentPortlet.java:119)
>
>       at
> org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229)
>
>       at
> org.apache.pluto.core.PortletServlet.doPost(PortletServlet.java:163)
>
>       at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
>
>       at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>
>       at
> org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
>
>       at
>
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:672)
>
>       at
>
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDisp
atcher.java:574)
>
>       at
>
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispat
cher.java:499)
>
>       at
>
org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerIm
pl.java:120)
>
>       at
>
org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerIm
pl.java:68)
>
>       at
>
org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContai
nerImpl.java:164)
>
>       at
>
org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPort
letAction(PortletContainerWrapperImpl.java:82)
>
>       at
> org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227)
>
>       at
> org.apache.pluto.portalImpl.Servlet.doPost(Servlet.java:267)
>
>       at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
>
>       at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
>
>       at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
>
>       at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
>
>       at
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:482)
>
>       at
>
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubje
ctValve.java:46)
>
>       at
>
org.apache.geronimo.tomcat.valve.PolicyContextValve.invoke(PolicyContext
Valve.java:50)
>
>       at
>
org.apache.geronimo.tomcat.valve.TransactionContextValve.invoke(Transact
ionContextValve.java:53)
>
>       at
>
org.apache.geronimo.tomcat.valve.ComponentContextValve.invoke(ComponentC
ontextValve.java:47)
>
>       at
>
org.apache.geronimo.tomcat.valve.InstanceContextValve.invoke(InstanceCon
textValve.java:60)
>
>       at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
>
>       at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
>
>       at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
>
>       at
>
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526
)
>
>       at
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
>
>       at
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
>
>       at
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:744)
>
>       at
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:527)
>
>       at
>
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:80)
>
>       at
>
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
>
>       at java.lang.Thread.run(Unknown Source)
>
> 16:53:06,832 ERROR [[Deployment]] Servlet.service() for servlet
Deployment
> threw exception
>
> java.lang.NoClassDefFoundError: javax/ejb/EJBObject
>
>       at java.lang.ClassLoader.findBootstrapClass(Native
> Method)
>
>       at java.lang.ClassLoader.findBootstrapClass0(Unknown
> Source)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at sun.misc.Launcher$AppClassLoader.loadClass(Unknown
> Source)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(Multi
ParentClassLoader.java:140)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(Multi
ParentClassLoader.java:140)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(Multi
ParentClassLoader.java:140)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(Multi
ParentClassLoader.java:140)
>
>       at java.lang.ClassLoader.loadClass(Unknown Source)
>
>       at
>
org.apache.geronimo.naming.deployment.ENCConfigBuilder.assureInterface(E
NCConfigBuilder.java:646)
>
>       at
>
org.apache.geronimo.naming.deployment.ENCConfigBuilder.assureEJBObjectIn
terface(ENCConfigBuilder.java:628)
>
>       at
>
org.openejb.deployment.SessionBuilder.initContext(SessionBuilder.java:39
8)
>
>       at
>
org.openejb.deployment.OpenEJBModuleBuilder.initContext(OpenEJBModuleBui
lder.java:334)
>
>       at
>
org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b20.
invoke(<generated>)
>
>       at
> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>
>       at
>
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInv
oker.java:38)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.j
ava:118)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.jav
a:760)
>
>       at
>
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>
>       at
>
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperation
Invoker.java:36)
>
>       at
>
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyM
ethodInterceptor.java:96)
>
>       at
>
org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$97bf
9acb.initContext(<generated>)
>
>       at
>
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(
EARConfigBuilder.java:334)
>
>       at
>
org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$
38e56ec6.invoke(<generated>)
>
>       at
> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>
>       at
>
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInv
oker.java:38)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.j
ava:118)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.jav
a:760)
>
>       at
>
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>
>       at
>
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperation
Invoker.java:36)
>
>       at
>
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyM
ethodInterceptor.java:96)
>
>       at
>
org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$a3
aca33d.buildConfiguration(<generated>)
>
>       at
> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:183)
>
>       at
> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:89)
>
>       at
>
org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invo
ke(<generated>)
>
>       at
> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>
>       at
>
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInv
oker.java:38)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.j
ava:118)
>
>       at
>
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.jav
a:795)
>
>       at
>
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:181
)
>
>       at
>
org.apache.geronimo.console.configmanager.DeploymentPortlet.processActio
n(DeploymentPortlet.java:119)
>
>       at
> org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229)
>
>       at
> org.apache.pluto.core.PortletServlet.doPost(PortletServlet.java:163)
>
>       at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
>
>       at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>
>       at
> org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
>
>       at
>
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:672)
>
>       at
>
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDisp
atcher.java:574)
>
>       at
>
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispat
cher.java:499)
>
>       at
>
org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerIm
pl.java:120)
>
>       at
>
org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerIm
pl.java:68)
>
>       at
>
org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContai
nerImpl.java:164)
>
>       at
>
org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPort
letAction(PortletContainerWrapperImpl.java:82)
>
>       at
> org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227)
>
>       at
> org.apache.pluto.portalImpl.Servlet.doPost(Servlet.java:267)
>
>       at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
>
>       at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
>
>       at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
>
>       at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
>
>       at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
>
>       at
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:482)
>
>       at
>
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubje
ctValve.java:46)
>
>       at
>
org.apache.geronimo.tomcat.valve.PolicyContextValve.invoke(PolicyContext
Valve.java:50)
>
>       at
>
org.apache.geronimo.tomcat.valve.TransactionContextValve.invoke(Transact
ionContextValve.java:53)
>
>       at
>
org.apache.geronimo.tomcat.valve.ComponentContextValve.invoke(ComponentC
ontextValve.java:47)
>
>       at
>
org.apache.geronimo.tomcat.valve.InstanceContextValve.invoke(InstanceCon
textValve.java:60)
>
>       at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
>
>       at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
>
>       at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
>
>       at
>
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526
)
>
>       at
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
>
>       at
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
>
>       at
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:744)
>
>       at
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:527)
>
>       at
>
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:80)
>
>       at
>
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
>
>       at java.lang.Thread.run(Unknown Source)
>
>
>
>
>
> Am I missing some thing else here?
>
>
>
> Thanks,
>
> -Siraj
>
>

Mime
View raw message