(don't you hate the way gmail sends the mail before you've finished if you
hit the wrong key)

So the key problem here was that the standard Tuscany bindings aren't the
same as custom ones. Custom bindings and component types need to be in their
own namespace, and the SCDLModelLoader impl needs to have a static
initializer to  register the new ScdlFactory. Wouldn't it be better if all
bindings and component types were done the same way? It would make it easier
to see how they work, and for example, say you take an sca module with a
Java  component and deploy it in a C++ or PHP or whatever langauge SCA
runtime then Java is not going to be in the default namespace so you'll have
to update your sca.module file wont you?

   ...ant

On 3/6/06, ant elder <[EMAIL PROTECTED]> wrote:
>
> So the key problem here was that the standard Tuscany bindings aren't the
> same as custom ones. Custom bindings need to be in their own namespace, and
> the SCDLModelLoader impl needs to have a static initilizer to  reg
>
> On 3/6/06, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote:
>
> > ant elder wrote:
> > > I'm messing about trying to add a new binding to Tuscany but can't get
> > it to
> > > work. There must be something I'm missing to register the new binding
> > SCDL
> > > as all I get is the exception below saying "Feature ' binding.ajax'
> > not
> > > found". Could  someone have a quick look if its something obvious? The
> > > code's up at 
> > > http://svn.apache.org/repos/asf/incubator/tuscany/sandbox/ant/
> > ,
> > > the AJAXAssemblyLoaderTestCase shows the problem.
> > >
> > > Thanks,
> > >
> > >    ...ant
> > >
> > > java.lang.RuntimeException:
> > >
> > file:/C:/SCA/SVN/WORK/sca/binding.ajax/bin/org/apache/tuscany/binding/ajax/assembly/tests/sca.module
> >
> > >     at
> > org.apache.tuscany.model.scdl.loader.impl.SCDLXMLReader.getRootObject
> > > (SCDLXMLReader.java:103)
> > >     at
> > org.apache.tuscany.model.scdl.loader.impl.SCDLXMLReader.getModule(
> > > SCDLXMLReader.java :61)
> > >     at
> > >
> > org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl.loadModule
> > > (SCDLAssemblyModelLoaderImpl.java:101)
> > >     at
> > >
> > org.apache.tuscany.binding.ajax.assembly.tests.AJAXAssemblyLoaderTestCase.testLoader
> > > (AJAXAssemblyLoaderTestCase.java:63)
> > >     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > >     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> > >     at sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown
> > Source)
> > >     at java.lang.reflect.Method.invoke(Unknown Source)
> > >     at junit.framework.TestCase.runTest(TestCase.java:154)
> > >     at junit.framework.TestCase.runBare(TestCase.java:127)
> > >     at junit.framework.TestResult$1.protect(TestResult.java:106)
> > >     at junit.framework.TestResult.runProtected(TestResult.java:124)
> > >     at junit.framework.TestResult.run(TestResult.java:109)
> > >     at junit.framework.TestCase.run (TestCase.java:118)
> > >     at junit.framework.TestSuite.runTest(TestSuite.java:208)
> > >     at junit.framework.TestSuite.run(TestSuite.java:203)
> > >     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
> > > RemoteTestRunner.java:478)
> > >     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
> > > RemoteTestRunner.java:344)
> > >     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (
> > > RemoteTestRunner.java:196)
> > > Caused by:
> > org.eclipse.emf.ecore.resource.Resource$IOWrappedException:Feature '
> > > binding.ajax' not found. (http:///temp.xml, 23, 24)
> > >     at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(
> > XMLLoadImpl.java:283)
> > >     at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(
> > > XMLResourceImpl.java:646)
> > >     at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.load (
> > > XMLResourceImpl.java:614)
> > >     at org.apache.tuscany.sdo.helper.XMLDocumentImpl.load(
> > > XMLDocumentImpl.java:246)
> > >     at org.apache.tuscany.sdo.helper.XMLDocumentImpl.load(
> > > XMLDocumentImpl.java :225)
> > >     at org.apache.tuscany.sdo.helper.XMLHelperImpl.load(
> > XMLHelperImpl.java
> > > :72)
> > >     at org.apache.tuscany.sdo.helper.XMLHelperImpl.load(
> > XMLHelperImpl.java
> > > :66)
> > >     at
> > org.apache.tuscany.model.scdl.loader.impl.SCDLXMLReader.getRootObject
> > > (SCDLXMLReader.java:100)
> > >     ... 18 more
> > >
> > >
> > Ant,
> >
> > Good news, I took a look at your AJAX binding in your sandbox and was
> > able to get your test case working... You just had a few minor problems
> > in your XSD, missing a namespace prefix declaration, and some left-over
> > references to axis2.
> >
> > I am committing the fixes for you. Here are the details:
> > - In sca-binding-ajax.xsd, removed the <include
> > location="sca-core.xsd"/> which actually included a copy of the whole
> > SCDL schema in your Ajax binding namespace. This is not necessary,
> > instead the base SCDL XSD needs to be correctly imported so that your
> > AJAXBinding can extend the correct base SCDL Binding type.
> > - Fixed the location attribute in the <import location="....
> > sca-core.xsd"> to a correct relative location pointing to sca-core.xsd
> > in the java/sca/model project from your sandbox/ant/binding.ajax.
> > - In sca.module, added an ajax namespace prefix declaration for your
> > Ajax binding namespace and changed <binding.ajax/> to <ajax:binding.ajax
> > />.
> > - Changed the left over references to axis2 to ajax in sca.module and
> > the test case itself.
> >
> > Hope this helps...
> >
> > --
> > Jean-Sebastien
> >
> >
>

Reply via email to