Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Riena/Getting Started with stages

< Riena
Revision as of 09:35, 20 October 2008 by Stefan.Liebig.compeople.de (Talk | contribs) (Getting Started with Stages)

Getting Started with Stages

Developing, integrating, testing, running and maintaining large client/server applications typically involve diverse setups. Stages are Riena´s approach to deal with that. Stages are a concept - not a service or a set classes.

All the different setups of servers and clients are almost identical (and that´s what they should). However, there is a small amount of - ermm - stuff (!) that is different. Basically, this mostly boils down to strings that are different e.g. within URLs (e.g. remote service locations) or other data that gets configured with extensions.

While developing for example a URL for a remote service might look like: http://localhost:8080/hessian/HelloWorldServiceWS another is http://localhost:8080/hessian/CustomerSearchWS and so on. Within our test environment they become: http://your.inhouse.server:80/hessian/HelloWorldServiceWS http://your.inhouse.server:80/hessian/CustomerSearchWS and finally within production https://your.prodhouse.server:80/hessian/HelloWorldServiceWS https://your.prodhouse.server:80/hessian/CustomerSearchWS

As you can see they have a lot in common. We could rewrite them with something like that: ${service_host}/hessian/HelloWorldServiceWS ${service_host}/hessian/CustomerSearchWS


StringVariableManager come to the rescue

Fortunately there is this great StringVariableManager within the bundle 'org.eclipse.core.variables'. One of things it can do is substituting variable expression within strings with their definition, e.g.

"This is a ${what} bundle."  would become   "This is a great bundle."  with the definition: what := "great"

The StringVariableManager can be configured programmatically via its API but more useful in our case by extensions.

Back to the top