Re: Loading Metadata from an EMF model ?
Got the load of Ecore models it working again... Using the SDOFactoryImpl.SDOEcoreFactory to load the Ecore file does covert all org.eclipse.emf.ecore.* to org.apache.tuscany.sdo.impl.* The problem arose as Ecore Datatypes were being created like DataTypeImpl proxyURI=ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString/ When datatype is retrieved, the proxyURI is resolved and the Tuscany DataTypeImpl is changed to an EMF EDataTypeImpl. So after loading I have to post process the models and replace all the EDataTypes via TypeHelper.INSTANCE.getType(commonj.sdo,String); I hate this approach but It'll do till I can have a more robust approach... e.g. figure out a way to fix all proxies... at load time Anyway, now that I have this code would/should I create Helper like the XSDHelperImpl ? e.g. EcoreHelper ? Johan Gielstra wrote: div class=moz-text-flowed style=font-family: -moz-fixed Be happy to, As Tuscany's SDO is still built ontop of EMF's model. The SDOFactoryImpl.SDOEcoreFactory is doing the brunt of the work. It already converts E* to their SDO counter parts. for example EClass to commonj.sdo.Class during the load of the EMF Model. I dug further since my last email and discovered the problem is actually the attributes' eTypes are simple types String,Integer, etc containing an instance of EDataType representing EString, EInteger,.. and should instead be an Instances of commonj.sdo.Type. So I'll have to see what to enhance to make the Factory convert from EDataType to Type.. During load time as I am hoping to avoid having to post process the model.. kelvin goodson wrote: Hi Johan, Having looked back at the minimal changes between 1.0 RC2 and the final release I spotted that you said May 2007, which was the RC2 for the beta1 release, so if it is these two distros you have been using then there are a large number of changes between them, see [1]. I'm not an expert on the details of ecore model formats, but aside from that, my main worry would be that you have been building a solution by working inside the Tuscany implementation which is subject to change; the breaking change you point out being a case in point, I can see this is an area in which the implementation is likely to change more in the future too. Clearly you could get round this by building a converter which uses the EMF APIs to traverse the ecore models and the SDO API to dynamically build SDO metadata. Is this something you'd be interested in contributing to Tuscany? Best Regards, Kelvin. [1] https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=truepid=12310210fixfor=12312521resolution=1sorter/field=issuekeysorter/order=DESCsorter/field=issuetypesorter/order=DESC On 24/09/2007, Johan Gielstra [EMAIL PROTECTED] wrote: Hi All, I have some ecore models that I want to load directly, rather than exporting them to a schema and using XSDHelper to load them in. I have experimented with the Tuscany SDO 1.0rc2 (May 2007 ) to and loaded + used the model successfully... The code I was using stopped working in Tuscany SDO 1.0 release (August 2007). and I made the changes below.. Anyway, I get the model loaded and when I call somedo.getInstanceProperty(name) it fails and their are no attributes ? When I dump somedo.getInstanceProperties() I see only Reference and no Attributes ? I am unable to share my models but I can make some sample models+code if someone is willing to help ? // For 1.0 rc2 // public class CreateSDODatagraph { // TODO this is a hack need to figure out how to properly initialize // SDOEcoreFactory... // thepack is hack something change in the initialization code that cuased problems... private static EcorePackage thepack = EcorePackage.eINSTANCE; static { EPackage.Registry.INSTANCE.put(EcorePackage.eNS_URI, new EPackage.Descriptor() { public EPackage getEPackage() { return thepack; } public EFactory getEFactory() { return new SDOFactoryImpl.SDOEcoreFactory(); } }); } public void loadModel(URI uri) { Resource r = datagraph.getResourceSet().getResource(uriConverter.normalize(uri), true); EPackage pack = getEPackage(r); //String prefix = pack.getNsPrefix(); String namespace = pack.getNsURI(); // Do both just in case ... EPackage.Registry.INSTANCE.put(namespace, pack); datagraph.getResourceSet().getPackageRegistry().put(namespace, pack); pack.setEFactoryInstance(new DynamicDataObjectImpl.FactoryImpl()); } } / For 1.0 /// public void init(){
Re: Error occured at run
Hi, There seems to be two issues: 1) Reference POValidationReference is not declared in PORequestImpl using @Reference annotation. Can you post us PORequestImpl.java? 2) For RMI to work, the parameter has be to Serializable. Is POForm Serializable? Thanks, Raymond - Original Message - From: Ashwin Jeksani [EMAIL PROTECTED] To: tuscany-user@ws.apache.org Sent: Friday, September 28, 2007 9:25 AM Subject: Error occured at run Hi, I am trying out a small POC which has two composites using RMI binding b/w them, the service(POValidation Service) is similar to Calculator Service with two references to components which is working fine and starting. The other composite which is the reference consists two components(PORequest, CustValidation), PORequest refers to the local component(CustValidation) as well as the service(POValidation Service) which is exposed using RMI binding I tried following the same flow as given in the bigbank demo but I am facing few issues. The client is sending the input data in a java object(POForm). Below are the composite file and the console output: ?xml version=1.0 encoding=UTF-8? composite xmlns=http://www.osoa.org/xmlns/sca/1.0; xmlns:tuscany=http://tuscany.apache.org/xmlns/sca/1.0; targetNamespace=http://purchase.poc; xmlns:cv=http://purchase.poc http://purchase.poc.infosys.com/ name=PurchaseOrderRequest component name=PORequestComponent implementation.java class=purchase.PORequestImpl/ reference name=custValidation target=CustomerValidationComponent/ reference name=POValidationReference tuscany:binding.rmi host=localhost port=8099 serviceName=POValidationRMIService/ /reference /component component name=CustomerValidationComponent implementation.java class= poc.purchase.customervalidation.CustomerValidationImpl/ /component /composite == *Console:* run: [java] Sep 27, 2007 6:16:46 PM org.apache.tuscany.sca.assembly.builder.impl.Comp ositeBuilderImpl$1 problem [java] WARNING: [WARNING] Reference not found for component reference: PurchaseO rderRequestComponent/custValidation null [java] Sep 27, 2007 6:16:46 PM org.apache.tuscany.sca.assembly.builder.impl.Comp ositeBuilderImpl$1 problem [java] WARNING: [WARNING] Reference not found for component reference: PurchaseO rderRequestComponent/POValidationReference null [java] Exception in thread main java.lang.IllegalArgumentException: Pass-by-va lue is not supported for the given object [java] at org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding. copy(JavaBeansDataBinding.java:84) [java] at org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoin t$LazyDataBinding.copy(DefaultDataBindingExtensionPoint.java:158) [java] at org.apache.tuscany.sca.implementation.java.invocation.PassByValueI nvoker.copy(PassByValueInvoker.java:103) [java] at org.apache.tuscany.sca.implementation.java.invocation.PassByValueI nvoker.copy(PassByValueInvoker.java:88) [java] at org.apache.tuscany.sca.implementation.java.invocation.PassByValueI nvoker.invoke(PassByValueInvoker.java:60) [java] at org.apache.tuscany.sca.binding.sca.impl.RuntimeSCABindingInvoker.i nvoke(RuntimeSCABindingInvoker.java:48) [java] at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke (JDKInvocationHandler.java:270) [java] at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke (JDKInvocationHandler.java:114) [java] at $Proxy5.getConfirmation(Unknown Source) [java] at poc.purchase.client.PurchaseOrderClient.main(PurchaseO rderClient.java:25) [java] Caused by: java.lang.IllegalArgumentException: Argument type ' poc.purchase.POForm' is not Serializable. Pass-by-value cannot be perfor med on this argument [java] at org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding. copy(JavaBeansDataBinding.java:80) [java] ... 9 more [java] Java Result: 1 Any help in this regard is highly appreciated. Thanks Regards, Ashwini Kumar Jeksani - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Error occured at run
Hi, I am trying out a small POC which has two composites using RMI binding b/w them, the service(POValidation Service) is similar to Calculator Service with two references to components which is working fine and starting. The other composite which is the reference consists two components(PORequest, CustValidation), PORequest refers to the local component(CustValidation) as well as the service(POValidation Service) which is exposed using RMI binding I tried following the same flow as given in the bigbank demo but I am facing few issues. The client is sending the input data in a java object(POForm). Below are the composite file and the console output: ?xml version=1.0 encoding=UTF-8? composite xmlns=http://www.osoa.org/xmlns/sca/1.0; xmlns:tuscany=http://tuscany.apache.org/xmlns/sca/1.0; targetNamespace=http://purchase.poc; xmlns:cv=http://purchase.poc http://purchase.poc.infosys.com/ name=PurchaseOrderRequest component name=PORequestComponent implementation.java class=purchase.PORequestImpl/ reference name=custValidation target=CustomerValidationComponent/ reference name=POValidationReference tuscany:binding.rmi host=localhost port=8099 serviceName=POValidationRMIService/ /reference /component component name=CustomerValidationComponent implementation.java class= poc.purchase.customervalidation.CustomerValidationImpl/ /component /composite == *Console:* run: [java] Sep 27, 2007 6:16:46 PM org.apache.tuscany.sca.assembly.builder.impl.Comp ositeBuilderImpl$1 problem [java] WARNING: [WARNING] Reference not found for component reference: PurchaseO rderRequestComponent/custValidation null [java] Sep 27, 2007 6:16:46 PM org.apache.tuscany.sca.assembly.builder.impl.Comp ositeBuilderImpl$1 problem [java] WARNING: [WARNING] Reference not found for component reference: PurchaseO rderRequestComponent/POValidationReference null [java] Exception in thread main java.lang.IllegalArgumentException: Pass-by-va lue is not supported for the given object [java] at org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding. copy(JavaBeansDataBinding.java:84) [java] at org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoin t$LazyDataBinding.copy(DefaultDataBindingExtensionPoint.java:158) [java] at org.apache.tuscany.sca.implementation.java.invocation.PassByValueI nvoker.copy(PassByValueInvoker.java:103) [java] at org.apache.tuscany.sca.implementation.java.invocation.PassByValueI nvoker.copy(PassByValueInvoker.java:88) [java] at org.apache.tuscany.sca.implementation.java.invocation.PassByValueI nvoker.invoke(PassByValueInvoker.java:60) [java] at org.apache.tuscany.sca.binding.sca.impl.RuntimeSCABindingInvoker.i nvoke(RuntimeSCABindingInvoker.java:48) [java] at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke (JDKInvocationHandler.java:270) [java] at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke (JDKInvocationHandler.java:114) [java] at $Proxy5.getConfirmation(Unknown Source) [java] at poc.purchase.client.PurchaseOrderClient.main(PurchaseO rderClient.java:25) [java] Caused by: java.lang.IllegalArgumentException: Argument type ' poc.purchase.POForm' is not Serializable. Pass-by-value cannot be perfor med on this argument [java] at org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding. copy(JavaBeansDataBinding.java:80) [java] ... 9 more [java] Java Result: 1 Any help in this regard is highly appreciated. Thanks Regards, Ashwini Kumar Jeksani
AW: Build and use of jms-binding
Hi Simon, Thank you very much your hints. The build is still failing for me. It seems that 1 artifact is missing for binding-jms module. Though that's already some progress, the day before there were 3 artifacts missing. My environment is: - Windows XP Pro SP2 - Sun JDK 1.5.0_12 - Maven 2.0.5 ( previously tried it with 2.0.7 but as you already mentioned this version of maven isn't supported yet. It would be really good if the tuscany - get involved-web site would mention that) - My trunk is at revision 580013 (last change 11:45 Thursday 27.09.2007) The build is working for you…hmm... might it be the maven settings has to be configured in some special way to make the build process work? After Maven installation, I've just set the settings for a proxy. I've pasted here some maven output, maybe it will be of help Maven output for java/sca: … [INFO] Apache Tuscany SCA JMS Binding Extension .. SKIPPED (dependen cy build failed or was skipped) … [INFO] Apache Tuscany SCA Web Services Void Args and Return Test SKIPPED (depen dency build failed or was skipped) [INFO] [INFO] Error for project: Apache Tuscany SCA Contribution Model Implementation ( during install) [INFO] [INFO] There are test failures. [INFO] [INFO] Error for project: Apache Tuscany SCA WSDL2Java Tool (during install) [INFO] [INFO] There are test failures. [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] BUILD ERRORS [INFO] [INFO] Total time: 1 minute 42 seconds [INFO] Finished at: Thu Sep 27 16:17:49 CEST 2007 [INFO] Final Memory: 28M/51M [INFO] Maven output for java/sca/modules/binding-jms: ... Downloading: http://people.apache.org/repo/m2-incubating-repository/org/apache/tuscany/sca/tuscany-host-embedded/1.1-incubating-SNAPSHOT/tuscany-host-embedded-1.1-incubating-SNAPSHOT.jar [WARNING] Unable to get resource ' org.apache.tuscany.sca:tuscany-host-embedded:jar:1.1-incubating-SNAPSHOT ' from repository apache.incubator ( http://people.apache.org/repo/m2-incubating-repository) Downloading: http://people.apache.org/repo/m2-snapshot-repository/org/apache/tuscany/sca/tuscany-host-embedded/1.1-incubating-SNAPSHOT/tuscany-host-embedded-1.1-incubating-SNAPSHOT.jar [WARNING] Unable to get resource ' org.apache.tuscany.sca:tuscany-host-embedded:jar:1.1-incubating-SNAPSHOT ' from repository apache.snapshots ( http://people.apache.org/repo/m2-snapshot-repository) [INFO] [ERROR] BUILD ERROR [INFO] [INFO] Failed to resolve artifact. Missing: -- 1) org.apache.tuscany.sca:tuscany-host-embedded:jar:1.1-incubating-SNAPSHOT Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=org.apache.tuscany.sca-DartifactId=tuscany-host-embedded \ -Dversion=1.1-incubating-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file Path to dependency: 1) org.apache.tuscany.sca:tuscany-binding-jms:jar:1.1-incubating-SNAPSHOT 2) org.apache.tuscany.sca:tuscany-host-embedded:jar:1.1-incubating-SNAPSHOT -- 1 required artifact is missing. for artifact: org.apache.tuscany.sca:tuscany-binding-jms:jar:1.1-incubating-SNAPSHOT from the specified remote repositories: central ( http://repo1.maven.org/maven2), apache.ws.zone (http://ws.zones.apache.org/repository2), apache.incubator ( http://people.apache.org/repo/m2-incubating-repository ), apache.snapshots (http://people.apache.org/repo/m2-snapshot-repository) Thanks, Philipp -Ursprüngliche Nachricht- Von: Simon Laws [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 27. September 2007 14:43 An: tuscany-user@ws.apache.org Betreff: Re: Build and use of jms-binding On 9/27/07, Philipp Konradi [EMAIL PROTECTED] wrote: Hi all, I'm new to Tuscany and very enthusiastic about the SCA concepts. After I played a little with some samples, I would like to try out the jms binding. The problem I face now is that it's not part of the official release yet (though some basic functionality is working already according to the Tuscany web site), so one has to build the module from the repository on his own. I tried it on several trunk revisions but the build never succeed (some artifacts where missing etc.). Has somebody done it before?
Re: validation of composite file
[snip] Florian Rosenberg wrote: That is exactly what I did but for my case it does not seem to work, there is no XML validation, at least I don't get any error even if I omit required attributes etc. have to investigate what could be the reason. Even though, the validation does not seem to work for me, e.g.: service name=AddPostSpliceService promote=AddPostSpliceComponent interface.java interfaceERROR=com.ibm.sca.implementation.splice.SpliceService / /service component name=AddPostSpliceComponent tuscany:implementation.splice flow=tns:AddPost contentType=application/x-www-form-urlencoded / /component The interface attribute is wrong here but Tuscany throw the following error instead of giving me a validation error: Are you seeing this problem only after adding your schema to tuscany-sca.xsd? or already with the unchanged tuscany-sca.xsd? If you're seeing the problem with the unchanged tuscany-sca.xsd, which revision of the trunk or 1.0 branch are you using? I just tried to add the following to the sample-calculator Calculator.composite: service name=CalculatorService promote=CalculatorServiceComponent interface.java interfaceERROR=calculator.CalculatorService/ /service and when I run it I see: WARNING: XMLSchema validation problem in: file:/home/delfinoj/Tuscany/apache-repos/java/sca/samples/calculator/target/classes/Calculator.composite, line: 26, column: 3 cvc-complex-type.4: Attribute 'interface' must appear on element 'interface.java'. The XMLschema validator will not complain about the interfaceERROR attribute as the schema allows for anyAttribute. However it seems to correctly report the missing interface attribute. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: What happened to mustSupply?
Matthew Peters wrote: p. 26 of the 1.00 Assembly Spec describes a mustSupply attribute on a property inside a composite, used to mean that there is no default value and a value must be supplied by the component that uses the implementation. I don't see this attribute in the sca-core.xsd from the 1.0 Tuscany or any discussion of it on the mailing lists. Has the attribute gone for good, and has the concept gone as well? I am assuming that the noDefault attribute (used to be required) is for use just within a component type but perhaps that's wrong. Matthew Peters The mustSupply attribute described in the assembly spec is implemented by the Tuscany assembly model, XML readers and writers. The SCA XSD says: attribute name=noDefault type=boolean default=false use=optional/ instead of attribute name=mustSupply type=boolean default=false use=optional/ IMO this is a bug in the XSD, I'll report the issue to the OASIS assembly TC. In the meantime, you can try to specify that mustSupply attribute anyway. It should work in Tuscany and XMLSchema validation shouldn't complain about it as the XSD for property allows for anyAttribute namespace=##any processContents=lax/. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: websphere web service deployment problem
Hi, just wanted you to know that I have managed to solve the problem now. It was all about other files, which were on our classpath and which were not supposed to be there (our product jars). That caused classloader to load classes where they were not supposed to be loaded. The problem doesn't appear anymore. Thanks, Radim On 9/28/07, Radim Kolarik [EMAIL PROTECTED] wrote: Hi, I am suspecting that this has something to do with the application settings change classloader properties of your Webapp to parent-last / single. Have anyone been able to reproduce the problem? Sebastian, did you have a chance to have a look if there is anything wrong? Thanks a lot, Radim On 9/27/07, Radim Kolarik [EMAIL PROTECTED] wrote: Hi Sebastien, You are right, I mean the change classloader properties of your Webapp to parent-last / single update. I am calling the AdminService.getAttribute() from the web app, server itself starts without problems. Here is the complete stack trace: java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl incompatible with javax.xml.parsers.SAXParserFactory at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source) at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.makeParser(XMLLoadImpl.java:299) at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:140) at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:179) at org.eclipse.wst.common.internal.emf.resource.CompatibilityXMIResourceImpl.basicDoLoad(CompatibilityXMIResourceImpl.java:180) at org.eclipse.wst.common.internal.emf.resource.CompatibilityXMIResourceImpl.doLoad(CompatibilityXMIResourceImpl.java:173) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1094) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:900) at org.eclipse.wst.common.internal.emf.resource.CompatibilityXMIResourceImpl.load(CompatibilityXMIResourceImpl.java:259) at com.ibm.websphere.resource.WASResourceImpl.load(WASResourceImpl.java:61) at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:249) at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:264) at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:390) at com.ibm.websphere.resource.WASResourceSetImpl.getResource(WASResourceSetImpl.java:158) at com.ibm.websphere.resource.WASResourceSetImpl.getResource(WASResourceSetImpl.java:143) at com.ibm.ws.runtime.service.ConfigRootImpl.getResource(ConfigRootImpl.java:325) at com.ibm.ws.runtime.service.ConfigRootImpl.getResource(ConfigRootImpl.java:298) at com.ibm.ws.runtime.service.ConfigRootImpl.getResource(ConfigRootImpl.java:274) at com.ibm.ws.runtime.component.EndPointMgrImpl.getNodeHostName(EndPointMgrImpl.java:488) at com.ibm.ws.management.AdminHelperImpl.getNodeHostName(AdminHelperImpl.java:116) at com.ibm.ws.management.component.JVMMBean.getJVMNode(JVMMBean.java:167) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:265) at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1089) at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:971) at javax.management.modelmbean.RequiredModelMBean.getAttribute(RequiredModelMBean.java:1373) at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.getAttribute(DynamicMetaDataImpl.java:114) at com.sun.jmx.mbeanserver.MetaDataImpl.getAttribute(MetaDataImpl.java:199) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:656) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:677) at com.ibm.ws.management.AdminServiceImpl.getAttribute(AdminServiceImpl.java:687) at com.company.core.container.websphere.WebSphereServerHelper.initialise(Unknown Source) at
Re: websphere web service deployment problem
Radim Kolarik wrote: Hi, just wanted you to know that I have managed to solve the problem now. It was all about other files, which were on our classpath and which were not supposed to be there (our product jars). That caused classloader to load classes where they were not supposed to be loaded. The problem doesn't appear anymore. Thanks, Radim That's good news, as I was not able to reproduce the issue in my environment... I had tweaked a test case to do a new InitialContext() similar to what I saw in your stack trace, and it was working for me :) Thanks -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]