[Geoserver-devel] problems deploying 1.4.x + WPS but no problems with 1.3.0 + WPS

Hello,

With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
document on what one needs to do to get 1.4.x debugging in Eclipse using
jetty? I'm getting
java.lang.ClassNotFoundException: org.mortbay.jetty.Server
  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  at org.mortbay.start.Main.invokeMain(Main.java:145)
  at org.mortbay.start.Main.start(Main.java:482)
  at org.mortbay.start.Main.main(Main.java:90)

And I can't figure this one out. I have a partly working (it can
generate a response to a WPS GetCapabilities operation)
"1.3.0_wps" (that is, GeoServer 1.3.0 source + added WPS) and I'd like
to move this over to the 1.4.x branch. When I add the corresponding
classes from my working 1.3.0_wps into a project 1.4.x_wps, building
with maven works just fine. However, when I deploy the geoserver.war in
Tomcat, errors occur. Any ideas why this happens (see below)?

Here is a list of what works and what doesn't work when deploying
1.4.x_wps:

* The WMS GetCapabilities operation
(http://localhost:8080/geoserver/wms?request=GetCapabilities) works.

* The WFS GetCapabilities operation
(http://localhost:8080/geoserver/wfs?request=GetCapabilities)gives the
exception:
-
  <ServiceExceptionReport version="1.2.0"
xsi:schemaLocation="http://www.opengis.net/ogc
http://localhost:8080/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd&quot;&gt;
-
  <ServiceException>

      javax.xml.transform.TransformerException: Translator error
</ServiceException>
</ServiceExceptionReport>

* The WPS GetCapabilities operation
(http://localhost:8080/geoserver/wps?request=GetCapabilities) gives the
error:
   HTTP Status 404 - /geoserver/wps
   ------------------------------------------
   type Status report

   message /geoserver/wps

   description The requested resource (/geoserver/wps) is not available.
   ------------------------------------------
   Apache Tomcat/5.0.28

* Browsing to http://localhost:8080/geoserver/welcome.do gives the
following error:

   HTTP Status 404 - Servlet action is not available
   ------------------------------------------
   type Status report

   message Servlet action is not available

   description The requested resource (Servlet action is not available)
   is not available.
   ------------------------------------------
   Apache Tomcat/5.0.28

Jonas

Jonas Johansson wrote:

Hello,

With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
document on what one needs to do to get 1.4.x debugging in Eclipse using
jetty?

Not yet, I am going to make a GEOSDOC2 space (as described in email last week) during the next geoserver meeting, so we can capture stuff like this.
Right now the team here is just making use of the war in JBoss.

Any chance you can run site tests when testing the war? We cannot escape our firewall.
Jody

I added some docs for running from eclipse:

http://docs.codehaus.org/display/GEOSDOC/Building+with+Eclipse

The short of it is after you have all the plugins in your eclipse workspace, create a new Run configuration for the org.vfny.geoserver.jetty module, and run the class org.mortbay.start.Main in debug mode.

I think what the problem might be that you are not running from the jetty module which contains said not found class. Which makes sense because for 1.3.0, everything is in the project, for 1.4.x, all the jetty stuff has been sucked out in a seperate module.

Give the docs a try and see if it works for you. If lot let us know. If need be we can hop on IRC and get things going. However I will ask in return that you update the docs :).

-Justin

Jonas Johansson wrote:

Hello,

With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
document on what one needs to do to get 1.4.x debugging in Eclipse using
jetty? I'm getting
java.lang.ClassNotFoundException: org.mortbay.jetty.Server
  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  at org.mortbay.start.Main.invokeMain(Main.java:145)
  at org.mortbay.start.Main.start(Main.java:482)
  at org.mortbay.start.Main.main(Main.java:90)

And I can't figure this one out. I have a partly working (it can
generate a response to a WPS GetCapabilities operation)
"1.3.0_wps" (that is, GeoServer 1.3.0 source + added WPS) and I'd like
to move this over to the 1.4.x branch. When I add the corresponding
classes from my working 1.3.0_wps into a project 1.4.x_wps, building
with maven works just fine. However, when I deploy the geoserver.war in
Tomcat, errors occur. Any ideas why this happens (see below)?

Here is a list of what works and what doesn't work when deploying
1.4.x_wps:

* The WMS GetCapabilities operation
(http://localhost:8080/geoserver/wms?request=GetCapabilities) works.

* The WFS GetCapabilities operation
(http://localhost:8080/geoserver/wfs?request=GetCapabilities)gives the
exception:
-
  <ServiceExceptionReport version="1.2.0"
xsi:schemaLocation="http://www.opengis.net/ogc
http://localhost:8080/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd&quot;&gt;
-
  <ServiceException>

      javax.xml.transform.TransformerException: Translator error </ServiceException>
</ServiceExceptionReport>

* The WPS GetCapabilities operation
(http://localhost:8080/geoserver/wps?request=GetCapabilities) gives the
error:
   HTTP Status 404 - /geoserver/wps
   ------------------------------------------
   type Status report

   message /geoserver/wps

   description The requested resource (/geoserver/wps) is not available.
   ------------------------------------------
   Apache Tomcat/5.0.28

* Browsing to http://localhost:8080/geoserver/welcome.do gives the
following error:

   HTTP Status 404 - Servlet action is not available
   ------------------------------------------
   type Status report

   message Servlet action is not available

   description The requested resource (Servlet action is not available)
   is not available.
   ------------------------------------------
   Apache Tomcat/5.0.28

Jonas

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Well, I gave it a try and imported the one project made with eclipseAll
and when that did not work I tried importing them separately, which made
Eclipse complain on missing projects on the classpath, and looking at
the "required projects on the build path" for example wfs, shows stuff
I've never seen before like projects vpf, api and such. This is above my
league...

I need to get some coding done and I want to be able to debug in
Eclipse, so unfortunately I guess I'll stick to my working 1.3.0_wps
since the code works in 1.4.x, it compiles faster without all the other
stuff in 1.4.x and I can debug with jetty. When it is finished I'll move
it over to 1.4.x.

Jonas

On Mon, 2006-03-13 at 01:56 -0800, Justin Deoliveira wrote:

I added some docs for running from eclipse:

http://docs.codehaus.org/display/GEOSDOC/Building+with+Eclipse

The short of it is after you have all the plugins in your eclipse
workspace, create a new Run configuration for the
org.vfny.geoserver.jetty module, and run the class
org.mortbay.start.Main in debug mode.

I think what the problem might be that you are not running from the
jetty module which contains said not found class. Which makes sense
because for 1.3.0, everything is in the project, for 1.4.x, all the
jetty stuff has been sucked out in a seperate module.

Give the docs a try and see if it works for you. If lot let us know. If
need be we can hop on IRC and get things going. However I will ask in
return that you update the docs :).

-Justin

Jonas Johansson wrote:
> Hello,
>
> With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
> document on what one needs to do to get 1.4.x debugging in Eclipse using
> jetty? I'm getting
> java.lang.ClassNotFoundException: org.mortbay.jetty.Server
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at org.mortbay.start.Main.invokeMain(Main.java:145)
> at org.mortbay.start.Main.start(Main.java:482)
> at org.mortbay.start.Main.main(Main.java:90)
>
> And I can't figure this one out. I have a partly working (it can
> generate a response to a WPS GetCapabilities operation)
> "1.3.0_wps" (that is, GeoServer 1.3.0 source + added WPS) and I'd like
> to move this over to the 1.4.x branch. When I add the corresponding
> classes from my working 1.3.0_wps into a project 1.4.x_wps, building
> with maven works just fine. However, when I deploy the geoserver.war in
> Tomcat, errors occur. Any ideas why this happens (see below)?
>
> Here is a list of what works and what doesn't work when deploying
> 1.4.x_wps:
>
> * The WMS GetCapabilities operation
> (http://localhost:8080/geoserver/wms?request=GetCapabilities) works.
>
> * The WFS GetCapabilities operation
> (http://localhost:8080/geoserver/wfs?request=GetCapabilities)gives the
> exception:
> -
> <ServiceExceptionReport version="1.2.0"
> xsi:schemaLocation="http://www.opengis.net/ogc
> http://localhost:8080/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd&quot;&gt;
> -
> <ServiceException>
>
> javax.xml.transform.TransformerException: Translator error
> </ServiceException>
> </ServiceExceptionReport>
>
> * The WPS GetCapabilities operation
> (http://localhost:8080/geoserver/wps?request=GetCapabilities) gives the
> error:
> HTTP Status 404 - /geoserver/wps
> ------------------------------------------
> type Status report
>
> message /geoserver/wps
>
> description The requested resource (/geoserver/wps) is not available.
> ------------------------------------------
> Apache Tomcat/5.0.28
>
> * Browsing to http://localhost:8080/geoserver/welcome.do gives the
> following error:
>
> HTTP Status 404 - Servlet action is not available
> ------------------------------------------
> type Status report
>
> message Servlet action is not available
>
> description The requested resource (Servlet action is not available)
> is not available.
> ------------------------------------------
> Apache Tomcat/5.0.28
>
>
> Jonas
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> that extends applications into web and mobile media. Attend the live webcast
> and join the prime developer group breaking into this new coding territory!
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> _______________________________________________
> Geoserver-devel mailing list
> Geoserver-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Unfortunatley this is something else i havent gotten around to documenting. Turning on / off geotools dependencies in your workspace which is useful for developing in geotools and geoserver at the same time.

Unfortunatley there is a problem with it, so i just turned it off, if you update it and run eclipse target on gtlibs module again it should be fine.

As for build time, yes if you build / deploy from the root it takes much longer. however once you do an initial build, you can build / deploy individual modules individually which is fast. Also something that needs to be documented.

-Justin

Jonas Johansson wrote:

Well, I gave it a try and imported the one project made with eclipseAll
and when that did not work I tried importing them separately, which made
Eclipse complain on missing projects on the classpath, and looking at
the "required projects on the build path" for example wfs, shows stuff
I've never seen before like projects vpf, api and such. This is above my
league...

I need to get some coding done and I want to be able to debug in
Eclipse, so unfortunately I guess I'll stick to my working 1.3.0_wps
since the code works in 1.4.x, it compiles faster without all the other
stuff in 1.4.x and I can debug with jetty. When it is finished I'll move
it over to 1.4.x.

Jonas

On Mon, 2006-03-13 at 01:56 -0800, Justin Deoliveira wrote:

I added some docs for running from eclipse:

http://docs.codehaus.org/display/GEOSDOC/Building+with+Eclipse

The short of it is after you have all the plugins in your eclipse workspace, create a new Run configuration for the org.vfny.geoserver.jetty module, and run the class org.mortbay.start.Main in debug mode.

I think what the problem might be that you are not running from the jetty module which contains said not found class. Which makes sense because for 1.3.0, everything is in the project, for 1.4.x, all the jetty stuff has been sucked out in a seperate module.

Give the docs a try and see if it works for you. If lot let us know. If need be we can hop on IRC and get things going. However I will ask in return that you update the docs :).

-Justin

Jonas Johansson wrote:

Hello,

With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
document on what one needs to do to get 1.4.x debugging in Eclipse using
jetty? I'm getting
java.lang.ClassNotFoundException: org.mortbay.jetty.Server
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.mortbay.start.Main.invokeMain(Main.java:145)
at org.mortbay.start.Main.start(Main.java:482)
at org.mortbay.start.Main.main(Main.java:90)

And I can't figure this one out. I have a partly working (it can
generate a response to a WPS GetCapabilities operation)
"1.3.0_wps" (that is, GeoServer 1.3.0 source + added WPS) and I'd like
to move this over to the 1.4.x branch. When I add the corresponding
classes from my working 1.3.0_wps into a project 1.4.x_wps, building
with maven works just fine. However, when I deploy the geoserver.war in
Tomcat, errors occur. Any ideas why this happens (see below)?

Here is a list of what works and what doesn't work when deploying
1.4.x_wps:

* The WMS GetCapabilities operation
(http://localhost:8080/geoserver/wms?request=GetCapabilities) works.

* The WFS GetCapabilities operation
(http://localhost:8080/geoserver/wfs?request=GetCapabilities)gives the
exception:
-
<ServiceExceptionReport version="1.2.0"
xsi:schemaLocation="http://www.opengis.net/ogc
http://localhost:8080/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd&quot;&gt;
-
<ServiceException>

     javax.xml.transform.TransformerException: Translator error </ServiceException>
</ServiceExceptionReport>

* The WPS GetCapabilities operation
(http://localhost:8080/geoserver/wps?request=GetCapabilities) gives the
error:
  HTTP Status 404 - /geoserver/wps
  ------------------------------------------
  type Status report

  message /geoserver/wps

  description The requested resource (/geoserver/wps) is not available.
  ------------------------------------------
  Apache Tomcat/5.0.28

* Browsing to http://localhost:8080/geoserver/welcome.do gives the
following error:

  HTTP Status 404 - Servlet action is not available
  ------------------------------------------
  type Status report

  message Servlet action is not available

  description The requested resource (Servlet action is not available)
  is not available.
  ------------------------------------------
  Apache Tomcat/5.0.28

Jonas

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On another note, I apologize for your trouble with 1.4.x, you are the first developer other then myself to step up and actually try to develop with it so you are serving as somewhat of a guinea pig. I appreciate the persistence and diligence.

-Justin

Jonas Johansson wrote:

Well, I gave it a try and imported the one project made with eclipseAll
and when that did not work I tried importing them separately, which made
Eclipse complain on missing projects on the classpath, and looking at
the "required projects on the build path" for example wfs, shows stuff
I've never seen before like projects vpf, api and such. This is above my
league...

I need to get some coding done and I want to be able to debug in
Eclipse, so unfortunately I guess I'll stick to my working 1.3.0_wps
since the code works in 1.4.x, it compiles faster without all the other
stuff in 1.4.x and I can debug with jetty. When it is finished I'll move
it over to 1.4.x.

Jonas

On Mon, 2006-03-13 at 01:56 -0800, Justin Deoliveira wrote:

I added some docs for running from eclipse:

http://docs.codehaus.org/display/GEOSDOC/Building+with+Eclipse

The short of it is after you have all the plugins in your eclipse workspace, create a new Run configuration for the org.vfny.geoserver.jetty module, and run the class org.mortbay.start.Main in debug mode.

I think what the problem might be that you are not running from the jetty module which contains said not found class. Which makes sense because for 1.3.0, everything is in the project, for 1.4.x, all the jetty stuff has been sucked out in a seperate module.

Give the docs a try and see if it works for you. If lot let us know. If need be we can hop on IRC and get things going. However I will ask in return that you update the docs :).

-Justin

Jonas Johansson wrote:

Hello,

With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
document on what one needs to do to get 1.4.x debugging in Eclipse using
jetty? I'm getting
java.lang.ClassNotFoundException: org.mortbay.jetty.Server
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.mortbay.start.Main.invokeMain(Main.java:145)
at org.mortbay.start.Main.start(Main.java:482)
at org.mortbay.start.Main.main(Main.java:90)

And I can't figure this one out. I have a partly working (it can
generate a response to a WPS GetCapabilities operation)
"1.3.0_wps" (that is, GeoServer 1.3.0 source + added WPS) and I'd like
to move this over to the 1.4.x branch. When I add the corresponding
classes from my working 1.3.0_wps into a project 1.4.x_wps, building
with maven works just fine. However, when I deploy the geoserver.war in
Tomcat, errors occur. Any ideas why this happens (see below)?

Here is a list of what works and what doesn't work when deploying
1.4.x_wps:

* The WMS GetCapabilities operation
(http://localhost:8080/geoserver/wms?request=GetCapabilities) works.

* The WFS GetCapabilities operation
(http://localhost:8080/geoserver/wfs?request=GetCapabilities)gives the
exception:
-
<ServiceExceptionReport version="1.2.0"
xsi:schemaLocation="http://www.opengis.net/ogc
http://localhost:8080/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd&quot;&gt;
-
<ServiceException>

     javax.xml.transform.TransformerException: Translator error </ServiceException>
</ServiceExceptionReport>

* The WPS GetCapabilities operation
(http://localhost:8080/geoserver/wps?request=GetCapabilities) gives the
error:
  HTTP Status 404 - /geoserver/wps
  ------------------------------------------
  type Status report

  message /geoserver/wps

  description The requested resource (/geoserver/wps) is not available.
  ------------------------------------------
  Apache Tomcat/5.0.28

* Browsing to http://localhost:8080/geoserver/welcome.do gives the
following error:

  HTTP Status 404 - Servlet action is not available
  ------------------------------------------
  type Status report

  message Servlet action is not available

  description The requested resource (Servlet action is not available)
  is not available.
  ------------------------------------------
  Apache Tomcat/5.0.28

Jonas

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

No need to apologise. I can't really expect that everything should work
perfectly smooth on a new branch, right? But right now I feel I can't
spend much more time on setting up Eclipse, so I'll go for the 1.3.0_wps
until I feel more comfortable again =)

Justin, while debugging, I think I finally understood what you said
about making a process a plugin, like the validation stuff. I guess you
were talking about what happens in XMLConfigReader, when wfs gets
validated. The plugIn directory contains a lot of xml files, each
pointing to a class. But I don't understand how to actually add a new
class at run-time. And I looked a bit at how Spring framework uses Beans
to keep track of instances and interfaces. It seems that the Spring way
is to use separate files that explains relationships between classes
(similar to how Factory produces instances). But wouldn't it be awkward
to have a bunch of extra files on the server to keep track of? I guess
each process would have its own files that describes how it is
instantiated etc... I think I read that this is also possible to do in
code. But if I make each process a plugin, am I not solving this problem
of keeping track of every instantiated process that the WPS implements?
Well, I haven't quite figured all of this out yet...

Until I go back to 1.4.x from 1.3.0 I'll just use something simpler to
test the WPS.

Jonas

Mon, 2006-03-13 at 12:11 +0000, Justin Deoliveira wrote:

On another note, I apologize for your trouble with 1.4.x, you are the
first developer other then myself to step up and actually try to develop
with it so you are serving as somewhat of a guinea pig. I appreciate the
persistence and diligence.

-Justin

Jonas Johansson wrote:
> Well, I gave it a try and imported the one project made with eclipseAll
> and when that did not work I tried importing them separately, which made
> Eclipse complain on missing projects on the classpath, and looking at
> the "required projects on the build path" for example wfs, shows stuff
> I've never seen before like projects vpf, api and such. This is above my
> league...
>
> I need to get some coding done and I want to be able to debug in
> Eclipse, so unfortunately I guess I'll stick to my working 1.3.0_wps
> since the code works in 1.4.x, it compiles faster without all the other
> stuff in 1.4.x and I can debug with jetty. When it is finished I'll move
> it over to 1.4.x.
>
> Jonas
>
> On Mon, 2006-03-13 at 01:56 -0800, Justin Deoliveira wrote:
>
>>I added some docs for running from eclipse:
>>
>>http://docs.codehaus.org/display/GEOSDOC/Building+with+Eclipse
>>
>>The short of it is after you have all the plugins in your eclipse
>>workspace, create a new Run configuration for the
>>org.vfny.geoserver.jetty module, and run the class
>>org.mortbay.start.Main in debug mode.
>>
>>I think what the problem might be that you are not running from the
>>jetty module which contains said not found class. Which makes sense
>>because for 1.3.0, everything is in the project, for 1.4.x, all the
>>jetty stuff has been sucked out in a seperate module.
>>
>>Give the docs a try and see if it works for you. If lot let us know. If
>>need be we can hop on IRC and get things going. However I will ask in
>>return that you update the docs :).
>>
>>-Justin
>>
>>
>>
>>Jonas Johansson wrote:
>>
>>>Hello,
>>>
>>>With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
>>>document on what one needs to do to get 1.4.x debugging in Eclipse using
>>>jetty? I'm getting
>>>java.lang.ClassNotFoundException: org.mortbay.jetty.Server
>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> at org.mortbay.start.Main.invokeMain(Main.java:145)
>>> at org.mortbay.start.Main.start(Main.java:482)
>>> at org.mortbay.start.Main.main(Main.java:90)
>>>
>>>And I can't figure this one out. I have a partly working (it can
>>>generate a response to a WPS GetCapabilities operation)
>>>"1.3.0_wps" (that is, GeoServer 1.3.0 source + added WPS) and I'd like
>>>to move this over to the 1.4.x branch. When I add the corresponding
>>>classes from my working 1.3.0_wps into a project 1.4.x_wps, building
>>>with maven works just fine. However, when I deploy the geoserver.war in
>>>Tomcat, errors occur. Any ideas why this happens (see below)?
>>>
>>>Here is a list of what works and what doesn't work when deploying
>>>1.4.x_wps:
>>>
>>>* The WMS GetCapabilities operation
>>>(http://localhost:8080/geoserver/wms?request=GetCapabilities) works.
>>>
>>>* The WFS GetCapabilities operation
>>>(http://localhost:8080/geoserver/wfs?request=GetCapabilities)gives the
>>>exception:
>>>-
>>> <ServiceExceptionReport version="1.2.0"
>>>xsi:schemaLocation="http://www.opengis.net/ogc
>>>http://localhost:8080/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd&quot;&gt;
>>>-
>>> <ServiceException>
>>>
>>> javax.xml.transform.TransformerException: Translator error
>>></ServiceException>
>>></ServiceExceptionReport>
>>>
>>>* The WPS GetCapabilities operation
>>>(http://localhost:8080/geoserver/wps?request=GetCapabilities) gives the
>>>error:
>>> HTTP Status 404 - /geoserver/wps
>>> ------------------------------------------
>>> type Status report
>>>
>>> message /geoserver/wps
>>>
>>> description The requested resource (/geoserver/wps) is not available.
>>> ------------------------------------------
>>> Apache Tomcat/5.0.28
>>>
>>>* Browsing to http://localhost:8080/geoserver/welcome.do gives the
>>>following error:
>>>
>>> HTTP Status 404 - Servlet action is not available
>>> ------------------------------------------
>>> type Status report
>>>
>>> message Servlet action is not available
>>>
>>> description The requested resource (Servlet action is not available)
>>> is not available.
>>> ------------------------------------------
>>> Apache Tomcat/5.0.28
>>>
>>>
>>>Jonas
>>>
>>>
>>>
>>>-------------------------------------------------------
>>>This SF.Net email is sponsored by xPML, a groundbreaking scripting language
>>>that extends applications into web and mobile media. Attend the live webcast
>>>and join the prime developer group breaking into this new coding territory!
>>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
>>>_______________________________________________
>>>Geoserver-devel mailing list
>>>Geoserver-devel@lists.sourceforge.net
>>>https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> that extends applications into web and mobile media. Attend the live webcast
> and join the prime developer group breaking into this new coding territory!
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> _______________________________________________
> Geoserver-devel mailing list
> Geoserver-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Hi Jonas,

Thanks for being understanding. Also, I would like to discuss a possible way to organize your plugins. So it sounds like you are making progress anyhow, so why dont keep going on what you have now, and then when you want to move to 1.4.x we can talk about how you can use spring to manage your process plugins, modules, etc...

-Justin

Jonas Johansson wrote:

No need to apologise. I can't really expect that everything should work
perfectly smooth on a new branch, right? But right now I feel I can't
spend much more time on setting up Eclipse, so I'll go for the 1.3.0_wps
until I feel more comfortable again =)

Justin, while debugging, I think I finally understood what you said
about making a process a plugin, like the validation stuff. I guess you
were talking about what happens in XMLConfigReader, when wfs gets
validated. The plugIn directory contains a lot of xml files, each
pointing to a class. But I don't understand how to actually add a new
class at run-time. And I looked a bit at how Spring framework uses Beans
to keep track of instances and interfaces. It seems that the Spring way
is to use separate files that explains relationships between classes
(similar to how Factory produces instances). But wouldn't it be awkward
to have a bunch of extra files on the server to keep track of? I guess
each process would have its own files that describes how it is
instantiated etc... I think I read that this is also possible to do in
code. But if I make each process a plugin, am I not solving this problem
of keeping track of every instantiated process that the WPS implements?
Well, I haven't quite figured all of this out yet...

Until I go back to 1.4.x from 1.3.0 I'll just use something simpler to
test the WPS.

Jonas

Mon, 2006-03-13 at 12:11 +0000, Justin Deoliveira wrote:

On another note, I apologize for your trouble with 1.4.x, you are the first developer other then myself to step up and actually try to develop with it so you are serving as somewhat of a guinea pig. I appreciate the persistence and diligence.

-Justin

Jonas Johansson wrote:

Well, I gave it a try and imported the one project made with eclipseAll
and when that did not work I tried importing them separately, which made
Eclipse complain on missing projects on the classpath, and looking at
the "required projects on the build path" for example wfs, shows stuff
I've never seen before like projects vpf, api and such. This is above my
league...

I need to get some coding done and I want to be able to debug in
Eclipse, so unfortunately I guess I'll stick to my working 1.3.0_wps
since the code works in 1.4.x, it compiles faster without all the other
stuff in 1.4.x and I can debug with jetty. When it is finished I'll move
it over to 1.4.x.

Jonas

On Mon, 2006-03-13 at 01:56 -0800, Justin Deoliveira wrote:

I added some docs for running from eclipse:

http://docs.codehaus.org/display/GEOSDOC/Building+with+Eclipse

The short of it is after you have all the plugins in your eclipse workspace, create a new Run configuration for the org.vfny.geoserver.jetty module, and run the class org.mortbay.start.Main in debug mode.

I think what the problem might be that you are not running from the jetty module which contains said not found class. Which makes sense because for 1.3.0, everything is in the project, for 1.4.x, all the jetty stuff has been sucked out in a seperate module.

Give the docs a try and see if it works for you. If lot let us know. If need be we can hop on IRC and get things going. However I will ask in return that you update the docs :).

-Justin

Jonas Johansson wrote:

Hello,

With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
document on what one needs to do to get 1.4.x debugging in Eclipse using
jetty? I'm getting
java.lang.ClassNotFoundException: org.mortbay.jetty.Server
  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  at org.mortbay.start.Main.invokeMain(Main.java:145)
  at org.mortbay.start.Main.start(Main.java:482)
  at org.mortbay.start.Main.main(Main.java:90)

And I can't figure this one out. I have a partly working (it can
generate a response to a WPS GetCapabilities operation)
"1.3.0_wps" (that is, GeoServer 1.3.0 source + added WPS) and I'd like
to move this over to the 1.4.x branch. When I add the corresponding
classes from my working 1.3.0_wps into a project 1.4.x_wps, building
with maven works just fine. However, when I deploy the geoserver.war in
Tomcat, errors occur. Any ideas why this happens (see below)?

Here is a list of what works and what doesn't work when deploying
1.4.x_wps:

* The WMS GetCapabilities operation
(http://localhost:8080/geoserver/wms?request=GetCapabilities) works.

* The WFS GetCapabilities operation
(http://localhost:8080/geoserver/wfs?request=GetCapabilities)gives the
exception:
-
  <ServiceExceptionReport version="1.2.0"
xsi:schemaLocation="http://www.opengis.net/ogc
http://localhost:8080/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd&quot;&gt;
-
  <ServiceException>

     javax.xml.transform.TransformerException: Translator error </ServiceException>
</ServiceExceptionReport>

* The WPS GetCapabilities operation
(http://localhost:8080/geoserver/wps?request=GetCapabilities) gives the
error:
  HTTP Status 404 - /geoserver/wps
  ------------------------------------------
  type Status report

  message /geoserver/wps

  description The requested resource (/geoserver/wps) is not available.
  ------------------------------------------
  Apache Tomcat/5.0.28

* Browsing to http://localhost:8080/geoserver/welcome.do gives the
following error:

  HTTP Status 404 - Servlet action is not available
  ------------------------------------------
  type Status report

  message Servlet action is not available

  description The requested resource (Servlet action is not available)
  is not available.
  ------------------------------------------
  Apache Tomcat/5.0.28

Jonas

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Justin Deoliveira
jdeolive@anonymised.com
The Open Planning Project
http://topp.openplans.org

Not yet, I am going to make a GEOSDOC2 space (as described in email last week) during the next geoserver meeting, so we can capture stuff like this.
Right now the team here is just making use of the war in JBoss.

Er, I don't think we want a whole new GEOSDOC2 space, I don't like the proliferation of spaces in confluence. I think it'd be better to keep it in the same GEOSDOC confluence, but under http://docs.codehaus.org/display/GEOSDOC/Developers+Guide+1.4.x

Just use that as the parent, and then we can link to it. We can even clone/fork the current docs, and just suffix them with 1.4.x or something. So we'd have 'How a GetFeature Request works 1.4.x'.

Chris

Any chance you can run site tests when testing the war? We cannot escape our firewall.
Jody

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Chris Holmes
The Open Planning Project
thoughts at: http://cholmes.wordpress.com

Hi all,

For those interested in the WPS development, here is a design issue:

Right now I am going for the technique of storing values specific to
processes (e.g. title, process offerings, data output/input type) in new
data structures/classes corresponding to those in the WPS 0.4.0
specification. Most of the classes are done already, but since they are
becoming quite large in numbers, I thought I'd mention it here just in
case this is an awful design choice. I believe it is the way to go
though, since if the datastructures are filled in by each Process there
will only need to be one WPSDescTransformer (the exact parallel to for
example WFSCapsTransformer) and one WPSCapsTransformer to for example
to generate output for the DescribeProcess and GetCapabilities request
respectively. The datastructures could be passed to the Transformer from
the process and be written to an XML document as a response to a
request. Some data structures could be reused between those transformers
(specifically the ProcessBrief data structure would be used in both
GetCapabilities and ProcessDescription operations). These data
structures would also serve as a common interface for process providers,
which is nice. The above might be called Alternative 1.

Alternative 2 would be something like each process taking part in
writing metadata output upon requests. The WPSDescTransformer would use
some internal method of each Process (for example handleProcessBrief())
that generates output (with start(); element(); end(); and such) to the
outgoing XML document. This would mean that each process would have to
be a part of the Transformer chain, so that its calls would be forwarded
up the chain. I don't know if this is possible. Alternatively, each
process could be its own Transformer, with complete responsibility for
writing metadata output. In that case, I don't know how one solves the
problem if for example several processes are requested to be described
in a single DescribeProcess request. Would they share the same outgoing
document, is that even possible?

If Alternative 1 and 2 are not used, I guess the a single
WPSCapsTransformer could use a XMLProcessReader (exactly like the
XMLConfigReader reads data from the services.xml into classes WMS and
WFS) to read XML file(s) that contain information about each process.
That XML file could be provided by the Process provider, or a common
processes.xml could be provided, much like the services.xml is provided
for some service metadata (name, abstract, keyword, etc). Reading the
XML file would be done each time a request was received by the WPS.
Repeatedly reading Process metadata from disk would surely be slower
compared to having the Process metadata in memory as data structures. Of
course, reading process metadata from an XML file could be done to
populate the data structures of Alternative 1. It all depends on how
Process providers should provide their processes.

I'm leaning towards Alternative 1, I hope that this is OK (since most of
the classes are already implemented!), but I can change to something
else if, for some reason, that is a very bad design.

Jonas

On Mon, 2006-03-13 at 16:05 -0800, Justin Deoliveira wrote:

Hi Jonas,

Thanks for being understanding. Also, I would like to discuss a possible
way to organize your plugins. So it sounds like you are making progress
anyhow, so why dont keep going on what you have now, and then when you
want to move to 1.4.x we can talk about how you can use spring to manage
your process plugins, modules, etc...

-Justin

Jonas Johansson wrote:
> No need to apologise. I can't really expect that everything should work
> perfectly smooth on a new branch, right? But right now I feel I can't
> spend much more time on setting up Eclipse, so I'll go for the 1.3.0_wps
> until I feel more comfortable again =)
>
> Justin, while debugging, I think I finally understood what you said
> about making a process a plugin, like the validation stuff. I guess you
> were talking about what happens in XMLConfigReader, when wfs gets
> validated. The plugIn directory contains a lot of xml files, each
> pointing to a class. But I don't understand how to actually add a new
> class at run-time. And I looked a bit at how Spring framework uses Beans
> to keep track of instances and interfaces. It seems that the Spring way
> is to use separate files that explains relationships between classes
> (similar to how Factory produces instances). But wouldn't it be awkward
> to have a bunch of extra files on the server to keep track of? I guess
> each process would have its own files that describes how it is
> instantiated etc... I think I read that this is also possible to do in
> code. But if I make each process a plugin, am I not solving this problem
> of keeping track of every instantiated process that the WPS implements?
> Well, I haven't quite figured all of this out yet...
>
> Until I go back to 1.4.x from 1.3.0 I'll just use something simpler to
> test the WPS.
>
> Jonas
>
> Mon, 2006-03-13 at 12:11 +0000, Justin Deoliveira wrote:
>> On another note, I apologize for your trouble with 1.4.x, you are the
>> first developer other then myself to step up and actually try to develop
>> with it so you are serving as somewhat of a guinea pig. I appreciate the
>> persistence and diligence.
>>
>> -Justin
>>
>> Jonas Johansson wrote:
>>> Well, I gave it a try and imported the one project made with eclipseAll
>>> and when that did not work I tried importing them separately, which made
>>> Eclipse complain on missing projects on the classpath, and looking at
>>> the "required projects on the build path" for example wfs, shows stuff
>>> I've never seen before like projects vpf, api and such. This is above my
>>> league...
>>>
>>> I need to get some coding done and I want to be able to debug in
>>> Eclipse, so unfortunately I guess I'll stick to my working 1.3.0_wps
>>> since the code works in 1.4.x, it compiles faster without all the other
>>> stuff in 1.4.x and I can debug with jetty. When it is finished I'll move
>>> it over to 1.4.x.
>>>
>>> Jonas
>>>
>>> On Mon, 2006-03-13 at 01:56 -0800, Justin Deoliveira wrote:
>>>
>>>> I added some docs for running from eclipse:
>>>>
>>>> http://docs.codehaus.org/display/GEOSDOC/Building+with+Eclipse
>>>>
>>>> The short of it is after you have all the plugins in your eclipse
>>>> workspace, create a new Run configuration for the
>>>> org.vfny.geoserver.jetty module, and run the class
>>>> org.mortbay.start.Main in debug mode.
>>>>
>>>> I think what the problem might be that you are not running from the
>>>> jetty module which contains said not found class. Which makes sense
>>>> because for 1.3.0, everything is in the project, for 1.4.x, all the
>>>> jetty stuff has been sucked out in a seperate module.
>>>>
>>>> Give the docs a try and see if it works for you. If lot let us know. If
>>>> need be we can hop on IRC and get things going. However I will ask in
>>>> return that you update the docs :).
>>>>
>>>> -Justin
>>>>
>>>>
>>>>
>>>> Jonas Johansson wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
>>>>> document on what one needs to do to get 1.4.x debugging in Eclipse using
>>>>> jetty? I'm getting
>>>>> java.lang.ClassNotFoundException: org.mortbay.jetty.Server
>>>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>>>> at org.mortbay.start.Main.invokeMain(Main.java:145)
>>>>> at org.mortbay.start.Main.start(Main.java:482)
>>>>> at org.mortbay.start.Main.main(Main.java:90)
>>>>>
>>>>> And I can't figure this one out. I have a partly working (it can
>>>>> generate a response to a WPS GetCapabilities operation)
>>>>> "1.3.0_wps" (that is, GeoServer 1.3.0 source + added WPS) and I'd like
>>>>> to move this over to the 1.4.x branch. When I add the corresponding
>>>>> classes from my working 1.3.0_wps into a project 1.4.x_wps, building
>>>>> with maven works just fine. However, when I deploy the geoserver.war in
>>>>> Tomcat, errors occur. Any ideas why this happens (see below)?
>>>>>
>>>>> Here is a list of what works and what doesn't work when deploying
>>>>> 1.4.x_wps:
>>>>>
>>>>> * The WMS GetCapabilities operation
>>>>> (http://localhost:8080/geoserver/wms?request=GetCapabilities) works.
>>>>>
>>>>> * The WFS GetCapabilities operation
>>>>> (http://localhost:8080/geoserver/wfs?request=GetCapabilities)gives the
>>>>> exception:
>>>>> -
>>>>> <ServiceExceptionReport version="1.2.0"
>>>>> xsi:schemaLocation="http://www.opengis.net/ogc
>>>>> http://localhost:8080/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd&quot;&gt;
>>>>> -
>>>>> <ServiceException>
>>>>>
>>>>> javax.xml.transform.TransformerException: Translator error
>>>>> </ServiceException>
>>>>> </ServiceExceptionReport>
>>>>>
>>>>> * The WPS GetCapabilities operation
>>>>> (http://localhost:8080/geoserver/wps?request=GetCapabilities) gives the
>>>>> error:
>>>>> HTTP Status 404 - /geoserver/wps
>>>>> ------------------------------------------
>>>>> type Status report
>>>>>
>>>>> message /geoserver/wps
>>>>>
>>>>> description The requested resource (/geoserver/wps) is not available.
>>>>> ------------------------------------------
>>>>> Apache Tomcat/5.0.28
>>>>>
>>>>> * Browsing to http://localhost:8080/geoserver/welcome.do gives the
>>>>> following error:
>>>>>
>>>>> HTTP Status 404 - Servlet action is not available
>>>>> ------------------------------------------
>>>>> type Status report
>>>>>
>>>>> message Servlet action is not available
>>>>>
>>>>> description The requested resource (Servlet action is not available)
>>>>> is not available.
>>>>> ------------------------------------------
>>>>> Apache Tomcat/5.0.28
>>>>>
>>>>>
>>>>> Jonas
>>>>>
>>>>>
>>>>>
>>>>> -------------------------------------------------------
>>>>> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
>>>>> that extends applications into web and mobile media. Attend the live webcast
>>>>> and join the prime developer group breaking into this new coding territory!
>>>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
>>>>> _______________________________________________
>>>>> Geoserver-devel mailing list
>>>>> Geoserver-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>>
>>>
>>> -------------------------------------------------------
>>> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
>>> that extends applications into web and mobile media. Attend the live webcast
>>> and join the prime developer group breaking into this new coding territory!
>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
>>> _______________________________________________
>>> Geoserver-devel mailing list
>>> Geoserver-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> that extends applications into web and mobile media. Attend the live webcast
> and join the prime developer group breaking into this new coding territory!
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> _______________________________________________
> Geoserver-devel mailing list
> Geoserver-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Here is a comment to my last email.. I just realised that the probably
most straightforward way to go when storing process metadata would be
that each service is originally accompanied by a ProcessDescription XML
document following the XML encoding defined by the WPS 0.4.0
specification, section 9.3.2. If an incoming DescribeProcess request
specifies several processes that should be described, each of the
processes ProcessDescription XML-documents would be appended by the
WPSDescTransformer to generate a DescribeProcess response.. Or in the
case of a GetCapabilities, the WPSCapsTransformer would fetch each
ProcessBrief element from those same documents to generate a
GetCapabilities response. I guess there's really nothing more to it.

Maybe I've just made all these data structures for no use. Doh! If it is
OK to read from disk every time there is a GetCapabilities or
DescribeProcess request, that would be the simplest solution. There
would be the question to check if the ProcessDescription documents are
valid, but I guess there are validators that can take an XML Schema and
a document and see if it validates.

So I guess the design question boils down to if process descriptions
should be stored in memory for fast access upon requests or if they
should be stored on disk. What would be the best choice for a WPS?

Jonas

On Tue, 2006-03-14 at 03:35 +0100, Jonas Johansson wrote:

Hi all,

For those interested in the WPS development, here is a design issue:

Right now I am going for the technique of storing values specific to
processes (e.g. title, process offerings, data output/input type) in new
data structures/classes corresponding to those in the WPS 0.4.0
specification. Most of the classes are done already, but since they are
becoming quite large in numbers, I thought I'd mention it here just in
case this is an awful design choice. I believe it is the way to go
though, since if the datastructures are filled in by each Process there
will only need to be one WPSDescTransformer (the exact parallel to for
example WFSCapsTransformer) and one WPSCapsTransformer to for example
to generate output for the DescribeProcess and GetCapabilities request
respectively. The datastructures could be passed to the Transformer from
the process and be written to an XML document as a response to a
request. Some data structures could be reused between those transformers
(specifically the ProcessBrief data structure would be used in both
GetCapabilities and ProcessDescription operations). These data
structures would also serve as a common interface for process providers,
which is nice. The above might be called Alternative 1.

Alternative 2 would be something like each process taking part in
writing metadata output upon requests. The WPSDescTransformer would use
some internal method of each Process (for example handleProcessBrief())
that generates output (with start(); element(); end(); and such) to the
outgoing XML document. This would mean that each process would have to
be a part of the Transformer chain, so that its calls would be forwarded
up the chain. I don't know if this is possible. Alternatively, each
process could be its own Transformer, with complete responsibility for
writing metadata output. In that case, I don't know how one solves the
problem if for example several processes are requested to be described
in a single DescribeProcess request. Would they share the same outgoing
document, is that even possible?

If Alternative 1 and 2 are not used, I guess the a single
WPSCapsTransformer could use a XMLProcessReader (exactly like the
XMLConfigReader reads data from the services.xml into classes WMS and
WFS) to read XML file(s) that contain information about each process.
That XML file could be provided by the Process provider, or a common
processes.xml could be provided, much like the services.xml is provided
for some service metadata (name, abstract, keyword, etc). Reading the
XML file would be done each time a request was received by the WPS.
Repeatedly reading Process metadata from disk would surely be slower
compared to having the Process metadata in memory as data structures. Of
course, reading process metadata from an XML file could be done to
populate the data structures of Alternative 1. It all depends on how
Process providers should provide their processes.

I'm leaning towards Alternative 1, I hope that this is OK (since most of
the classes are already implemented!), but I can change to something
else if, for some reason, that is a very bad design.

Jonas

On Mon, 2006-03-13 at 16:05 -0800, Justin Deoliveira wrote:
> Hi Jonas,
>
> Thanks for being understanding. Also, I would like to discuss a possible
> way to organize your plugins. So it sounds like you are making progress
> anyhow, so why dont keep going on what you have now, and then when you
> want to move to 1.4.x we can talk about how you can use spring to manage
> your process plugins, modules, etc...
>
> -Justin
>
> Jonas Johansson wrote:
> > No need to apologise. I can't really expect that everything should work
> > perfectly smooth on a new branch, right? But right now I feel I can't
> > spend much more time on setting up Eclipse, so I'll go for the 1.3.0_wps
> > until I feel more comfortable again =)
> >
> > Justin, while debugging, I think I finally understood what you said
> > about making a process a plugin, like the validation stuff. I guess you
> > were talking about what happens in XMLConfigReader, when wfs gets
> > validated. The plugIn directory contains a lot of xml files, each
> > pointing to a class. But I don't understand how to actually add a new
> > class at run-time. And I looked a bit at how Spring framework uses Beans
> > to keep track of instances and interfaces. It seems that the Spring way
> > is to use separate files that explains relationships between classes
> > (similar to how Factory produces instances). But wouldn't it be awkward
> > to have a bunch of extra files on the server to keep track of? I guess
> > each process would have its own files that describes how it is
> > instantiated etc... I think I read that this is also possible to do in
> > code. But if I make each process a plugin, am I not solving this problem
> > of keeping track of every instantiated process that the WPS implements?
> > Well, I haven't quite figured all of this out yet...
> >
> > Until I go back to 1.4.x from 1.3.0 I'll just use something simpler to
> > test the WPS.
> >
> > Jonas
> >
> > Mon, 2006-03-13 at 12:11 +0000, Justin Deoliveira wrote:
> >> On another note, I apologize for your trouble with 1.4.x, you are the
> >> first developer other then myself to step up and actually try to develop
> >> with it so you are serving as somewhat of a guinea pig. I appreciate the
> >> persistence and diligence.
> >>
> >> -Justin
> >>
> >> Jonas Johansson wrote:
> >>> Well, I gave it a try and imported the one project made with eclipseAll
> >>> and when that did not work I tried importing them separately, which made
> >>> Eclipse complain on missing projects on the classpath, and looking at
> >>> the "required projects on the build path" for example wfs, shows stuff
> >>> I've never seen before like projects vpf, api and such. This is above my
> >>> league...
> >>>
> >>> I need to get some coding done and I want to be able to debug in
> >>> Eclipse, so unfortunately I guess I'll stick to my working 1.3.0_wps
> >>> since the code works in 1.4.x, it compiles faster without all the other
> >>> stuff in 1.4.x and I can debug with jetty. When it is finished I'll move
> >>> it over to 1.4.x.
> >>>
> >>> Jonas
> >>>
> >>> On Mon, 2006-03-13 at 01:56 -0800, Justin Deoliveira wrote:
> >>>
> >>>> I added some docs for running from eclipse:
> >>>>
> >>>> http://docs.codehaus.org/display/GEOSDOC/Building+with+Eclipse
> >>>>
> >>>> The short of it is after you have all the plugins in your eclipse
> >>>> workspace, create a new Run configuration for the
> >>>> org.vfny.geoserver.jetty module, and run the class
> >>>> org.mortbay.start.Main in debug mode.
> >>>>
> >>>> I think what the problem might be that you are not running from the
> >>>> jetty module which contains said not found class. Which makes sense
> >>>> because for 1.3.0, everything is in the project, for 1.4.x, all the
> >>>> jetty stuff has been sucked out in a seperate module.
> >>>>
> >>>> Give the docs a try and see if it works for you. If lot let us know. If
> >>>> need be we can hop on IRC and get things going. However I will ask in
> >>>> return that you update the docs :).
> >>>>
> >>>> -Justin
> >>>>
> >>>>
> >>>>
> >>>> Jonas Johansson wrote:
> >>>>
> >>>>> Hello,
> >>>>>
> >>>>> With geoserver 1.3.0 I was debugging in Eclipse using jetty. Is there a
> >>>>> document on what one needs to do to get 1.4.x debugging in Eclipse using
> >>>>> jetty? I'm getting
> >>>>> java.lang.ClassNotFoundException: org.mortbay.jetty.Server
> >>>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> >>>>> at java.security.AccessController.doPrivileged(Native Method)
> >>>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> >>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> >>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> >>>>> at org.mortbay.start.Main.invokeMain(Main.java:145)
> >>>>> at org.mortbay.start.Main.start(Main.java:482)
> >>>>> at org.mortbay.start.Main.main(Main.java:90)
> >>>>>
> >>>>> And I can't figure this one out. I have a partly working (it can
> >>>>> generate a response to a WPS GetCapabilities operation)
> >>>>> "1.3.0_wps" (that is, GeoServer 1.3.0 source + added WPS) and I'd like
> >>>>> to move this over to the 1.4.x branch. When I add the corresponding
> >>>>> classes from my working 1.3.0_wps into a project 1.4.x_wps, building
> >>>>> with maven works just fine. However, when I deploy the geoserver.war in
> >>>>> Tomcat, errors occur. Any ideas why this happens (see below)?
> >>>>>
> >>>>> Here is a list of what works and what doesn't work when deploying
> >>>>> 1.4.x_wps:
> >>>>>
> >>>>> * The WMS GetCapabilities operation
> >>>>> (http://localhost:8080/geoserver/wms?request=GetCapabilities) works.
> >>>>>
> >>>>> * The WFS GetCapabilities operation
> >>>>> (http://localhost:8080/geoserver/wfs?request=GetCapabilities)gives the
> >>>>> exception:
> >>>>> -
> >>>>> <ServiceExceptionReport version="1.2.0"
> >>>>> xsi:schemaLocation="http://www.opengis.net/ogc
> >>>>> http://localhost:8080/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd&quot;&gt;
> >>>>> -
> >>>>> <ServiceException>
> >>>>>
> >>>>> javax.xml.transform.TransformerException: Translator error
> >>>>> </ServiceException>
> >>>>> </ServiceExceptionReport>
> >>>>>
> >>>>> * The WPS GetCapabilities operation
> >>>>> (http://localhost:8080/geoserver/wps?request=GetCapabilities) gives the
> >>>>> error:
> >>>>> HTTP Status 404 - /geoserver/wps
> >>>>> ------------------------------------------
> >>>>> type Status report
> >>>>>
> >>>>> message /geoserver/wps
> >>>>>
> >>>>> description The requested resource (/geoserver/wps) is not available.
> >>>>> ------------------------------------------
> >>>>> Apache Tomcat/5.0.28
> >>>>>
> >>>>> * Browsing to http://localhost:8080/geoserver/welcome.do gives the
> >>>>> following error:
> >>>>>
> >>>>> HTTP Status 404 - Servlet action is not available
> >>>>> ------------------------------------------
> >>>>> type Status report
> >>>>>
> >>>>> message Servlet action is not available
> >>>>>
> >>>>> description The requested resource (Servlet action is not available)
> >>>>> is not available.
> >>>>> ------------------------------------------
> >>>>> Apache Tomcat/5.0.28
> >>>>>
> >>>>>
> >>>>> Jonas
> >>>>>
> >>>>>
> >>>>>
> >>>>> -------------------------------------------------------
> >>>>> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> >>>>> that extends applications into web and mobile media. Attend the live webcast
> >>>>> and join the prime developer group breaking into this new coding territory!
> >>>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> >>>>> _______________________________________________
> >>>>> Geoserver-devel mailing list
> >>>>> Geoserver-devel@lists.sourceforge.net
> >>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
> >>>
> >>>
> >>> -------------------------------------------------------
> >>> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> >>> that extends applications into web and mobile media. Attend the live webcast
> >>> and join the prime developer group breaking into this new coding territory!
> >>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> >>> _______________________________________________
> >>> Geoserver-devel mailing list
> >>> Geoserver-devel@lists.sourceforge.net
> >>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
> >
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> > that extends applications into web and mobile media. Attend the live webcast
> > and join the prime developer group breaking into this new coding territory!
> > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> > _______________________________________________
> > Geoserver-devel mailing list
> > Geoserver-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
>

After some though I disagree here chris. I think 1.4.x does need its own space. Without a seperate space we cant make the 1.4.x public as we dont want to confuse people with both a 1.4.x and 1.3.x build system / build docs around. So it will just remain someting going on on the side.

-Justin

Chris Holmes wrote:

Not yet, I am going to make a GEOSDOC2 space (as described in email last week) during the next geoserver meeting, so we can capture stuff like this.
Right now the team here is just making use of the war in JBoss.

Er, I don't think we want a whole new GEOSDOC2 space, I don't like the proliferation of spaces in confluence. I think it'd be better to keep it in the same GEOSDOC confluence, but under http://docs.codehaus.org/display/GEOSDOC/Developers+Guide+1.4.x

Just use that as the parent, and then we can link to it. We can even clone/fork the current docs, and just suffix them with 1.4.x or something. So we'd have 'How a GetFeature Request works 1.4.x'.

Chris

Any chance you can run site tests when testing the war? We cannot escape our firewall.
Jody

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Jonas Johansson wrote:

Here is a comment to my last email.. I just realised that the probably
most straightforward way to go when storing process metadata would be
that each service is originally accompanied by a ProcessDescription XML
document following the XML encoding defined by the WPS 0.4.0
specification, section 9.3.2. If an incoming DescribeProcess request
specifies several processes that should be described, each of the
processes ProcessDescription XML-documents would be appended by the
WPSDescTransformer to generate a DescribeProcess response.. Or in the
case of a GetCapabilities, the WPSCapsTransformer would fetch each
ProcessBrief element from those same documents to generate a
GetCapabilities response. I guess there's really nothing more to it.

Maybe I've just made all these data structures for no use. Doh! If it is
OK to read from disk every time there is a GetCapabilities or
DescribeProcess request, that would be the simplest solution. There
would be the question to check if the ProcessDescription documents are
valid, but I guess there are validators that can take an XML Schema and
a document and see if it validates.
  

Um you could just store the DOM? Or make this as DynanBeans?

So I guess the design question boils down to if process descriptions
should be stored in memory for fast access upon requests or if they
should be stored on disk. What would be the best choice for a WPS?
  

Hey Jonas, following your project with anticipation!

Get it to run first (optimization is the root of all evil), and then make a strategy object to deal with your different ideas. For an example see the design of GeoServer with Speed, Buffer, File and Partial.

On Tue, 2006-03-14 at 16:03 +0200, Jody Garnett wrote:

Jonas Johansson wrote:
> Here is a comment to my last email.. I just realised that the probably
> most straightforward way to go when storing process metadata would be
> that each service is originally accompanied by a ProcessDescription XML
> document following the XML encoding defined by the WPS 0.4.0
> specification, section 9.3.2. If an incoming DescribeProcess request
> specifies several processes that should be described, each of the
> processes ProcessDescription XML-documents would be appended by the
> WPSDescTransformer to generate a DescribeProcess response.. Or in the
> case of a GetCapabilities, the WPSCapsTransformer would fetch each
> ProcessBrief element from those same documents to generate a
> GetCapabilities response. I guess there's really nothing more to it.
>
> Maybe I've just made all these data structures for no use. Doh! If it is
> OK to read from disk every time there is a GetCapabilities or
> DescribeProcess request, that would be the simplest solution. There
> would be the question to check if the ProcessDescription documents are
> valid, but I guess there are validators that can take an XML Schema and
> a document and see if it validates.
>
Um you could just store the DOM? Or make this as DynanBeans?

Heureka! Thanks Jody. Of course, this must be what I have been wanting
to do. It seems it is all about knowing what technologies are already
available, since most stuff have already been done before. As you can
see, I am not so data structure-literate, so I didn't think about DOM :slight_smile:
Don't know much about DynanBeans either... Heck, before this project I
didn't know much about XML at all. Storing the DOM of an XML document
would be like storing the elements and attributes in memory right, and
each process could store its own DOM as an object if that is the
strategy? That sounds like exactly what I am trying to do here by
creating all these fancy data structures. My plan was to check for nulls
in the data structures to see if some element has attributes or not,
haha! I had a feeling that there must be a better way of doing this =)
Well, it's good that I learn tons of new stuff all the time by studying
how GeoServer works and discussing on the geoserver-devel list. At
least, by constructing new classes for storage (unaware of DOM), I
learned the WPS 0.4.0 spec in more detail.

So I guess the new plan is that each process is accompanied by its own
DescribeProcess XML document (following the WPS 0.4.0 specification)
that is parsed using DOM and thus stored in memory. Each DescribeProcess
DOM object is passed to the Transformers responsible for generating XML
responses to GetCapabilities and DescribeProcess request. Alternatively,
a single processes.xml file could store all process descriptions,
similar to how services.xml is used in GeoServer.

Jonas

> So I guess the design question boils down to if process descriptions
> should be stored in memory for fast access upon requests or if they
> should be stored on disk. What would be the best choice for a WPS?
>
Hey Jonas, following your project with anticipation!

Get it to run first (optimization is the root of all evil), and then
make a strategy object to deal with your different ideas. For an example
see the design of GeoServer with Speed, Buffer, File and Partial.

That's a good idea!

Jonas

Jonas Johansson wrote:

On Tue, 2006-03-14 at 16:03 +0200, Jody Garnett wrote:
  

Jonas Johansson wrote:
    

Here is a comment to my last email.. I just realised that the probably
most straightforward way to go when storing process metadata would be
that each service is originally accompanied by a ProcessDescription XML
document following the XML encoding defined by the WPS 0.4.0
specification, section 9.3.2. If an incoming DescribeProcess request
specifies several processes that should be described, each of the
processes ProcessDescription XML-documents would be appended by the
WPSDescTransformer to generate a DescribeProcess response.. Or in the
case of a GetCapabilities, the WPSCapsTransformer would fetch each
ProcessBrief element from those same documents to generate a
GetCapabilities response. I guess there's really nothing more to it.

Maybe I've just made all these data structures for no use. Doh! If it is
OK to read from disk every time there is a GetCapabilities or
DescribeProcess request, that would be the simplest solution. There
would be the question to check if the ProcessDescription documents are
valid, but I guess there are validators that can take an XML Schema and
a document and see if it validates.
  

Um you could just store the DOM? Or make this as DynanBeans?
    
Heureka! Thanks Jody. Of course, this must be what I have been wanting
to do. It seems it is all about knowing what technologies are already
available, since most stuff have already been done before. As you can
see, I am not so data structure-literate, so I didn't think about DOM :slight_smile:
  

Do youself a favour and use JDOM (a better api for DOM), much nicer API. Note if your data is going to be BIG you should
look into something else (ie streaming).

in the data structures to see if some element has attributes or not,
haha! I had a feeling that there must be a better way of doing this =)
  

Well you trade one problem for another, JDOM is nice, but it is just data. Having real objects is good if you
want some functionality out of it.

Well, it's good that I learn tons of new stuff all the time by studying
how GeoServer works and discussing on the geoserver-devel list. At
least, by constructing new classes for storage (unaware of DOM), I
learned the WPS 0.4.0 spec in more detail.
  

Yeah!

As you like, you're leading 1.4.x. Just as long it's easy to merge back in. And I'd also like to see it 'fork' the current developer docs, so that they all get copied over, and then all updated with the latest information. I also think you might pick a better name than GEOSDOC2, maybe GEOSDEV or some such.

Justin Deoliveira wrote:

After some though I disagree here chris. I think 1.4.x does need its own space. Without a seperate space we cant make the 1.4.x public as we dont want to confuse people with both a 1.4.x and 1.3.x build system / build docs around. So it will just remain someting going on on the side.

-Justin

Chris Holmes wrote:

Not yet, I am going to make a GEOSDOC2 space (as described in email last week) during the next geoserver meeting, so we can capture stuff like this.
Right now the team here is just making use of the war in JBoss.

Er, I don't think we want a whole new GEOSDOC2 space, I don't like the proliferation of spaces in confluence. I think it'd be better to keep it in the same GEOSDOC confluence, but under http://docs.codehaus.org/display/GEOSDOC/Developers+Guide+1.4.x

Just use that as the parent, and then we can link to it. We can even clone/fork the current docs, and just suffix them with 1.4.x or something. So we'd have 'How a GetFeature Request works 1.4.x'.

Chris

Any chance you can run site tests when testing the war? We cannot escape our firewall.
Jody

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Chris Holmes
The Open Planning Project
thoughts at: http://cholmes.wordpress.com

On 3/14/06, Jody Garnett <jgarnett@…12…> wrote:

Jonas Johansson wrote:

On Tue, 2006-03-14 at 16:03 +0200, Jody Garnett wrote:

Jonas Johansson wrote:

Maybe I’ve just made all these data structures for no use. Doh! If it is
OK to read from disk every time there is a GetCapabilities or
DescribeProcess request, that would be the simplest solution. There
would be the question to check if the ProcessDescription documents are
valid, but I guess there are validators that can take an XML Schema and
a document and see if it validates.

Um you could just store the DOM? Or make this as DynanBeans?

Heureka! Thanks Jody. Of course, this must be what I have been wanting
to do. It seems it is all about knowing what technologies are already
available, since most stuff have already been done before. As you can
see, I am not so data structure-literate, so I didn’t think about DOM :slight_smile:

Do youself a favour and use JDOM (a better api for DOM), much nicer
API. Note if your data is going to be BIG you should
look into something else (ie streaming).

in the data structures to see if some element has attributes or not,
haha! I had a feeling that there must be a better way of doing this =)

Well you trade one problem for another, JDOM is nice, but it is just
data. Having real objects is good if you
want some functionality out of it.

Not sure if this is relevant or not, I’ve not had a chance to play with it yet
http://www.onjava.com/pub/a/onjava/2006/03/08/storing-xml-document-with-apache-xindice.html?page=1

Ian

Ian Turton
http://www.geotools.org
http://pennspace.blogspot.com/