Jump to: navigation, search

STP/EntryPointComponent

< STP

One of the criticisms levelled against STP is that there is no focussed entry point for developers. We have a series of individually useful and different components, but compared to other projects we don't have a single entry point, a single place for developers to start. Many find this confusing.

To address this issue, and to deal with some mundane project housekeeping issues too, I've got the seed of a proposal for a new component that will serve as the entrypoint to the use rest of the STP components. This new component will contain cross-component elements, such as preference page categories, project wizard categories, and the like, as well as any STP-specific branding and look, online help categories etc. That's the housekeeping stuff I was talking about.

The other function of this component will be to hold a high-level 'view' of the SOA and Integration elements in all projects in the workspace. Think of it like this - one creates a new SOA project. To this project can be added Services, Policies, Processes and Integrations. These elements contain *metadata*, not code. The code for these things is kept in other projects in the workspace. It's similar to the way that you have an EMF model in one project and then have the code itself in other projects (which may be generated). So it's really a bit like a model container project - it would be possible to generate code and project elements from the metadata there, and also it should be possible to extract metadata from existing projects and synchronize it with this SOA project.

For example - if you have written a web service using the WTP facilities, then you can make a new SOA project, right click on the project and Add Service, then choose the web service WTP project, and there is some amount of metadata gets automatically extracted and populated into a Service node in the SOA project. Each of the nodes has a form-based editor for doing stuff with the metadata, and there should be a way to synchronize between projects, etc.

Is this making sense? :) I need some help fleshing this out a bit more :)