Potentially SOA Repository can handle many different type of artifacts or services. But lets start from the most basic one: how SOA Repository can help us to manage JBOSS ESB services.
1) Search for existing service
At the moment, search&query is done in following ways:
1. Using the "name search" to search an esb archive according to its name. Wild card is supported.
2. Full text search: obviously we can not search into a zip file. So full text is not very useful here. But we can use full text search to search into a jboss-esb.xml file or other artifacts that are contained within the .esb archive.
3. Once the "Advanced search" (see Jira https://jira.jboss.org/jira/browse/GUVNOR-187) is added, users can search an esb archive according to its attribute name/value.
4. Once the "Advanced search" (see Jira https://jira.jboss.org/jira/browse/GUVNOR-187) is added, users can also search an esb archive according to its metadata name/value. Users can add a custom metadata to this esb service first.
5. At the moment we can only search the artifact itself. We will need the capability of searching through artifact's dependency. This will be useful in a scenario of for example "find a .esb archive whose WSDL's port name is myservice".
2) Add new service
At the moment, there are two ways to add a new JBOSS ESB service into repository:
1. Upload an existing .esb archive into repository: When we add .esb archive into the repository, we will do a metadata auto-discover process. For example, information like service category/action type etc can extracted from jboss-esb.xml and stored as metadata.
2. Create an empty service ("Add Generic Service") first. Then users can add various dependencies (eg, jboss-esb.xml config file, WSDL file, smooks file etc) to this service. However this use case is not useful until JBOSS ESB has an "assembly" feature - ideally a graphical editor that can assembly various components together to generate a .esb archive.
3) Edit existing service
At the moment, users can edit following attributes of an .esb service:
Any changes on #1 to #5 have no impact on the .esb archive itself.
Again, the implementation of a fully editable service depends on the availability the "JBOSS ESB assembler". Once this "JBOSS ESB assembler" is in place, users can edit dependencies such as config file, wsdl file then re-generate a new .esb archive.
4) Deploy service
You may have already noticed the "SOA Network" menu. The idea is that users can use this menu to add/manage servers, manage what services (and what versions) have been deployed into what servers, deploy service into server etc. However this is overlaped with JON. Jim Ma may have some further comments.