[Geoserver-devel] EMF Bindings strange behavior

Hi all,

I’m trying to create a new binding for the GML EnvelopeType as a JTS Envelope, since I couldn’t use geotools gml2/3 EMF models due to some specific Elements defined only for WCS 1.0.0.
Nevertheless I followed the implementation of the existing gt-GML3 module EvnelopeTypeBinding, returning a ReferencedEnvelope object as result of the EnvelopeTypeBinding parsing.

Now … all seems working fine until I try to parse a WCS 1.0.0 SpatialSubsetType … here I get an exception like the following:

org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml request is most probably not compliant to the wcs schema
at org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
at org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlParserTest.java:86)
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:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
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:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.RuntimeException: Parsing failed for spatialSubset: java.lang.RuntimeException: Unable to set property: Envelope for eobject: {http://www.opengis.net/wcs}SpatialSubsetType
at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
at org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWalker.java:208)
at org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174)
at org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java:222)
at org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.geotools.xml.Parser.parse(Parser.java:180)
at org.geotools.xml.Parser.parse(Parser.java:158)
at org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
… 19 more
Caused by: java.lang.RuntimeException: Unable to set property: Envelope for eobject: {http://www.opengis.net/wcs}SpatialSubsetType
at org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBinding.java:271)
at org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMFBinding.java:202)
at org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.java:143)
at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
… 35 more
Caused by: java.lang.ClassCastException: The feature 'envelope’s type ‘EnvelopeType’ does not permit a value of type ‘org.geotools.geometry.jts.ReferencedEnvelope’
at org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.validate(EStructuralFeatureImpl.java:2843)
at org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:146)
at org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java:94)
at org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253)
at org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUtil.java:656)
at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
at org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBinding.java:230)
… 38 more

And if I return an EvnelopeType all works well …

any ideas? am I missing something? Do I have to build a geotools converter or something like that?

Any help kindly appreciated.

Cheers,
Alessio.

Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it


I guess if the binding declares it returns ReferencedEnvelope.class in
getType() it should be respected...

like in class EnvelopeTypeBinding extends AbstractComplexTypeBinding{

public Class getType() {
        return ReferencedEnvelope.class;
    }

}

though not sure that is the solution actually...

Gabriel

On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:

Hi all,

I'm trying to create a new binding for the GML EnvelopeType as a JTS
Envelope, since I couldn't use geotools gml2/3 EMF models due to some
specific Elements defined only for WCS 1.0.0.
Nevertheless I followed the implementation of the existing gt-GML3 module
EvnelopeTypeBinding, returning a ReferencedEnvelope object as result of the
EnvelopeTypeBinding parsing.

Now ... all seems working fine until I try to parse a WCS 1.0.0
SpatialSubsetType ... here I get an exception like the following:

org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml request is
most probably not compliant to the wcs schema
    at org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
    at
org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
erTest.java:86) 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:164)
    at junit.framework.TestCase.runBare(TestCase.java:130)
    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:120)
    at junit.framework.TestSuite.runTest(TestSuite.java:230)
    at junit.framework.TestSuite.run(TestSuite.java:225)
    at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
TestReference.java:130) at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
38) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
unner.java:460) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
unner.java:673) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
.java:386) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
r.java:196) Caused by: java.lang.RuntimeException: Parsing failed for
spatialSubset: java.lang.RuntimeException: Unable to set property: Envelope
for eobject: { http://www.opengis.net/wcs\}SpatialSubsetType
    at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
    at
org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
lker.java:208) at
org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174) at
org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
:222) at
org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
    at org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
Source)
    at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
    at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
cher.dispatch(Unknown Source)
    at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.geotools.xml.Parser.parse(Parser.java:180)
    at org.geotools.xml.Parser.parse(Parser.java:158)
    at org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
    ... 19 more
Caused by: java.lang.RuntimeException: Unable to set property: Envelope for
eobject: {http://www.opengis.net/wcs\}SpatialSubsetType
    at
org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
nding.java:271) at
org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
Binding.java:202) at
org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
java:143) at
org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143) ... 35
more
Caused by: java.lang.ClassCastException: The feature 'envelope's type
'EnvelopeType' does not permit a value of type
'org.geotools.geometry.jts.ReferencedEnvelope'
    at
org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
date(EStructuralFeatureImpl.java:2843) at
org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1
46) at
org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
:94) at
org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
) at
org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
    at
org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
nding.java:230) ... 38 more

And if I return an EvnelopeType all works well ...

any ideas? am I missing something? Do I have to build a geotools converter
or something like that?

Any help kindly appreciated.

Cheers,
            Alessio.

Hi Gabriel,

thanks for the response … I have already inspected this possibility, but does not seem to solve the problem … I also tryied several WCSConfiguration and GMLConfiguration combinations … but I got no successful result.
The only thing I noticed is that the AbstractComplexEMFBinding superclass fails on the setProperty method trying to instantiate a geotools.util.Converter from the expected EnvelopeType class to jts.Envelope (or ReferencedEnvelope) one, since no one exists … the only thing I cannot really figure out is why that works for gt-GML3 module and not for mine since they are almost equal !!!

On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com> wrote:

I guess if the binding declares it returns ReferencedEnvelope.class in
getType() it should be respected…

like in class EnvelopeTypeBinding extends AbstractComplexTypeBinding{

public Class getType() {
return ReferencedEnvelope.class;
}

}

though not sure that is the solution actually…

Gabriel

On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:

Hi all,

I’m trying to create a new binding for the GML EnvelopeType as a JTS
Envelope, since I couldn’t use geotools gml2/3 EMF models due to some
specific Elements defined only for WCS 1.0.0.
Nevertheless I followed the implementation of the existing gt-GML3 module
EvnelopeTypeBinding, returning a ReferencedEnvelope object as result of the
EnvelopeTypeBinding parsing.

Now … all seems working fine until I try to parse a WCS 1.0.0
SpatialSubsetType … here I get an exception like the following:

org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml request is
most probably not compliant to the wcs schema
at org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
at
org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
erTest.java:86) 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:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
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:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
TestReference.java:130) at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
38) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
unner.java:460) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
unner.java:673) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
.java:386) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
r.java:196) Caused by: java.lang.RuntimeException: Parsing failed for
spatialSubset: java.lang.RuntimeException: Unable to set property: Envelope
for eobject: { http://www.opengis.net/wcs}SpatialSubsetType
at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
at
org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
lker.java:208) at
org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174) at
org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
:222) at
org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
Source)
at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
cher.dispatch(Unknown Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.geotools.xml.Parser.parse(Parser.java:180)
at org.geotools.xml.Parser.parse(Parser.java:158)
at org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
… 19 more
Caused by: java.lang.RuntimeException: Unable to set property: Envelope for
eobject: {http://www.opengis.net/wcs}SpatialSubsetType
at
org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
nding.java:271) at
org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
Binding.java:202) at
org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
java:143) at
org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143) … 35
more
Caused by: java.lang.ClassCastException: The feature 'envelope’s type
‘EnvelopeType’ does not permit a value of type
‘org.geotools.geometry.jts.ReferencedEnvelope’
at
org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
date(EStructuralFeatureImpl.java:2843) at
org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1

  1. at

org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
:94) at
org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
) at
org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
at
org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
nding.java:230) … 38 more

And if I return an EvnelopeType all works well …

any ideas? am I missing something? Do I have to build a geotools converter
or something like that?

Any help kindly appreciated.

Cheers,
Alessio.


Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it


Well, finally I got the solution … just for knowledge I will briefly share the solution with the community, soon I will update the tutorial that I have written for the EMF model generation, adding the binding implementation also.

A bit of introduction first.

The WCS 1.0.0 schema for the DomainSubset part requires a structure like the following:

wcs:domainSubset
wcs:spatialSubset
<gml:Envelope srsName=“EPSG:32633”>
gml:pos347649.93086859107 5176214.082539256</gml:pos>
gml:pos370725.976428591 5196961.352859256</gml:pos>
</gml:Envelope>
<gml:Grid dimension=“2” srsName=“EPSG:4326”>
gml:limits
gml:GridEnvelope
gml:low0 0</gml:low>
gml:high545 490</gml:high>
</gml:GridEnvelope>
</gml:limits>
</gml:Grid>
</wcs:spatialSubset>
</wcs:domainSubset>

As you can notice the domainSubset and the spatialSubset nodes belong to the “wcs” namespace, while the Envelope and Grid to the “gml” one instead.
That means that the EnvelopeBinding and GridBinding have to be implemented into some “gt-gml” (just a dummy name) module and the spatialSubsetBinding and domainSubsetBinding have to be implemented into some “gt-wcs” package instead.

At this point we have several ways to do that, but particular attention has to be put on how we implement the WCSConfiguration and GMLConfiguration for both the WCS and GML binding packages (more details later).

Method 1: if you would like the Parser to automatically populate the objects, than you must leave the EnvelopeBinding and the GridBinding respectively return the EMF Objects (EObjects) EnvelopeType and GridType.

Method 2: if you would like to allow the EnvelopeBinding returning for instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse), than you MUST say to the WCS spatialSubsetBinding and to the domainSubsetBinding how to handle such case. You have here several ways too. One would be to write some specific geotools Converters from EnvelopeType to whatelse; another one, easier, would be to manually rewrite te “parse” methods of the spatialSubsetBinding and domainSubsetBinding in order to handle the GeneralEnvelope parsing. The latter is for sure the best path to follow … but you have to pay particular attention on how you write the WCSConfiguration binding file, infact you have to explicitly register both the spatialSubsetBinding and the domainSubsetBinding implementations as represented below.

bindings.put(WCS.DomainSubsetType, new DomainSubsetTypeBinding());
bindings.put(WCS.SpatialSubsetType, new SpatialSubsetTypeBinding());

Cheers,
Alessio.

On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani <alessio.fabiani@anonymised.com> wrote:

Hi Gabriel,

thanks for the response … I have already inspected this possibility, but does not seem to solve the problem … I also tryied several WCSConfiguration and GMLConfiguration combinations … but I got no successful result.
The only thing I noticed is that the AbstractComplexEMFBinding superclass fails on the setProperty method trying to instantiate a geotools.util.Converter from the expected EnvelopeType class to jts.Envelope (or ReferencedEnvelope) one, since no one exists … the only thing I cannot really figure out is why that works for gt-GML3 module and not for mine since they are almost equal !!!

On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com…1501…> wrote:

I guess if the binding declares it returns ReferencedEnvelope.class in
getType() it should be respected…

like in class EnvelopeTypeBinding extends AbstractComplexTypeBinding{

public Class getType() {
return ReferencedEnvelope.class;
}

}

though not sure that is the solution actually…

Gabriel

On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:

Hi all,

I’m trying to create a new binding for the GML EnvelopeType as a JTS
Envelope, since I couldn’t use geotools gml2/3 EMF models due to some
specific Elements defined only for WCS 1.0.0.
Nevertheless I followed the implementation of the existing gt-GML3 module
EvnelopeTypeBinding, returning a ReferencedEnvelope object as result of the
EnvelopeTypeBinding parsing.

Now … all seems working fine until I try to parse a WCS 1.0.0
SpatialSubsetType … here I get an exception like the following:

org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml request is
most probably not compliant to the wcs schema
at org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
at
org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
erTest.java:86) 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:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
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:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
TestReference.java:130) at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
38) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
unner.java:460) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
unner.java:673) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
.java:386) at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
r.java:196) Caused by: java.lang.RuntimeException: Parsing failed for
spatialSubset: java.lang.RuntimeException: Unable to set property: Envelope
for eobject: { http://www.opengis.net/wcs}SpatialSubsetType
at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
at
org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
lker.java:208) at
org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174) at
org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
:222) at
org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
Source)
at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
cher.dispatch(Unknown Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.geotools.xml.Parser.parse(Parser.java:180)
at org.geotools.xml.Parser.parse(Parser.java:158)
at org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
… 19 more
Caused by: java.lang.RuntimeException: Unable to set property: Envelope for
eobject: {http://www.opengis.net/wcs}SpatialSubsetType
at
org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
nding.java:271) at
org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
Binding.java:202) at
org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
java:143) at
org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143) … 35
more
Caused by: java.lang.ClassCastException: The feature 'envelope’s type
‘EnvelopeType’ does not permit a value of type
‘org.geotools.geometry.jts.ReferencedEnvelope’
at
org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
date(EStructuralFeatureImpl.java:2843) at
org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1

  1. at

org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
:94) at
org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
) at
org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
at
org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
nding.java:230) … 38 more

And if I return an EvnelopeType all works well …

any ideas? am I missing something? Do I have to build a geotools converter
or something like that?

Any help kindly appreciated.

Cheers,
Alessio.


Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08


Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it


Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it


Hi Alessio,

It sounds like you found a away around your problem. But a possible third solution:

3. Change the generated class SpatialSubsetType "manually" so that its Envelope property is actually of the type geotools type envelope. I call this "instrumenting" the model.

Then the GML bindings should parse the Envelope, and the reflective EMF bindings should still be able to reflectivley set the property.

-Justin

Alessio Fabiani wrote:

Well, finally I got the solution .... just for knowledge I will briefly share the solution with the community, soon I will update the tutorial that I have written for the EMF model generation, adding the binding implementation also.

A bit of introduction first.

The WCS 1.0.0 schema for the DomainSubset part requires a structure like the following:

    <wcs:domainSubset>
        <wcs:spatialSubset>
            <gml:Envelope srsName="EPSG:32633">
                <gml:pos>347649.93086859107 5176214.082539256</gml:pos>
                <gml:pos>370725.976428591 5196961.352859256</gml:pos>
            </gml:Envelope>
            <gml:Grid dimension="2" srsName="EPSG:4326">
                <gml:limits>
                    <gml:GridEnvelope>
                        <gml:low>0 0</gml:low>
                        <gml:high>545 490</gml:high>
                    </gml:GridEnvelope>
                </gml:limits>
            </gml:Grid>
        </wcs:spatialSubset>
    </wcs:domainSubset>

As you can notice the domainSubset and the spatialSubset nodes belong to the "wcs" namespace, while the Envelope and Grid to the "gml" one instead.
That means that the EnvelopeBinding and GridBinding have to be implemented into some "gt-gml" (just a dummy name) module and the spatialSubsetBinding and domainSubsetBinding have to be implemented into some "gt-wcs" package instead.

At this point we have several ways to do that, but particular attention has to be put on how we implement the WCSConfiguration and GMLConfiguration for both the WCS and GML binding packages (more details later).

Method 1: if you would like the Parser to automatically populate the objects, than you must leave the EnvelopeBinding and the GridBinding respectively return the EMF Objects (EObjects) EnvelopeType and GridType.

Method 2: if you would like to allow the EnvelopeBinding returning for instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse), than you MUST say to the WCS spatialSubsetBinding and to the domainSubsetBinding how to handle such case. You have here several ways too. One would be to write some specific geotools Converters from EnvelopeType to whatelse; another one, easier, would be to manually rewrite te "parse" methods of the spatialSubsetBinding and domainSubsetBinding in order to handle the GeneralEnvelope parsing. The latter is for sure the best path to follow ... but you have to pay particular attention on how you write the WCSConfiguration binding file, infact you have to explicitly register both the spatialSubsetBinding and the domainSubsetBinding implementations as represented below.

        bindings.put(WCS.DomainSubsetType, new DomainSubsetTypeBinding());
        bindings.put(WCS.SpatialSubsetType, new SpatialSubsetTypeBinding());

Cheers,
                Alessio.

On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani <alessio.fabiani@anonymised.com <mailto:alessio.fabiani@anonymised.com>> wrote:

    Hi Gabriel,

    thanks for the response ... I have already inspected this
    possibility, but does not seem to solve the problem ... I also
    tryied several WCSConfiguration and GMLConfiguration combinations
    ... but I got no successful result.
    The only thing I noticed is that the AbstractComplexEMFBinding
    superclass fails on the setProperty method trying to instantiate a
    geotools.util.Converter from the expected EnvelopeType class to
    jts.Envelope (or ReferencedEnvelope) one, since no one exists ...
    the only thing I cannot really figure out is why that works for
    gt-GML3 module and not for mine since they are almost equal !!!

    On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com
    <mailto:groldan@anonymised.com>> wrote:

        I guess if the binding declares it returns
        ReferencedEnvelope.class in
        getType() it should be respected...

        like in class EnvelopeTypeBinding extends
        AbstractComplexTypeBinding{

         public Class getType() {
               return ReferencedEnvelope.class;
           }

        }

        though not sure that is the solution actually...

        Gabriel

        On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:
         > Hi all,
         >
         > I'm trying to create a new binding for the GML EnvelopeType
        as a JTS
         > Envelope, since I couldn't use geotools gml2/3 EMF models due
        to some
         > specific Elements defined only for WCS 1.0.0. <http://1.0.0.>
         > Nevertheless I followed the implementation of the existing
        gt-GML3 module
         > EvnelopeTypeBinding, returning a ReferencedEnvelope object as
        result of the
         > EnvelopeTypeBinding parsing.
         >
         > Now ... all seems working fine until I try to parse a WCS 1.0.0
         > SpatialSubsetType ... here I get an exception like the following:
         >
         > org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml
        request is
         > most probably not compliant to the wcs schema
         > at
        org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
         > at
         >
        org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
         >erTest.java:86) 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:164)
         > at junit.framework.TestCase.runBare(TestCase.java:130)
         > 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:120)
         > at junit.framework.TestSuite.runTest(TestSuite.java:230)
         > at junit.framework.TestSuite.run(TestSuite.java:225)
         > at
         >
        org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
         >TestReference.java:130) at
         >
        org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
         >38) at
         >
        org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
         >unner.java:460) at
         >
        org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
         >unner.java:673) at
         >
        org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
         >.java:386) at
         >
        org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
         >r.java:196) Caused by: java.lang.RuntimeException: Parsing
        failed for
         > spatialSubset: java.lang.RuntimeException: Unable to set
        property: Envelope
         > for eobject: { http://www.opengis.net/wcs\}SpatialSubsetType
        <http://www.opengis.net/wcs}SpatialSubsetType&gt;
         > at
        org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
         > at
         >
        org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
         >lker.java:208) at
         >
        org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174) at
         >
        org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
         >:222) at
         >
        org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
         > at
        org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
         > Source)
         > at
        org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
         > Source)
         > at
         >
        org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
         > Source)
         > at
         >
        org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
         >cher.dispatch(Unknown Source)
         > at
         >
        org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
         > Source)
         > at
        org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         > at
        org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         > at
        org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         > at org.geotools.xml.Parser.parse(Parser.java:180)
         > at org.geotools.xml.Parser.parse(Parser.java:158)
         > at
        org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
         > ... 19 more
         > Caused by: java.lang.RuntimeException: Unable to set
        property: Envelope for
         > eobject: {http://www.opengis.net/wcs\}SpatialSubsetType
        <http://www.opengis.net/wcs}SpatialSubsetType&gt;
         > at
         >
        org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
         >nding.java:271) at
         >
        org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
         >Binding.java:202) at
         >
        org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
         >java:143) at
         >
        org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
        ... 35
         > more
         > Caused by: java.lang.ClassCastException: The feature
        'envelope's type
         > 'EnvelopeType' does not permit a value of type
         > 'org.geotools.geometry.jts.ReferencedEnvelope'
         > at
         >
        org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
         >date(EStructuralFeatureImpl.java:2843) at
         >
        org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1
         >46) at
         >
        org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
         >:94) at
         >
        org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
         >) at
         >
        org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
         >l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
         > at
         >
        org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
         >nding.java:230) ... 38 more
         >
         > And if I return an EvnelopeType all works well ...
         >
         > any ideas? am I missing something? Do I have to build a
        geotools converter
         > or something like that?
         >
         > Any help kindly appreciated.
         >
         > Cheers,
         > Alessio.

        -------------------------------------------------------------------------
        Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
        Studies have shown that voting for your favorite open source
        project,
        along with a healthy diet, reduces your potential for chronic
        lameness
        and boredom. Vote Now at http://www.sourceforge.net/community/cca08
        _______________________________________________
        Geoserver-devel mailing list
        Geoserver-devel@lists.sourceforge.net
        <mailto:Geoserver-devel@lists.sourceforge.net>
        https://lists.sourceforge.net/lists/listinfo/geoserver-devel

    -- -------------------------------------------------------
    Eng. Alessio Fabiani
    Vice-President /CTO GeoSolutions S.A.S.
    Via Carignoni 51
    55041 Camaiore (LU)
    Italy

    phone: +39 0584983027
    fax: +39 0584983027
    mob: +39 349 8227000

    http://www.geo-solutions.it

    -------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

------------------------------------------------------- !DSPAM:4007,487732ef278366491211187!

------------------------------------------------------------------------

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08

!DSPAM:4007,487732ef278366491211187!

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:4007,487732ef278366491211187!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

Cool, that sounds better than the others, I will try that solution now.

Thanks Justin.

On Fri, Jul 11, 2008 at 6:58 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Hi Alessio,

It sounds like you found a away around your problem. But a possible third solution:

  1. Change the generated class SpatialSubsetType “manually” so that its Envelope property is actually of the type geotools type envelope. I call this “instrumenting” the model.

Then the GML bindings should parse the Envelope, and the reflective EMF bindings should still be able to reflectivley set the property.

-Justin

Alessio Fabiani wrote:

Well, finally I got the solution … just for knowledge I will briefly share the solution with the community, soon I will update the tutorial that I have written for the EMF model generation, adding the binding implementation also.

A bit of introduction first.

The WCS 1.0.0 schema for the DomainSubset part requires a structure like the following:

wcs:domainSubset
wcs:spatialSubset
<gml:Envelope srsName=“EPSG:32633”>
gml:pos347649.93086859107 5176214.082539256</gml:pos>
gml:pos370725.976428591 5196961.352859256</gml:pos>
</gml:Envelope>
<gml:Grid dimension=“2” srsName=“EPSG:4326”>
gml:limits
gml:GridEnvelope
gml:low0 0</gml:low>
gml:high545 490</gml:high>
</gml:GridEnvelope>
</gml:limits>
</gml:Grid>
</wcs:spatialSubset>
</wcs:domainSubset>

As you can notice the domainSubset and the spatialSubset nodes belong to the “wcs” namespace, while the Envelope and Grid to the “gml” one instead.
That means that the EnvelopeBinding and GridBinding have to be implemented into some “gt-gml” (just a dummy name) module and the spatialSubsetBinding and domainSubsetBinding have to be implemented into some “gt-wcs” package instead.

At this point we have several ways to do that, but particular attention has to be put on how we implement the WCSConfiguration and GMLConfiguration for both the WCS and GML binding packages (more details later).

Method 1: if you would like the Parser to automatically populate the objects, than you must leave the EnvelopeBinding and the GridBinding respectively return the EMF Objects (EObjects) EnvelopeType and GridType.

Method 2: if you would like to allow the EnvelopeBinding returning for instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse), than you MUST say to the WCS spatialSubsetBinding and to the domainSubsetBinding how to handle such case. You have here several ways too. One would be to write some specific geotools Converters from EnvelopeType to whatelse; another one, easier, would be to manually rewrite te “parse” methods of the spatialSubsetBinding and domainSubsetBinding in order to handle the GeneralEnvelope parsing. The latter is for sure the best path to follow … but you have to pay particular attention on how you write the WCSConfiguration binding file, infact you have to explicitly register both the spatialSubsetBinding and the domainSubsetBinding implementations as represented below.

bindings.put(WCS.DomainSubsetType, new DomainSubsetTypeBinding());
bindings.put(WCS.SpatialSubsetType, new SpatialSubsetTypeBinding());

Cheers,
Alessio.

On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani <alessio.fabiani@anonymised.com mailto:[alessio.fabiani@anonymised.com](mailto:alessio.fabiani@anonymised.com)> wrote:

Hi Gabriel,

thanks for the response … I have already inspected this
possibility, but does not seem to solve the problem … I also
tryied several WCSConfiguration and GMLConfiguration combinations
… but I got no successful result.
The only thing I noticed is that the AbstractComplexEMFBinding
superclass fails on the setProperty method trying to instantiate a
geotools.util.Converter from the expected EnvelopeType class to
jts.Envelope (or ReferencedEnvelope) one, since no one exists …
the only thing I cannot really figure out is why that works for
gt-GML3 module and not for mine since they are almost equal !!!

On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com

mailto:[groldan@anonymised.com](mailto:groldan@anonymised.com)> wrote:

I guess if the binding declares it returns
ReferencedEnvelope.class in
getType() it should be respected…

like in class EnvelopeTypeBinding extends
AbstractComplexTypeBinding{

public Class getType() {
return ReferencedEnvelope.class;
}

}

though not sure that is the solution actually…

Gabriel

On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:

Hi all,

I’m trying to create a new binding for the GML EnvelopeType
as a JTS
Envelope, since I couldn’t use geotools gml2/3 EMF models due
to some

specific Elements defined only for WCS 1.0.0. <http://1.0.0.>

Nevertheless I followed the implementation of the existing
gt-GML3 module
EvnelopeTypeBinding, returning a ReferencedEnvelope object as
result of the
EnvelopeTypeBinding parsing.

Now … all seems working fine until I try to parse a WCS 1.0.0
SpatialSubsetType … here I get an exception like the following:

org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml
request is
most probably not compliant to the wcs schema
at
org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
at

org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars

erTest.java:86) 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:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
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:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at

org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3

TestReference.java:130) at

org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:

  1. at

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR

unner.java:460) at

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR

unner.java:673) at

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner

.java:386) at

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne

r.java:196) Caused by: java.lang.RuntimeException: Parsing
failed for
spatialSubset: java.lang.RuntimeException: Unable to set
property: Envelope
for eobject: { http://www.opengis.net/wcs}SpatialSubsetType

<http://www.opengis.net/wcs%7DSpatialSubsetType>

at
org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
at

org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa

lker.java:208) at

org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174) at

org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java

:222) at

org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)

at
org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
at
org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
Source)
at

org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown

Source)
at

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat

cher.dispatch(Unknown Source)
at

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown

Source)
at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.geotools.xml.Parser.parse(Parser.java:180)
at org.geotools.xml.Parser.parse(Parser.java:158)
at
org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
… 19 more
Caused by: java.lang.RuntimeException: Unable to set
property: Envelope for
eobject: {http://www.opengis.net/wcs}SpatialSubsetType

<http://www.opengis.net/wcs%7DSpatialSubsetType>

at

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi

nding.java:271) at

org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF

Binding.java:202) at

org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.

java:143) at

org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
… 35

more
Caused by: java.lang.ClassCastException: The feature
'envelope’s type
‘EnvelopeType’ does not permit a value of type
‘org.geotools.geometry.jts.ReferencedEnvelope’
at

org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali

date(EStructuralFeatureImpl.java:2843) at

org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1

  1. at

org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java

:94) at

org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253

) at

org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti

l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
at

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi

nding.java:230) … 38 more

And if I return an EvnelopeType all works well …

any ideas? am I missing something? Do I have to build a
geotools converter
or something like that?

Any help kindly appreciated.

Cheers,
Alessio.


Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source
project,
along with a healthy diet, reduces your potential for chronic
lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08


Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net

mailto:[Geoserver-devel@anonymised.comt](mailto:Geoserver-devel@anonymised.comsts.sourceforge.net)

https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it


Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

------------------------------------------------------- !DSPAM:4007,487732ef278366491211187!



Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08

!DSPAM:4007,487732ef278366491211187!



Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:4007,487732ef278366491211187!


Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it


Hi Justin,

sorry to bother you again ... I tryied your solution, but I cannot
figure out how can be applied to this specific case. Let me better
describe the problem, the WCS 1.0.0 wcs:spatialSubset does not exactly
need just one gml:Envelope, but an unbounded set of gml:Envelopes ...
so the property of wcs:spatialSubset is an EList ... how this case can
be handled, and morover where is in GeoTools the source code of GML2
and GML3 EMF model? I can see just the bindings!

Thanks for any help,
                                 Alessio.

On Fri, Jul 11, 2008 at 7:01 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Cool, that sounds better than the others, I will try that solution now.

Thanks Justin.

On Fri, Jul 11, 2008 at 6:58 PM, Justin Deoliveira <jdeolive@anonymised.com>
wrote:

Hi Alessio,

It sounds like you found a away around your problem. But a possible third
solution:

3. Change the generated class SpatialSubsetType "manually" so that its
Envelope property is actually of the type geotools type envelope. I call
this "instrumenting" the model.

Then the GML bindings should parse the Envelope, and the reflective EMF
bindings should still be able to reflectivley set the property.

-Justin

Alessio Fabiani wrote:

Well, finally I got the solution .... just for knowledge I will briefly
share the solution with the community, soon I will update the tutorial that
I have written for the EMF model generation, adding the binding
implementation also.

A bit of introduction first.

The WCS 1.0.0 schema for the DomainSubset part requires a structure like
the following:

   <wcs:domainSubset>
       <wcs:spatialSubset>
           <gml:Envelope srsName="EPSG:32633">
               <gml:pos>347649.93086859107 5176214.082539256</gml:pos>
               <gml:pos>370725.976428591 5196961.352859256</gml:pos>
           </gml:Envelope>
           <gml:Grid dimension="2" srsName="EPSG:4326">
               <gml:limits>
                   <gml:GridEnvelope>
                       <gml:low>0 0</gml:low>
                       <gml:high>545 490</gml:high>
                   </gml:GridEnvelope>
               </gml:limits>
           </gml:Grid>
       </wcs:spatialSubset>
   </wcs:domainSubset>

As you can notice the domainSubset and the spatialSubset nodes belong to
the "wcs" namespace, while the Envelope and Grid to the "gml" one instead.
That means that the EnvelopeBinding and GridBinding have to be
implemented into some "gt-gml" (just a dummy name) module and the
spatialSubsetBinding and domainSubsetBinding have to be implemented into
some "gt-wcs" package instead.

At this point we have several ways to do that, but particular attention
has to be put on how we implement the WCSConfiguration and GMLConfiguration
for both the WCS and GML binding packages (more details later).

Method 1: if you would like the Parser to automatically populate the
objects, than you must leave the EnvelopeBinding and the GridBinding
respectively return the EMF Objects (EObjects) EnvelopeType and GridType.

Method 2: if you would like to allow the EnvelopeBinding returning for
instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse), than
you MUST say to the WCS spatialSubsetBinding and to the domainSubsetBinding
how to handle such case. You have here several ways too. One would be to
write some specific geotools Converters from EnvelopeType to whatelse;
another one, easier, would be to manually rewrite te "parse" methods of the
spatialSubsetBinding and domainSubsetBinding in order to handle the
GeneralEnvelope parsing. The latter is for sure the best path to follow ...
but you have to pay particular attention on how you write the
WCSConfiguration binding file, infact you have to explicitly register both
the spatialSubsetBinding and the domainSubsetBinding implementations as
represented below.

       bindings.put(WCS.DomainSubsetType, new DomainSubsetTypeBinding());
       bindings.put(WCS.SpatialSubsetType, new
SpatialSubsetTypeBinding());

Cheers,
               Alessio.

On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com <mailto:alessio.fabiani@anonymised.com>> wrote:

   Hi Gabriel,

   thanks for the response ... I have already inspected this
   possibility, but does not seem to solve the problem ... I also
   tryied several WCSConfiguration and GMLConfiguration combinations
   ... but I got no successful result.
   The only thing I noticed is that the AbstractComplexEMFBinding
   superclass fails on the setProperty method trying to instantiate a
   geotools.util.Converter from the expected EnvelopeType class to
   jts.Envelope (or ReferencedEnvelope) one, since no one exists ...
   the only thing I cannot really figure out is why that works for
   gt-GML3 module and not for mine since they are almost equal !!!

   On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com
   <mailto:groldan@anonymised.com>> wrote:

       I guess if the binding declares it returns
       ReferencedEnvelope.class in
       getType() it should be respected...

       like in class EnvelopeTypeBinding extends
       AbstractComplexTypeBinding{

        public Class getType() {
              return ReferencedEnvelope.class;
          }

       }

       though not sure that is the solution actually...

       Gabriel

       On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:
        > Hi all,
        >
        > I'm trying to create a new binding for the GML EnvelopeType
       as a JTS
        > Envelope, since I couldn't use geotools gml2/3 EMF models due
       to some
        > specific Elements defined only for WCS 1.0.0. <http://1.0.0.>
        > Nevertheless I followed the implementation of the existing
       gt-GML3 module
        > EvnelopeTypeBinding, returning a ReferencedEnvelope object as
       result of the
        > EnvelopeTypeBinding parsing.
        >
        > Now ... all seems working fine until I try to parse a WCS 1.0.0
        > SpatialSubsetType ... here I get an exception like the
following:
        >
        > org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml
       request is
        > most probably not compliant to the wcs schema
        > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
        > at
        >

org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
        >erTest.java:86) 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:164)
        > at junit.framework.TestCase.runBare(TestCase.java:130)
        > 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:120)
        > at junit.framework.TestSuite.runTest(TestSuite.java:230)
        > at junit.framework.TestSuite.run(TestSuite.java:225)
        > at
        >

org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
        >TestReference.java:130) at
        >

org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
        >38) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
        >unner.java:460) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
        >unner.java:673) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
        >.java:386) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
        >r.java:196) Caused by: java.lang.RuntimeException: Parsing
       failed for
        > spatialSubset: java.lang.RuntimeException: Unable to set
       property: Envelope
        > for eobject: { http://www.opengis.net/wcs\}SpatialSubsetType
       <http://www.opengis.net/wcs}SpatialSubsetType&gt;
        > at
       org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
        > at
        >

org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
        >lker.java:208) at
        >
       org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174)
at
        >

org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
        >:222) at
        >

org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
        > at
       org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
        > Source)
        > at
       org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
        > Source)
        > at
        >

org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
        > Source)
        > at
        >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
        >cher.dispatch(Unknown Source)
        > at
        >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
        > Source)
        > at
       org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        > at
       org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        > at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
        > at
       org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        > at org.geotools.xml.Parser.parse(Parser.java:180)
        > at org.geotools.xml.Parser.parse(Parser.java:158)
        > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
        > ... 19 more
        > Caused by: java.lang.RuntimeException: Unable to set
       property: Envelope for
        > eobject: {http://www.opengis.net/wcs\}SpatialSubsetType
       <http://www.opengis.net/wcs}SpatialSubsetType&gt;
        > at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
        >nding.java:271) at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
        >Binding.java:202) at
        >

org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
        >java:143) at
        >
       org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
       ... 35
        > more
        > Caused by: java.lang.ClassCastException: The feature
       'envelope's type
        > 'EnvelopeType' does not permit a value of type
        > 'org.geotools.geometry.jts.ReferencedEnvelope'
        > at
        >

org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
        >date(EStructuralFeatureImpl.java:2843) at
        >

org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1
        >46) at
        >

org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
        >:94) at
        >

org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
        >) at
        >

org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
        >l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
        > at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
        >nding.java:230) ... 38 more
        >
        > And if I return an EvnelopeType all works well ...
        >
        > any ideas? am I missing something? Do I have to build a
       geotools converter
        > or something like that?
        >
        > Any help kindly appreciated.
        >
        > Cheers,
        > Alessio.

-------------------------------------------------------------------------
       Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
       Studies have shown that voting for your favorite open source
       project,
       along with a healthy diet, reduces your potential for chronic
       lameness
       and boredom. Vote Now at
http://www.sourceforge.net/community/cca08
       _______________________________________________
       Geoserver-devel mailing list
       Geoserver-devel@lists.sourceforge.net
       <mailto:Geoserver-devel@lists.sourceforge.net>
       https://lists.sourceforge.net/lists/listinfo/geoserver-devel

   -- -------------------------------------------------------
   Eng. Alessio Fabiani
   Vice-President /CTO GeoSolutions S.A.S.
   Via Carignoni 51
   55041 Camaiore (LU)
   Italy

   phone: +39 0584983027
   fax: +39 0584983027
   mob: +39 349 8227000

   http://www.geo-solutions.it

   -------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------
!DSPAM:4007,487732ef278366491211187!

------------------------------------------------------------------------

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08

!DSPAM:4007,487732ef278366491211187!

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:4007,487732ef278366491211187!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

Justin, it's me again ... I found a workaround forcing the return type
of wcs:spatialSubset from EList to List and manually modifying both
the intrafece and the implementation, but I don't know if is the
correct way to do that, what do you think about?

On Mon, Jul 14, 2008 at 10:04 AM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Hi Justin,

sorry to bother you again ... I tryied your solution, but I cannot
figure out how can be applied to this specific case. Let me better
describe the problem, the WCS 1.0.0 wcs:spatialSubset does not exactly
need just one gml:Envelope, but an unbounded set of gml:Envelopes ...
so the property of wcs:spatialSubset is an EList ... how this case can
be handled, and morover where is in GeoTools the source code of GML2
and GML3 EMF model? I can see just the bindings!

Thanks for any help,
                                Alessio.

On Fri, Jul 11, 2008 at 7:01 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Cool, that sounds better than the others, I will try that solution now.

Thanks Justin.

On Fri, Jul 11, 2008 at 6:58 PM, Justin Deoliveira <jdeolive@anonymised.com>
wrote:

Hi Alessio,

It sounds like you found a away around your problem. But a possible third
solution:

3. Change the generated class SpatialSubsetType "manually" so that its
Envelope property is actually of the type geotools type envelope. I call
this "instrumenting" the model.

Then the GML bindings should parse the Envelope, and the reflective EMF
bindings should still be able to reflectivley set the property.

-Justin

Alessio Fabiani wrote:

Well, finally I got the solution .... just for knowledge I will briefly
share the solution with the community, soon I will update the tutorial that
I have written for the EMF model generation, adding the binding
implementation also.

A bit of introduction first.

The WCS 1.0.0 schema for the DomainSubset part requires a structure like
the following:

   <wcs:domainSubset>
       <wcs:spatialSubset>
           <gml:Envelope srsName="EPSG:32633">
               <gml:pos>347649.93086859107 5176214.082539256</gml:pos>
               <gml:pos>370725.976428591 5196961.352859256</gml:pos>
           </gml:Envelope>
           <gml:Grid dimension="2" srsName="EPSG:4326">
               <gml:limits>
                   <gml:GridEnvelope>
                       <gml:low>0 0</gml:low>
                       <gml:high>545 490</gml:high>
                   </gml:GridEnvelope>
               </gml:limits>
           </gml:Grid>
       </wcs:spatialSubset>
   </wcs:domainSubset>

As you can notice the domainSubset and the spatialSubset nodes belong to
the "wcs" namespace, while the Envelope and Grid to the "gml" one instead.
That means that the EnvelopeBinding and GridBinding have to be
implemented into some "gt-gml" (just a dummy name) module and the
spatialSubsetBinding and domainSubsetBinding have to be implemented into
some "gt-wcs" package instead.

At this point we have several ways to do that, but particular attention
has to be put on how we implement the WCSConfiguration and GMLConfiguration
for both the WCS and GML binding packages (more details later).

Method 1: if you would like the Parser to automatically populate the
objects, than you must leave the EnvelopeBinding and the GridBinding
respectively return the EMF Objects (EObjects) EnvelopeType and GridType.

Method 2: if you would like to allow the EnvelopeBinding returning for
instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse), than
you MUST say to the WCS spatialSubsetBinding and to the domainSubsetBinding
how to handle such case. You have here several ways too. One would be to
write some specific geotools Converters from EnvelopeType to whatelse;
another one, easier, would be to manually rewrite te "parse" methods of the
spatialSubsetBinding and domainSubsetBinding in order to handle the
GeneralEnvelope parsing. The latter is for sure the best path to follow ...
but you have to pay particular attention on how you write the
WCSConfiguration binding file, infact you have to explicitly register both
the spatialSubsetBinding and the domainSubsetBinding implementations as
represented below.

       bindings.put(WCS.DomainSubsetType, new DomainSubsetTypeBinding());
       bindings.put(WCS.SpatialSubsetType, new
SpatialSubsetTypeBinding());

Cheers,
               Alessio.

On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com <mailto:alessio.fabiani@anonymised.com>> wrote:

   Hi Gabriel,

   thanks for the response ... I have already inspected this
   possibility, but does not seem to solve the problem ... I also
   tryied several WCSConfiguration and GMLConfiguration combinations
   ... but I got no successful result.
   The only thing I noticed is that the AbstractComplexEMFBinding
   superclass fails on the setProperty method trying to instantiate a
   geotools.util.Converter from the expected EnvelopeType class to
   jts.Envelope (or ReferencedEnvelope) one, since no one exists ...
   the only thing I cannot really figure out is why that works for
   gt-GML3 module and not for mine since they are almost equal !!!

   On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com..
   <mailto:groldan@anonymised.com>> wrote:

       I guess if the binding declares it returns
       ReferencedEnvelope.class in
       getType() it should be respected...

       like in class EnvelopeTypeBinding extends
       AbstractComplexTypeBinding{

        public Class getType() {
              return ReferencedEnvelope.class;
          }

       }

       though not sure that is the solution actually...

       Gabriel

       On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:
        > Hi all,
        >
        > I'm trying to create a new binding for the GML EnvelopeType
       as a JTS
        > Envelope, since I couldn't use geotools gml2/3 EMF models due
       to some
        > specific Elements defined only for WCS 1.0.0. <http://1.0.0.>
        > Nevertheless I followed the implementation of the existing
       gt-GML3 module
        > EvnelopeTypeBinding, returning a ReferencedEnvelope object as
       result of the
        > EnvelopeTypeBinding parsing.
        >
        > Now ... all seems working fine until I try to parse a WCS 1.0.0
        > SpatialSubsetType ... here I get an exception like the
following:
        >
        > org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml
       request is
        > most probably not compliant to the wcs schema
        > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
        > at
        >

org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
        >erTest.java:86) 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:164)
        > at junit.framework.TestCase.runBare(TestCase.java:130)
        > 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:120)
        > at junit.framework.TestSuite.runTest(TestSuite.java:230)
        > at junit.framework.TestSuite.run(TestSuite.java:225)
        > at
        >

org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
        >TestReference.java:130) at
        >

org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
        >38) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
        >unner.java:460) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
        >unner.java:673) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
        >.java:386) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
        >r.java:196) Caused by: java.lang.RuntimeException: Parsing
       failed for
        > spatialSubset: java.lang.RuntimeException: Unable to set
       property: Envelope
        > for eobject: { http://www.opengis.net/wcs\}SpatialSubsetType
       <http://www.opengis.net/wcs}SpatialSubsetType&gt;
        > at
       org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
        > at
        >

org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
        >lker.java:208) at
        >
       org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174)
at
        >

org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
        >:222) at
        >

org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
        > at
       org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
        > Source)
        > at
       org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
        > Source)
        > at
        >

org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
        > Source)
        > at
        >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
        >cher.dispatch(Unknown Source)
        > at
        >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
        > Source)
        > at
       org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        > at
       org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        > at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
        > at
       org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        > at org.geotools.xml.Parser.parse(Parser.java:180)
        > at org.geotools.xml.Parser.parse(Parser.java:158)
        > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
        > ... 19 more
        > Caused by: java.lang.RuntimeException: Unable to set
       property: Envelope for
        > eobject: {http://www.opengis.net/wcs\}SpatialSubsetType
       <http://www.opengis.net/wcs}SpatialSubsetType&gt;
        > at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
        >nding.java:271) at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
        >Binding.java:202) at
        >

org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
        >java:143) at
        >
       org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
       ... 35
        > more
        > Caused by: java.lang.ClassCastException: The feature
       'envelope's type
        > 'EnvelopeType' does not permit a value of type
        > 'org.geotools.geometry.jts.ReferencedEnvelope'
        > at
        >

org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
        >date(EStructuralFeatureImpl.java:2843) at
        >

org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1
        >46) at
        >

org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
        >:94) at
        >

org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
        >) at
        >

org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
        >l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
        > at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
        >nding.java:230) ... 38 more
        >
        > And if I return an EvnelopeType all works well ...
        >
        > any ideas? am I missing something? Do I have to build a
       geotools converter
        > or something like that?
        >
        > Any help kindly appreciated.
        >
        > Cheers,
        > Alessio.

-------------------------------------------------------------------------
       Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
       Studies have shown that voting for your favorite open source
       project,
       along with a healthy diet, reduces your potential for chronic
       lameness
       and boredom. Vote Now at
http://www.sourceforge.net/community/cca08
       _______________________________________________
       Geoserver-devel mailing list
       Geoserver-devel@lists.sourceforge.net
       <mailto:Geoserver-devel@lists.sourceforge.net>
       https://lists.sourceforge.net/lists/listinfo/geoserver-devel

   -- -------------------------------------------------------
   Eng. Alessio Fabiani
   Vice-President /CTO GeoSolutions S.A.S.
   Via Carignoni 51
   55041 Camaiore (LU)
   Italy

   phone: +39 0584983027
   fax: +39 0584983027
   mob: +39 349 8227000

   http://www.geo-solutions.it

   -------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------
!DSPAM:4007,487732ef278366491211187!

------------------------------------------------------------------------

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08

!DSPAM:4007,487732ef278366491211187!

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:4007,487732ef278366491211187!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

Hi Alessio,

So in this case the suggestion would then be to modify the list (via annotation) as to teh type of object inside of it. This could be done with something like this:

@model type="org.geotools.geometry.GeneralEnvelope"
EList getSpatialSubset()

So the deal is that there is actually no EMF model generated for GML. The reason being that geotools already has objects which represent many of the entities in gml like Feature, FeatureCollection, Envelope, etc...

So the strategy used for emf models which referenced GML (like WFS) was to just re-instrument the model in cases where GML elements and types are referenced.

Does that make sense?

We could go ahead and generate a EMF model for GML... It might save time in things like this. However for WFS it does not make sense since the reference was feature... and anything coming out of EMF would have to be adapted. For things like envelopes it might make more sense since its a much simpler data structure.

Alessio Fabiani wrote:

Hi Justin,

sorry to bother you again ... I tryied your solution, but I cannot
figure out how can be applied to this specific case. Let me better
describe the problem, the WCS 1.0.0 wcs:spatialSubset does not exactly
need just one gml:Envelope, but an unbounded set of gml:Envelopes ...
so the property of wcs:spatialSubset is an EList ... how this case can
be handled, and morover where is in GeoTools the source code of GML2
and GML3 EMF model? I can see just the bindings!

Thanks for any help,
                                 Alessio.

On Fri, Jul 11, 2008 at 7:01 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Cool, that sounds better than the others, I will try that solution now.

Thanks Justin.

On Fri, Jul 11, 2008 at 6:58 PM, Justin Deoliveira <jdeolive@anonymised.com>
wrote:

Hi Alessio,

It sounds like you found a away around your problem. But a possible third
solution:

3. Change the generated class SpatialSubsetType "manually" so that its
Envelope property is actually of the type geotools type envelope. I call
this "instrumenting" the model.

Then the GML bindings should parse the Envelope, and the reflective EMF
bindings should still be able to reflectivley set the property.

-Justin

Alessio Fabiani wrote:

Well, finally I got the solution .... just for knowledge I will briefly
share the solution with the community, soon I will update the tutorial that
I have written for the EMF model generation, adding the binding
implementation also.

A bit of introduction first.

The WCS 1.0.0 schema for the DomainSubset part requires a structure like
the following:

   <wcs:domainSubset>
       <wcs:spatialSubset>
           <gml:Envelope srsName="EPSG:32633">
               <gml:pos>347649.93086859107 5176214.082539256</gml:pos>
               <gml:pos>370725.976428591 5196961.352859256</gml:pos>
           </gml:Envelope>
           <gml:Grid dimension="2" srsName="EPSG:4326">
               <gml:limits>
                   <gml:GridEnvelope>
                       <gml:low>0 0</gml:low>
                       <gml:high>545 490</gml:high>
                   </gml:GridEnvelope>
               </gml:limits>
           </gml:Grid>
       </wcs:spatialSubset>
   </wcs:domainSubset>

As you can notice the domainSubset and the spatialSubset nodes belong to
the "wcs" namespace, while the Envelope and Grid to the "gml" one instead.
That means that the EnvelopeBinding and GridBinding have to be
implemented into some "gt-gml" (just a dummy name) module and the
spatialSubsetBinding and domainSubsetBinding have to be implemented into
some "gt-wcs" package instead.

At this point we have several ways to do that, but particular attention
has to be put on how we implement the WCSConfiguration and GMLConfiguration
for both the WCS and GML binding packages (more details later).

Method 1: if you would like the Parser to automatically populate the
objects, than you must leave the EnvelopeBinding and the GridBinding
respectively return the EMF Objects (EObjects) EnvelopeType and GridType.

Method 2: if you would like to allow the EnvelopeBinding returning for
instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse), than
you MUST say to the WCS spatialSubsetBinding and to the domainSubsetBinding
how to handle such case. You have here several ways too. One would be to
write some specific geotools Converters from EnvelopeType to whatelse;
another one, easier, would be to manually rewrite te "parse" methods of the
spatialSubsetBinding and domainSubsetBinding in order to handle the
GeneralEnvelope parsing. The latter is for sure the best path to follow ...
but you have to pay particular attention on how you write the
WCSConfiguration binding file, infact you have to explicitly register both
the spatialSubsetBinding and the domainSubsetBinding implementations as
represented below.

       bindings.put(WCS.DomainSubsetType, new DomainSubsetTypeBinding());
       bindings.put(WCS.SpatialSubsetType, new
SpatialSubsetTypeBinding());

Cheers,
               Alessio.

On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com <mailto:alessio.fabiani@anonymised.com>> wrote:

   Hi Gabriel,

   thanks for the response ... I have already inspected this
   possibility, but does not seem to solve the problem ... I also
   tryied several WCSConfiguration and GMLConfiguration combinations
   ... but I got no successful result.
   The only thing I noticed is that the AbstractComplexEMFBinding
   superclass fails on the setProperty method trying to instantiate a
   geotools.util.Converter from the expected EnvelopeType class to
   jts.Envelope (or ReferencedEnvelope) one, since no one exists ...
   the only thing I cannot really figure out is why that works for
   gt-GML3 module and not for mine since they are almost equal !!!

   On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com
   <mailto:groldan@anonymised.com>> wrote:

       I guess if the binding declares it returns
       ReferencedEnvelope.class in
       getType() it should be respected...

       like in class EnvelopeTypeBinding extends
       AbstractComplexTypeBinding{

        public Class getType() {
              return ReferencedEnvelope.class;
          }

       }

       though not sure that is the solution actually...

       Gabriel

       On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:
        > Hi all,
        >
        > I'm trying to create a new binding for the GML EnvelopeType
       as a JTS
        > Envelope, since I couldn't use geotools gml2/3 EMF models due
       to some
        > specific Elements defined only for WCS 1.0.0. <http://1.0.0.>
        > Nevertheless I followed the implementation of the existing
       gt-GML3 module
        > EvnelopeTypeBinding, returning a ReferencedEnvelope object as
       result of the
        > EnvelopeTypeBinding parsing.
        >
        > Now ... all seems working fine until I try to parse a WCS 1.0.0
        > SpatialSubsetType ... here I get an exception like the
following:
        >
        > org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml
       request is
        > most probably not compliant to the wcs schema
        > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
        > at
        >

org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
        >erTest.java:86) 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:164)
        > at junit.framework.TestCase.runBare(TestCase.java:130)
        > 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:120)
        > at junit.framework.TestSuite.runTest(TestSuite.java:230)
        > at junit.framework.TestSuite.run(TestSuite.java:225)
        > at
        >

org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
        >TestReference.java:130) at
        >

org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
        >38) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
        >unner.java:460) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
        >unner.java:673) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
        >.java:386) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
        >r.java:196) Caused by: java.lang.RuntimeException: Parsing
       failed for
        > spatialSubset: java.lang.RuntimeException: Unable to set
       property: Envelope
        > for eobject: { http://www.opengis.net/wcs\}SpatialSubsetType
       <http://www.opengis.net/wcs}SpatialSubsetType&gt;
        > at
       org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
        > at
        >

org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
        >lker.java:208) at
        >
       org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174)
at
        >

org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
        >:222) at
        >

org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
        > at
       org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
        > Source)
        > at
       org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
        > Source)
        > at
        >

org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
        > Source)
        > at
        >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
        >cher.dispatch(Unknown Source)
        > at
        >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
        > Source)
        > at
       org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        > at
       org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        > at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
        > at
       org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        > at org.geotools.xml.Parser.parse(Parser.java:180)
        > at org.geotools.xml.Parser.parse(Parser.java:158)
        > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
        > ... 19 more
        > Caused by: java.lang.RuntimeException: Unable to set
       property: Envelope for
        > eobject: {http://www.opengis.net/wcs\}SpatialSubsetType
       <http://www.opengis.net/wcs}SpatialSubsetType&gt;
        > at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
        >nding.java:271) at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
        >Binding.java:202) at
        >

org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
        >java:143) at
        >
       org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
       ... 35
        > more
        > Caused by: java.lang.ClassCastException: The feature
       'envelope's type
        > 'EnvelopeType' does not permit a value of type
        > 'org.geotools.geometry.jts.ReferencedEnvelope'
        > at
        >

org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
        >date(EStructuralFeatureImpl.java:2843) at
        >

org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1
        >46) at
        >

org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
        >:94) at
        >

org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
        >) at
        >

org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
        >l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
        > at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
        >nding.java:230) ... 38 more
        >
        > And if I return an EvnelopeType all works well ...
        >
        > any ideas? am I missing something? Do I have to build a
       geotools converter
        > or something like that?
        >
        > Any help kindly appreciated.
        >
        > Cheers,
        > Alessio.

-------------------------------------------------------------------------
       Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
       Studies have shown that voting for your favorite open source
       project,
       along with a healthy diet, reduces your potential for chronic
       lameness
       and boredom. Vote Now at
http://www.sourceforge.net/community/cca08
       _______________________________________________
       Geoserver-devel mailing list
       Geoserver-devel@lists.sourceforge.net
       <mailto:Geoserver-devel@lists.sourceforge.net>
       https://lists.sourceforge.net/lists/listinfo/geoserver-devel

   -- -------------------------------------------------------
   Eng. Alessio Fabiani
   Vice-President /CTO GeoSolutions S.A.S.
   Via Carignoni 51
   55041 Camaiore (LU)
   Italy

   phone: +39 0584983027
   fax: +39 0584983027
   mob: +39 349 8227000

   http://www.geo-solutions.it

   -------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

------------------------------------------------------------------------

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08

!DSPAM:4007,487732ef278366491211187!

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:4007,487732ef278366491211187!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

Its definitely valid. To make it perminent however I think you might want to do the following:

* remove the @model annotation from the interface method
* remove all the @generated annoitation from the implementation method

That way the code generator will ignore (and not kill) any of the changed methods.

Did you try changing the "type" annotation as per my previous email?

Alessio Fabiani wrote:

Justin, it's me again ... I found a workaround forcing the return type
of wcs:spatialSubset from EList to List and manually modifying both
the intrafece and the implementation, but I don't know if is the
correct way to do that, what do you think about?

On Mon, Jul 14, 2008 at 10:04 AM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Hi Justin,

sorry to bother you again ... I tryied your solution, but I cannot
figure out how can be applied to this specific case. Let me better
describe the problem, the WCS 1.0.0 wcs:spatialSubset does not exactly
need just one gml:Envelope, but an unbounded set of gml:Envelopes ...
so the property of wcs:spatialSubset is an EList ... how this case can
be handled, and morover where is in GeoTools the source code of GML2
and GML3 EMF model? I can see just the bindings!

Thanks for any help,
                                Alessio.

On Fri, Jul 11, 2008 at 7:01 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Cool, that sounds better than the others, I will try that solution now.

Thanks Justin.

On Fri, Jul 11, 2008 at 6:58 PM, Justin Deoliveira <jdeolive@anonymised.com>
wrote:

Hi Alessio,

It sounds like you found a away around your problem. But a possible third
solution:

3. Change the generated class SpatialSubsetType "manually" so that its
Envelope property is actually of the type geotools type envelope. I call
this "instrumenting" the model.

Then the GML bindings should parse the Envelope, and the reflective EMF
bindings should still be able to reflectivley set the property.

-Justin

Alessio Fabiani wrote:

Well, finally I got the solution .... just for knowledge I will briefly
share the solution with the community, soon I will update the tutorial that
I have written for the EMF model generation, adding the binding
implementation also.

A bit of introduction first.

The WCS 1.0.0 schema for the DomainSubset part requires a structure like
the following:

   <wcs:domainSubset>
       <wcs:spatialSubset>
           <gml:Envelope srsName="EPSG:32633">
               <gml:pos>347649.93086859107 5176214.082539256</gml:pos>
               <gml:pos>370725.976428591 5196961.352859256</gml:pos>
           </gml:Envelope>
           <gml:Grid dimension="2" srsName="EPSG:4326">
               <gml:limits>
                   <gml:GridEnvelope>
                       <gml:low>0 0</gml:low>
                       <gml:high>545 490</gml:high>
                   </gml:GridEnvelope>
               </gml:limits>
           </gml:Grid>
       </wcs:spatialSubset>
   </wcs:domainSubset>

As you can notice the domainSubset and the spatialSubset nodes belong to
the "wcs" namespace, while the Envelope and Grid to the "gml" one instead.
That means that the EnvelopeBinding and GridBinding have to be
implemented into some "gt-gml" (just a dummy name) module and the
spatialSubsetBinding and domainSubsetBinding have to be implemented into
some "gt-wcs" package instead.

At this point we have several ways to do that, but particular attention
has to be put on how we implement the WCSConfiguration and GMLConfiguration
for both the WCS and GML binding packages (more details later).

Method 1: if you would like the Parser to automatically populate the
objects, than you must leave the EnvelopeBinding and the GridBinding
respectively return the EMF Objects (EObjects) EnvelopeType and GridType.

Method 2: if you would like to allow the EnvelopeBinding returning for
instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse), than
you MUST say to the WCS spatialSubsetBinding and to the domainSubsetBinding
how to handle such case. You have here several ways too. One would be to
write some specific geotools Converters from EnvelopeType to whatelse;
another one, easier, would be to manually rewrite te "parse" methods of the
spatialSubsetBinding and domainSubsetBinding in order to handle the
GeneralEnvelope parsing. The latter is for sure the best path to follow ...
but you have to pay particular attention on how you write the
WCSConfiguration binding file, infact you have to explicitly register both
the spatialSubsetBinding and the domainSubsetBinding implementations as
represented below.

       bindings.put(WCS.DomainSubsetType, new DomainSubsetTypeBinding());
       bindings.put(WCS.SpatialSubsetType, new
SpatialSubsetTypeBinding());

Cheers,
               Alessio.

On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com <mailto:alessio.fabiani@anonymised.com>> wrote:

   Hi Gabriel,

   thanks for the response ... I have already inspected this
   possibility, but does not seem to solve the problem ... I also
   tryied several WCSConfiguration and GMLConfiguration combinations
   ... but I got no successful result.
   The only thing I noticed is that the AbstractComplexEMFBinding
   superclass fails on the setProperty method trying to instantiate a
   geotools.util.Converter from the expected EnvelopeType class to
   jts.Envelope (or ReferencedEnvelope) one, since no one exists ...
   the only thing I cannot really figure out is why that works for
   gt-GML3 module and not for mine since they are almost equal !!!

   On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com
   <mailto:groldan@anonymised.com>> wrote:

       I guess if the binding declares it returns
       ReferencedEnvelope.class in
       getType() it should be respected...

       like in class EnvelopeTypeBinding extends
       AbstractComplexTypeBinding{

        public Class getType() {
              return ReferencedEnvelope.class;
          }

       }

       though not sure that is the solution actually...

       Gabriel

       On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:
        > Hi all,
        >
        > I'm trying to create a new binding for the GML EnvelopeType
       as a JTS
        > Envelope, since I couldn't use geotools gml2/3 EMF models due
       to some
        > specific Elements defined only for WCS 1.0.0. <http://1.0.0.>
        > Nevertheless I followed the implementation of the existing
       gt-GML3 module
        > EvnelopeTypeBinding, returning a ReferencedEnvelope object as
       result of the
        > EnvelopeTypeBinding parsing.
        >
        > Now ... all seems working fine until I try to parse a WCS 1.0.0
        > SpatialSubsetType ... here I get an exception like the
following:
        >
        > org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml
       request is
        > most probably not compliant to the wcs schema
        > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
        > at
        >

org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
        >erTest.java:86) 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:164)
        > at junit.framework.TestCase.runBare(TestCase.java:130)
        > 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:120)
        > at junit.framework.TestSuite.runTest(TestSuite.java:230)
        > at junit.framework.TestSuite.run(TestSuite.java:225)
        > at
        >

org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
        >TestReference.java:130) at
        >

org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
        >38) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
        >unner.java:460) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
        >unner.java:673) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
        >.java:386) at
        >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
        >r.java:196) Caused by: java.lang.RuntimeException: Parsing
       failed for
        > spatialSubset: java.lang.RuntimeException: Unable to set
       property: Envelope
        > for eobject: { http://www.opengis.net/wcs\}SpatialSubsetType
       <http://www.opengis.net/wcs}SpatialSubsetType&gt;
        > at
       org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
        > at
        >

org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
        >lker.java:208) at
        >
       org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174)
at
        >

org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
        >:222) at
        >

org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
        > at
       org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
        > Source)
        > at
       org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
        > Source)
        > at
        >

org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
        > Source)
        > at
        >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
        >cher.dispatch(Unknown Source)
        > at
        >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
        > Source)
        > at
       org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        > at
       org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        > at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
        > at
       org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        > at org.geotools.xml.Parser.parse(Parser.java:180)
        > at org.geotools.xml.Parser.parse(Parser.java:158)
        > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
        > ... 19 more
        > Caused by: java.lang.RuntimeException: Unable to set
       property: Envelope for
        > eobject: {http://www.opengis.net/wcs\}SpatialSubsetType
       <http://www.opengis.net/wcs}SpatialSubsetType&gt;
        > at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
        >nding.java:271) at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
        >Binding.java:202) at
        >

org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
        >java:143) at
        >
       org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
       ... 35
        > more
        > Caused by: java.lang.ClassCastException: The feature
       'envelope's type
        > 'EnvelopeType' does not permit a value of type
        > 'org.geotools.geometry.jts.ReferencedEnvelope'
        > at
        >

org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
        >date(EStructuralFeatureImpl.java:2843) at
        >

org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1
        >46) at
        >

org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
        >:94) at
        >

org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
        >) at
        >

org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
        >l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
        > at
        >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
        >nding.java:230) ... 38 more
        >
        > And if I return an EvnelopeType all works well ...
        >
        > any ideas? am I missing something? Do I have to build a
       geotools converter
        > or something like that?
        >
        > Any help kindly appreciated.
        >
        > Cheers,
        > Alessio.

-------------------------------------------------------------------------
       Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
       Studies have shown that voting for your favorite open source
       project,
       along with a healthy diet, reduces your potential for chronic
       lameness
       and boredom. Vote Now at
http://www.sourceforge.net/community/cca08
       _______________________________________________
       Geoserver-devel mailing list
       Geoserver-devel@lists.sourceforge.net
       <mailto:Geoserver-devel@lists.sourceforge.net>
       https://lists.sourceforge.net/lists/listinfo/geoserver-devel

   -- -------------------------------------------------------
   Eng. Alessio Fabiani
   Vice-President /CTO GeoSolutions S.A.S.
   Via Carignoni 51
   55041 Camaiore (LU)
   Italy

   phone: +39 0584983027
   fax: +39 0584983027
   mob: +39 349 8227000

   http://www.geo-solutions.it

   -------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

------------------------------------------------------------------------

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08

!DSPAM:4007,487732ef278366491211187!

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:4007,487732ef278366491211187!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

Ok so,

I removed the @generaed annotation ane modified the @model one, but I
still need to slitghtly modify methods allowing them to handle
java.util.List instead of EList, otherwise I get the following error:

...
  at org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMFBinding.java:202)
  at org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.java:143)
  at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
  ... 35 more
Caused by: java.lang.ClassCastException:
org.geotools.geometry.jts.ReferencedEnvelope cannot be cast to
org.eclipse.emf.ecore.InternalEObject
  at org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.createEntry(EStructuralFeatureImpl.java:2851)
  at org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:147)
  at org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java:94)
  at org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253)
  at org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUtil.java:656)
  at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
  at org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBinding.java:230)
  ... 38 more

On Tue, Jul 15, 2008 at 6:46 AM, Justin Deoliveira
<jdeolive@anonymised.com> wrote:

Its definitely valid. To make it perminent however I think you might want to
do the following:

* remove the @model annotation from the interface method
* remove all the @generated annoitation from the implementation method

That way the code generator will ignore (and not kill) any of the changed
methods.

Did you try changing the "type" annotation as per my previous email?

Alessio Fabiani wrote:

Justin, it's me again ... I found a workaround forcing the return type
of wcs:spatialSubset from EList to List and manually modifying both
the intrafece and the implementation, but I don't know if is the
correct way to do that, what do you think about?

On Mon, Jul 14, 2008 at 10:04 AM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Hi Justin,

sorry to bother you again ... I tryied your solution, but I cannot
figure out how can be applied to this specific case. Let me better
describe the problem, the WCS 1.0.0 wcs:spatialSubset does not exactly
need just one gml:Envelope, but an unbounded set of gml:Envelopes ...
so the property of wcs:spatialSubset is an EList ... how this case can
be handled, and morover where is in GeoTools the source code of GML2
and GML3 EMF model? I can see just the bindings!

Thanks for any help,
                               Alessio.

On Fri, Jul 11, 2008 at 7:01 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Cool, that sounds better than the others, I will try that solution now.

Thanks Justin.

On Fri, Jul 11, 2008 at 6:58 PM, Justin Deoliveira
<jdeolive@anonymised.com>
wrote:

Hi Alessio,

It sounds like you found a away around your problem. But a possible
third
solution:

3. Change the generated class SpatialSubsetType "manually" so that its
Envelope property is actually of the type geotools type envelope. I
call
this "instrumenting" the model.

Then the GML bindings should parse the Envelope, and the reflective EMF
bindings should still be able to reflectivley set the property.

-Justin

Alessio Fabiani wrote:

Well, finally I got the solution .... just for knowledge I will
briefly
share the solution with the community, soon I will update the tutorial
that
I have written for the EMF model generation, adding the binding
implementation also.

A bit of introduction first.

The WCS 1.0.0 schema for the DomainSubset part requires a structure
like
the following:

  <wcs:domainSubset>
      <wcs:spatialSubset>
          <gml:Envelope srsName="EPSG:32633">
              <gml:pos>347649.93086859107 5176214.082539256</gml:pos>
              <gml:pos>370725.976428591 5196961.352859256</gml:pos>
          </gml:Envelope>
          <gml:Grid dimension="2" srsName="EPSG:4326">
              <gml:limits>
                  <gml:GridEnvelope>
                      <gml:low>0 0</gml:low>
                      <gml:high>545 490</gml:high>
                  </gml:GridEnvelope>
              </gml:limits>
          </gml:Grid>
      </wcs:spatialSubset>
  </wcs:domainSubset>

As you can notice the domainSubset and the spatialSubset nodes belong
to
the "wcs" namespace, while the Envelope and Grid to the "gml" one
instead.
That means that the EnvelopeBinding and GridBinding have to be
implemented into some "gt-gml" (just a dummy name) module and the
spatialSubsetBinding and domainSubsetBinding have to be implemented
into
some "gt-wcs" package instead.

At this point we have several ways to do that, but particular
attention
has to be put on how we implement the WCSConfiguration and
GMLConfiguration
for both the WCS and GML binding packages (more details later).

Method 1: if you would like the Parser to automatically populate the
objects, than you must leave the EnvelopeBinding and the GridBinding
respectively return the EMF Objects (EObjects) EnvelopeType and
GridType.

Method 2: if you would like to allow the EnvelopeBinding returning for
instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse),
than
you MUST say to the WCS spatialSubsetBinding and to the
domainSubsetBinding
how to handle such case. You have here several ways too. One would be
to
write some specific geotools Converters from EnvelopeType to whatelse;
another one, easier, would be to manually rewrite te "parse" methods
of the
spatialSubsetBinding and domainSubsetBinding in order to handle the
GeneralEnvelope parsing. The latter is for sure the best path to
follow ...
but you have to pay particular attention on how you write the
WCSConfiguration binding file, infact you have to explicitly register
both
the spatialSubsetBinding and the domainSubsetBinding implementations
as
represented below.

      bindings.put(WCS.DomainSubsetType, new
DomainSubsetTypeBinding());
      bindings.put(WCS.SpatialSubsetType, new
SpatialSubsetTypeBinding());

Cheers,
              Alessio.

On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com <mailto:alessio.fabiani@anonymised.com>> wrote:

  Hi Gabriel,

  thanks for the response ... I have already inspected this
  possibility, but does not seem to solve the problem ... I also
  tryied several WCSConfiguration and GMLConfiguration combinations
  ... but I got no successful result.
  The only thing I noticed is that the AbstractComplexEMFBinding
  superclass fails on the setProperty method trying to instantiate a
  geotools.util.Converter from the expected EnvelopeType class to
  jts.Envelope (or ReferencedEnvelope) one, since no one exists ...
  the only thing I cannot really figure out is why that works for
  gt-GML3 module and not for mine since they are almost equal !!!

  On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com...
  <mailto:groldan@anonymised.com>> wrote:

      I guess if the binding declares it returns
      ReferencedEnvelope.class in
      getType() it should be respected...

      like in class EnvelopeTypeBinding extends
      AbstractComplexTypeBinding{

       public Class getType() {
             return ReferencedEnvelope.class;
         }

      }

      though not sure that is the solution actually...

      Gabriel

      On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:
       > Hi all,
       >
       > I'm trying to create a new binding for the GML EnvelopeType
      as a JTS
       > Envelope, since I couldn't use geotools gml2/3 EMF models due
      to some
       > specific Elements defined only for WCS 1.0.0. <http://1.0.0.>
       > Nevertheless I followed the implementation of the existing
      gt-GML3 module
       > EvnelopeTypeBinding, returning a ReferencedEnvelope object as
      result of the
       > EnvelopeTypeBinding parsing.
       >
       > Now ... all seems working fine until I try to parse a WCS
1.0.0
       > SpatialSubsetType ... here I get an exception like the
following:
       >
       > org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml
      request is
       > most probably not compliant to the wcs schema
       > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
       > at
       >

org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
       >erTest.java:86) 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:164)
       > at junit.framework.TestCase.runBare(TestCase.java:130)
       > 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:120)
       > at junit.framework.TestSuite.runTest(TestSuite.java:230)
       > at junit.framework.TestSuite.run(TestSuite.java:225)
       > at
       >

org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
       >TestReference.java:130) at
       >

org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
       >38) at
       >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
       >unner.java:460) at
       >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
       >unner.java:673) at
       >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
       >.java:386) at
       >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
       >r.java:196) Caused by: java.lang.RuntimeException: Parsing
      failed for
       > spatialSubset: java.lang.RuntimeException: Unable to set
      property: Envelope
       > for eobject: { http://www.opengis.net/wcs\}SpatialSubsetType
      <http://www.opengis.net/wcs}SpatialSubsetType&gt;
       > at

org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
       > at
       >

org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
       >lker.java:208) at
       >
      org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174)
at
       >

org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
       >:222) at
       >

org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
       > at
      org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
       > Source)
       > at
      org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
       > Source)
       > at
       >

org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
       > Source)
       > at
       >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
       >cher.dispatch(Unknown Source)
       > at
       >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
       > Source)
       > at
      org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
       > at
      org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
       > at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
       > at
      org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
       > at org.geotools.xml.Parser.parse(Parser.java:180)
       > at org.geotools.xml.Parser.parse(Parser.java:158)
       > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
       > ... 19 more
       > Caused by: java.lang.RuntimeException: Unable to set
      property: Envelope for
       > eobject: {http://www.opengis.net/wcs\}SpatialSubsetType
      <http://www.opengis.net/wcs}SpatialSubsetType&gt;
       > at
       >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
       >nding.java:271) at
       >

org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
       >Binding.java:202) at
       >

org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
       >java:143) at
       >

org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
      ... 35
       > more
       > Caused by: java.lang.ClassCastException: The feature
      'envelope's type
       > 'EnvelopeType' does not permit a value of type
       > 'org.geotools.geometry.jts.ReferencedEnvelope'
       > at
       >

org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
       >date(EStructuralFeatureImpl.java:2843) at
       >

org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1
       >46) at
       >

org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
       >:94) at
       >

org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
       >) at
       >

org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
       >l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
       > at
       >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
       >nding.java:230) ... 38 more
       >
       > And if I return an EvnelopeType all works well ...
       >
       > any ideas? am I missing something? Do I have to build a
      geotools converter
       > or something like that?
       >
       > Any help kindly appreciated.
       >
       > Cheers,
       > Alessio.

-------------------------------------------------------------------------
      Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
      Studies have shown that voting for your favorite open source
      project,
      along with a healthy diet, reduces your potential for chronic
      lameness
      and boredom. Vote Now at
http://www.sourceforge.net/community/cca08
      _______________________________________________
      Geoserver-devel mailing list
      Geoserver-devel@lists.sourceforge.net
      <mailto:Geoserver-devel@lists.sourceforge.net>
      https://lists.sourceforge.net/lists/listinfo/geoserver-devel

  -- -------------------------------------------------------
  Eng. Alessio Fabiani
  Vice-President /CTO GeoSolutions S.A.S.
  Via Carignoni 51
  55041 Camaiore (LU)
  Italy

  phone: +39 0584983027
  fax: +39 0584983027
  mob: +39 349 8227000

  http://www.geo-solutions.it

  -------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

------------------------------------------------------------------------

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08

!DSPAM:4007,487732ef278366491211187!

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:4007,487732ef278366491211187!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

Ahh... right, you are correct. It seems to assume that the objects inside of the list are eobjects as well. I ran into this same issue with wps. However I know I have done this before in wfs so there must be some way to do it... but this works just as well for now.

Alessio Fabiani wrote:

Ok so,

I removed the @generaed annotation ane modified the @model one, but I
still need to slitghtly modify methods allowing them to handle
java.util.List instead of EList, otherwise I get the following error:

...
  at org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMFBinding.java:202)
  at org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.java:143)
  at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
  ... 35 more
Caused by: java.lang.ClassCastException:
org.geotools.geometry.jts.ReferencedEnvelope cannot be cast to
org.eclipse.emf.ecore.InternalEObject
  at org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.createEntry(EStructuralFeatureImpl.java:2851)
  at org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:147)
  at org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java:94)
  at org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253)
  at org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUtil.java:656)
  at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
  at org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBinding.java:230)
  ... 38 more

On Tue, Jul 15, 2008 at 6:46 AM, Justin Deoliveira
<jdeolive@anonymised.com> wrote:

Its definitely valid. To make it perminent however I think you might want to
do the following:

* remove the @model annotation from the interface method
* remove all the @generated annoitation from the implementation method

That way the code generator will ignore (and not kill) any of the changed
methods.

Did you try changing the "type" annotation as per my previous email?

Alessio Fabiani wrote:

Justin, it's me again ... I found a workaround forcing the return type
of wcs:spatialSubset from EList to List and manually modifying both
the intrafece and the implementation, but I don't know if is the
correct way to do that, what do you think about?

On Mon, Jul 14, 2008 at 10:04 AM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Hi Justin,

sorry to bother you again ... I tryied your solution, but I cannot
figure out how can be applied to this specific case. Let me better
describe the problem, the WCS 1.0.0 wcs:spatialSubset does not exactly
need just one gml:Envelope, but an unbounded set of gml:Envelopes ...
so the property of wcs:spatialSubset is an EList ... how this case can
be handled, and morover where is in GeoTools the source code of GML2
and GML3 EMF model? I can see just the bindings!

Thanks for any help,
                               Alessio.

On Fri, Jul 11, 2008 at 7:01 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com> wrote:

Cool, that sounds better than the others, I will try that solution now.

Thanks Justin.

On Fri, Jul 11, 2008 at 6:58 PM, Justin Deoliveira
<jdeolive@anonymised.com>
wrote:

Hi Alessio,

It sounds like you found a away around your problem. But a possible
third
solution:

3. Change the generated class SpatialSubsetType "manually" so that its
Envelope property is actually of the type geotools type envelope. I
call
this "instrumenting" the model.

Then the GML bindings should parse the Envelope, and the reflective EMF
bindings should still be able to reflectivley set the property.

-Justin

Alessio Fabiani wrote:

Well, finally I got the solution .... just for knowledge I will
briefly
share the solution with the community, soon I will update the tutorial
that
I have written for the EMF model generation, adding the binding
implementation also.

A bit of introduction first.

The WCS 1.0.0 schema for the DomainSubset part requires a structure
like
the following:

  <wcs:domainSubset>
      <wcs:spatialSubset>
          <gml:Envelope srsName="EPSG:32633">
              <gml:pos>347649.93086859107 5176214.082539256</gml:pos>
              <gml:pos>370725.976428591 5196961.352859256</gml:pos>
          </gml:Envelope>
          <gml:Grid dimension="2" srsName="EPSG:4326">
              <gml:limits>
                  <gml:GridEnvelope>
                      <gml:low>0 0</gml:low>
                      <gml:high>545 490</gml:high>
                  </gml:GridEnvelope>
              </gml:limits>
          </gml:Grid>
      </wcs:spatialSubset>
  </wcs:domainSubset>

As you can notice the domainSubset and the spatialSubset nodes belong
to
the "wcs" namespace, while the Envelope and Grid to the "gml" one
instead.
That means that the EnvelopeBinding and GridBinding have to be
implemented into some "gt-gml" (just a dummy name) module and the
spatialSubsetBinding and domainSubsetBinding have to be implemented
into
some "gt-wcs" package instead.

At this point we have several ways to do that, but particular
attention
has to be put on how we implement the WCSConfiguration and
GMLConfiguration
for both the WCS and GML binding packages (more details later).

Method 1: if you would like the Parser to automatically populate the
objects, than you must leave the EnvelopeBinding and the GridBinding
respectively return the EMF Objects (EObjects) EnvelopeType and
GridType.

Method 2: if you would like to allow the EnvelopeBinding returning for
instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse),
than
you MUST say to the WCS spatialSubsetBinding and to the
domainSubsetBinding
how to handle such case. You have here several ways too. One would be
to
write some specific geotools Converters from EnvelopeType to whatelse;
another one, easier, would be to manually rewrite te "parse" methods
of the
spatialSubsetBinding and domainSubsetBinding in order to handle the
GeneralEnvelope parsing. The latter is for sure the best path to
follow ...
but you have to pay particular attention on how you write the
WCSConfiguration binding file, infact you have to explicitly register
both
the spatialSubsetBinding and the domainSubsetBinding implementations
as
represented below.

      bindings.put(WCS.DomainSubsetType, new
DomainSubsetTypeBinding());
      bindings.put(WCS.SpatialSubsetType, new
SpatialSubsetTypeBinding());

Cheers,
              Alessio.

On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani
<alessio.fabiani@anonymised.com <mailto:alessio.fabiani@anonymised.com>> wrote:

  Hi Gabriel,

  thanks for the response ... I have already inspected this
  possibility, but does not seem to solve the problem ... I also
  tryied several WCSConfiguration and GMLConfiguration combinations
  ... but I got no successful result.
  The only thing I noticed is that the AbstractComplexEMFBinding
  superclass fails on the setProperty method trying to instantiate a
  geotools.util.Converter from the expected EnvelopeType class to
  jts.Envelope (or ReferencedEnvelope) one, since no one exists ...
  the only thing I cannot really figure out is why that works for
  gt-GML3 module and not for mine since they are almost equal !!!

  On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <groldan@anonymised.com
  <mailto:groldan@anonymised.com>> wrote:

      I guess if the binding declares it returns
      ReferencedEnvelope.class in
      getType() it should be respected...

      like in class EnvelopeTypeBinding extends
      AbstractComplexTypeBinding{

       public Class getType() {
             return ReferencedEnvelope.class;
         }

      }

      though not sure that is the solution actually...

      Gabriel

      On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:
       > Hi all,
       >
       > I'm trying to create a new binding for the GML EnvelopeType
      as a JTS
       > Envelope, since I couldn't use geotools gml2/3 EMF models due
      to some
       > specific Elements defined only for WCS 1.0.0. <http://1.0.0.>
       > Nevertheless I followed the implementation of the existing
      gt-GML3 module
       > EvnelopeTypeBinding, returning a ReferencedEnvelope object as
      result of the
       > EnvelopeTypeBinding parsing.
       >
       > Now ... all seems working fine until I try to parse a WCS
1.0.0
       > SpatialSubsetType ... here I get an exception like the
following:
       >
       > org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml
      request is
       > most probably not compliant to the wcs schema
       > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
       > at
       >

org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
       >erTest.java:86) 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:164)
       > at junit.framework.TestCase.runBare(TestCase.java:130)
       > 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:120)
       > at junit.framework.TestSuite.runTest(TestSuite.java:230)
       > at junit.framework.TestSuite.run(TestSuite.java:225)
       > at
       >

org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
       >TestReference.java:130) at
       >

org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
       >38) at
       >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
       >unner.java:460) at
       >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
       >unner.java:673) at
       >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
       >.java:386) at
       >

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
       >r.java:196) Caused by: java.lang.RuntimeException: Parsing
      failed for
       > spatialSubset: java.lang.RuntimeException: Unable to set
      property: Envelope
       > for eobject: { http://www.opengis.net/wcs\}SpatialSubsetType
      <http://www.opengis.net/wcs}SpatialSubsetType&gt;
       > at

org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
       > at
       >

org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
       >lker.java:208) at
       >
      org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174)
at
       >

org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
       >:222) at
       >

org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
       > at
      org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
       > Source)
       > at
      org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
       > Source)
       > at
       >

org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
       > Source)
       > at
       >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
       >cher.dispatch(Unknown Source)
       > at
       >

org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
       > Source)
       > at
      org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
       > at
      org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
       > at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
       > at
      org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
       > at org.geotools.xml.Parser.parse(Parser.java:180)
       > at org.geotools.xml.Parser.parse(Parser.java:158)
       > at

org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
       > ... 19 more
       > Caused by: java.lang.RuntimeException: Unable to set
      property: Envelope for
       > eobject: {http://www.opengis.net/wcs\}SpatialSubsetType
      <http://www.opengis.net/wcs}SpatialSubsetType&gt;
       > at
       >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
       >nding.java:271) at
       >

org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
       >Binding.java:202) at
       >

org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
       >java:143) at
       >

org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
      ... 35
       > more
       > Caused by: java.lang.ClassCastException: The feature
      'envelope's type
       > 'EnvelopeType' does not permit a value of type
       > 'org.geotools.geometry.jts.ReferencedEnvelope'
       > at
       >

org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
       >date(EStructuralFeatureImpl.java:2843) at
       >

org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1
       >46) at
       >

org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
       >:94) at
       >

org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
       >) at
       >

org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
       >l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
       > at
       >

org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
       >nding.java:230) ... 38 more
       >
       > And if I return an EvnelopeType all works well ...
       >
       > any ideas? am I missing something? Do I have to build a
      geotools converter
       > or something like that?
       >
       > Any help kindly appreciated.
       >
       > Cheers,
       > Alessio.

-------------------------------------------------------------------------
      Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
      Studies have shown that voting for your favorite open source
      project,
      along with a healthy diet, reduces your potential for chronic
      lameness
      and boredom. Vote Now at
http://www.sourceforge.net/community/cca08
      _______________________________________________
      Geoserver-devel mailing list
      Geoserver-devel@lists.sourceforge.net
      <mailto:Geoserver-devel@lists.sourceforge.net>
      https://lists.sourceforge.net/lists/listinfo/geoserver-devel

  -- -------------------------------------------------------
  Eng. Alessio Fabiani
  Vice-President /CTO GeoSolutions S.A.S.
  Via Carignoni 51
  55041 Camaiore (LU)
  Italy

  phone: +39 0584983027
  fax: +39 0584983027
  mob: +39 349 8227000

  http://www.geo-solutions.it

  -------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

------------------------------------------------------------------------

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:4007,487732ef278366491211187!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
-------------------------------------------------------
Eng. Alessio Fabiani
Vice-President /CTO GeoSolutions S.A.S.
Via Carignoni 51
55041 Camaiore (LU)
Italy

phone: +39 0584983027
fax: +39 0584983027
mob: +39 349 8227000

http://www.geo-solutions.it

-------------------------------------------------------

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com