[osmosis-dev] Writing an Osmosis plugin

Paweł Paprota ppawel at fastmail.fm
Tue Oct 23 12:09:43 BST 2012


Hi Brett,

Thanks for a very informative and useful response! See my comments below.

> However, due to the fact that every module in Osmosis is built as a
> separate plugin and source code is maintained in Git, things have
> changed somewhat.  My suggestion would be to work in the main tree
> but on your own branch in your own repo.  Create your new tasks in a
> new project/plugin following the existing pattern.  It's up to you
> where you store your repository, but github is probably the easiest
> choice.

I'm happy that it's your recommendation as this is exactly what I did at
the time I sent my message to osmosis-dev@ :-)

I simply forked your repo on Github, see:

https://github.com/ppawel/osmosis/tree/changedb-plugin

I added a new module/project, named "changedb". I also maintain database
schema scripts in this tree:

https://github.com/ppawel/osmosis/blob/changedb-plugin/package/script/changedb_schema.sql

This module is an extension of the pgsnapshot so the schema only
contains additional tables.

I'm trying to keep changes to the changedb module but in some places I 
need to extend the core model, for example I need to get a way 
linestring. The easiest way to do that would be to modify Way and 
Way(Row)Mapper classes. I'm not sure what is the practice for extending 
core classes. Let me know if you have any tips.

> By having your source in the main tree, it makes it easy for you to
> develop, easy for others to build it themselves, easy to release a
> custom-built Osmosis with your plugin, and easy to distribute a
> standalone plugin as a single compiled jar.
>

Yes, this is perfect for my current needs.

> Once your plugin is stable and seeing some real-world use we can look
> at merging it into the main Osmosis repository.  I won't be able to
> spend much time maintaining it though so I'll need assistance fixing
> any bugs that are found.

Sure, I would help out with maitenance, although I'm not worried for now 
about real-world use and merging the plugin upstream.

The idea is to build this plugin so that a service like OWL or similar 
can be powered by such "change database". We will see how it works out, 
for now it's at early stages so no need to worry about maintenance.

>
> How does that sound?
>

Great :-)

>
> PS. The wiki is out of date with respect to plugins and could do with
> an update.  Plugins used to be second class citizens in the Osmosis
> world, but now everything is created as plugins.  The only difference
> is whether plugins are included in the main distribution or not.
>

I won't promise anything but I may update a little content here and 
there if I find the time. Also useful would be a short info on how to 
develop with Eclipse - setting up launch configurations (classpath) for 
debugging etc.

Paweł




More information about the osmosis-dev mailing list