[Geoserver-devel] how to package a datastore plugin?

I've searched the documentation and looked at the source and I can't
work out the magic to build a datastore plugin with the required jars
but without any duplicate jars in it.

Can anyone point me in the right direction?

Thanks

Ian

--
Ian Turton

The ‘extension’ and ‘community’ sections of the source tree each contain a “release” submodule which is not really a module at all, in the sense that it contains no code. Instead, it depends on each released module and uses a maven plugin to copy all dependencies into one directory. Then, an “artifact” descriptor xml file is used to copy a subset of those dependencies into the release jar. You can see the community version (much the same as the extensions one, but smaller and hopefully easier to read through) at http://svn.codehaus.org/geoserver/branches/2.0.x/src/community/release/

As for figuring out which jars to include, this is not automated, but you could probably approximate it by adding a profile to the web/app/ project and using “mvn dependency:list > core-deps.txt; mvn dependency:list -PmyExtension > extended-deps.txt” and using your tool of choice (on unixy systems, use your favorite editor to trim out the maven noise, and then “cat *deps.txt | sort | uniq -u”) to difference the lists.

Hope this helps.


David Winslow
OpenGeo - http://opengeo.org/

On Fri, Oct 8, 2010 at 1:34 PM, Ian Turton <ijturton@anonymised.com> wrote:

I’ve searched the documentation and looked at the source and I can’t
work out the magic to build a datastore plugin with the required jars
but without any duplicate jars in it.

Can anyone point me in the right direction?

Thanks

Ian


Ian Turton


Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb


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

On Fri, Oct 8, 2010 at 3:01 PM, David Winslow <dwinslow@anonymised.com> wrote:

The 'extension' and 'community' sections of the source tree each contain a
"release" submodule which is not really a module at all, in the sense that
it contains no code. Instead, it depends on each released module and uses a
maven plugin to copy all dependencies into one directory. Then, an
"artifact" descriptor xml file is used to copy a subset of those
dependencies into the release jar. You can see the community version (much
the same as the extensions one, but smaller and hopefully easier to read
through)

Thanks - I guessed it had to be something like that but for the life
of me I couldn't find it.

Ian
--
Ian Turton

For future reference this is actually decently documented in the developer guide.

http://docs.geoserver.org/stable/en/developer/policies/community-modules.html

-Justin

On Fri, Oct 8, 2010 at 1:13 PM, Ian Turton <ijturton@anonymised.com> wrote:

On Fri, Oct 8, 2010 at 3:01 PM, David Winslow <dwinslow@anonymised.com> wrote:

The ‘extension’ and ‘community’ sections of the source tree each contain a
“release” submodule which is not really a module at all, in the sense that
it contains no code. Instead, it depends on each released module and uses a
maven plugin to copy all dependencies into one directory. Then, an
“artifact” descriptor xml file is used to copy a subset of those
dependencies into the release jar. You can see the community version (much
the same as the extensions one, but smaller and hopefully easier to read
through)

Thanks - I guessed it had to be something like that but for the life
of me I couldn’t find it.

Ian

Ian Turton


Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb


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


Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

On Tue, Oct 12, 2010 at 8:50 AM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

For future reference this is actually decently documented in the developer
guide.
http://docs.geoserver.org/stable/en/developer/policies/community-modules.html

What I'm missing is what the maven command I need to execute to build
the zip file is and/or where to look for the zip file?

Plus there are a couple of errors on that page where .. warning is
not being processed probably a missing blank line.

Ian
--
Ian Turton

If you have the release descriptor written (ext-whatever.xml) and it is lives in either release or community/release you must update either pom.xml or community/pom.xml to add it to list of descriptors that get an artifact built. Just search for ext-*.xml in the file.

Then you do a mvn assembly:attached from either the root of source tree or root of community depending on where your descriptor lives. The result will be a zip file under target/release.

-Justin

On Tue, Oct 12, 2010 at 10:08 AM, Ian Turton <ijturton@anonymised.com> wrote:

On Tue, Oct 12, 2010 at 8:50 AM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

For future reference this is actually decently documented in the developer
guide.
http://docs.geoserver.org/stable/en/developer/policies/community-modules.html

What I’m missing is what the maven command I need to execute to build
the zip file is and/or where to look for the zip file?

Plus there are a couple of errors on that page where … warning is
not being processed probably a missing blank line.

Ian

Ian Turton


Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.