The BEA AquaLogic Service Registry Group demos are used to demonstrate the BEA AquaLogic Service Registry application programming interface's capabilities and to demonstrate how to use this API.
You will learn how to create or update, get, find and delete groups.
The BEA AquaLogic Service Registry security group demo set contains the following demos to assist you in learning the BEA AquaLogic Service Registry client API:
Save Demonstrates how to construct and fill the Save_group object, get a Group stub for the UDDI registry, and perform the save_group call.
Delete Demonstrates how to construct and fill the Delete_group object, get a Group stub for the UDDI registry, and perform the delete_group call.
Get Demonstrates how to construct and fill the Get_group object, get a Group stub for the UDDI registry, and perform the get_group call.
Find Demonstrates how to construct and fill the Find_group object, get a Group stub for the UDDI registry, and perform the find_group call.
WhereIAm Demonstrates how to construct and fill the Where_amI object, get a Group stub for the UDDI registry, and perform the where_amI call.
We expect that you have already installed the BEA AquaLogic Service Registry and set the REGISTRY_HOME environment variable to the registry's installation location.
To run the BEA AquaLogic Service Registry's demos, your BEA AquaLogic Service Registry must be running. To start the registry, execute the serverstart script:
Windows: | %REGISTRY_HOME%\bin\serverstart.bat |
UNIX: | $REGISTRY_HOME/bin/serverstart.sh |
It is necessary to configure the demos. The configuration system has two levels: global and local. The properties defined at the global level may be overwritten at the local level. The global properties are located in the file:
Windows: | %REGISTRY_HOME%\demos\env.properties |
UNIX: | $REGISTRY_HOME/demos/env.properties |
The values set during the installation of the BEA AquaLogic Service Registry work out of the box, and their modification affects all demos. If you need to redefine a property's value for a single demo (that is,, at the local level), edit env.properties. This file is located in the same directory as the file run.sh (run.bat). Local level properties for the Group demo are loaded from the file:
Windows: | %REGISTRY_HOME%\demos\security\group\env.properties |
UNIX: | $REGISTRY_HOME/demos/security/group/env.properties |
This section describes the programming pattern used in all demos using the WhereIAm demo as an example. You can find this demo's source code in the file:
Windows: | %REGISTRY_HOME%\demos\security\group\src\demo\uddi\group\WhereIAm.java |
UNIX: | $REGISTRY_HOME/demos/security/group/src/demo/uddi/group/WhereIAm.java |
The main method starts by gathering configuration information from the user. The first, login name, is used to run the command; the second is argument of the where_amI operation. It then logs the user to the registry, creates the Where_amI object, sends it over SOAP and prints a list of groups to which the login belongs.
String user = UserInput.readString("Enter login to authenticate", DemoProperties.getProperty(USER_JOHN_NAME)); String password = UserInput.readString("Enter password", DemoProperties.getProperty(USER_JOHN_PASSWORD)); String login = UserInput.readString("Enter login to search", user); System.out.println(); UDDI_Security_PortType security = getSecurityStub(); String authInfo = getAuthInfo(user, password, security); Where_amI save = createWhereAmI(login, authInfo); GroupList groups = whereAmI(save); printGroupList(groups); discardAuthInfo(authInfo, security);
The method createWhereAmI is used to create an object representation of the where_amI operation.
public static Where_amI createWhereAmI(String login, String authInfo) throws InvalidParameterException { System.out.println("login = " + login); Where_amI find = new Where_amI(); find.setLoginName(login); find.setAuthInfo(authInfo); return find; }
The helper method, getGroupStub(), returns the UDDI Group stub of the Web service listening at the URL specified by the URL_GROUP property.
public static GroupApi getGroupStub() throws SOAPException { // you can specify your own URL in property - uddi.demos.url.group String url = DemoProperties.getProperty(URL_GROUP, "http://localhost:8080/uddi/group"); System.out.print("Using Group API at url " + url + " .."); GroupApi account = GroupStub.getInstance(url); System.out.println(" done"); return account; }
The BEA AquaLogic Service Registry API call where_amI is performed in the method whereAmI.
public static GroupList whereAmI(Where_amI find) throws SOAPException, GroupException { GroupApi groupApi = getGroupStub(); System.out.print("Search in progress ..."); GroupList groups = groupApi.where_amI(find); System.out.println(" done"); return groups; }
Finally the method printGroupList is used to print the found groups to the console.
public static void printGroupList(GroupList groups) { System.out.println(); ListDescription listDescription = groups.getListDescription(); if (listDescription != null) { // list description is mandatory part of result, if the resultant list is subset of available data int includeCount = listDescription.getIncludeCount(); int actualCount = listDescription.getActualCount(); int listHead = listDescription.getListHead(); System.out.println("Displaying " + includeCount + " of " + actualCount + ", starting at position " + listHead); } GroupInfoArrayList groupInfoArrayList = groups.getGroupInfoArrayList(); if (groupInfoArrayList == null) { System.out.println("Nothing found"); return; } int position = 1; for (Iterator iterator = groupInfoArrayList.iterator(); iterator.hasNext();) { GroupInfo group = (GroupInfo) iterator.next(); System.out.println("Group " + position); System.out.println(group.toXML()); System.out.println(); System.out.println("********************************************************"); position++; } }
This section shows how to build and run the BEA AquaLogic Service Registry Group demos.
Be sure that the demos are properly configured and the BEA AquaLogic Service Registry is up and running.
Change your working directory to:
Windows: | %REGISTRY_HOME%\demos\security\group |
UNIX: | $REGISTRY_HOME/demos/security/group |
Build demos using:
Windows: | run.bat make |
UNIX: | ./run.sh make |
Note | |
---|---|
When compiling demos on Windows platforms, you may see the following text: A subdirectory or file ..\..\common\.\build\classes already exists. This is expected and does not indicate a problem. |
To get list of all available commands, run
Windows: | run.bat help |
UNIX: | ./run.sh help |
The selected demo can be executed via the run command with the name of the demo as parameter. For example, to run the WhereIAm demo, invoke
Windows: | run.bat WhereIAm |
UNIX: | ./run.sh WhereIAm |
The output of this demo will resemble the following:
Running WhereIAm demo... ************************************************************************** *** BEA AquaLogic Service Registry Demo - WhereIAm *** ************************************************************************** Find groups of user where Enter login to authenticate [demo_john]: Enter password [demo_john]: Enter login to search [demo_john]: Using Security at url https://mycomp.com:8443/uddi/security .. done Logging in .. done login = demo_john Using Group API at url https://mycomp.com:8443/uddi/group .. done Search in progress ... done Group 1 <groupInfo xmlns="http://systinet.com/uddi/group/5.0"> <name>system#everyone</name> <description>The special group that contains all users.</description> <privateGroup>false</privateGroup> <external>false</external> </groupInfo> ******************************************************** Group 2 <groupInfo xmlns="http://systinet.com/uddi/group/5.0"> <name>system#registered</name> <description>The special group that contains all users who are logged onto the UDDI registry.</description> <privateGroup>false</privateGroup> <external>false</external> </groupInfo> ******************************************************** Logging out .. done
To rebuild demos, execute run.bat clean (./run.sh clean) to delete the classes directory and run.bat make (./run.sh make) to rebuild the demo classes.